Merge c047bdc65f3ecc340abd6c93e2402f7e95de17f3 on remote branch

Change-Id: If9010f944c2fc580db9d270b734d0dda6f9993c2
diff --git a/fw/htc_services.h b/fw/htc_services.h
index 3c2906e..8d510dc 100644
--- a/fw/htc_services.h
+++ b/fw/htc_services.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2012, 2014-2017, 2020 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -58,7 +59,8 @@
 #define WMI_CONTROL_SVC_WMAC1  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,5)
 #define WMI_CONTROL_SVC_WMAC2  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,6)
 #define WMI_CONTROL_DIAG_SVC   MAKE_SERVICE_ID(WMI_SERVICE_GROUP,7)
-#define WMI_MAX_SERVICES  8
+#define WMI_CONTROL_DBR_SVC    MAKE_SERVICE_ID(WMI_SERVICE_GROUP,8)
+#define WMI_MAX_SERVICES  9
 
 #define NMI_CONTROL_SVC   MAKE_SERVICE_ID(NMI_SERVICE_GROUP,0)
 #define NMI_DATA_SVC      MAKE_SERVICE_ID(NMI_SERVICE_GROUP,1)
diff --git a/fw/htt.h b/fw/htt.h
index 28e052e..caf26ce 100644
--- a/fw/htt.h
+++ b/fw/htt.h
@@ -751,6 +751,15 @@
     HTT_STATS_ML_PEER_DETAILS_TAG                  = 159, /* htt_ml_peer_details_tlv */
     HTT_STATS_ML_PEER_EXT_DETAILS_TAG              = 160, /* htt_ml_peer_ext_details_tlv */
     HTT_STATS_ML_LINK_INFO_DETAILS_TAG             = 161, /* htt_ml_link_info_tlv */
+    HTT_STATS_TX_PDEV_PPDU_DUR_TAG                 = 162, /* htt_tx_pdev_ppdu_dur_stats_tlv */
+    HTT_STATS_RX_PDEV_PPDU_DUR_TAG                 = 163, /* htt_rx_pdev_ppdu_dur_stats_tlv */
+    HTT_STATS_ODD_PDEV_MANDATORY_TAG               = 164, /* htt_odd_mandatory_pdev_stats_tlv */
+    HTT_STATS_PDEV_SCHED_ALGO_OFDMA_STATS_TAG      = 165, /* htt_pdev_sched_algo_ofdma_stats_tlv */
+    HTT_DBG_ODD_MANDATORY_MUMIMO_TAG               = 166, /* htt_odd_mandatory_mumimo_pdev_stats_tlv */
+    HTT_DBG_ODD_MANDATORY_MUOFDMA_TAG              = 167, /* htt_odd_mandatory_muofdma_pdev_stats_tlv */
+    HTT_STATS_LATENCY_PROF_CAL_STATS_TAG           = 168, /* htt_latency_prof_cal_stats_tlv */
+    HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG      = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */
+    HTT_STATS_PDEV_BW_MGR_STATS_TAG                = 170, /* htt_pdev_bw_mgr_stats_tlv */
 
 
     HTT_STATS_MAX_TAG,
diff --git a/fw/htt_stats.h b/fw/htt_stats.h
index 3909f0d..3297d37 100644
--- a/fw/htt_stats.h
+++ b/fw/htt_stats.h
@@ -348,7 +348,7 @@
      */
     HTT_DBG_EXT_STATS_PDEV_TX_RATE_TXBF   = 31,
 
-    /* HTT_DBG_EXT_STATS_TXBF_OFDMA
+    /** HTT_DBG_EXT_STATS_TXBF_OFDMA
      */
     HTT_DBG_EXT_STATS_TXBF_OFDMA          = 32,
 
@@ -422,7 +422,7 @@
      */
     HTT_DBG_EXT_RX_RING_STATS = 42,
 
-    /* HTT_STRM_GEN_MPDUS_STATS, HTT_STRM_GEN_MPDUS_DETAILS_STATS
+    /** HTT_STRM_GEN_MPDUS_STATS, HTT_STRM_GEN_MPDUS_DETAILS_STATS
      * PARAMS:
      *   - No params
      * RESP MSG: HTT_T2H STREAMING_STATS_IND (not EXT_STATS_CONF)
@@ -451,7 +451,7 @@
      */
     HTT_DBG_PDEV_PUNCTURE_STATS = 46,
 
-    /* HTT_DBG_EXT_STATS_ML_PEERS_INFO
+    /** HTT_DBG_EXT_STATS_ML_PEERS_INFO
      * PARAMS:
      *    - param 0:
      *      Bit 0 -> HTT_ML_PEER_DETAILS_TLV always enabled by default
@@ -463,6 +463,53 @@
      */
     HTT_DBG_EXT_STATS_ML_PEERS_INFO = 47,
 
+    /** HTT_DBG_ODD_MANDATORY_STATS
+     * params:
+     *          None
+     * Response MSG:
+     *          htt_odd_mandatory_pdev_stats_tlv
+     */
+    HTT_DBG_ODD_MANDATORY_STATS = 48,
+
+    /** HTT_DBG_PDEV_SCHED_ALGO_STATS
+     * PARAMS:
+     *      - No Params
+     * RESP MSG:
+     *   - htt_pdev_sched_algo_ofdma_stats_tlv
+     */
+    HTT_DBG_PDEV_SCHED_ALGO_STATS = 49,
+
+    /** HTT_DBG_ODD_MANDATORY_MUMIMO_STATS
+     * params:
+     *          None
+     * Response MSG:
+     *          htt_odd_mandatory_mumimo_pdev_stats_tlv
+     */
+    HTT_DBG_ODD_MANDATORY_MUMIMO_STATS = 50,
+    /** HTT_DBG_ODD_MANDATORY_MUOFDMA_STATS
+     * params:
+     *          None
+     * Response MSG:
+     *          htt_odd_mandatory_muofdma_pdev_stats_tlv
+     */
+    HTT_DBG_ODD_MANDATORY_MUOFDMA_STATS = 51,
+
+    /** HTT_DBG_EXT_PHY_PROF_CAL_STATS
+     * params:
+     *          None
+     * Response MSG:
+     *          htt_latency_prof_cal_stats_tlv
+     */
+    HTT_DBG_EXT_PHY_PROF_CAL_STATS = 52,
+
+    /** HTT_DBG_EXT_STATS_PDEV_BW_MGR
+     * PARAMS:
+     *   - No Params
+     * RESP MSG:
+     *   - htt_pdev_bw_mgr_stats_t
+     */
+    HTT_DBG_EXT_STATS_PDEV_BW_MGR = 53,
+
 
     /* keep this last */
     HTT_DBG_NUM_EXT_STATS = 256,
@@ -635,6 +682,8 @@
 #define HTT_TX_HWQ_MAX_CMD_RESULT_STATS 13
 #define HTT_TX_HWQ_MAX_CMD_STALL_STATS 5
 #define HTT_TX_HWQ_MAX_FES_RESULT_STATS 10
+#define HTT_PDEV_STATS_PPDU_DUR_HIST_BINS 16
+#define HTT_PDEV_STATS_PPDU_DUR_HIST_INTERVAL_US 250
 
 typedef enum {
     HTT_STATS_TX_PDEV_NO_DATA_UNDERRUN = 0,
@@ -851,6 +900,8 @@
     A_UINT32 num_dyn_mimo_ps_dlmumimo_sequences;
     /** Num of times su bf sequences are denylisted */
     A_UINT32 num_su_txbf_denylisted;
+    /** pdev uptime in microseconds **/
+    A_UINT32 pdev_up_time_us;
 } htt_tx_pdev_stats_cmn_tlv;
 
 #define HTT_TX_PDEV_STATS_URRN_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -881,6 +932,21 @@
     A_UINT32      phy_errs[1]; /* HTT_TX_PDEV_MAX_PHY_ERR_STATS */
 } htt_tx_pdev_stats_phy_err_tlv_v;
 
+/*
+ * Each array in the below struct has 16 elements, to cover the 16 possible
+ * values for the CW and AIFS parameters.  Each element within the array
+ * stores the counter indicating how many transmissions have occurred with
+ * that particular value for the MU EDCA parameter in question.
+ */
+#define HTT_STATS_MUEDCA_VALUE_MAX 16
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    A_UINT32 aifs[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
+    A_UINT32 cw_min[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
+    A_UINT32 cw_max[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
+} htt_tx_pdev_muedca_params_stats_tlv_v;
+
+#define HTT_TX_PDEV_SIFS_BURST_HIST_STATS 10
 #define HTT_TX_PDEV_STATS_SIFS_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
 /* NOTE: Variable length TLV, use length spec to infer array size */
 typedef struct {
@@ -1521,7 +1587,9 @@
         mesh_sta       : 1,
         mec            : 1,
         intra_bss      : 1,
-        reserved       : 16;
+        chip_id        : 2,
+        ml_peer_id     : 13,
+        reserved       : 1;
 } htt_ast_entry_tlv;
 
 typedef enum {
@@ -1574,6 +1642,19 @@
  */
 #define HTT_RX_PEER_STATS_NUM_BW_EXT_COUNTERS 4
 #define HTT_RX_PDEV_STATS_NUM_BW_EXT_COUNTERS 4
+
+/* HTT_RX  STATS_NUM_BW_EXT_2_COUNTERS:
+ * bw index 8  (bw ext_2 index 0): rssi_ext160_0_chainX
+ * bw index 9  (bw ext_2 index 1): rssi_ext160_1_chainX
+ * bw index 10 (bw ext_2 index 2): rssi_ext160_2_chainX
+ * bw index 11 (bw ext_2 index 3): rssi_ext160_3_chainX
+ * bw index 12 (bw ext_2 index 4): rssi_ext160_4_chainX
+ * bw index 13 (bw ext_2 index 5): rssi_ext160_5_chainX
+ * bw index 14 (bw ext_2 index 6): rssi_ext160_6_chainX
+ * bw index 15 (bw ext_2 index 7): rssi_ext160_7_chainX
+ */
+#define HTT_RX_PDEV_STATS_NUM_BW_EXT_2_COUNTERS 8
+
 #define HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS 8
 #define HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
 #define HTT_TX_PEER_STATS_NUM_REDUCED_CHAN_TYPES 2 /* 0 - Half, 1 - Quarter */
@@ -1618,6 +1699,7 @@
     A_UINT32 tx_stbc_ext[HTT_TX_PEER_STATS_NUM_EXTRA_MCS_COUNTERS];
     A_UINT32 tx_gi_ext[HTT_TX_PEER_STATS_NUM_GI_COUNTERS][HTT_TX_PEER_STATS_NUM_EXTRA_MCS_COUNTERS];
     A_UINT32 reduced_tx_bw[HTT_TX_PEER_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PEER_STATS_NUM_BW_COUNTERS];
+    A_UINT32 tx_bw_320mhz;
 } htt_tx_peer_rate_stats_tlv;
 
 #define HTT_RX_PEER_STATS_NUM_MCS_COUNTERS 12 /* 0-11 */
@@ -2237,6 +2319,14 @@
     A_UINT32 su_sw_rts_flushed;
     /** CTS (RTS response) received in different BW */
     A_UINT32 su_sw_rts_rcvd_cts_diff_bw;
+    /** 11AX HE MU Combined Freq. BSRP Trigger frame sent over the air */
+    A_UINT32 combined_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
+    /** 11AX HE MU Combined Freq. BSRP Trigger completed with error(s) */
+    A_UINT32 combined_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
+    /** 11AX HE MU Standalone Freq. BSRP Trigger frame sent over the air */
+    A_UINT32 standalone_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
+    /** 11AX HE MU Standalone Freq. BSRP Trigger completed with error(s) */
+    A_UINT32 standalone_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
 } htt_tx_selfgen_cmn_stats_tlv;
 
 typedef struct {
@@ -2800,6 +2890,13 @@
      * 11AX HE UL-MUMIMO Trigger frame for users 0 - 7 completed with error(s)
      */
     A_UINT32 ax_ul_mumimo_trigger_err[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
+
+    /** 11AX HE MU OFDMA Basic Trigger frame completed with partial user response */
+    A_UINT32 ax_basic_trigger_partial_resp;
+    /** 11AX HE MU BSRP Trigger frame completed with partial user response */
+    A_UINT32 ax_bsr_trigger_partial_resp;
+    /** 11AX HE MU BAR Trigger frame completed with partial user response */
+    A_UINT32 ax_mu_bar_trigger_partial_resp;
 } htt_tx_selfgen_ax_err_stats_tlv;
 
 typedef struct {
@@ -2843,6 +2940,13 @@
      * 11BE EHT UL-MUMIMO Trigger frame for users 0 - 7 completed with error(s)
      */
     A_UINT32 be_ul_mumimo_trigger_err[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
+
+    /** 11BE EHT MU OFDMA Basic Trigger frame completed with partial user response */
+    A_UINT32 be_basic_trigger_partial_resp;
+    /** 11BE EHT MU BSRP Trigger frame completed with partial user response */
+    A_UINT32 be_bsr_trigger_partial_resp;
+    /** 11BE EHT MU BAR Trigger frame completed with partial user response */
+    A_UINT32 be_mu_bar_trigger_partial_resp;
 } htt_tx_selfgen_be_err_stats_tlv;
 
 /*
@@ -3554,7 +3658,7 @@
 
 /* == TQM STATS == */
 
-#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 16
+#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 17
 #define HTT_TX_TQM_MAX_LIST_MPDU_END_REASON 16
 #define HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS 16
 
@@ -4836,6 +4940,14 @@
     A_UINT32 be_ofdma_eht_sig_mcs[HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS];
 } htt_tx_pdev_rate_stats_be_ofdma_tlv;
 
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    /** Tx PPDU duration histogram **/
+    A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
+    A_UINT32 tx_success_time_us;
+    A_UINT32 tx_fail_time_us;
+} htt_tx_pdev_ppdu_dur_stats_tlv;
+
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE
  * TLV_TAGS:
  *      - HTT_STATS_TX_PDEV_RATE_STATS_TAG
@@ -4848,6 +4960,7 @@
     htt_tx_pdev_rate_stats_tlv rate_tlv;
     htt_tx_pdev_rate_stats_be_tlv rate_be_tlv;
     htt_tx_pdev_rate_stats_sawf_tlv rate_sawf_tlv;
+    htt_tx_pdev_ppdu_dur_stats_tlv tx_ppdu_dur_tlv;
 } htt_tx_pdev_rate_stats_t;
 
 /* == PDEV RX RATE CTRL STATS == */
@@ -5096,6 +5209,12 @@
  */
 } htt_rx_pdev_rate_stats_tlv;
 
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    /** Tx PPDU duration histogram **/
+    A_UINT32 rx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
+} htt_rx_pdev_ppdu_dur_stats_tlv;
+
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_RX_RATE
  * TLV_TAGS:
  *      - HTT_STATS_RX_PDEV_RATE_STATS_TAG
@@ -5106,6 +5225,7 @@
  */
 typedef struct {
     htt_rx_pdev_rate_stats_tlv rate_tlv;
+    htt_rx_pdev_ppdu_dur_stats_tlv rx_ppdu_dur_tlv;
 } htt_rx_pdev_rate_stats_t;
 
 typedef struct {
@@ -5135,6 +5255,8 @@
     A_UINT32 rx_gi_ext_2[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
     A_UINT32 rx_su_punctured_mode[HTT_RX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS];
     A_UINT32 reduced_rx_bw[HTT_RX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT8  rssi_chain_ext_2[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_EXT_2_COUNTERS]; /* units = dB above noise floor */
+    A_INT8   rx_per_chain_rssi_ext_2_in_dbm[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_EXT_2_COUNTERS];
 } htt_rx_pdev_rate_ext_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_RX_RATE_EXT
@@ -5215,6 +5337,12 @@
      */
     A_UINT32 uplink_sta_power_headroom[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
     A_UINT32 reduced_ul_ofdma_rx_bw[HTT_RX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+
+    /*
+     * Number of HE UL OFDMA per-user responses containing only a QoS null in
+     * response to basic trigger. Typically a data response is expected.
+     */
+    A_UINT32 ul_ofdma_basic_trigger_rx_qos_null_only;
 } htt_rx_pdev_ul_trigger_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_UL_TRIG_STATS
@@ -5280,6 +5408,12 @@
      * Trig power headroom for STA AID in same idx - UNIT(dB)
      */
     A_UINT32 be_uplink_sta_power_headroom[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
+
+    /*
+     * Number of EHT UL OFDMA per-user responses containing only a QoS null in
+     * response to basic trigger. Typically a data response is expected.
+     */
+    A_UINT32 be_ul_ofdma_basic_trigger_rx_qos_null_only;
 } htt_rx_pdev_be_ul_trigger_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_UL_TRIG_STATS
@@ -5403,6 +5537,12 @@
     /** Average pilot EVM measued for RX UL TB PPDU */
     A_INT8 rx_ulmumimo_pilot_evm_dB_mean[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS][HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
     A_UINT32 reduced_ul_mumimo_rx_bw[HTT_RX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+
+    /*
+     * Number of HE UL MU-MIMO per-user responses containing only a QoS null in
+     * response to basic trigger. Typically a data response is expected.
+     */
+    A_UINT32 ul_mumimo_basic_trigger_rx_qos_null_only;
 } htt_rx_pdev_ul_mumimo_trig_stats_tlv;
 
 typedef struct {
@@ -5450,6 +5590,12 @@
     A_INT8 be_rx_ulmumimo_pilot_evm_dB_mean[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER][HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
     /** Number of times UL MUMIMO TB PPDUs received in a punctured mode */
     A_UINT32 rx_ul_mumimo_punctured_mode[HTT_RX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS];
+
+    /*
+     * Number of EHT UL MU-MIMO per-user responses containing only a QoS null
+     * in response to basic trigger. Typically a data response is expected.
+     */
+    A_UINT32 be_ul_mumimo_basic_trigger_rx_qos_null_only;
 } htt_rx_pdev_ul_mumimo_trig_be_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_TRIG_STATS
@@ -6229,6 +6375,14 @@
     A_UINT32 cv_buf_received;
     /** total times CV bufs fed back to the IPC ring */
     A_UINT32 cv_buf_fed_back;
+    /* Total times CV query happened for IBF case */
+    A_UINT32 cv_total_query_ibf;
+    /* A valid CV has been found for IBF case */
+    A_UINT32 cv_found_ibf;
+    /* A valid CV has not been found for IBF case */
+    A_UINT32 cv_not_found_ibf;
+    /* Expired CV found during query for IBF case */
+    A_UINT32 cv_expired_during_query_ibf;
 } htt_tx_sounding_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO
@@ -6667,6 +6821,7 @@
     HTT_STATS_RC_MODE_DLSU     = 0,
     HTT_STATS_RC_MODE_DLMUMIMO = 1,
     HTT_STATS_RC_MODE_DLOFDMA  = 2,
+    HTT_STATS_RC_MODE_ULMUMIMO = 3,
 } htt_stats_rc_mode;
 
 typedef struct {
@@ -7611,6 +7766,73 @@
     A_UINT32 num_subbands_used_cnt[HTT_PUNCTURE_STATS_MAX_SUBBAND_COUNT];
 } htt_pdev_puncture_stats_tlv;
 
+enum {
+    HTT_STATS_CAL_PROF_COLD_BOOT = 0,
+    HTT_STATS_CAL_PROF_FULL_CHAN_SWITCH = 1,
+    HTT_STATS_CAL_PROF_SCAN_CHAN_SWITCH = 2,
+    HTT_STATS_CAL_PROF_DPD_SPLIT_CAL = 3,
+
+    HTT_STATS_MAX_PROF_CAL = 4,
+};
+
+#define HTT_STATS_MAX_CAL_IDX_CNT 8
+typedef struct {
+
+    htt_tlv_hdr_t tlv_hdr;
+
+    A_UINT8 latency_prof_name[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_PROF_STATS_NAME_LEN];
+
+    /** To verify whether prof cal is enabled or not */
+    A_UINT32 enable;
+
+    /** current pdev_id */
+    A_UINT32 pdev_id;
+
+    /** The cnt is incremented when each time the calindex takes place */
+    A_UINT32 cnt[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** Minimum time taken to complete the calibration - in us */
+    A_UINT32 min[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** Maximum time taken to complete the calibration -in us */
+    A_UINT32 max[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** Time taken by the cal for its final time execution - in us */
+    A_UINT32 last[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** Total time taken - in us */
+    A_UINT32 tot[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** hist_intvl - by default will be set to 2000 us */
+    A_UINT32 hist_intvl[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /**
+     * If last is less than hist_intvl, then hist[0]++,
+     * If last is less than hist_intvl << 1, then hist[1]++,
+     * otherwise hist[2]++.
+     */
+    A_UINT32 hist[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT][HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST];
+
+    /** Pf_last will log the current no of page faults */
+    A_UINT32 pf_last[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** Sum of all page faults happened */
+    A_UINT32 pf_tot[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** If pf_last > pf_max then pf_max = pf_last */
+    A_UINT32 pf_max[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /**
+     * For each cal profile, only certain no of cal indices were invoked,
+     * this member will store what all the indices got invoked per each
+     * cal profile
+     */
+    A_UINT32 enabledCalIdx[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT];
+
+    /** No of indices invoked per each cal profile */
+    A_UINT32 CalCnt[HTT_STATS_MAX_PROF_CAL];
+} htt_latency_prof_cal_stats_tlv;
+
 #define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_M          0x0000003F
 #define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_S          0
 #define HTT_ML_PEER_EXT_DETAILS_SCHED_PEER_DELETE_RECVD_M       0x00000FC0
@@ -8062,5 +8284,335 @@
     htt_ml_link_info_tlv            ml_link_info[];
 } htt_ml_peer_stats_t;
 
+/*
+ * ODD Mandatory Stats are grouped together from all the exisitng different
+ * stats, to form a set of stats that will be used by the ODD application to
+ * post the stats to the cloud instead of polling for the individual stats.
+ * This is done to avoid non-mandatory stats to be polled as the data will not
+ * be required in the recipes derivation.
+ * Rather than the host simply printing the ODD stats, the ODD application
+ * will take the buffer and map it to the odd_mandatory_stats data structure.
+ */
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    A_UINT32 hw_queued;
+    A_UINT32 hw_reaped;
+    A_UINT32 hw_paused;
+    A_UINT32 hw_filt;
+    A_UINT32 seq_posted;
+    A_UINT32 seq_completed;
+    A_UINT32 underrun;
+    A_UINT32 hw_flush;
+    A_UINT32 next_seq_posted_dsr;
+    A_UINT32 seq_posted_isr;
+    A_UINT32 mpdu_cnt_fcs_ok;
+    A_UINT32 mpdu_cnt_fcs_err;
+    A_UINT32 msdu_count_tqm;
+    A_UINT32 mpdu_count_tqm;
+    A_UINT32 mpdus_ack_failed;
+    A_UINT32 num_data_ppdus_tried_ota;
+    A_UINT32 ppdu_ok;
+    A_UINT32 num_total_ppdus_tried_ota;
+    A_UINT32 thermal_suspend_cnt;
+    A_UINT32 dfs_suspend_cnt;
+    A_UINT32 tx_abort_suspend_cnt;
+    A_UINT32 suspended_txq_mask;
+    A_UINT32 last_suspend_reason;
+    A_UINT32 seq_failed_queueing;
+    A_UINT32 seq_restarted;
+    A_UINT32 seq_txop_repost_stop;
+    A_UINT32 next_seq_cancel;
+    A_UINT32 seq_min_msdu_repost_stop;
+    A_UINT32 total_phy_err_cnt;
+    A_UINT32 ppdu_recvd;
+    A_UINT32 tcp_msdu_cnt;
+    A_UINT32 tcp_ack_msdu_cnt;
+    A_UINT32 udp_msdu_cnt;
+    A_UINT32 fw_tx_mgmt_subtype[HTT_STATS_SUBTYPE_MAX];
+    A_UINT32 fw_rx_mgmt_subtype[HTT_STATS_SUBTYPE_MAX];
+    A_UINT32 fw_ring_mpdu_err[HTT_RX_STATS_RXDMA_MAX_ERR];
+    A_UINT32 urrn_stats[HTT_TX_PDEV_MAX_URRN_STATS];
+    A_UINT32 sifs_status[HTT_TX_PDEV_MAX_SIFS_BURST_STATS];
+    A_UINT32 sifs_hist_status[HTT_TX_PDEV_SIFS_BURST_HIST_STATS];
+    A_UINT32 rx_suspend_cnt;
+    A_UINT32 rx_suspend_fail_cnt;
+    A_UINT32 rx_resume_cnt;
+    A_UINT32 rx_resume_fail_cnt;
+    A_UINT32 hwq_beacon_cmd_result[HTT_TX_HWQ_MAX_CMD_RESULT_STATS];
+    A_UINT32 hwq_voice_cmd_result[HTT_TX_HWQ_MAX_CMD_RESULT_STATS];
+    A_UINT32 hwq_video_cmd_result[HTT_TX_HWQ_MAX_CMD_RESULT_STATS];
+    A_UINT32 hwq_best_effort_cmd_result[HTT_TX_HWQ_MAX_CMD_RESULT_STATS];
+    A_UINT32 hwq_beacon_mpdu_tried_cnt;
+    A_UINT32 hwq_voice_mpdu_tried_cnt;
+    A_UINT32 hwq_video_mpdu_tried_cnt;
+    A_UINT32 hwq_best_effort_mpdu_tried_cnt;
+    A_UINT32 hwq_beacon_mpdu_queued_cnt;
+    A_UINT32 hwq_voice_mpdu_queued_cnt;
+    A_UINT32 hwq_video_mpdu_queued_cnt;
+    A_UINT32 hwq_best_effort_mpdu_queued_cnt;
+    A_UINT32 hwq_beacon_mpdu_ack_fail_cnt;
+    A_UINT32 hwq_voice_mpdu_ack_fail_cnt;
+    A_UINT32 hwq_video_mpdu_ack_fail_cnt;
+    A_UINT32 hwq_best_effort_mpdu_ack_fail_cnt;
+    A_UINT32 pdev_resets;
+    A_UINT32 phy_warm_reset;
+    A_UINT32 hwsch_reset_count;
+    A_UINT32 phy_warm_reset_ucode_trig;
+    A_UINT32 mac_cold_reset;
+    A_UINT32 mac_warm_reset;
+    A_UINT32 mac_warm_reset_restore_cal;
+    A_UINT32 phy_warm_reset_m3_ssr;
+    A_UINT32 fw_rx_rings_reset;
+    A_UINT32 tx_flush;
+    A_UINT32 hwsch_dev_reset_war;
+    A_UINT32 mac_cold_reset_restore_cal;
+    A_UINT32 mac_only_reset;
+    A_UINT32 mac_sfm_reset;
+    A_UINT32 tx_ldpc; /* Number of tx PPDUs with LDPC coding */
+    A_UINT32 rx_ldpc; /* Number of rx PPDUs with LDPC coding */
+    A_UINT32 gen_mpdu_end_reason[HTT_TX_TQM_MAX_GEN_MPDU_END_REASON];
+    A_UINT32 list_mpdu_end_reason[HTT_TX_TQM_MAX_LIST_MPDU_END_REASON];
+    A_UINT32 tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
+    A_UINT32 tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 half_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 quarter_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 tx_su_punctured_mode[HTT_TX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS];
+    A_UINT32 rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
+    A_UINT32 rx_nss[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 rx_bw[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 rx_stbc[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
+    A_UINT32 rts_cnt;
+    A_UINT32 rts_success;
+} htt_odd_mandatory_pdev_stats_tlv;
+
+typedef struct _htt_odd_mandatory_mumimo_pdev_stats_tlv {
+    htt_tlv_hdr_t tlv_hdr;
+    A_UINT32 ac_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 ax_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 ac_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 ax_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 ac_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
+    A_UINT32 ax_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
+    A_UINT32 ul_mumimo_rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
+    A_UINT32 ul_mumimo_rx_nss[HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
+    A_UINT32 ul_mumimo_rx_bw[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 rx_ulmumimo_mpdu_fail[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+    A_UINT32 rx_ulmumimo_mpdu_ok[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+    A_UINT32 rx_ulmumimo_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+} htt_odd_mandatory_mumimo_pdev_stats_tlv;
+
+typedef struct _htt_odd_mandatory_muofdma_pdev_stats_tlv {
+    htt_tlv_hdr_t tlv_hdr;
+    A_UINT32 mu_ofdma_seq_posted;
+    A_UINT32 ul_mu_ofdma_seq_posted;
+    A_UINT32 ofdma_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
+    A_UINT32 ofdma_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 ofdma_tx_ldpc;
+    A_UINT32 ul_ofdma_rx_ldpc;
+    A_UINT32 ul_ofdma_rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS + HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
+    A_UINT32 ul_ofdma_rx_nss[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS];
+    A_UINT32 ul_ofdma_rx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS];
+    A_UINT32 rx_ulofdma_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+    A_UINT32 rx_ulofdma_mpdu_ok[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+    A_UINT32 rx_ulofdma_mpdu_fail[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
+    A_UINT32 ax_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS];
+    A_UINT32 be_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS];
+    A_UINT32 ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS];
+} htt_odd_mandatory_muofdma_pdev_stats_tlv;
+
+
+#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_M 0x000000ff
+#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S 0
+
+#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_GET(_var) \
+    (((_var) & HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_M) >> \
+     HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S)
+
+#define HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID, _val); \
+        ((_var) |= ((_val) << HTT_PDEV_SCHED_ALGO_OFDMA_STATS_MAC_ID_S)); \
+    } while (0)
+
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    /**
+     * BIT [ 7 :  0]   :- mac_id
+     * BIT [31 :  8]   :- reserved
+     */
+    union {
+        struct {
+            A_UINT32 mac_id:    8,
+                     reserved: 24;
+        };
+        A_UINT32 mac_id__word;
+    };
+
+    /** Num of instances where rate based DL OFDMA status = ENABLED */
+    A_UINT32 rate_based_dlofdma_enabled_count[HTT_NUM_AC_WMM];
+    /** Num of instances where rate based DL OFDMA status = DISABLED */
+    A_UINT32 rate_based_dlofdma_disabled_count[HTT_NUM_AC_WMM];
+    /** Num of instances where rate based DL OFDMA status = PROBING */
+    A_UINT32 rate_based_dlofdma_probing_count[HTT_NUM_AC_WMM];
+    /** Num of instances where rate based DL OFDMA status = MONITORING */
+    A_UINT32 rate_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM];
+    /** Num of instances where avg. channel access latency based DL OFDMA status = ENABLED */
+    A_UINT32 chan_acc_lat_based_dlofdma_enabled_count[HTT_NUM_AC_WMM];
+    /** Num of instances where avg. channel access latency based DL OFDMA status = DISABLED */
+    A_UINT32 chan_acc_lat_based_dlofdma_disabled_count[HTT_NUM_AC_WMM];
+    /** Num of instances where avg. channel access latency based DL OFDMA status = MONITORING */
+    A_UINT32 chan_acc_lat_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled due to ru allocation failure */
+    A_UINT32 downgrade_to_dl_su_ru_alloc_fail[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled because we have only one user in candidate list */
+    A_UINT32 candidate_list_single_user_disable_ofdma[HTT_NUM_AC_WMM];
+    /** Num of instances where ul is chosen over dl based on qos weight not specific to OFDMA */
+    A_UINT32 dl_cand_list_dropped_high_ul_qos_weight[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled due to pipelining */
+    A_UINT32 ax_dlofdma_disabled_due_to_pipelining[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled as the tid is su only eligible */
+    A_UINT32 dlofdma_disabled_su_only_eligible[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled because there are no mpdus tried consecutively */
+    A_UINT32 dlofdma_disabled_consec_no_mpdus_tried[HTT_NUM_AC_WMM];
+    /** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */
+    A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM];
+} htt_pdev_sched_algo_ofdma_stats_tlv;
+
+/*======= Bandwidth Manager stats ====================*/
+
+#define HTT_BW_MGR_STATS_MAC_ID_M               0x000000ff
+#define HTT_BW_MGR_STATS_MAC_ID_S               0
+
+#define HTT_BW_MGR_STATS_PRI20_IDX_M            0x0000ff00
+#define HTT_BW_MGR_STATS_PRI20_IDX_S            8
+
+#define HTT_BW_MGR_STATS_PRI20_FREQ_M           0xffff0000
+#define HTT_BW_MGR_STATS_PRI20_FREQ_S           16
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ1_M         0x0000ffff
+#define HTT_BW_MGR_STATS_CENTER_FREQ1_S         0
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ2_M         0xffff0000
+#define HTT_BW_MGR_STATS_CENTER_FREQ2_S         16
+
+#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_M        0x000000ff
+#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_S        0
+
+#define HTT_BW_MGR_STATS_STATIC_PATTERN_M       0x00ffff00
+#define HTT_BW_MGR_STATS_STATIC_PATTERN_S       8
+
+#define HTT_BW_MGR_STATS_MAC_ID_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_MAC_ID_M) >> \
+     HTT_BW_MGR_STATS_MAC_ID_S)
+
+#define HTT_BW_MGR_STATS_MAC_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_MAC_ID, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_MAC_ID_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_PRI20_IDX_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_PRI20_IDX_M) >> \
+     HTT_BW_MGR_STATS_PRI20_IDX_S)
+
+#define HTT_BW_MGR_STATS_PRI20_IDX_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_PRI20_IDX, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_PRI20_IDX_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_PRI20_FREQ_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_PRI20_FREQ_M) >> \
+     HTT_BW_MGR_STATS_PRI20_FREQ_S)
+
+#define HTT_BW_MGR_STATS_PRI20_FREQ_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_PRI20_FREQ, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_PRI20_FREQ_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ1_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_CENTER_FREQ1_M) >> \
+     HTT_BW_MGR_STATS_CENTER_FREQ1_S)
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ1_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CENTER_FREQ1, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_CENTER_FREQ1_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ2_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_CENTER_FREQ2_M) >> \
+     HTT_BW_MGR_STATS_CENTER_FREQ2_S)
+
+#define HTT_BW_MGR_STATS_CENTER_FREQ2_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CENTER_FREQ2, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_CENTER_FREQ2_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_CHAN_PHY_MODE_M) >> \
+     HTT_BW_MGR_STATS_CHAN_PHY_MODE_S)
+
+#define HTT_BW_MGR_STATS_CHAN_PHY_MODE_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_CHAN_PHY_MODE, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_CHAN_PHY_MODE_S)); \
+    } while (0)
+
+
+#define HTT_BW_MGR_STATS_STATIC_PATTERN_GET(_var) \
+    (((_var) & HTT_BW_MGR_STATS_STATIC_PATTERN_M) >> \
+     HTT_BW_MGR_STATS_STATIC_PATTERN_S)
+
+#define HTT_BW_MGR_STATS_STATIC_PATTERN_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_BW_MGR_STATS_STATIC_PATTERN, _val); \
+        ((_var) |= ((_val) << HTT_BW_MGR_STATS_STATIC_PATTERN_S)); \
+    } while (0)
+
+
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+
+    /* BIT [ 7  :  0]  :- mac_id
+     * BIT [ 15 :  8]  :- pri20_index
+     * BIT [ 31 : 16]  :- pri20_freq in Mhz
+     */
+    A_UINT32 mac_id__pri20_idx__freq;
+
+    /* BIT [ 15 :  0]  :- centre_freq1
+     * BIT [ 31 : 16]  :- centre_freq2
+     */
+    A_UINT32 centre_freq1__freq2;
+
+    /* BIT [ 7 :  0]  :- channel_phy_mode
+     * BIT [ 23 : 8]  :- static_pattern
+     */
+    A_UINT32 phy_mode__static_pattern;
+
+} htt_pdev_bw_mgr_stats_tlv;
+
+
+/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_BW_MGR
+ * TLV_TAGS:
+ *      - HTT_STATS_PDEV_BW_MGR_STATS_TAG
+ */
+/* NOTE:
+ * This structure is for documentation, and cannot be safely used directly.
+ * Instead, use the constituent TLV structures to fill/parse.
+ */
+typedef struct {
+    htt_pdev_bw_mgr_stats_tlv bw_mgr_tlv;
+} htt_pdev_bw_mgr_stats_t;
+
 
 #endif /* __HTT_STATS_H__ */
diff --git a/fw/wlan_module_ids.h b/fw/wlan_module_ids.h
index 1b52b1a..13fc6b8 100644
--- a/fw/wlan_module_ids.h
+++ b/fw/wlan_module_ids.h
@@ -137,6 +137,9 @@
   WLAN_MODULE_OEM7,                     /* 0x63 */
 
   WLAN_MODULE_T2LM,                     /* 0x64 */
+  WLAN_MODULE_HEALTH_MON,               /* 0x65 */
+  WLAN_MODULE_XGAP,                     /* 0x66 */
+
 
   WLAN_MODULE_ID_MAX,
   WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
diff --git a/fw/wlanfw_health_mon.h b/fw/wlanfw_health_mon.h
new file mode 100644
index 0000000..5dfaa8f
--- /dev/null
+++ b/fw/wlanfw_health_mon.h
@@ -0,0 +1,251 @@
+/* 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 __WLANFW_HEALTH_MON_H__
+#define __WLANFW_HEALTH_MON_H__
+
+#include <a_types.h> /* A_UINT32 */
+
+/* WLAN Health monitor data structure shared by host and FW */
+
+/*
+ * Version 1 of the upload metric structs (i.e. wlanfw_health_mon_metric_upload_t)
+ * provides a fixed allocation of 8 bytes of scratch space after each metric,
+ * to optionally hold metric-specific data, e.g. from intermediate calculations when computing the score_pct.
+ */
+#define WLANFW_HEALTH_MON_EXTRA_WORDS32 2
+
+/* word0:
+ * Extract bitfields from the A_UINT32 "word" containing them.
+ * The target produces the data in little-endian order.
+ * If the host uses big-endian order, it needs to account for the endianness
+ * difference when reading the data.
+ * Definition of bitfields within 32-bit word:
+ *     bits 7:0   = module ID (M7...M0)
+ *     bits 14:8  = module local ID (m6...m0)
+ *     bits 31:15 = instance ID (I16...I0)
+ *                                bits
+ * |31                           15|14              8|7                 0|
+ * +-------------------------------+-----------------+-------------------+
+ * |         instance ID           | metric local ID |     module ID     |
+ * |I16            ...           I0|m6     ...     m0|M7      ...      M0|
+ *
+ * Layout in memory:
+ *                    bits
+ *        |7  |6                        0|
+ *        +---+--------------------------+
+ * byte 0 |M7  M6  M5  M4  M3  M2  M1  M0|
+ *        +---+--------------------------+
+ * byte 1 |I0 |m6  m5  m4  m3  m2  m1  m0|
+ *        +---+--------------------------+
+ * byte 2 |I8  I7  I6  I5  I4  I3  I2  I1|
+ *        +------------------------------+
+ * byte 3 |I16 I15 I14 I13 I12 I11 I10 I9|
+ */
+#ifdef LITTLE_ENDIAN
+  /* The little-endian version of the macro to extract the module id and metric id */
+  #define WLANFW_HEALTH_MON_MODULE_ID_GET(word32) \
+      (((word32) & 0x000000ff) >> 0)
+  #define WLANFW_HEALTH_MON_METRIC_LOCAL_ID_GET(word32) \
+      (((word32) & 0x00007f00) >> 8)
+  #define WLANFW_HEALTH_MON_INSTANCE_ID_GET(word32) \
+      (((word32) & 0xffff8000) >> 15)
+#else
+  /*
+   * When read into a big-endian 32-bit word:
+   *                                bits
+   * |31          24|23|22          16|15               8|7               0|
+   * +--------------+--+--------------+------------------+-----------------+
+   * |M7          M0|I0|m6          m0|I8              I1|I16            I9|
+   *
+   */
+  /*
+   * big-endian macro def to extract module ID = M7:M0 = byte3
+   */
+  #define WLANFW_HEALTH_MON_MODULE_ID_GET(word32) \
+      (((word32) >> 24) && 0xff)
+  /*
+   * big-endian macro def to extract metric local ID = m6:m0 = byte2 & 0x7f
+   */
+  #define WLANFW_HEALTH_MON_METRIC_LOCAL_ID_GET(word32) \
+      (((word32) >> 16) && 0x7f)
+  /*
+   * big-endian macro def to extract instance ID = I16:I0 =
+   *     (I16:I9 << 9) | (I8:I1 << 1) | I0
+   *     (byte0 << 9) | (byte1 << 1) | (byte2 >> 7)
+   */
+  #define WLANFW_HEALTH_MON_INSTANCE_ID_GET(word32) \
+      (((((word32) >> 0)  & 0xff) << 9) | /* I16:I9 */ \
+       ((((word32) >> 8)  & 0xff) << 1) | /* I8:I1 */  \
+       ((((word32) >> 23) & 0x01) << 0))  /* I0 */
+#endif
+
+/* word1:
+ * Extract bitfields from the A_UINT32 "word" containing them.
+ * The target produces the data in little-endian order.
+ * If the host uses big-endian order, it needs to account for the endianness
+ * difference when reading the data.
+ * Definition of bitfields within 32-bit word:
+ *     bits 7:0   = score_pct (S7...S0)
+ *     bits 15:8  = alarm_threshold (A7...A0)
+ *     bit  16    = old_alarm_state (P)
+ *     bits 20:17 = num_extra_bytes (N3..N0)
+ *     bit  21    = valid_data_flag (V)
+ *     bits 31:22 = reserved (R9...R0)
+ *                                bits
+ * |31              22|21|20     17|16|15              8|7              0|
+ * +------------------+--+---------+--+-----------------+----------------+
+ * |     reserved     |V |num bytes|P | alarm threshold |    score_pct   |
+ * |R9              R0|V |N3     N0|P |A7             A0|S7            S0|
+ *
+ * Layout in memory:
+ *                    bits
+ *        |7     6| 5 |4             2|1 0|
+ *        +-------+---+---------------+---+
+ * byte 0 |S7  S6  S5  S4  S3  S2  S1  S0 |
+ *        +-------------------------------+
+ * byte 1 |A7  A6  A5  A4  A3  A2  A1  A0 |
+ *        +-------+---+---------------+---+
+ * byte 2 |R1  R0 | V |N3  N2  N1  N0 | P |
+ *        +-------------------------------+
+ * byte 3 |R9  R8  R7  R6  R5  R4  R3  R2 |
+ *        +-------------------------------+
+ */
+#ifdef LITTLE_ENDIAN
+  #define WLANFW_HEALTH_MON_SCORE_PCT_GET(word32) \
+      (((word32) & 0x000000ff) >> 0)
+  #define WLANFW_HEALTH_MON_SCORE_ALARM_THRESHOLD_GET(word32) \
+      (((word32) & 0x0000ff00) >> 8)
+  #define WLANFW_HEALTH_MON_SCORE_OLD_ALARM_STATE_GET(word32) \
+      (((word32) & 0x00010000) >> 16)
+  #define WLANFW_HEALTH_MON_SCORE_NUM_EXTRA_BYTES_GET(word32) \
+      (((word32) & 0x001e0000) >> 17)
+  #define WLANFW_HEALTH_MON_SCORE_VALID_DATA_FLAG_GET(word32) \
+      (((word32) & 0x00200000) >> 21)
+#else
+  /*
+   * When read into a big-endian 32-bit word:
+   *                                bits
+   * |31            24|23          16|15 14|13|12    9|8 |7               0|
+   * +----------------+--------------+-------------------+-----------------+
+   * |S7            S0|A7          A0|R1 R0|V |N3   N0|P |R9             R2|
+   */
+  /*
+   * big-endian macro def to extract score_pct = S7:S0 = byte3
+   */
+  #define WLANFW_HEALTH_MON_SCORE_PCT_GET(word32) \
+      (((word32) >> 24) && 0xff)
+  /*
+   * big-endian macro def to extract alarm_threshold = A7:A0 = byte2
+   */
+  #define WLANFW_HEALTH_MON_SCORE_ALARM_THRESHOLD_GET(word32) \
+      (((word32) >> 16) && 0xff)
+  /*
+   * big-endian macro def to extract old_alarm_state = P = byte1 & 0x1
+   */
+  #define WLANFW_HEALTH_MON_SCORE_OLD_ALARM_STATE_GET(word32) \
+      (((word32) >> 8) && 0x01)
+  /*
+   * big-endian macro def to extract num_extra_bytes = N3:N0 = (byte1>>1) & 0xf
+   */
+  #define WLANFW_HEALTH_MON_SCORE_NUM_EXTRA_BYTES_GET(word32) \
+      (((word32) >> 9) && 0x0f)
+  /*
+   * big-endian macro def to extract valid_data_flag = V = (byte1 >> 5) & 0x1
+   */
+  #define WLANFW_HEALTH_MON_SCORE_VALID_DATA_FLAG_GET(word32) \
+      (((word32) >> 13) && 0x01)
+#endif
+
+
+typedef struct _wlanfw_health_mon_metric_upload {
+    union {
+        A_UINT32 metric_id;         /* Metric ID
+                                     * Unique ID assigned to every metric registered
+                                     */
+        struct {
+            A_UINT32 module_id:8,       /* module_id:
+                                     * Unique ID assigned to the FW module that owns the metric.
+                                     * Refer to WLAN_MODULE_ID enum.
+                                     */
+                metric_local_id:7, /* metric_local_id:
+                                     * Unique ID (within the module) assigned to this type of metric by the module that owns the metric.
+                                     */
+                instance_id:17;    /* instance_id:
+                                     * The ID of the owner of this particular instance of the metric.
+                                     * E.g. for a per-pdev metric, this is the pdev_id, for a per-vdev metric this is the vdev_id, etc.
+                                     */
+        };
+    };
+
+    union {
+        A_UINT32 word1;
+
+        struct {
+            A_UINT32 score_pct:8, /* range: 0 (bad) - 100 (perfect) */
+            alarm_threshold:8, /* alarm_threshold:
+                                * If the metric's score falls below this threshold, the characteristic measured by the metric is a concern.
+                                * If the score is above this threshold the characteristic in question is behaving normally.
+                                * Any metrics that are purely for measurement (i.e. not for fault detection) should have alarm_threshold = 0.
+                                */
+            old_alarm_state:1,  /* old_alarm_state:
+                                * This flag indicates whether a score_pct below the alarm_threshold is new (old_alarm_state = 0) or ongoing (old_alarm_state = 1).
+                                */
+            num_extra_bytes:4,  /* num_extra_words32:
+                                 * How many valid extra 4-byte words of metric-specific context follow this struct.
+                                 */
+            valid_data_flag:1,  /* valid_data_flag:
+                                * Indication of whether this metric is in-use and containing valid data, or unallocated and invalid.
+                                * Since the target may upload all metric objects, both those that are in use and those that are available but unused, the host must check this flag to see whether the metric object contains valid data.
+                                */
+            reserved:10;
+        };
+    };
+
+    /* Extra scratch space for metric specific context data, e.g. the raw data used to compute the score_pct. */
+    A_UINT32 extra_data[WLANFW_HEALTH_MON_EXTRA_WORDS32];
+} wlanfw_health_mon_metric_upload_t;
+
+typedef enum {
+    WLANFW_HEALTH_MON_UPLOAD_FMT_INVALID = 0,
+
+    /* V1: metrics use the wlanfw_health_mon_metric_upload_t format */
+    WLANFW_HEALTH_MON_UPLOAD_FMT_V1 = 1,
+} wlanfw_health_mon_upload_fmt;
+
+typedef struct _wlanfw_health_mon_upload_ring {
+    wlanfw_health_mon_upload_fmt version_number;    /* version_number:
+                                                     * Specifies the format of the uploaded records.
+                                                     * 0 - unused
+                                                     * 1 - the upload records use the wlanfw_health_mon_metric_upload_t format.
+                                                     *     (WLANFW_HEALTH_MON_UPLOAD_FMT_V1)
+                                                     * All other values are reserved.
+                                                     */
+    /* specifies how large each element within the upload ring is */
+    A_UINT32 ring_element_bytes;
+    /* specifies how many spaces the ring contains */
+    A_UINT32 num_ring_elements;
+    /* specifies which ring element was last written by the target */
+    A_UINT32 write_index;
+} wlanfw_health_mon_upload_ring_t;
+
+typedef struct _wlanfw_health_mon_upload_ring_elem_t {
+    A_UINT32 timestamp;
+    /* how much of the head portion of the ring element contains valid data */
+    A_UINT32 num_valid_bytes;
+} wlanfw_health_mon_upload_ring_elem_t;
+
+
+#endif /* __WLANFW_HEALTH_MON_H__*/
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index 2b8c15c..c348d82 100644
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -593,6 +593,14 @@
     WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */
     WMI_SERVICE_COAP_OFFLOAD_SUPPORT = 341, /* FW supports CoAP (the Constrained Application Protocol) offload */
     WMI_SERVICE_TDLS_WIDEBAND_SUPPORT = 342, /* FW supports Wideband TDLS */
+    WMI_SERVICE_FEATURE_SET_EVENT_SUPPORT = 343, /* FW supports sending of supported feature set event during init time */
+    WMI_SERVICE_HALPHY_CTRL_PATH_STATS = 344, /* HALPHY STATS through control path */
+    WMI_SERVICE_PEER_CHWIDTH_PUNCTURE_BITMAP_SUPPORT = 345, /* FW supports puncture bitmap change with channel width switch */
+    WMI_SERVICE_BANG_RADAR_320_SUPPORT = 346, /* Host to send frequency offset for bang radar in extended field for 320M support */
+    WMI_SERVICE_XGAP_SUPPORT = 347, /* FW support for XGAP */
+    WMI_SERVICE_OBSS_PER_PACKET_SR_SUPPORT = 348, /* Spatial Reuse support for per PPDU setting */
+    WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT = 349, /* Extended Multiple VDEV Restart with Bitmap Support */
+
 
     WMI_MAX_EXT2_SERVICE
 
@@ -626,15 +634,15 @@
  */
 #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \
     ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \
-         (1 << ((svc_id)%(sizeof(A_UINT32)))) )
+         ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) )
 
 #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \
     ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &=  \
-      ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
+      ( ~((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
 
 #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \
     ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &  \
-       (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
+       ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
 
 
 #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
@@ -644,7 +652,7 @@
         } else { \
             int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
             int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
-            (pwmi_svc_ext_bmap)[word] |= (1 << bit); \
+            (pwmi_svc_ext_bmap)[word] |= ((A_UINT32) 1 << bit); \
         } \
     } while (0)
 
@@ -655,7 +663,7 @@
         } else { \
             int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
             int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
-            (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \
+            (pwmi_svc_ext_bmap)[word] &= ~((A_UINT32) 1 << bit); \
         } \
     } while (0)
 
@@ -679,7 +687,7 @@
         } else { \
             int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
             int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
-            (pwmi_svc_ext2_bmap)[word] |= (1 << bit); \
+            (pwmi_svc_ext2_bmap)[word] |= ((A_UINT32) 1 << bit); \
         } \
     } while (0)
 
@@ -693,7 +701,7 @@
         } else { \
             int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
             int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
-            (pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \
+            (pwmi_svc_ext2_bmap)[word] &= ~((A_UINT32) 1 << bit); \
         } \
     } while (0)
 
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index 1acec0d..668f97e 100644
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -1288,6 +1288,17 @@
     WMITLV_TAG_STRUC_wmi_coex_dbam_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param,
     WMITLV_TAG_STRUC_wmi_is_my_mgmt_frame,
+    WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param,
+    WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_ipa_link_stats,
+    WMITLV_TAG_STRUC_wmi_ipa_per_mac_stats,
+    WMITLV_TAG_STRUC_wmi_pdev_featureset_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct,
+    WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param,
+    WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -1792,6 +1803,11 @@
     OP(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID) \
     OP(WMI_WOW_COAP_GET_BUF_INFO_CMDID) \
     OP(WMI_COEX_DBAM_CMDID) \
+    OP(WMI_PDEV_FEATURESET_CMDID) \
+    OP(WMI_ROAM_MLO_CONFIG_CMDID) \
+    OP(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID) \
+    OP(WMI_XGAP_ENABLE_CMDID) \
+    OP(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID) \
     /* add new CMD_LIST elements above this line */
 
 
@@ -2082,6 +2098,10 @@
     OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \
     OP(WMI_WOW_COAP_BUF_INFO_EVENTID) \
     OP(WMI_COEX_DBAM_COMPLETE_EVENTID) \
+    OP(WMI_HEALTH_MON_INIT_DONE_EVENTID) \
+    OP(WMI_IPA_LINK_STATS_EVENTID) \
+    OP(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID) \
+    OP(WMI_XGAP_ENABLE_COMPLETE_EVENTID) \
     /* add new EVT_LIST elements above this line */
 
 
@@ -2583,7 +2603,8 @@
 /* Add Beacon filter Cmd */
 #define WMITLV_TABLE_WMI_ADD_BCN_FILTER_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, wmi_add_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
-    WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST)
+    WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST) \
+    WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ext_ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST)
 
 WMITLV_CREATE_PARAM_STRUC(WMI_ADD_BCN_FILTER_CMDID);
 
@@ -4223,9 +4244,15 @@
 
 /* FIPS mode set cmd */
 #define WMITLV_TABLE_WMI_PDEV_FIPS_MODE_SET_CMDID(id,op,buf,len) \
-     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_mode_set_cmd_fixed_param, wmi_pdev_fips_mode_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_mode_set_cmd_fixed_param, wmi_pdev_fips_mode_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
  WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_MODE_SET_CMDID);
 
+/* Featureset cmd */
+#define WMITLV_TABLE_WMI_PDEV_FEATURESET_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_featureset_cmd_fixed_param, wmi_pdev_featureset_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, feature_set_bitmap, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FEATURESET_CMDID);
+
 /* get CCK ANI level */
 #define WMITLV_TABLE_WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, wmi_pdev_get_ani_cck_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -4479,6 +4506,10 @@
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param, wmi_hw_data_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_HW_DATA_FILTER_CMDID);
 
+#define WMITLV_TABLE_WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, wmi_pdev_mesh_rx_filter_enable_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
+
 /* Multiple vdev restart request cmd */
 #define WMITLV_TABLE_WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -5119,6 +5150,16 @@
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_dbam_cmd_fixed_param, wmi_coex_dbam_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_CMDID);
 
+/* VDEV SR prohibit cmd */
+#define WMITLV_TABLE_WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, wmi_vdev_param_enable_sr_prohibit_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID);
+
+/* xGAP enable cmd */
+#define WMITLV_TABLE_WMI_XGAP_ENABLE_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID);
+
 
 
 /************************** TLV definitions of WMI events *******************************/
@@ -5647,7 +5688,8 @@
 /* oem data event */
 #define WMITLV_TABLE_WMI_OEM_DATA_EVENTID(id,op, buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_oem_data_event_fixed_param, wmi_oem_data_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, file_name, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_OEM_DATA_EVENTID);
 
 /* HOST SWBA Event */
@@ -5749,6 +5791,14 @@
 
 WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_LINK_STATS_EVENTID);
 
+/* Update ipa stats Event */
+#define WMITLV_TABLE_WMI_IPA_LINK_STATS_EVENTID(id,op,buf,len)\
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param, wmi_ipa_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ipa_link_stats, ipa_stats, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ipa_per_mac_stats, per_mac_stats, WMITLV_SIZE_VAR)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_IPA_LINK_STATS_EVENTID);
+
 /* Update WLM stats event */
 #define WMITLV_TABLE_WMI_WLM_STATS_EVENTID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlm_stats_event_fixed_param, wmi_wlm_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -6247,14 +6297,16 @@
 /* Regulatory channel list of current country code */
 #define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EVENTID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param, wmi_reg_chan_list_cc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID);
 
 /* Ext regulatory channel list of current country code */
 #define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EXT_EVENTID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param, wmi_reg_chan_list_cc_event_ext_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_ext_struct, reg_rule_array, WMITLV_SIZE_VAR) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);
 
 /* WMI AFC info event */
@@ -6519,7 +6571,9 @@
 
 #define WMITLV_TABLE_WMI_PEER_STATS_INFO_EVENTID(id, op, buf, len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, wmi_peer_stats_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_rate_counts, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_rate_counts, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
 
 /* Update Control Path stats event */
@@ -6728,6 +6782,11 @@
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, wmi_pdev_rap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RAP_INFO_EVENTID);
 
+/* sched tiqd suspended info event */
+#define WMITLV_TABLE_WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param, wmi_pdev_sched_tidq_susp_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID);
+
 /* Offload TX mgmt frames */
 #define WMITLV_TABLE_WMI_VDEV_MGMT_OFFLOAD_EVENTID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_hdr, wmi_mgmt_hdr, fixed_param, WMITLV_SIZE_FIX) \
@@ -6934,6 +6993,15 @@
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param, wmi_coex_dbam_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_COMPLETE_EVENTID);
 
+#define WMITLV_TABLE_WMI_HEALTH_MON_INIT_DONE_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param, wmi_health_mon_init_done_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID);
+
+/* xGAP enable cmd complete event */
+#define WMITLV_TABLE_WMI_XGAP_ENABLE_COMPLETE_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID);
+
 
 
 #ifdef __cplusplus
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index 8d5687a..a973e05 100644
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -116,11 +116,11 @@
             } while (0)
 
 #define WMI_GET_BITS(_val,_index,_num_bits)                         \
-    (((_val) >> (_index)) & ((1 << (_num_bits)) - 1))
+    (((_val) >> (_index)) & (((A_UINT32) 1 << (_num_bits)) - 1))
 
-#define WMI_SET_BITS(_var,_index,_num_bits,_val) do {               \
-    (_var) &= ~(((1 << (_num_bits)) - 1) << (_index));              \
-    (_var) |= (((_val) & ((1 << (_num_bits)) - 1)) << (_index));    \
+#define WMI_SET_BITS(_var,_index,_num_bits,_val) do {                       \
+    (_var) &= ~((((A_UINT32) 1 << (_num_bits)) - 1) << (_index));           \
+    (_var) |= (((_val) & (((A_UINT32) 1 << (_num_bits)) - 1)) << (_index)); \
     } while (0)
 
 #define WMI_APPEND_TWO_SET_BITS(var, lsb_index, lsb_num_bits, msb_index, msb_num_bits, val) \
@@ -135,6 +135,28 @@
         (var) |= (WMI_GET_BITS(val, msb_index, msb_num_bits) << lsb_num_bits); \
     } while(0)
 
+/*
+ * Below GET/SET BITS_ARRAY_LEN32_BYTES macros can be used when
+ * reading/writting bits which are spread across array_len32 entries.
+ * These can be used to GET/SET maximum of 32 bits only,
+ * also array_len32 length should be limited to maximum of 32.
+ */
+#define WMI_GET_BITS_ARRAY_LEN32_BYTES(var, _arrayp, _index, _num_bits) \
+    do { \
+        A_UINT8 i; \
+        for (i = 0; i < _num_bits; i++) { \
+            (var) |= (WMI_GET_BITS(_arrayp[(_index+i) / 32], ((_index+i) % 32), 1) << i); \
+        } \
+    } while(0)
+
+#define WMI_SET_BITS_ARRAY_LEN32_BYTES(_arrayp, _index, _num_bits, val) \
+    do { \
+        A_UINT8 i; \
+        for (i = 0; i < _num_bits; i++) { \
+            WMI_SET_BITS(_arrayp[(_index+i) / 32], ((_index+i) % 32), 1, (val >> i)); \
+        } \
+    } while(0)
+
 /**
  * A packed array is an array where each entry in the array is less than
  * or equal to 16 bits, and the entries are stuffed into an A_UINT32 array.
@@ -158,7 +180,7 @@
     A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints);
     A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry);
     return (arr[uint_index] >> start_bit_in_uint) &
-            ((1 << bits_per_entry) - 1);
+            (((A_UINT32) 1 << bits_per_entry) - 1);
 }
 
 static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index,
@@ -170,9 +192,10 @@
     A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints);
     A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry);
 
-    arr[uint_index] &= ~(((1 << bits_per_entry) - 1) << start_bit_in_uint);
+    arr[uint_index] &=
+        ~((((A_UINT32) 1 << bits_per_entry) - 1) << start_bit_in_uint);
     arr[uint_index] |=
-        ((val & ((1 << bits_per_entry) - 1)) << start_bit_in_uint);
+        ((val & (((A_UINT32) 1 << bits_per_entry) - 1)) << start_bit_in_uint);
 }
 
 /** 2 word representation of MAC addr */
@@ -196,10 +219,10 @@
 /** macro to convert MAC address from char array to WMI word format */
 #define WMI_CHAR_ARRAY_TO_MAC_ADDR(c_macaddr,pwmi_mac_addr)  do { \
     (pwmi_mac_addr)->mac_addr31to0 = \
-       (((c_macaddr)[0] <<  0) | \
-        ((c_macaddr)[1] <<  8) | \
-        ((c_macaddr)[2] << 16) | \
-        ((c_macaddr)[3] << 24)); \
+       (((A_UINT32)(c_macaddr)[0] <<  0) | \
+        ((A_UINT32)(c_macaddr)[1] <<  8) | \
+        ((A_UINT32)(c_macaddr)[2] << 16) | \
+        ((A_UINT32)(c_macaddr)[3] << 24)); \
     (pwmi_mac_addr)->mac_addr47to32 = ((c_macaddr)[4] | ((c_macaddr)[5] << 8));\
    } while (0)
 
@@ -487,6 +510,9 @@
     WMI_PDEV_SET_BIOS_INTERFACE_CMDID,
     WMI_PDEV_FIPS_EXTEND_CMDID,
     WMI_PDEV_FIPS_MODE_SET_CMDID,
+    WMI_PDEV_FEATURESET_CMDID,
+    /** tag as Filter Pass category and the filters set for FP mode */
+    WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID,
 
     /* VDEV (virtual device) specific commands */
     /** vdev create */
@@ -591,6 +617,9 @@
 
     WMI_VDEV_PN_MGMT_RX_FILTER_CMDID,
 
+    /** Enable SR prohibit feature for TIDs of vdev */
+    WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID,
+
     /* peer specific commands */
 
     /** create a peer */
@@ -1185,6 +1214,9 @@
     /* WMI cmd used to allocate HW scratch registers */
     WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID,
 
+    /* WMI cmd used to start/stop XGAP (XPAN Green AP) */
+    WMI_XGAP_ENABLE_CMDID,
+
     /*  Offload 11k related requests */
     WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD),
     /* invoke neighbor report from FW */
@@ -1660,6 +1692,9 @@
      */
     WMI_PDEV_RSSI_DBM_CONVERSION_PARAMS_INFO_EVENTID,
 
+    /* Event to indicate Schedule tid queue suspended info */
+    WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID,
+
 
     /* VDEV specific events */
     /** VDEV started event in response to VDEV_START request */
@@ -1987,6 +2022,9 @@
      */
     WMI_HALPHY_CTRL_PATH_STATS_EVENTID,
 
+    /** FW IPA link stats Event */
+    WMI_IPA_LINK_STATS_EVENTID,
+
 
     /* NLO specific events */
     /** NLO match event after the first match */
@@ -2120,6 +2158,13 @@
     /* WMI event to scratch registers allocation */
     WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID,
 
+    /* WMI event to indicate Helath Monitor Infra init done */
+    WMI_HEALTH_MON_INIT_DONE_EVENTID,
+
+    /* WMI XGAP enable command response event ID */
+    WMI_XGAP_ENABLE_COMPLETE_EVENTID,
+
+
     /* GPIO Event */
     WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
     /** upload H_CV info WMI event
@@ -2354,11 +2399,11 @@
 #define WMI_CHAN_FLAG_ALLOW_EHT   21 /* EHT (11be) is allowed on this channel */
 
 #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \
-        (pwmi_channel)->info |=  (1 << flag);      \
+        (pwmi_channel)->info |=  ((A_UINT32) 1 << flag);      \
      } while (0)
 
 #define WMI_GET_CHANNEL_FLAG(pwmi_channel,flag)   \
-        (((pwmi_channel)->info & (1 << flag)) >> flag)
+        (((pwmi_channel)->info & ((A_UINT32) 1 << flag)) >> flag)
 
 #define WMI_SET_CHANNEL_MIN_POWER(pwmi_channel,val) do { \
      (pwmi_channel)->reg_info_1 &= 0xffffff00;           \
@@ -2743,11 +2788,11 @@
 #define WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS  (28)
 #define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS   (27)
 
-#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK         (0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS)
-#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK       (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS)
-#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK   (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS)
-#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK    (0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS)
-#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK    (0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS)
+#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK         ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS)
+#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK       ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS)
+#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK   ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS)
+#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK    ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS)
+#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK    ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS)
 
 #define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_SET(scan_cfg, value) \
     WMI_SET_BITS(scan_cfg, WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS, 1, value)
@@ -2778,12 +2823,12 @@
 #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS (27)
 #define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS            (26)
 
-#define WMI_DBS_FW_MODE_CFG_DBS_MASK                    (0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS)
-#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK              (0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS)
-#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK        (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS)
-#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK   (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS)
-#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK   (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS)
-#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK              (0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_DBS_MASK                    ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK              ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK        ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK   ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK   ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS)
+#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK              ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS)
 
 #define WMI_DBS_FW_MODE_CFG_DBS_SET(fw_mode, value) \
     WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value)
@@ -3169,6 +3214,36 @@
 #define WMI_TARGET_CAP_FLAGS_RX_PEER_METADATA_VERSION_SET(target_cap_flags, value) \
         WMI_SET_BITS(target_cap_flags, 0, 2, value)
 
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_2GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 2, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_2GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 2, 1, value)
+
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_2GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 3, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_2GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 3, 1, value)
+
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_5GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 4, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_5GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 4, 1, value)
+
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_5GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 5, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_5GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 5, 1, value)
+
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_6GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 6, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_6GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 6, 1, value)
+
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_6GHZ_GET(target_cap_flags) \
+    WMI_GET_BITS(target_cap_flags, 7, 1)
+#define WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_6GHZ_SET(target_cap_flags, value) \
+    WMI_SET_BITS(target_cap_flags, 7, 1, value)
+
 /*
  * wmi_htt_msdu_idx_to_htt_msdu_qtype GET/SET APIs
  */
@@ -3272,7 +3347,13 @@
      *    1-> MLO support
      *    2,3-> reserved
      *    Refer to WMI_TARGET_CAP_FLAGS_PEER_METADATA_VERSION macros.
-     * Bits 31:2 - Reserved
+     * Bit 2 - UL MUMIMO Rx support on 2.4GHz (AP Mode)
+     * Bit 3 - UL MUMIMO Tx support on 2.4GHz (STA Mode)
+     * Bit 4 - UL MUMIMO Rx support on 5GHz (AP Mode)
+     * Bit 5 - UL MUMIMO Tx support on 5GHz (STA Mode)
+     * Bit 6 - UL MUMIMO Rx support on 6GHz (AP Mode)
+     * Bit 7 - UL MUMIMO Tx support on 6GHz (STA Mode)
+     * Bits 31:8 - Reserved
      */
     A_UINT32 target_cap_flags;
 
@@ -4208,8 +4289,21 @@
      *      0  -> disable SAWF based scheduling
      *      1  -> enable SAWF based scheduling
      *      Refer to WMI_RSRC_CFG_FLAGS2_SAWF_CONFIG_ENABLE_GET/SET macros.
+     * Bit 14 - notify_frame_support
+     *      Flag to enable notify_frame_support from host.
+     *      0  -> disable notify_frame_support feature
+     *      1  -> enable_notify_frame_support feature
+     *      Refer to WMI_RSRC_CFG_FLAGS2_NOTIFY_FRAME_CONFIG_ENABLE_GET/SET
+     *      macros.
+     * Bit 15 - disable_wds_mec_intrabss
+     *      Flag to disable wds learning, MEC, intrabss offload.
+     *      By default, it is enabled.
+     *      0  -> enable wds_mec_intrabss offload
+     *      1  -> disable wds_mec_intrabss offload
+     *      Refer to WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_GET /
+     *      SET macros.
      *
-     *  Bits 31:14 - Reserved
+     *  Bits 31:16 - Reserved
      */
     A_UINT32 flags2;
     /** @brief host_service_flags - can be used by Host to indicate
@@ -4300,7 +4394,15 @@
      *      Refer to the below definitions of the
      *      WMI_RSRC_CFG_HOST_SERVICE_FLAG_REO_QREF_FEATURE_SUPPORT_GET
      *      and _SET macros.
-     *  Bits 31:13 - Reserved
+     *  Bit 13
+     *      This bit will be set when host host wants to enable/disable
+     *      bang radar 320M support feature
+     *      when set to 1 - Enable the bang radar 320M support
+     *      when set to 0 - Disable the bang radar 320M support
+     *      Refer to the below definitions of the
+     *      WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_GET
+     *      and _SET macros.
+     *  Bits 31:14 - Reserved
      */
     A_UINT32 host_service_flags;
 
@@ -4640,6 +4742,11 @@
 #define WMI_RSRC_CFG_FLAGS2_NOTIFY_FRAME_CONFIG_ENABLE_SET(flags2, value) \
     WMI_SET_BITS(flags2, 14, 1, value)
 
+#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_GET(flags2) \
+    WMI_GET_BITS(flags2, 15, 1)
+#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_MEC_INTRABSS_OFFLOAD_SET(flags2, value) \
+    WMI_SET_BITS(flags2, 15, 1, value)
+
 
 #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \
     WMI_GET_BITS(host_service_flags, 0, 1)
@@ -4706,6 +4813,12 @@
 #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_REO_QREF_FEATURE_SUPPORT_SET(host_service_flags, val) \
     WMI_SET_BITS(host_service_flags, 12, 1, val)
 
+#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_GET(host_service_flags) \
+    WMI_GET_BITS(host_service_flags, 13, 1)
+#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_SET(host_service_flags, val) \
+    WMI_SET_BITS(host_service_flags, 13, 1, val)
+
+
 #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \
     WMI_GET_BITS(carrier_config, 0, 1)
 #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_SET(carrier_config, val) \
@@ -4750,6 +4863,321 @@
  */
 } wmi_init_cmd_fixed_param;
 
+typedef enum {
+    WMI_WIFI_STANDARD_4     = 0,
+    WMI_WIFI_STANDARD_5     = 1,
+    WMI_WIFI_STANDARD_6     = 2,
+    WMI_WIFI_STANDARD_6E    = 3,
+    WMI_WIFI_STANDARD_7     = 4,
+} WMI_WIFI_STANDARD;
+
+typedef enum {
+    WMI_HOST_NONE       = 0, /* No concurrency mode supported */
+    WMI_HOST_DBS        = 1, /* When 2.4G + 5G & 2.4G + 6G if 6G is supported */
+    WMI_HOST_DBS_SBS    = 2, /* When 2.4G + 5G, 2.4G + 6G, 5G + 6G & 5G + 5G is supported */
+} WMI_BAND_CONCURRENCY;
+
+typedef enum {
+    WMI_SISO        = 1, /* When 1x1 is supported */
+    WMI_MIMO_2X2    = 2, /* When 2x2 MIMO is supported */
+} WMI_NUM_ANTENNAS;
+
+typedef enum {
+    WMI_VENDOR1_REQ1_VERSION_3_00   = 0,
+    WMI_VENDOR1_REQ1_VERSION_3_01   = 1,
+    WMI_VENDOR1_REQ1_VERSION_3_20   = 2,
+} WMI_VENDOR1_REQ1_VERSION;
+
+typedef enum {
+    WMI_VENDOR1_REQ2_VERSION_3_00   = 0,
+    WMI_VENDOR1_REQ2_VERSION_3_01   = 1,
+    WMI_VENDOR1_REQ2_VERSION_3_20   = 2,
+} WMI_VENDOR1_REQ2_VERSION;
+
+typedef enum {
+    WMI_HOST_BAND_CAP_2GHZ = 0x01,
+    WMI_HOST_BAND_CAP_5GHZ = 0x02,
+    WMI_HOST_BAND_CAP_6GHZ = 0x04,
+} WMI_HOST_BAND_CAP;
+
+/* HW features supported info */
+/* enum WMI_WIFI_STANDARD are possible values for WiFi standard bitfield */
+#define WMI_GET_WIFI_STANDARD(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 0, 4)
+#define WMI_SET_WIFI_STANDARD(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 0, 4, val)
+/* enum WMI_BAND_CONCURRENCY are possible values for band concurrency support bitfield */
+#define WMI_GET_BAND_CONCURRENCY_SUPPORT(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 4, 3)
+#define WMI_SET_BAND_CONCURRENCY_SUPPORT(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 4, 3, val)
+
+/* PNO feature supported info */
+#define WMI_GET_PNO_SCAN_IN_UNASSOC_STATE(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 7, 1)
+#define WMI_SET_PNO_SCAN_IN_UNASSOC_STATE(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 7, 1, val)
+#define WMI_GET_PNO_SCAN_IN_ASSOC_STATE(var, feature_bitmap)            \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 8, 1)
+#define WMI_SET_PNO_SCAN_IN_ASSOC_STATE(feature_bitmap, val)            \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 8, 1, val)
+
+/* TWT feature supported info */
+#define WMI_GET_TWT_FEATURE_SUPPORT(var, feature_bitmap)           \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 9, 1)
+#define WMI_SET_TWT_FEATURE_SUPPORT(feature_bitmap, val)           \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 9, 1, val)
+#define WMI_GET_TWT_REQUESTOR(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 10, 1)
+#define WMI_SET_TWT_REQUESTER(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 10, 1, val)
+#define WMI_GET_TWT_BROADCAST(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 11, 1)
+#define WMI_SET_TWT_BROADCAST(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 11, 1, val)
+#define WMI_GET_TWT_FLEXIBLE(var, feature_bitmap)                  \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 12, 1)
+#define WMI_SET_TWT_FLEXIBLE(feature_bitmap, val)                  \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 12, 1, val)
+
+/* WIFI optimizer feature supported info */
+#define WMI_GET_WIFI_OPT_FEATURE_SUPPORT(var, feature_bitmap)                   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 13, 1)
+#define WMI_SET_WIFI_OPT_FEATURE_SUPPORT(feature_bitmap, val)         \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 13, 1, val)
+
+/* RFC8325 feature supported info */
+#define WMI_GET_RFC8325_FEATURE_SUPPORT(var, feature_bitmap)                \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 14, 1)
+#define WMI_SET_RFC8325_FEATURE_SUPPORT(feature_bitmap, val)                \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 14, 1, val)
+
+/* MHS feature supported info */
+#define WMI_GET_MHS_5G_SUPPORT(var, feature_bitmap)                     \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 15, 1)
+#define WMI_SET_MHS_5G_SUPPORT(feature_bitmap, val)                     \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 15, 1, val)
+#define WMI_GET_MHS_6G_SUPPORT(var, feature_bitmap)                     \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 16, 1)
+#define WMI_SET_MHS_6G_SUPPORT(feature_bitmap, val)                     \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 16, 1, val)
+#define WMI_GET_MHS_MAX_CLIENTS_SUPPORT(var, feature_bitmap)            \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 17, 8)
+#define WMI_SET_MHS_MAX_CLIENTS_SUPPORT(feature_bitmap, val)            \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 17, 8, val)
+#define WMI_GET_MHS_SET_COUNTRY_CODE_HAL_SUPPORT(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 25, 1)
+#define WMI_SET_MHS_SET_COUNTRY_CODE_HAL_SUPPORT(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 25, 1, val)
+#define WMI_GET_MHS_GETVALID_CHANNELS_SUPPORT(var, feature_bitmap)      \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 26, 1)
+#define WMI_SET_MHS_GETVALID_CHANNELS_SUPPORT(feature_bitmap, val)      \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 26, 1, val)
+/* enum WMI_WIFI_STANDARD are possible values for MHS DOT11 mode support bitfield */
+#define WMI_GET_MHS_DOT11_MODE_SUPPORT(var, feature_bitmap)             \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 27, 4)
+#define WMI_SET_MHS_DOT11_MODE_SUPPORT(feature_bitmap, val)             \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 27, 4, val)
+#define WMI_GET_MHS_WPA3_SUPPORT(var, feature_bitmap)                   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 31, 1)
+#define WMI_SET_MHS_WPA3_SUPPORT(feature_bitmap, val)                   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 31, 1, val)
+
+/* Vendor requirement1 supported verison info */
+/* enum's WMI_VENDORxx_REQxx_VERSION are the possible vaues for below bitfield*/
+#define WMI_GET_VENDOR_REQ_1_VERSION(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 32, 8)
+#define WMI_SET_VENDOR_REQ_1_VERSION(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 32, 8, val)
+
+/* Roaming feature supported info */
+#define WMI_GET_ROAMING_HIGH_CU_ROAM_TRIGGER(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 40, 1)
+#define WMI_SET_ROAMING_HIGH_CU_ROAM_TRIGGER(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 40, 1, val)
+#define WMI_GET_ROAMING_EMERGENCY_TRIGGER(var, feature_bitmap)             \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 41, 1)
+#define WMI_SET_ROAMING_EMERGENCY_TRIGGER(feature_bitmap, val)             \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 41, 1, val)
+#define WMI_GET_ROAMING_BTM_TRIGGER(var, feature_bitmap)                   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 42, 1)
+#define WMI_SET_ROAMING_BTM_TRIGGER(feature_bitmap, val)                   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 42, 1, val)
+#define WMI_GET_ROAMING_IDLE_TRIGGER(var, feature_bitmap)                  \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 43, 1)
+#define WMI_SET_ROAMING_IDLE_TRIGGER(feature_bitmap, val)                  \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 43, 1, val)
+#define WMI_GET_ROAMING_WTC_TRIGGER(var, feature_bitmap)                   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 44, 1)
+#define WMI_SET_ROAMING_WTC_TRIGGER(feature_bitmap, val)                   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 44, 1, val)
+#define WMI_GET_ROAMING_BTCOEX_TRIGGER(var, feature_bitmap)                \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 45, 1)
+#define WMI_SET_ROAMING_BTCOEX_TRIGGER(feature_bitmap, val)                \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 45, 1, val)
+#define WMI_GET_ROAMING_BTW_WPA_WPA2(var, feature_bitmap)                  \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 46, 1)
+#define WMI_SET_ROAMING_BTW_WPA_WPA2(feature_bitmap, val)                  \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 46, 1, val)
+#define WMI_GET_ROAMING_MANAGE_CHAN_LIST_API(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 47, 1)
+#define WMI_SET_ROAMING_MANAGE_CHAN_LIST_API(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 47, 1, val)
+#define WMI_GET_ROAMING_ADAPTIVE_11R(var, feature_bitmap)                  \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 48, 1)
+#define WMI_SET_ROAMING_ADAPTIVE_11R(feature_bitmap, val)                  \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 48, 1, val)
+#define WMI_GET_ROAMING_CTRL_API_GET_SET(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 49, 1)
+#define WMI_SET_ROAMING_CTRL_API_GET_SET(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 49, 1, val)
+#define WMI_GET_ROAMING_CTRL_API_REASSOC(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 50, 1)
+#define WMI_SET_ROAMING_CTRL_API_REASSOC(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 50, 1, val)
+#define WMI_GET_ROAMING_CTRL_GET_CU(var, feature_bitmap)                   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 51, 1)
+#define WMI_SET_ROAMING_CTRL_GET_CU(feature_bitmap, val)                   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 51, 1, val)
+
+/* Vendor requirement2 supported verison info */
+/* enum's WMI_VENDORxx_REQxx_VERSION are the possible vaues for below bitfield*/
+#define WMI_GET_VENDOR_REQ_2_VERSION(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 52, 8)
+#define WMI_SET_VENDOR_REQ_2_VERSION(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 52, 8, val)
+
+#define WMI_GET_ASSURANCE_DISCONNECT_REASON_API(var, feature_bitmap)       \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 60, 1)
+#define WMI_SET_ASSURANCE_DISCONNECT_REASON_API(feature_bitmap, val)       \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 60, 1, val)
+
+/* Frame pcap logging */
+#define WMI_GET_FRAME_PCAP_LOG_MGMT(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 61, 1)
+#define WMI_SET_FRAME_PCAP_LOG_MGMT(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 61, 1, val)
+#define WMI_GET_FRAME_PCAP_LOG_CTRL(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 62, 1)
+#define WMI_SET_FRAME_PCAP_LOG_CTRL(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 62, 1, val)
+#define WMI_GET_FRAME_PCAP_LOG_DATA(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 63, 1)
+#define WMI_SET_FRAME_PCAP_LOG_DATA(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 63, 1, val)
+
+/* Security features supported info */
+#define WMI_GET_SECURITY_WPA3_SAE_H2E(var, feature_bitmap)                \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 64, 1)
+#define WMI_SET_SECURITY_WPA3_SAE_H2E(feature_bitmap, val)                \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 64, 1, val)
+#define WMI_GET_SECURITY_WPA3_SAE_FT(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 65, 1)
+#define WMI_SET_SECURITY_WPA3_SAE_FT(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 65, 1, val)
+#define WMI_GET_SECURITY_WPA3_ENTERP_SUITEB(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 66, 1)
+#define WMI_SET_SECURITY_WPA3_ENTERP_SUITEB(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 66, 1, val)
+#define WMI_GET_SECURITY_WPA3_ENTERP_SUITEB_192bit(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 67, 1)
+#define WMI_SET_SECURITY_WPA3_ENTERP_SUITEB_192bit(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 67, 1, val)
+#define WMI_GET_SECURITY_FILS_SHA256(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 68, 1)
+#define WMI_SET_SECURITY_FILS_SHA256(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 68, 1, val)
+#define WMI_GET_SECURITY_FILS_SHA384(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 69, 1)
+#define WMI_SET_SECURITY_FILS_SHA384(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 69, 1, val)
+#define WMI_GET_SECURITY_FILS_SHA256_FT(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 70, 1)
+#define WMI_SET_SECURITY_FILS_SHA256_FT(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 70, 1, val)
+#define WMI_GET_SECURITY_FILS_SHA384_FT(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 71, 1)
+#define WMI_SET_SECURITY_FILS_SHA384_FT(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 71, 1, val)
+#define WMI_GET_SECURITY_ENCHANCED_OPEN(var, feature_bitmap)              \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 72, 1)
+#define WMI_SET_SECURITY_ENCHANCED_OPEN(feature_bitmap, val)              \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 72, 1, val)
+
+/* Peer protocol features supported info */
+#define WMI_GET_NAN_SUPPORT(var, feature_bitmap)            \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 73, 1)
+#define WMI_SET_NAN_SUPPORT(feature_bitmap, val)            \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 73, 1, val)
+#define WMI_GET_TDLS_SUPPORT(var, feature_bitmap)           \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 74, 1)
+#define WMI_SET_TDLS_SUPPORT(feature_bitmap, val)           \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 74, 1, val)
+#define WMI_GET_P2P6E_SUPPORT(var, feature_bitmap)          \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 75, 1)
+#define WMI_SET_P2P6E_SUPPORT(feature_bitmap, val)          \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 75, 1, val)
+#define WMI_GET_TDLS_OFFCHAN_SUPPORT(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 76, 1)
+#define WMI_SET_TDLS_OFFCHAN_SUPPORT(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 76, 1, val)
+#define WMI_GET_TDLS_CAP_ENHANCE(var, feature_bitmap)       \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 77, 1)
+#define WMI_SET_TDLS_CAP_ENHANCE(feature_bitmap, val)       \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 77, 1, val)
+#define WMI_GET_MAX_TDLS_PEERS_SUPPORT(var, feature_bitmap) \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 78, 4)
+#define WMI_SET_MAX_TDLS_PEERS_SUPPORT(feature_bitmap, val) \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 78, 4, val)
+#define WMI_GET_STA_DUAL_P2P_SUPPORT(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 82, 1)
+#define WMI_SET_STA_DUAL_P2P_SUPPORT(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 82, 1, val)
+
+/* Big data feature supported info */
+#define WMI_GET_PEER_BIGDATA_GETBSSINFO_API_SUPPORT(var, feature_bitmap)            \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 83, 1)
+#define WMI_SET_PEER_BIGDATA_GETBSSINFO_API_SUPPORT(feature_bitmap, val)            \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 83, 1, val)
+#define WMI_GET_PEER_BIGDATA_GETASSOCREJECTINFO_API_SUPPORT(var, feature_bitmap)    \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 84, 1)
+#define WMI_SET_PEER_BIGDATA_GETASSOCREJECTINFO_API_SUPPORT(feature_bitmap, val)    \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 84, 1, val)
+#define WMI_GET_PEER_BIGDATA_GETSTAINFO_API_SUPPORT(var, feature_bitmap)            \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 85, 1)
+#define WMI_SET_PEER_BIGDATA_GETSTAINFO_API_SUPPORT(feature_bitmap, val)            \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 85, 1, val)
+
+/* Feature set requirement supported version info */
+#define WMI_GET_FEATURE_SET_VERSION(var, feature_bitmap)                 \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 86, 16)
+#define WMI_SET_FEATURE_SET_VERSION(feature_bitmap, val)                 \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 86, 16, val)
+
+/*
+ * enum WMI_NUM_ANTENNAS are possible values for number of antennas supported bitfield.
+ * Bitfield value 0 means invalid, 1 means SISO, 2 means MIMO, and values 3+ are reserved.
+ */
+#define WMI_GET_NUM_ANTENNAS(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 102, 4)
+#define WMI_SET_NUM_ANTENNAS(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 102, 4, val)
+
+/* enum WMI_HOST_BAND_CAP are possible values for below bitfield */
+#define WMI_GET_HOST_BAND_CAP(var, feature_bitmap)   \
+        WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 106, 6)
+#define WMI_SET_HOST_BAND_CAP(feature_bitmap, val)   \
+        WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 106, 6, val)
+
+/*
+ * Specify how many A_UINT32 words are needed to hold the feature bitmap flags.
+ * This value may change over time.
+ * It is not directly used in any WMI message definition.
+ * It is provided simply as a convenience for the feature_set_bitmap sender to
+ * know how many 32-bit words to allocate for the bitmap.
+ */
+#define WMI_FEATURE_SET_BITMAP_ARRAY_LEN32 4
+
 /**
  * TLV for channel list
  */
@@ -5212,6 +5640,10 @@
  */
 #define WMI_SCAN_FLAG_EXT_SPECTRAL_CFREQ_PLUS_10MHZ_IN_SUPP_CH_LIST 0x00002000
 
+/* Include MLO IE in Probe req */
+#define WMI_SCAN_FLAG_EXT_INCL_MLIE_PRB_REQ           0x00004000
+
+
 /**
  * new 6 GHz flags per chan (short ssid or bssid) in struct
  * wmi_hint_freq_short_ssid or wmi_hint_freq_bssid
@@ -6602,10 +7034,10 @@
     A_UINT32 pdev_id;
     /** reg domain code */
     A_UINT32 reg_domain;
-    A_UINT32 reg_domain_2G;
-    A_UINT32 reg_domain_5G;
-    A_UINT32 conformance_test_limit_2G;
-    A_UINT32 conformance_test_limit_5G;
+    A_UINT32 reg_domain_2G; /* fulfil 2G domain ID */
+    A_UINT32 reg_domain_5G; /* fulfil 5G domain ID */
+    A_UINT32 conformance_test_limit_2G; /* 2G whole band CTL index */
+    A_UINT32 conformance_test_limit_5G; /* 5G whole band CTL index */
     A_UINT32 dfs_domain;
 
     /**
@@ -6636,6 +7068,28 @@
     A_UINT32 conformance_test_limit_6G_subband_UNII6;
     A_UINT32 conformance_test_limit_6G_subband_UNII7;
     A_UINT32 conformance_test_limit_6G_subband_UNII8;
+
+    /**
+     * In 6G sub-band CTL, fulfil 6G domain id and whole band CTL index firstly.
+     * Unlike 5G sub-band CTL index fields, role ap and role client have
+     * different indices.
+     * Each role has 3 sub-band indices due to different power_mode type.
+     * Below 3 represent for power_mode types: 0-LPI, 1-SP, 2-VLP
+     * Below 2 represent for client_max: 0-default, 1-subordinate
+     */
+
+    A_UINT32 reg_domain_6G;  /* fulfil 6G domain id */
+    A_UINT32 conformance_test_limit_6G; /* 6G whole band CTL index */
+
+    A_UINT32 conformance_test_limit_6G_subband_UNII5_ap[3];
+    A_UINT32 conformance_test_limit_6G_subband_UNII6_ap[3];
+    A_UINT32 conformance_test_limit_6G_subband_UNII7_ap[3];
+    A_UINT32 conformance_test_limit_6G_subband_UNII8_ap[3];
+
+    A_UINT32 conformance_test_limit_6G_subband_UNII5_client[3][2];
+    A_UINT32 conformance_test_limit_6G_subband_UNII6_client[3][2];
+    A_UINT32 conformance_test_limit_6G_subband_UNII7_client[3][2];
+    A_UINT32 conformance_test_limit_6G_subband_UNII8_client[3][2];
 } wmi_pdev_set_regdomain_cmd_fixed_param;
 
 typedef struct {
@@ -6711,8 +7165,10 @@
 
 /* tx peer filter action - Filter Tx Packets  - add/remove filter */
 enum {
-    WMI_PEER_TX_FILTER_ACTION_ADD        = 1,
-    WMI_PEER_TX_FILTER_ACTION_REMOVE     = 2,
+    WMI_PEER_TX_FILTER_ACTION_ADD                           = 1,
+    WMI_PEER_TX_FILTER_ACTION_REMOVE                        = 2,
+    WMI_PEER_TX_FILTER_ACTION_ADD_AND_ENABLE_FILTERING      = 3,
+    WMI_PEER_TX_FILTER_ACTION_REMOVE_AND_CLEAR_FILTERING    = 4,
 };
 
 typedef struct {
@@ -6994,6 +7450,8 @@
 enum wmi_spectral_scan_mode {
     WMI_SPECTRAL_SCAN_NORMAL_MODE,
     WMI_SPECTRAL_SCAN_AGILE_MODE,
+
+    WMI_SPECTRAL_SCAN_MAX_MODE /* keep this last */
 };
 
 /*
@@ -8367,6 +8825,13 @@
      */
     WMI_PDEV_PARAM_SA_PARALLEL_MODE_GPIO_DRIVE_CFG,
 
+    /*
+     * Param to disable LPI antenna optimizations
+     * In 6G LPI mode, additional antenna optimizations are done to
+     * improve range. Param is provided to disable the added
+     * optimizations.
+     */
+    WMI_PDEV_PARAM_DISABLE_LPI_ANT_OPTIMIZATION,
 } WMI_PDEV_PARAM;
 
 #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@@ -8556,6 +9021,15 @@
     WMI_TPC_STATS_EVENT_SEND_REG_RATE_CTL = 0x00000007, /* REG | RATE | CTL */
 } WMI_PDEV_TPC_STATS_PARAMS;
 
+typedef enum {
+    WMI_HALPHY_TPC_STATS_SUPPORT_160 = 0,
+    WMI_HALPHY_TPC_STATS_SUPPORT_320,
+    WMI_HALPHY_TPC_STATS_SUPPORT_AX,
+    WMI_HALPHY_TPC_STATS_SUPPORT_AX_EXTRA_MCS,
+    WMI_HALPHY_TPC_STATS_SUPPORT_BE,
+    WMI_HALPHY_TPC_STATS_SUPPORT_BE_PUNC,
+} WMI_HALPHY_TPC_STATS_SUPPORT_BITF; /* support bit fields */
+
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_cmd_fixed_param */
     /** pdev_id for identifying the MAC
@@ -8598,6 +9072,12 @@
     A_UINT32 numTxChain; /* The total number of active chains */
     A_UINT32 ctl; /* See CONFORMANCE_TEST_LIMITS enumeration */
     A_UINT32 flags; /* See WMI_TPC_CONFIG_EVENT_FLAG */
+
+    /* support_bits:
+     * Tells info about BE, HE, HE_EXTRA_MCS, 160, 320, 11BE PUNC.
+     * Refer to enum WMI_HALPHY_TPC_STATS_SUPPORT_BITF.
+     */
+    A_UINT32 support_bits;
 } wmi_tpc_configs;
 
 typedef struct {
@@ -9434,6 +9914,7 @@
 #define WMI_LINK_STATS_IFACE         0x00000002
 #define WMI_LINK_STATS_ALL_PEER      0x00000004
 #define WMI_LINK_STATS_PER_PEER      0x00000008
+#define WMI_LINK_STATS_IPA           0x00000010
 
 
 /* wifi clear statistics bitmap  */
@@ -10066,6 +10547,69 @@
    A_UINT32 tot_err_tim_bcn;
 } wmi_iface_powersave_stats;
 
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_link_stats */
+
+    /** IPA tx channel 0 buffer hp/tp */
+    A_UINT32 wbm2sw_ring_ch0_hp;
+    A_UINT32 wbm2sw_ring_ch0_tp;
+    /** IPA tx channel 1 buffer hp/tp */
+    A_UINT32 wbm2sw_ring_ch1_hp;
+    A_UINT32 wbm2sw_ring_ch1_tp;
+
+    /** IPA rx channel 0 buffer hp/tp */
+    A_UINT32 reo2sw_ring_ch0_hp;
+    A_UINT32 reo2sw_ring_ch0_tp;
+    /** IPA rx channel 1 buffer hp/tp */
+    A_UINT32 reo2sw_ring_ch1_hp;
+    A_UINT32 reo2sw_ring_ch1_tp;
+
+    /** IPA rx channel 0 ring full counter */
+    A_UINT32 reo2sw_ch0_producer_full_cnt;
+    /** IPA rx channel 1 ring full counter */
+    A_UINT32 reo2sw_ch1_producer_full_cnt;
+
+    /** IPA rx path drop feature enable */
+    A_UINT32 ipa_drop_enabled;
+    /** Counter for IPA rx path switch to drop-enabled state */
+    A_UINT32 ipa_switch_to_drop_cnt;
+    /** Counter for IPA rx path switch from drop-enabled state to normal state */
+    A_UINT32 ipa_switch_from_drop_cnt;
+} wmi_ipa_link_stats;
+
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_per_mac_stats */
+
+    /** TCL total enqueued packet number */
+    A_UINT32 tcl_enqueue_packets;
+    /** TCL total discarded packet number during enqueue */
+    A_UINT32 tcl_enqueue_discard;
+
+    /** Total tx duration time, usec */
+    A_UINT32 total_ppdu_duration_us;
+
+    /** IPA rx no resource debug counter */
+    A_UINT32 wmac_no_resource_drop_ppdu_cnt_ix0;
+    A_UINT32 wmac_no_resource_drop_ppdu_cnt_ix1;
+    A_UINT32 wmac_no_resource_drop_mpdu_cnt_ix0;
+    A_UINT32 wmac_no_resource_drop_mpdu_cnt_ix1;
+    A_UINT32 wmac_rxdma2reo_producer_full_cnt;
+} wmi_ipa_per_mac_stats;
+
+/** IPA statistics (once started) reset and start afresh after each connection */
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param */
+    /** unique id identifying the request, given in the request stats command */
+    A_UINT32 request_id;
+    /** number of MACs */
+    A_UINT32 num_macs;
+/*
+ * This TLV is followed by other TLVs:
+ *   wmi_ipa_link_stats ipa_link_stats;
+ *   wmi_ipa_per_mac_stats ipa_per_mac_stats[num_macs];
+ */
+} wmi_ipa_link_stats_event_fixed_param;
+
 /** Interface statistics (once started) reset and start afresh after each connection */
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param */
@@ -10826,6 +11370,28 @@
      * values).
      */
     A_INT32 peer_rssi_per_chain[WMI_MAX_CHAINS];
+    /* show how many elements in the tx_rate_counts array belong to this peer */
+    A_UINT32 num_tx_rate_counts;
+    /* show how many elements in the rx_rate_counts array belong to this peer */
+    A_UINT32 num_rx_rate_counts;
+    /* This TLV array is followed by other TLVs:
+     *   A_UINT32 tx_rate_counts[sum(num_tx_rate_counts)];
+     *       The above num_tx_rate_counts field shows which elements
+     *       within the tx_rate_counts array belong to a given peer.
+     *       Elements tx_rate_counts[0] to tx_rate_counts[N0-1] belong to
+     *       peer 0, where N0 = peer_stats_info[0].num_tx_rate_counts.
+     *       Elements tx_rate_counts[N0] to tx_rate_counts[N0+N1-1] belong to
+     *       peer 1, where N1 = peer_stats_info[1].num_tx_rate_counts.
+     *       etc.
+     *   A_UINT32 rx_rate_counts[sum(num_rx_rate_counts)];
+     *       The above num_rx_rate_counts field shows which elements
+     *       within the rx_rate_counts array belong to a given peer.
+     *       Elements rx_rate_counts[0] to rx_rate_counts[N0-1] belong to
+     *       peer 0, where N0 = peer_stats_info[0].num_rx_rate_counts.
+     *       Elements rx_rate_counts[N0] to rx_rate_counts[N0+N1-1] belong to
+     *       peer 1, where N1 = peer_stats_info[1].num_rx_rate_counts.
+     *       etc.
+     */
 } wmi_peer_stats_info;
 
 typedef struct {
@@ -10940,6 +11506,7 @@
     WMI_DIAG_TRIGGER_TIMER_TRIGGERED,
     WMI_DIAG_TRIGGER_REMOTE_COPY,
     WMI_DIAG_TRIGGER_CAL_FAILURE,
+    WMI_DIAG_TRIGGER_FES_BKPRESS_DEV_RESET_IND,
 
     WMI_DIAG_TRIGGER_MAX,
 } wmi_diag_trigger_e;
@@ -11590,6 +12157,9 @@
      * particular event out of Multiple Events that are send to host
      */
     A_UINT32 event_count;
+
+    /** Pdev id requested */
+    A_UINT32 pdev_id;
 } wmi_halphy_ctrl_path_stats_event_fixed_param;
 
 typedef struct {
@@ -14138,6 +14708,15 @@
     /* Final bmiss time for WOW mode in sec */
     WMI_VDEV_PARAM_FINAL_BMISS_TIME_WOW_SEC,              /* 0xB8 */
 
+    /*
+     * Param to disable LPI antenna optimizations at Vdev level.
+     * In 6G LPI mode, additional antenna optimizations are done to
+     * improve range. Param is provided to disable the added
+     * optimizations.
+     */
+    WMI_VDEV_PARAM_DISABLE_LPI_ANT_OPTIMIZATION,          /* 0xB9 */
+
+
 
     /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
      * The below vdev param types are used for prototyping, and are
@@ -14252,6 +14831,12 @@
          */
         WMI_VDEV_PARAM_XPAN_PROFILE,                          /* 0x800F */
 
+        /*
+         * for valid vdev id
+         * for vdev offload stats
+         */
+        WMI_VDEV_PARAM_VDEV_STATS_ID_UPDATE,                 /* 0x8010 */
+
     /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/
 } WMI_VDEV_PARAM;
 
@@ -14558,6 +15143,10 @@
      * max_allowed_tx_power = 0 dBm means value is not specified.
      */
     A_INT32 max_allowed_tx_power;
+    /** unique id to identify mac's TSF register */
+    A_UINT32 mac_tsf_id;
+    /** ignore mac_tsf_id unless mac_tsf_id_valid is set */
+    A_UINT32 mac_tsf_id_valid;
 } wmi_vdev_start_response_event_fixed_param;
 
 typedef struct {
@@ -15955,8 +16544,12 @@
  * by the target).
  */
 #define WMI_PEER_PARAM_FIXED_RATE                       0xF
-/** Whitelist peer TIDs */
-#define WMI_PEER_SET_MU_WHITELIST                       0x10
+
+/** Allowlist peer TIDs */
+#define WMI_PEER_SET_MU_ALLOWLIST                       0x10
+/* retain definition of deprecated prior name, for backwards compatibility */
+#define WMI_PEER_SET_MU_WHITELIST WMI_PEER_SET_MU_ALLOWLIST
+
 /** Set peer max tx rate (MCS) in adaptive rate ctrl */
 #define WMI_PEER_SET_MAX_TX_RATE                        0x11
 /** Set peer minimal tx rate (MCS) in adaptive rate ctrl */
@@ -16085,6 +16678,26 @@
 #define WMI_PEER_MIMO_PS_STATIC                        0x1
 #define WMI_PEER_MIMO_PS_DYNAMIC                       0x2
 
+/*
+ * Each bit indicates one 20 MHz subchannel is punctured or not.
+ * A bit in the bitmap is set to 1 to indicate that the corresponding 20 MHz
+ * subchannel is not punctured and is set to 0 to indicate that it is punctured.
+ */
+#define WMI_PEER_PUNCTURE_20MHZ_BITMAP                 0x26
+
+#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_CHWIDTH(value32)          WMI_GET_BITS(value32, 0x0, 8)
+#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_PUNCTURE_BMAP(value32)    WMI_GET_BITS(value32, 0x8, 16)
+/* peer channel bandwidth and puncture_bitmap
+ * BIT 0-7  -  Peer channel width
+ *             This bitfield holds a wmi_channel_width enum value.
+ * BIT 8-23 -  Peer Puncture bitmap where each bit indicates whether
+ *             a 20 MHz BW is punctured.
+ *             The variable should be read from left, LSb (bit 8) will
+ *             represent the lowest-frequency 20 MHz portion.
+ *             Bit value: 0 - 20 MHz channel is punctured, 1 - not punctured
+ */
+#define WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP         0x27
+
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
     /** unique id identifying the VDEV, generated by the caller */
@@ -16380,6 +16993,12 @@
     A_UINT32 emlsr_trans_delay_us;
     /** eMLSR padding delay in microseconds */
     A_UINT32 emlsr_padding_delay_us;
+    /** Medium Synchronization Duration in microseconds */
+    A_UINT32 msd_dur_us;
+    /** Medium Synchronization OFDM ED Threshold */
+    A_UINT32 msd_ofdm_ed_thr;
+    /** Medium Synchronization Max Num of TXOPs */
+    A_UINT32 msd_max_num_txops;
 } wmi_peer_assoc_mlo_params;
 
 typedef struct {
@@ -16407,6 +17026,26 @@
     A_UINT32 tid_to_link_map_info;
 } wmi_peer_assoc_tid_to_link_map;
 
+#define WMI_PDEV_MESH_RX_FILTER_GET(enable) WMI_GET_BITS(enable,0,1)
+#define WMI_PDEV_MESH_RX_FILTER_SET(enable,value) WMI_SET_BITS(enable,0,1,value)
+
+typedef struct {
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param **/
+    A_UINT32 tlv_header;
+
+    A_UINT32 pdev_id;
+    union {
+        struct {
+            A_UINT32 enable: 1, /** denotes enable/disable mesh rx filter, refer to WMI_PDEV_MESH_RX_FILTER_GET/SET macros */
+                    reserved: 31;
+        };
+        A_UINT32 enable_word32;
+    };
+
+    /** Mac_Add for the RX filter **/
+    wmi_mac_addr link_macaddr;
+} wmi_pdev_mesh_rx_filter_enable_fixed_param;
+
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param */
     /** peer MAC address */
@@ -18931,6 +19570,7 @@
     WOW_ROAM_STATS_EVENT,                 /* 32 + 12 */
     WOW_RTT_11AZ_EVENT,                   /* 32 + 13 */
     WOW_P2P_NOA_EVENT,                    /* 32 + 14 */
+    WOW_XGAP_EVENT,                       /* 32 + 15 */
 } WOW_WAKE_EVENT_TYPE;
 
 typedef enum wake_reason_e {
@@ -19016,6 +19656,8 @@
     WOW_REASON_DELAYED_WAKEUP_DATA_STORE_LIST_FULL,
     /* Sched PM FW initiated termination event */
     WOW_REASON_SCHED_PM_TERMINATED,
+    /* XGAP entry/exit response */
+    WOW_REASON_XGAP,
 
     /* add new WOW_REASON_ defs before this line */
     WOW_REASON_MAX,
@@ -19057,6 +19699,8 @@
      * setDtimInSuspendMode
      */
     WMI_WOW_FLAG_FORCED_DTIM_ON_SYS_SUSPEND = 0x00000080,
+    /* Flag to force DPD lock. */
+    WMI_WOW_FLAG_FORCED_DPD_LOCK            = 0x00000100,
 };
 
 typedef struct {
@@ -19313,12 +19957,52 @@
      */
 } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param;
 
+typedef union {
+    /* the bytes within these IP addresses are arranged in network byte order */
+    A_UINT8 ipv4_addr[4];
+    A_UINT8 ipv6_addr[16];
+} WMI_IP_ADDR;
+
+#define WMI_COAP_IPTV6_BIT_POS                    0
+#define WMI_COAP_ADDR_TYPE_BIT_POS                1
+
+#define WMI_COAP_IPV6_SET(param, value) \
+    WMI_SET_BITS(param, WMI_COAP_IPTV6_BIT_POS, 1, value)
+
+#define WMI_COAP_IPV6_GET(param)     \
+    WMI_GET_BITS(param, WMI_COAP_IPTV6_BIT_POS, 1)
+
+#define WMI_COAP_ADDR_TYPE_SET(param, value) \
+    WMI_SET_BITS(param, WMI_COAP_ADDR_TYPE_BIT_POS, 1, value)
+
+#define WMI_COAP_ADDR_TYPE_GET(param)     \
+    WMI_GET_BITS(param, WMI_COAP_ADDR_TYPE_BIT_POS, 1)
+
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param */
     A_UINT32 vdev_id;
     A_UINT32 pattern_id;
-    A_UINT32 cache_timeout; /* the cached packet expire timeout in ms */
-    A_UINT32 dest_udp_port; /* dest UDP port to match recived CoAP messsage */
+
+    /* pattern_type:
+     * Indicates the type of pattern to be enabled
+     * Bit 0:    Indicate pattern IP ADDR is IPV6 or IPV4
+     * Bit 1:    Indicate pattern ADDR TYPE is BC or UC/MC
+     * Bits 31:2 Reserved for future use
+     *
+     * Refer to WMI_COAP_IPV6_SET,GET and WMI_COAP_ADDR_TYPE_SET,GET macros
+     */
+    A_UINT32 pattern_type;
+
+    A_UINT32 timeout; /* the cached packet expire timeout in ms */
+
+    /* the dst ip address(uc/mc/bc), dst port to match CoAP message */
+    WMI_IP_ADDR match_udp_ip; /* network byte order */
+    A_UINT32 match_udp_port;
+
+    /* DUT ip address and port for CoAP replay message */
+    WMI_IP_ADDR udp_local_ip; /* network byte order */
+    A_UINT32 udp_local_port;
+
     A_UINT32 verify_offset; /* UDP payload offset to verify */
     A_UINT32 verify_len;    /* UDP payload length to verofy*/
     A_UINT32 coapmsg_len;   /* CoAP reply message length */
@@ -19340,9 +20024,24 @@
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param */
     A_UINT32 vdev_id;
     A_UINT32 pattern_id;
-    A_UINT32 ipv4_addr;       /* vdev IPv4 address */
-    A_UINT32 remote_udp_port; /* remote UDP port to send keepalive broadcast CoAP message */
-    A_UINT32 timeout;         /* the period to send keepalive message in ms */
+
+    /* pattern_type:
+     * Indicates the type of pattern to be enabled
+     * Bit 0:    Indicate pattern IP ADDR is IPV6 or IPV4
+     * Bit 1:    Indicate pattern ADDR TYPE is BC or UC/MC
+     * Bits 31:2 Reserved for future use
+     *
+     * Refer to WMI_COAP_IPV6_SET,GET and WMI_COAP_ADDR_TYPE_SET,GET macros
+     */
+    A_UINT32 pattern_type;
+
+    /* ip address and port for CoAP send keepalive message */
+    WMI_IP_ADDR udp_local_ip; /* network byte order */
+    A_UINT32 udp_local_port;
+    WMI_IP_ADDR udp_remote_ip; /* network byte order */
+    A_UINT32 udp_remote_port;
+
+    A_UINT32 timeout;         /* the periorid to send keepalive message in ms */
     A_UINT32 coapmsg_len;     /* keeplive CoAP message length */
 /* The below TLV (tag length value) parameters follow this fixed_param TLV:
  *     A_UINT8 coapmsg[];  CoAP keepalive message,
@@ -19365,7 +20064,15 @@
 typedef struct {
     A_UINT32 tlv_hdr; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coap_tuple */
     A_UINT64 tsf;     /* host and firmware sync tsf */
-    A_UINT32 src_ip;
+    /* flag:
+     * Indicates the type of ip address
+     * Bit 0:    Indicate ip address is IPV6 or IPV4
+     * Bits 31:1 Reserved for future use
+     *
+     * Refer to WMI_COAP_IPV6_SET,GET macros
+     */
+    A_UINT32 flag;
+    WMI_IP_ADDR src_ip; /* network byte order */
     A_UINT32 payload_len;
 } wmi_coap_tuple;
 
@@ -20520,6 +21227,9 @@
     /* Disable FW triggered TWT if vendor OUI is received in beacon */
     WMI_VENDOR_OUI_ACTION_DISABLE_FW_TRIGGERED_TWT = 7,
 
+    /* Extend ITO under WOW mode if vendor OUI is received in beacon */
+    WMI_VENDOR_OUI_ACTION_EXTEND_WOW_ITO = 8,
+
     /* Add any action before this line */
     WMI_VENDOR_OUI_ACTION_MAX_ACTION_ID
 } wmi_vendor_oui_action_id;
@@ -24210,6 +24920,10 @@
      * max_allowed_tx_power = 0 dBm means value is not specified.
      */
     A_INT32 max_allowed_tx_power;
+    /** unique id to identify mac's TSF register */
+    A_UINT32 mac_tsf_id;
+    /** ignore mac_tsf_id unless mac_tsf_id_valid is set */
+    A_UINT32 mac_tsf_id_valid;
     /**
      * TLV (tag length value) parameters follows roam_synch_event
      * The TLV's are:
@@ -26619,13 +27333,30 @@
      * This field should be ignored unless the tsf_id_valid flag is set.
      */
     A_UINT32 tsf_id;
+    /*
+     * The mac_id and tsf_id fields should be ignored unless the
+     * tsf_id_valid flag is set.
+     */
     A_UINT32 tsf_id_valid;
     /*
      * mac_id: MAC identifier
-     * This field should be ignored unless the mac_id_valid flag is set.
+     * This field should be ignored unless the tsf_id_valid flag is set.
      */
     A_UINT32 mac_id;
-    A_UINT32 mac_id_valid;
+    /*
+     * The original mac_id_valid field that was originally used to specify
+     * whether the mac_id field is valid has been repurposed to instead
+     * specify whether this message is a TSF report or a UL delay report.
+     */
+    union {
+        A_UINT32 mac_id_valid; /* original name */
+        /* ul_delay_or_tsf_report:
+         * New name for the field, reflecting its new purpose.
+         * ul_delay_or_tsf_report = 1 -> UL delay
+         * ul_delay_or_tsf_report = 0 -> TSF report
+         */
+        A_UINT32 ul_delay_or_tsf_report;
+    };
     /* low 32 bits of wlan global tsf */
     A_UINT32 wlan_global_tsf_low;
     /* high 32 bits of wlan global tsf */
@@ -27802,6 +28533,17 @@
 } wmi_pdev_fips_mode_set_cmd_fixed_param;
 
 typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_featureset_cmd_fixed_param */
+
+/*
+ * Following this structure are the TLVs:
+ *     A_UINT32 feature_set_bitmap[];   <-- Host supported feature info,
+ *                                          array length is equal to
+ *                                          WMI_FEATURE_SET_BITMAP_ARRAY_LEN32.
+ */
+} wmi_pdev_featureset_cmd_fixed_param;
+
+typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param */
     union {
         A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */
@@ -28096,7 +28838,8 @@
      *  A_UINT32      TASPeakModeIndicator[8]  (32 Bytes)
      *  A_UINT32      TAS_FCC_ICNIRP_Indicator[8] (32 Bytes)
      *  A_UINT32      PowerLimitIndicator[8] (32 Bytes)
-     *  A_INT32       TASLogReducedLimit (4 Bytes)
+     *  A_UINT8       reserveMarginDb (1 Bytes)
+     *  A_UINT8       reserved[3] (3 Bytes)
      */
 
     BIOS_PARAM_TAS_DATA_TYPE,
@@ -28177,6 +28920,128 @@
      *  A_INT8  ICNIRP 6Ghz MIMO (Chain0 + Chain1) Power Limit Value(unit: 0.25dBm) (UNII-8) (Ch117~Ch149)
      */
 
+    BIOS_PARAM_TYPE_BANDEDGE_CTL_POWER,
+     /*
+      *  BIOS_PARAM_TYPE_BANDEDGE_CTL_POWER Structure has 100 bytes as below, CTL limit power unit is 0.25 dBm.
+      *  If Enable flag is 0, FW will not use power limit value of bios.
+      *
+      *  A_UINT8 version
+      *  A_UINT8 enableFlag  (always 1)
+      *  A_UINT8 reserved[2]  for 4 byte alignment,
+
+      *  ====================2G CTL POWER LIMIT ======================
+      *  A_INT8 2G 20M Channel Center Freq 2412 CTL Limit Power SU
+      *  A_INT8 2G 20M Channel Center Freq 2412 CTL Limit Power OFDMA
+      *  A_INT8 2G 20M Channel Center Freq 2417 CTL Limit Power SU
+      *  A_INT8 2G 20M Channel Center Freq 2417 CTL Limit Power OFDMA
+      *  A_INT8 2G 20M Channel Center Freq 2462 CTL Limit Power SU
+      *  A_INT8 2G 20M Channel Center Freq 2462 CTL Limit Power OFDMA
+      *  A_INT8 2G 20M Channel Center Freq 2467 CTL Limit Power SU
+      *  A_INT8 2G 20M Channel Center Freq 2467 CTL Limit Power OFDMA
+      *  A_INT8 2G 20M Channel Center Freq 2472 CTL Limit Power SU
+      *  A_INT8 2G 20M Channel Center Freq 2472 CTL Limit Power OFDMA
+
+      *  A_INT8 2G 40M Channel Center Freq 2422 CTL Limit Power SU
+      *  A_INT8 2G 40M Channel Center Freq 2422 CTL Limit Power OFDMA
+      *  A_INT8 2G 40M Channel Center Freq 2427 CTL Limit Power SU
+      *  A_INT8 2G 40M Channel Center Freq 2427 CTL Limit Power OFDMA
+      *  A_INT8 2G 40M Channel Center Freq 2452 CTL Limit Power SU
+      *  A_INT8 2G 40M Channel Center Freq 2452 CTL Limit Power OFDMA
+      *  A_INT8 2G 40M Channel Center Freq 2457 CTL Limit Power SU
+      *  A_INT8 2G 40M Channel Center Freq 2457 CTL Limit Power OFDMA
+      *  A_INT8 2G 40M Channel Center Freq 2462 CTL Limit Power SU
+      *  A_INT8 2G 40M Channel Center Freq 2462 CTL Limit Power OFDMA
+
+      *  ====================5G CTL POWER LIMIT ======================
+      *  A_INT8 5G 20M Channel Center Freq 5180 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5180 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5320 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5320 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5500 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5500 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5700 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5700 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5745 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5745 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5825 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5825 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5845 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5845 CTL Limit Power OFDMA
+      *  A_INT8 5G 20M Channel Center Freq 5885 CTL Limit Power SU
+      *  A_INT8 5G 20M Channel Center Freq 5885 CTL Limit Power OFDMA
+
+      *  A_INT8 5G 40M Channel Center Freq 5190 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5190 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5310 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5310 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5510 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5510 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5670 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5670 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5755 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5755 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5795 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5795 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5835 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5835 CTL Limit Power OFDMA
+      *  A_INT8 5G 40M Channel Center Freq 5875 CTL Limit Power SU
+      *  A_INT8 5G 40M Channel Center Freq 5875 CTL Limit Power OFDMA
+
+      *  A_INT8 5G 80M Channel Center Freq 5210 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5210 CTL Limit Power OFDMA
+      *  A_INT8 5G 80M Channel Center Freq 5290 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5290 CTL Limit Power OFDMA
+      *  A_INT8 5G 80M Channel Center Freq 5530 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5530 CTL Limit Power OFDMA
+      *  A_INT8 5G 80M Channel Center Freq 5610 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5610 CTL Limit Power OFDMA
+      *  A_INT8 5G 80M Channel Center Freq 5775 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5775 CTL Limit Power OFDMA
+      *  A_INT8 5G 80M Channel Center Freq 5855 CTL Limit Power SU
+      *  A_INT8 5G 80M Channel Center Freq 5855 CTL Limit Power OFDMA
+
+      *  A_INT8 5G 160M Channel Center Freq 5250 CTL Limit Power SU
+      *  A_INT8 5G 160M Channel Center Freq 5250 CTL Limit Power OFDMA
+      *  A_INT8 5G 160M Channel Center Freq 5570 CTL Limit Power SU
+      *  A_INT8 5G 160M Channel Center Freq 5570 CTL Limit Power OFDMA
+      *  A_INT8 5G 160M Channel Center Freq 5815 CTL Limit Power SU
+      *  A_INT8 5G 160M Channel Center Freq 5815 CTL Limit Power OFDMA
+
+      *  A_INT8 5G 320M Channel Center Freq 5650 CTL Limit Power SU (5650 Punctured 1111_1111_1111_0000)
+      *  A_INT8 5G 320M Channel Center Freq 5650 CTL Limit Power OFDMA (5650 Punctured 1111_1111_1111_0000)
+
+      *  ====================6G CTL POWER LIMIT ======================
+      *  A_INT8 6G 20M Channel Center Freq 5935 CTL Limit Power SU
+      *  A_INT8 6G 20M Channel Center Freq 5935 CTL Limit Power OFDMA
+      *  A_INT8 6G 20M Channel Center Freq 5955 CTL Limit Power SU
+      *  A_INT8 6G 20M Channel Center Freq 5955 CTL Limit Power OFDMA
+      *  A_INT8 6G 20M Channel Center Freq 6415 CTL Limit Power SU
+      *  A_INT8 6G 20M Channel Center Freq 6415 CTL Limit Power OFDMA
+      *  A_INT8 6G 20M Channel Center Freq 7115 CTL Limit Power SU
+      *  A_INT8 6G 20M Channel Center Freq 7115 CTL Limit Power OFDMA
+
+      *  A_INT8 6G 40M Channel Center Freq 5965 CTL Limit Power SU
+      *  A_INT8 6G 40M Channel Center Freq 5965 CTL Limit Power OFDMA
+      *  A_INT8 6G 40M Channel Center Freq 6405 CTL Limit Power SU
+      *  A_INT8 6G 40M Channel Center Freq 6405 CTL Limit Power OFDMA
+
+      *  A_INT8 6G 80M Channel Center Freq 5985 CTL Limit Power SU
+      *  A_INT8 6G 80M Channel Center Freq 5985 CTL Limit Power OFDMA
+      *  A_INT8 6G 80M Channel Center Freq 6385 CTL Limit Power SU
+      *  A_INT8 6G 80M Channel Center Freq 6385 CTL Limit Power OFDMA
+
+      *  A_INT8 6G 160M Channel Center Freq 6025 CTL Limit Power SU
+      *  A_INT8 6G 160M Channel Center Freq 6025 CTL Limit Power OFDMA
+      *  A_INT8 6G 160M Channel Center Freq 6345 CTL Limit Power SU
+      *  A_INT8 6G 160M Channel Center Freq 6345 CTL Limit Power OFDMA
+
+      *  A_INT8 6G 320M Channel Center Freq 6105 CTL Limit Power SU
+      *  A_INT8 6G 320M Channel Center Freq 6105 CTL Limit Power OFDMA
+      *  A_INT8 6G 320M Channel Center Freq 6265 CTL Limit Power SU
+      *  A_INT8 6G 320M Channel Center Freq 6265 CTL Limit Power OFDMA
+      */
+
+
     BIOS_PARAM_TYPE_MAX,
 } bios_param_type_e;
 
@@ -28888,6 +29753,21 @@
     A_UINT32 vdev_id;
 } wmi_vdev_get_bcn_recv_stats_cmd_fixed_param;
 
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param */
+    A_UINT32 beacon_interval; /* in TU */
+    A_UINT32 sap_lp_flag;     /* bit 0 : set/unset for enter/exit XGAP */
+    A_UINT32 dialog_token;
+    A_UINT32 duration;        /* in us : sap LP enter/exit duration, 0 for permanent exit */
+} wmi_xgap_enable_cmd_fixed_param;
+
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param */
+    A_UINT32 dialog_token;
+    A_UINT32 next_tsf_low32;
+    A_UINT32 next_tsf_high32;
+} wmi_xgap_enable_complete_event_fixed_param;
+
 /*
  * wmi mws-coex command IDs
  */
@@ -31751,6 +32631,10 @@
         WMI_RETURN_STRING(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID);
         WMI_RETURN_STRING(WMI_WOW_COAP_GET_BUF_INFO_CMDID);
         WMI_RETURN_STRING(WMI_COEX_DBAM_CMDID);
+        WMI_RETURN_STRING(WMI_PDEV_FEATURESET_CMDID);
+        WMI_RETURN_STRING(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID);
+        WMI_RETURN_STRING(WMI_XGAP_ENABLE_CMDID);
+        WMI_RETURN_STRING(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
     }
 
     return (A_UINT8 *) "Invalid WMI cmd";
@@ -32037,6 +32921,21 @@
      */
 } wmi_regulatory_chan_priority_struct;
 
+#define WMI_REG_FCC_RULE_CHAN_FREQ_GET(freq_info)           WMI_GET_BITS(freq_info, 0, 16)
+#define WMI_REG_FCC_RULE_CHAN_FREQ_SET(freq_info, value)    WMI_SET_BITS(freq_info, 0, 16, value)
+#define WMI_REG_FCC_RULE_FCC_TX_POWER_GET(freq_info)        WMI_GET_BITS(freq_info, 16, 8)
+#define WMI_REG_FCC_RULE_FCC_TX_POWER_SET(freq_info, value) WMI_SET_BITS(freq_info, 16, 8, value)
+
+typedef struct {
+    A_UINT32  tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct */
+    A_UINT32  freq_info;
+    /* freq_info:
+     * bits 15:0  = u16 channel frequency (in MHz units)
+     * bits 23:16 = u8 FCC_Tx_power (dBm units)
+     * bits 31:24 = u8 reserved for future
+     */
+} wmi_regulatory_fcc_rule_struct;
+
 typedef enum {
     WMI_REG_DFS_UNINIT_REGION = 0,
     WMI_REG_DFS_FCC_REGION    = 1,
@@ -32084,7 +32983,10 @@
     A_UINT32 max_bw_5g;   /* BW in MHz */
     A_UINT32 num_2g_reg_rules;
     A_UINT32 num_5g_reg_rules;
-/* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G */
+/*
+ * followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G
+ * - wmi_regulatory_fcc_rule_struct reg_fcc_rule[]
+ */
 } wmi_reg_chan_list_cc_event_fixed_param;
 
 typedef enum {
@@ -32145,6 +33047,7 @@
  *     then the 5G elements, then the 6G elements (AP SG, AP LPI, AP VLP,
  *     client SP x4, client LPI x4, client vlp x4).
  *   - wmi_regulatory_chan_priority_struct reg_chan_priority[]
+ *   - wmi_regulatory_fcc_rule_struct reg_fcc_rule[]
  */
 } wmi_reg_chan_list_cc_event_ext_fixed_param;
 
@@ -32513,6 +33416,31 @@
 #define WMI_MULTIPLE_VDEV_RESTART_FLAG_GET_PHYMODE(phymode) WMI_GET_BITS(phymode, 0, 6)
 #define WMI_MULTIPLE_VDEV_RESTART_FLAG_SET_PHYMODE(phymode, val) WMI_SET_BITS(phymode, 0, 6, val)
 
+/** Indicates that VDEV ID is in bit-map format
+ *  If this flag is set, FW will determine the vdev IDs from the positions
+ *  of the bits that are set, and use these vdev IDs for vdev restart.
+ *
+ *  This flag should not be set from host unless FW has set the service bit
+ *  WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT to indicate it supports
+ *  this interpretation of the vdev IDs as a bitmap.
+ *
+ *  If this flag is set then below is the way it will be parsed
+ *  vdev_ids[0] = 53 (0011 0101) -> indicates vdev 0,2,4,5 is set
+ *  vdev_ids[1] = 53 (0000 0101) -> indicates vdev 32,34 is set
+ *  similar to this the value can be extended in feature for more vdev's
+ *
+ *  If flag is not se then default parsing will be as below
+ *  vdev_ids[0] = 0
+ *  vdev_ids[1] = 2
+ *  vdev_ids[2] = 4
+ *  .
+ *  .
+ *  vdev_ids[5] = 34
+ */
+#define WMI_MULTIPLE_VDEV_RESTART_FLAG_BITMAP_SUPPORT(flag)  WMI_GET_BITS(flag, 2, 1)
+#define WMI_MULTIPLE_VDEV_RESTART_FLAG_SET_BITMAP_SUPPORT(flag,val)  WMI_SET_BITS(flag, 2, 1, val)
+
+
 /* This command is used whenever host wants to restart multiple
  * VDEVs using single command and the VDEV that are restarted will
  * need to have same properties they had before restart except for the
@@ -32543,7 +33471,22 @@
     A_UINT32 puncture_20mhz_bitmap; /* each bit indicates one 20 MHz BW punctured */
 
     /* The TLVs follows this structure:
-     * A_UINT32 vdev_ids[]; <--- Array of VDEV ids.
+     * A_UINT32 vdev_ids[]; <--- Array of vdev IDs, or bitmap of vdev IDs
+     *     In flags if WMI_MULTIPLE_VDEV_RESTART_FLAG_BITMAP_SUPPORT is set
+     *     FW will interpret the vdev_ids values as a bitmap, and will use the
+     *     position of all the bits set within the bitmap to determine the
+     *     vdev IDs to use for vdev restart.
+     *     If this flag is set then below is the way it will be parsed
+     *         vdev_ids[0] = 53 (0011 0101) -> indicates vdev 0,2,4,5 is set
+     *         vdev_ids[1] = 53 (0000 0101) -> indicates vdev 32,34 is set
+     *         The array can be extended in feature for more vdevs.
+     *     If this flag is not se then default parsing will be as below
+     *         vdev_ids[0] = 0
+     *         vdev_ids[1] = 2
+     *         vdev_ids[2] = 4
+     *         .
+     *         .
+     *         vdev_ids[5] = 34
      * wmi_channel chan; <------ WMI channel
      * A_UINT32 phymode_list[]; <-- Array of Phymode list, with
      *    each phymode value stored in bits 5:0 of the A_UINT32.
@@ -33407,6 +34350,7 @@
     A_UINT32 dialog_id;     /* TWT dialog ID */
     A_UINT32 suspend_duration_ms;  /* this long time after TWT paused the 1st SP will start (millisecond) */
     A_UINT32 next_twt_size; /* Next TWT subfield Size, refer to IEEE 802.11ax section "9.4.1.60 TWT Information field" */
+    A_INT32 sp_start_offset; /* Next TWT service period will be offset by this time (microsecond) */
 } wmi_twt_nudge_dialog_cmd_fixed_param;
 
 /* status code of nudging TWT dialog */
@@ -34053,6 +34997,11 @@
     A_UINT32 vdev_id;
     /* AP BSSID for which host needs to start pre-authentication */
     wmi_mac_addr candidate_ap_bssid;
+    /*
+     * Transmit address for which host needs to start pre-authentication
+     * in MLO case.  In non MLO cases, transmit_addr will be filled with 0x0.
+     */
+    wmi_mac_addr transmit_addr;
 } wmi_roam_preauth_start_event_fixed_param;
 
 typedef struct {
@@ -34626,6 +35575,21 @@
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param */
     wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */
+
+    A_UINT32 vdev_id;
+
+    /*
+     * Configure max number of link mlo connection supports.
+     * Invalid value or 0 will use max supported value by fw.
+     */
+    A_UINT32 support_link_num;
+
+    /*
+     * Bit 0: 2G band support if 1
+     * Bit 1: 5G band support if 1
+     * Bit 2: 6G band support if 1
+     */
+    A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */
 } wmi_roam_mlo_config_cmd_fixed_param;
 
 typedef struct {
@@ -34696,19 +35660,53 @@
 
 /** the definition of different ROAM parameters */
 typedef enum {
-    /*  roam param to configure below roam events
-     *  Bit : 0 disabled - do not send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
-     *  Bit : 0 enabled  - send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
-     *  Bit : 1 disabled - do not send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
-     *  Bit : 1 enabled  - send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
-     *  Bit : 2-31  - reserved
+    /*
+     * roam param to configure below roam events
+     * Bit : 0 disabled - do not send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
+     * Bit : 0 enabled  - send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID
+     * Bit : 1 disabled - do not send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
+     * Bit : 1 enabled  - send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode
+     * Bit : 2-31  - reserved
      */
-    WMI_ROAM_PARAM_ROAM_EVENTS_CONFIG = 0x1,
+    WMI_ROAM_PARAM_ROAM_EVENTS_CONFIG = 1,
+
     /*
      * Bit : 0 if unset, POOR_LINKSPEED
      * Bit : 0 if set, GOOD_LINKSPEED
      */
-    WMI_ROAM_PARAM_LINKSPEED_STATE = 0x2,
+    WMI_ROAM_PARAM_LINKSPEED_STATE = 2,
+
+    /*
+     * roam param to configure roam scan params for DFS jitter reduction
+     * Bit : 0 enabled   - DFS channel jitter reduction is enabled.
+     * Bit : 0 disabled  - DFS channel jitter reduction is disabled.
+     *
+     * Bit : 1-7         - To indicate the passive-to-active conversion timeout
+     *                     with range 40 to 70 in ms, default value is 50ms.
+     *                     If an invalid (out of range) value is provided, the
+     *                     default value will be used.
+     * Bit : 8-13        - To indicate the DFS RSSI threshold for current AP
+     *                     with range 0 to 58, default value is 0 dB
+     *                     (DFS rssi threshold = -70 dBm + 0 dB = -70 dBm).
+     *                     The specified value (in dB) is added to the -70 dBm
+     *                     baseline value to get the RSSI threshold in dBm.
+     *                     If an invalid (out of range) value is provided, the
+     *                     default value will be used.
+     * Bit : 14-19       - To indicate the DFS RSSI threshold for candidate AP
+     *                     with range 0 to 58, default value is 0 dB
+     *                     (DFS rssi threshold = -70 - 0 = -70 dBm).
+     *                     The specified value (in dB) is added to the -70 dBm
+     *                     baseline value to get the RSSI threshold in dBm.
+     *                     If an invalid (out of range) value is provided, the
+     *                     default value will be used.
+     * Bit : 20 disabled - To indicate DFS roam scan policy is AGILE
+     * Bit : 20 enabled  - To indicate DFS roam scan policy is Legacy
+     *
+     * Bit : 21-31 are reserved
+     */
+    WMI_ROAM_PARAM_ROAM_SCAN_DFS_CONFIG_BITMAP = 3,
+
+
     /*=== END ROAM_PARAM_PROTOTYPE SECTION ===*/
 } WMI_ROAM_PARAM;
 
@@ -35223,11 +36221,26 @@
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */
     wmi_mac_addr peer_macaddr;
     A_UINT32 chan_width; /* wmi_channel_width */
+    A_UINT32 puncture_20mhz_bitmap; /* per peer wmi puncture_bitmap,
+                                     * each bit indicates one 20 MHz BW
+                                     * punctured.
+                                     * This variable should be read from left,
+                                     * LSb will point to the lowest-frequency
+                                     * 20 MHz frequency slice.
+                                     * bit value:
+                                     *     0 - 20 MHz BW is punctured
+                                     *     1 - not punctured
+                                     */
 } wmi_chan_width_peer_list;
 
 #define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_VDEV_ID(comp) WMI_SET_BITS(comp, 31,1, 1)
 #define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_VDEV_ID(comp) WMI_GET_BITS(comp, 31, 1)
 
+#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_PUNCTURE_BITMAP(comp) WMI_SET_BITS(comp, 30, 1, 1)
+#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_PUNCTURE_BITMAP(comp) WMI_GET_BITS(comp, 30, 1)
+
+/* bits 29:8 currently unused */
+
 #define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VDEV_ID(comp, value) WMI_SET_BITS(comp, 0, 8, value)
 #define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VDEV_ID(comp) WMI_GET_BITS(comp, 0, 8)
 
@@ -35236,7 +36249,8 @@
     A_UINT32 num_peers;
     /* vdev_var:
      * The MSb (bit 31) indicates that the vdev_id is valid.
-     * The LSB is used to infer the actual vdev_id.
+     * Bit 30 indicates that the puncture bitmap is valid.
+     * The LSB (bits 0-7) is used to infer the actual vdev_id.
      * The other bits can be used for future enhancements.
      */
     A_UINT32 vdev_var;
@@ -36828,6 +37842,13 @@
     wmi_mac_addr bssid; /** bssid of the rogue ap */
 } wmi_pdev_rap_info_event_fixed_param;
 
+typedef struct {
+    A_UINT32 tlv_header;    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param */
+    A_UINT32 pdev_id; /** pdev id */
+    A_UINT32 tid_num; /** tid_num that is suspended */
+    A_UINT32 suspended_time_ms; /** time for which tid has been suspended in ms */
+} wmi_pdev_sched_tidq_susp_info_event_fixed_param;
+
 /*
  * WMI API for Firmware to indicate iface combinations which Firmware
  * support to Host
@@ -37270,7 +38291,7 @@
 #define WMI_CFR_GROUP_DATA_SUBTYPE_VALID_BIT_POS      8
 
 /* The bits in this mask mapped to WMI_PEER_CFR_CAPTURE_BW enum */
-#define WMI_CFR_GROUP_BW_MASK_NUM_BITS                5
+#define WMI_CFR_GROUP_BW_MASK_NUM_BITS                6
 #define WMI_CFR_GROUP_BW_BIT_POS                      0
 
 /* The bits in this mask correspond to the values as below
@@ -37645,6 +38666,7 @@
 /* Following this structure is the TLV:
  *      A_UINT8 data[]; <-- length in byte given by field data_len.
  * This data array contains OEM data, the payload begins with a field to tell the HOST regarding the kind of the OEM data.
+ *      A_UINT8 file_name[]; <-- Name of the file to which HOST needs to write this OEM specifc data.
  */
 } wmi_oem_data_event_fixed_param;
 
@@ -38489,6 +39511,7 @@
 
 typedef enum wmi_mlo_tear_down_reason_code_type {
     WMI_MLO_TEARDOWN_SSR_REASON,
+    WMI_MLO_TEARDOWN_HOST_INITIATED_REASON,
 } WMI_MLO_TEARDOWN_REASON_TYPE;
 
 typedef struct {
@@ -39001,6 +40024,15 @@
     A_UINT32 n_TWT_SPs_to_expire;
 } wmi_peer_flush_policy_cmd_fixed_param;
 
+/* health monitor infra Def */
+typedef struct {
+    /** TLV tag and len */
+    A_UINT32 tlv_header;
+    A_UINT32 ring_buf_paddr_low;
+    A_UINT32 ring_buf_paddr_high;
+    A_UINT32 initial_upload_period_ms;
+} wmi_health_mon_init_done_fixed_param;
+
 
 
 /* ADD NEW DEFS HERE */
@@ -39026,6 +40058,13 @@
     A_UINT32 cwmax;
 } wmi_qos_params_t;
 
+typedef struct {
+    A_UINT32 tlv_header;
+    A_UINT32 vdev_id;
+    A_UINT32 tidmap; /* Bitmap specifying the TIDs for which prohibit would be set/unset */
+    A_UINT32 prohibit_enable; /* 0 for Disable, 1 for Enable */
+} wmi_vdev_param_enable_sr_prohibit_fixed_param;
+
 typedef struct
 {
     /** Channel frequency in MHz */
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index cfeaed8..7273868 100644
--- a/fw/wmi_version.h
+++ b/fw/wmi_version.h
@@ -37,7 +37,7 @@
 #define __WMI_VER_MINOR_    0
 /** WMI revision number has to be incremented when there is a
  *  change that may or may not break compatibility. */
-#define __WMI_REVISION_ 1172
+#define __WMI_REVISION_ 1214
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work
diff --git a/hw/qca5332/HALcomdef.h b/hw/qca5332/HALcomdef.h
new file mode 100644
index 0000000..b6bbcc3
--- /dev/null
+++ b/hw/qca5332/HALcomdef.h
@@ -0,0 +1,106 @@
+
+/* 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 HAL_COMDEF_H
+#define HAL_COMDEF_H
+
+/*
+ * Assembly wrapper
+ */
+#ifndef _ARM_ASM_
+
+/*
+ * C++ wrapper
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "com_dtypes.h"
+
+/* -----------------------------------------------------------------------
+** Types
+** ----------------------------------------------------------------------- */
+
+/*
+ * Standard integer types.
+ *
+ * bool32  - boolean, 32 bit (TRUE or FALSE)
+ */
+#ifndef _BOOL32_DEFINED
+typedef  unsigned long int  bool32;
+#define _BOOL32_DEFINED
+#endif
+
+/*
+ * Macro to allow forcing an enum to 32 bits.  The argument should be
+ * an identifier in the namespace of the enumeration in question, i.e.
+ * for the clk HAL we might use HAL_ENUM_32BITS(CLK_xxx).
+ */
+#define HAL_ENUM_32BITS(x) HAL_##x##_FORCE32BITS = 0x7FFFFFFF
+
+/*===========================================================================
+
+FUNCTION inp, outp, inpw, outpw, inpdw, outpdw
+
+DESCRIPTION
+  IN/OUT port macros for byte and word ports, typically inlined by compilers
+  which support these routines
+
+PARAMETERS
+  inp(   xx_addr )
+  inpw(  xx_addr )
+  inpdw( xx_addr )
+  outp(   xx_addr, xx_byte_val  )
+  outpw(  xx_addr, xx_word_val  )
+  outpdw( xx_addr, xx_dword_val )
+      xx_addr      - Address of port to read or write (may be memory mapped)
+      xx_byte_val  - 8 bit value to write
+      xx_word_val  - 16 bit value to write
+      xx_dword_val - 32 bit value to write
+
+DEPENDENCIES
+  None
+
+RETURN VALUE
+  inp/inpw/inpdw: the byte, word or dword read from the given address
+  outp/outpw/outpdw: the byte, word or dword written to the given address
+
+SIDE EFFECTS
+  None.
+
+===========================================================================*/
+
+  /* ARM based targets use memory mapped i/o, so the inp/outp calls are
+  ** macroized to access memory directly
+  */
+
+  #define inp(port)         (*((volatile byte *) (port)))
+  #define inpw(port)        (*((volatile word *) (port)))
+  #define inpdw(port)       (*((volatile dword *)(port)))
+
+  #define outp(port, val)   (*((volatile byte *) (port)) = ((byte) (val)))
+  #define outpw(port, val)  (*((volatile word *) (port)) = ((word) (val)))
+  #define outpdw(port, val) (*((volatile dword *) (port)) = ((dword) (val)))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_ARM_ASM_ */
+
+#endif /* HAL_COMDEF_H */
+
diff --git a/hw/qca5332/HALhwio.h b/hw/qca5332/HALhwio.h
new file mode 100644
index 0000000..1374f78
--- /dev/null
+++ b/hw/qca5332/HALhwio.h
@@ -0,0 +1,482 @@
+
+/* 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 HAL_HWIO_H
+#define HAL_HWIO_H
+
+/*=========================================================================
+      Include Files
+==========================================================================*/
+
+
+/*
+ * Common types.
+ */
+#include "HALcomdef.h"
+
+
+
+/* -----------------------------------------------------------------------
+** Macros
+** ----------------------------------------------------------------------- */
+
+/** 
+  @addtogroup macros
+  @{ 
+*/ 
+
+/**
+ * Map a base name to the pointer to access the base.
+ *
+ * This macro maps a base name to the pointer to access the base.
+ * This is generally just used internally.
+ *
+ */
+#define HWIO_BASE_PTR(base) base##_BASE_PTR
+
+
+/**
+ * Declare a HWIO base pointer.
+ *
+ * This macro will declare a HWIO base pointer data structure.  The pointer
+ * will always be declared as a weak symbol so multiple declarations will
+ * resolve correctly to the same data at link-time.
+ */
+#ifdef __ARMCC_VERSION
+  #define DECLARE_HWIO_BASE_PTR(base) __weak uint8 *HWIO_BASE_PTR(base)
+#else
+  #define DECLARE_HWIO_BASE_PTR(base) uint8 *HWIO_BASE_PTR(base)
+#endif
+
+/**
+  @}
+*/
+
+#ifdef CONFIG_WHAL_MM
+#define SEQ_WCSS_WCMN_OFFSET     SEQ_WCSS_TOP_CMN_OFFSET
+#define SEQ_WCSS_PMM_OFFSET      SEQ_WCSS_PMM_TOP_OFFSET
+#endif
+
+
+/** 
+  @addtogroup hwio_macros
+  @{ 
+*/ 
+
+/**
+ * @name Address Macros
+ *
+ * Macros for getting register addresses.
+ * These macros are used for retrieving the address of a register.
+ * HWIO_ADDR* will return the directly accessible address (virtual or physical based
+ * on environment), HWIO_PHYS* will always return the physical address.
+ * The offset from the base region can be retrieved using HWIO_OFFS*.
+ * The "X" extension is used for explicit addressing where the base address of
+ * the module in question is provided as an argument to the macro.
+ *
+ * @{
+ */
+#define HWIO_ADDR(hwiosym)                               __msmhwio_addr(hwiosym)
+#define HWIO_ADDRI(hwiosym, index)                       __msmhwio_addri(hwiosym, index)
+#define HWIO_ADDRI2(hwiosym, index1, index2)             __msmhwio_addri2(hwiosym, index1, index2)
+#define HWIO_ADDRI3(hwiosym, index1, index2, index3)     __msmhwio_addri3(hwiosym, index1, index2, index3)
+
+#define HWIO_ADDRX(base, hwiosym)                           __msmhwio_addrx(base, hwiosym)
+#define HWIO_ADDRXI(base, hwiosym, index)                   __msmhwio_addrxi(base, hwiosym, index)
+#define HWIO_ADDRXI2(base, hwiosym, index1, index2)         __msmhwio_addrxi2(base, hwiosym, index1, index2)
+#define HWIO_ADDRXI3(base, hwiosym, index1, index2, index3) __msmhwio_addrxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_PHYS(hwiosym)                               __msmhwio_phys(hwiosym)
+#define HWIO_PHYSI(hwiosym, index)                       __msmhwio_physi(hwiosym, index)
+#define HWIO_PHYSI2(hwiosym, index1, index2)             __msmhwio_physi2(hwiosym, index1, index2)
+#define HWIO_PHYSI3(hwiosym, index1, index2, index3)     __msmhwio_physi3(hwiosym, index1, index2, index3)
+
+#define HWIO_PHYSX(base, hwiosym)                           __msmhwio_physx(base, hwiosym)
+#define HWIO_PHYSXI(base, hwiosym, index)                   __msmhwio_physxi(base, hwiosym, index)
+#define HWIO_PHYSXI2(base, hwiosym, index1, index2)         __msmhwio_physxi2(base, hwiosym, index1, index2)
+#define HWIO_PHYSXI3(base, hwiosym, index1, index2, index3) __msmhwio_physxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_OFFS(hwiosym)                               __msmhwio_offs(hwiosym)
+#define HWIO_OFFSI(hwiosym, index)                       __msmhwio_offsi(hwiosym, index)
+#define HWIO_OFFSI2(hwiosym, index1, index2)             __msmhwio_offsi2(hwiosym, index1, index2)
+#define HWIO_OFFSI3(hwiosym, index1, index2, index3)     __msmhwio_offsi3(hwiosym, index1, index2, index3)
+/** @} */
+
+/**
+ * @name Input Macros
+ *
+ * These macros are used for reading from a named hardware register.  Register
+ * arrays ("indexed") use the macros with the "I" suffix.  The "M" suffix
+ * indicates that the input will be masked with the supplied mask.  The HWIO_INF*
+ * macros take a field name and will do the appropriate masking and shifting
+ * to return just the value of that field.
+ * The "X" extension is used for explicit addressing where the base address of
+ * the module in question is provided as an argument to the macro.
+ *
+ * Generally you want to use either HWIO_IN or HWIO_INF (with required indexing).
+ *
+ * @{
+ */
+#define HWIO_IN(hwiosym)                                         __msmhwio_in(hwiosym)
+#define HWIO_INI(hwiosym, index)                                 __msmhwio_ini(hwiosym, index)
+#define HWIO_INI2(hwiosym, index1, index2)                       __msmhwio_ini2(hwiosym, index1, index2)
+#define HWIO_INI3(hwiosym, index1, index2, index3)               __msmhwio_ini3(hwiosym, index1, index2, index3)
+
+#define HWIO_INM(hwiosym, mask)                                  __msmhwio_inm(hwiosym, mask)
+#define HWIO_INMI(hwiosym, index, mask)                          __msmhwio_inmi(hwiosym, index, mask)
+#define HWIO_INMI2(hwiosym, index1, index2, mask)                __msmhwio_inmi2(hwiosym, index1, index2, mask)
+#define HWIO_INMI3(hwiosym, index1, index2, index3, mask)        __msmhwio_inmi3(hwiosym, index1, index2, index3, mask)
+
+#define HWIO_INF(io, field)                                      (HWIO_INM(io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI(io, index, field)                              (HWIO_INMI(io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI2(io, index1, index2, field)                    (HWIO_INMI2(io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI3(io, index1, index2, index3, field)            (HWIO_INMI3(io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+
+#define HWIO_INX(base, hwiosym)                                  __msmhwio_inx(base, hwiosym)
+#define HWIO_INXI(base, hwiosym, index)                          __msmhwio_inxi(base, hwiosym, index)
+#define HWIO_INXI2(base, hwiosym, index1, index2)                __msmhwio_inxi2(base, hwiosym, index1, index2)
+#define HWIO_INXI3(base, hwiosym, index1, index2, index3)        __msmhwio_inxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_INXM(base, hwiosym, mask)                           __msmhwio_inxm(base, hwiosym, mask)
+#define HWIO_INXMI(base, hwiosym, index, mask)                   __msmhwio_inxmi(base, hwiosym, index, mask)
+#define HWIO_INXMI2(base, hwiosym, index1, index2, mask)         __msmhwio_inxmi2(base, hwiosym, index1, index2, mask)
+#define HWIO_INXMI3(base, hwiosym, index1, index2, index3, mask) __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask)
+
+#define HWIO_INXF(base, io, field)                               (HWIO_INXM(base, io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI(base, io, index, field)                       (HWIO_INXMI(base, io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI2(base, io, index1, index2, field)             (HWIO_INXMI2(base, io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI3(base, io, index1, index2, index3, field)     (HWIO_INXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+/** @} */
+
+/**
+ * @name Output Macros
+ *
+ * These macros are used for writing to a named hardware register.  Register
+ * arrays ("indexed") use the macros with the "I" suffix.  The "M" suffix
+ * indicates that the output will be masked with the supplied mask (meaning these
+ * macros do a read first, mask in the supplied data, then write it back).
+ * The "X" extension is used for explicit addressing where the base address of
+ * the module in question is provided as an argument to the macro.
+ * The HWIO_OUTF* macros take a field name and will do the appropriate masking
+ * and shifting to output just the value of that field.
+ * HWIO_OUTV* registers take a named value instead of a numeric value and
+ * do the same masking/shifting as HWIO_OUTF.
+ *
+ * Generally you want to use either HWIO_OUT or HWIO_OUTF (with required indexing).
+ *
+ * @{
+ */
+#define HWIO_OUT(hwiosym, val)                                   __msmhwio_out(hwiosym, val)
+#define HWIO_OUTI(hwiosym, index, val)                           __msmhwio_outi(hwiosym, index, val)
+#define HWIO_OUTI2(hwiosym, index1, index2, val)                 __msmhwio_outi2(hwiosym, index1, index2, val)
+#define HWIO_OUTI3(hwiosym, index1, index2, index3, val)         __msmhwio_outi3(hwiosym, index1, index2, index3, val)
+
+#define HWIO_OUTM(hwiosym, mask, val)                            __msmhwio_outm(hwiosym, mask, val)
+#define HWIO_OUTMI(hwiosym, index, mask, val)                    __msmhwio_outmi(hwiosym, index, mask, val)
+#define HWIO_OUTMI2(hwiosym, index1, index2, mask, val)          __msmhwio_outmi2(hwiosym, index1, index2, mask, val)
+#define HWIO_OUTMI3(hwiosym, index1, index2, index3, mask, val)  __msmhwio_outmi3(hwiosym, index1, index2, index3, mask, val)
+
+#define HWIO_OUTF(io, field, val)                                HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI(io, index, field, val)                        HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI2(io, index1, index2, field, val)              HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI3(io, index1, index2, index3, field, val)      HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTV(io, field, val)                                HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI(io, index, field, val)                        HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI2(io, index1, index2, field, val)              HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI3(io, index1, index2, index3, field, val)      HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTX(base, hwiosym, val)                                   __msmhwio_outx(base, hwiosym, val)
+#define HWIO_OUTXI(base, hwiosym, index, val)                           __msmhwio_outxi(base, hwiosym, index, val)
+#define HWIO_OUTXI2(base, hwiosym, index1, index2, val)                 __msmhwio_outxi2(base, hwiosym, index1, index2, val)
+#define HWIO_OUTXI3(base, hwiosym, index1, index2, index3, val)         __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val)
+
+#define HWIO_OUTXM(base, hwiosym, mask, val)                            __msmhwio_outxm(base, hwiosym, mask, val)
+#define HWIO_OUTXM2(base, hwiosym, mask1, mask2, val1, val2)  __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2)
+#define HWIO_OUTXM3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3) __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3)
+#define HWIO_OUTXM4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4)
+#define HWIO_OUTXMI(base, hwiosym, index, mask, val)                    __msmhwio_outxmi(base, hwiosym, index, mask, val)
+#define HWIO_OUTXMI2(base, hwiosym, index1, index2, mask, val)          __msmhwio_outxmi2(base, hwiosym, index1, index2, mask, val)
+#define HWIO_OUTXMI3(base, hwiosym, index1, index2, index3, mask, val)  __msmhwio_outxmi3(base, hwiosym, index1, index2, index3, mask, val)
+
+#define HWIO_OUTXF(base, io, field, val)                                HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTX2F(base, io, field1, field2, val1, val2)                                HWIO_OUTXM2(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2), (uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2))
+#define HWIO_OUTX3F(base, io, field1, field2, field3, val1, val2, val3)                                HWIO_OUTXM3(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2),  HWIO_FMSK(io, field3),(uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3) )
+#define HWIO_OUTX4F(base, io, field1, field2, field3, field4, val1, val2, val3, val4)                                HWIO_OUTXM4(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2),  HWIO_FMSK(io, field3),  HWIO_FMSK(io, field4), (uint32)(val1) << HWIO_SHFT(io, field1) , (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3), (uint32)(val4) << HWIO_SHFT(io, field4) )
+
+#define HWIO_OUTXFI(base, io, index, field, val)                        HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTXFI2(base, io, index1, index2, field, val)              HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTXFI3(base, io, index1, index2, index3, field, val)      HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTXV(base, io, field, val)                                HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI(base, io, index, field, val)                        HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI2(base, io, index1, index2, field, val)              HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI3(base, io, index1, index2, index3, field, val)      HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+/** @} */
+
+/**
+ * @name Shift and Mask Macros
+ *
+ * Macros for getting shift and mask values for fields and registers.
+ *  HWIO_RMSK: The mask value for accessing an entire register.  For example:
+ *             @code
+ *             HWIO_RMSK(REG) -> 0xFFFFFFFF
+ *             @endcode
+ *  HWIO_RSHFT: The right-shift value for an entire register (rarely necessary).\n
+ *  HWIO_SHFT: The right-shift value for accessing a field in a register.  For example:
+ *             @code
+ *             HWIO_SHFT(REG, FLD) -> 8
+ *             @endcode
+ *  HWIO_FMSK: The mask value for accessing a field in a register.  For example:
+ *             @code
+ *             HWIO_FMSK(REG, FLD) -> 0xFF00
+ *             @endcode
+ *  HWIO_VAL:  The value for a field in a register.  For example:
+ *             @code
+ *             HWIO_VAL(REG, FLD, ON) -> 0x1
+ *             @endcode
+ *  HWIO_FVAL: This macro takes a numerical value and will shift and mask it into
+ *             the given field position.  For example:
+ *             @code
+ *             HWIO_FVAL(REG, FLD, 0x1) -> 0x100
+ *             @endcode
+ *  HWIO_FVALV: This macro takes a logical (named) value and will shift and mask it
+ *              into the given field position.  For example:
+ *              @code
+ *              HWIO_FVALV(REG, FLD, ON) -> 0x100
+ *              @endcode
+ *
+ * @{
+ */
+#define HWIO_RMSK(hwiosym)                               __msmhwio_rmsk(hwiosym)
+#define HWIO_RMSKI(hwiosym, index)                       __msmhwio_rmski(hwiosym, index)
+#define HWIO_RSHFT(hwiosym)                              __msmhwio_rshft(hwiosym)
+#define HWIO_SHFT(hwio_regsym, hwio_fldsym)              __msmhwio_shft(hwio_regsym, hwio_fldsym)
+#define HWIO_FMSK(hwio_regsym, hwio_fldsym)              __msmhwio_fmsk(hwio_regsym, hwio_fldsym)
+#define HWIO_VAL(io, field, val)                         __msmhwio_val(io, field, val)
+#define HWIO_FVAL(io, field, val)                        (((uint32)(val) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
+#define HWIO_FVALV(io, field, val)                       (((uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
+/** @} */
+
+/**
+ * @name Shadow Register Macros
+ *
+ * These macros are used for directly reading the value stored in a 
+ * shadow register.
+ * Shadow registers are defined for write-only registers.  Generally these
+ * macros should not be necessary as HWIO_OUTM* macros will automatically use
+ * the shadow values internally.
+ *
+ * @{
+ */
+#define HWIO_SHDW(hwiosym)                               __msmhwio_shdw(hwiosym)
+#define HWIO_SHDWI(hwiosym, index)                       __msmhwio_shdwi(hwiosym, index)
+/** @} */
+
+/** 
+  @}
+*/ /* end_group */
+
+
+/** @cond */
+
+/*
+ * Map to final symbols.  This remapping is done to allow register 
+ * redefinitions.  If we just define HWIO_IN(xreg) as HWIO_##xreg##_IN
+ * then remappings like "#define xreg xregnew" do not work as expected.
+ */
+#define __msmhwio_in(hwiosym)                                   HWIO_##hwiosym##_IN
+#define __msmhwio_ini(hwiosym, index)                           HWIO_##hwiosym##_INI(index)
+#define __msmhwio_ini2(hwiosym, index1, index2)                 HWIO_##hwiosym##_INI2(index1, index2)
+#define __msmhwio_ini3(hwiosym, index1, index2, index3)         HWIO_##hwiosym##_INI3(index1, index2, index3)
+#define __msmhwio_inm(hwiosym, mask)                            HWIO_##hwiosym##_INM(mask)
+#define __msmhwio_inmi(hwiosym, index, mask)                    HWIO_##hwiosym##_INMI(index, mask)
+#define __msmhwio_inmi2(hwiosym, index1, index2, mask)          HWIO_##hwiosym##_INMI2(index1, index2, mask)
+#define __msmhwio_inmi3(hwiosym, index1, index2, index3, mask)  HWIO_##hwiosym##_INMI3(index1, index2, index3, mask)
+#define __msmhwio_out(hwiosym, val)                             HWIO_##hwiosym##_OUT(val)
+#define __msmhwio_outi(hwiosym, index, val)                     HWIO_##hwiosym##_OUTI(index,val)
+#define __msmhwio_outi2(hwiosym, index1, index2, val)           HWIO_##hwiosym##_OUTI2(index1, index2, val)
+#define __msmhwio_outi3(hwiosym, index1, index2, index3, val)   HWIO_##hwiosym##_OUTI2(index1, index2, index3, val)
+#define __msmhwio_outm(hwiosym, mask, val)                      HWIO_##hwiosym##_OUTM(mask, val)
+#define __msmhwio_outmi(hwiosym, index, mask, val)              HWIO_##hwiosym##_OUTMI(index, mask, val)
+#define __msmhwio_outmi2(hwiosym, idx1, idx2, mask, val)        HWIO_##hwiosym##_OUTMI2(idx1, idx2, mask, val)
+#define __msmhwio_outmi3(hwiosym, idx1, idx2, idx3, mask, val)  HWIO_##hwiosym##_OUTMI3(idx1, idx2, idx3, mask, val)
+#define __msmhwio_addr(hwiosym)                                 HWIO_##hwiosym##_ADDR
+#define __msmhwio_addri(hwiosym, index)                         HWIO_##hwiosym##_ADDR(index)
+#define __msmhwio_addri2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_ADDR(idx1, idx2)
+#define __msmhwio_addri3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_ADDR(idx1, idx2, idx3)
+#define __msmhwio_phys(hwiosym)                                 HWIO_##hwiosym##_PHYS
+#define __msmhwio_physi(hwiosym, index)                         HWIO_##hwiosym##_PHYS(index)
+#define __msmhwio_physi2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_PHYS(idx1, idx2)
+#define __msmhwio_physi3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_PHYS(idx1, idx2, idx3)
+#define __msmhwio_offs(hwiosym)                                 HWIO_##hwiosym##_OFFS 
+#define __msmhwio_offsi(hwiosym, index)                         HWIO_##hwiosym##_OFFS(index)
+#define __msmhwio_offsi2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_OFFS(idx1, idx2)
+#define __msmhwio_offsi3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_OFFS(idx1, idx2, idx3)
+#define __msmhwio_rmsk(hwiosym)                                 HWIO_##hwiosym##_RMSK
+#define __msmhwio_rmski(hwiosym, index)                         HWIO_##hwiosym##_RMSK(index)
+#define __msmhwio_fmsk(hwiosym, hwiofldsym)                     HWIO_##hwiosym##_##hwiofldsym##_BMSK
+#define __msmhwio_rshft(hwiosym)                                HWIO_##hwiosym##_SHFT
+#define __msmhwio_shft(hwiosym, hwiofldsym)                     HWIO_##hwiosym##_##hwiofldsym##_SHFT
+#define __msmhwio_shdw(hwiosym)                                 HWIO_##hwiosym##_shadow
+#define __msmhwio_shdwi(hwiosym, index)                         HWIO_##hwiosym##_SHDW(index)
+#define __msmhwio_val(hwiosym, hwiofld, hwioval)                HWIO_##hwiosym##_##hwiofld##_##hwioval##_FVAL
+
+#define __msmhwio_inx(base, hwiosym)                                  HWIO_##hwiosym##_IN(base)
+#define __msmhwio_inxi(base, hwiosym, index)                          HWIO_##hwiosym##_INI(base, index)
+#define __msmhwio_inxi2(base, hwiosym, index1, index2)                HWIO_##hwiosym##_INI2(base, index1, index2)
+#define __msmhwio_inxi3(base, hwiosym, index1, index2, index3)        HWIO_##hwiosym##_INI3(base, index1, index2, index3)
+#define __msmhwio_inxm(base, hwiosym, mask)                           HWIO_##hwiosym##_INM(base, mask)
+#define __msmhwio_inxmi(base, hwiosym, index, mask)                   HWIO_##hwiosym##_INMI(base, index, mask)
+#define __msmhwio_inxmi2(base, hwiosym, index1, index2, mask)         HWIO_##hwiosym##_INMI2(base, index1, index2, mask)
+#define __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask) HWIO_##hwiosym##_INMI3(base, index1, index2, index3, mask)
+#define __msmhwio_outx(base, hwiosym, val)                            HWIO_##hwiosym##_OUT(base, val)
+#define __msmhwio_outxi(base, hwiosym, index, val)                    HWIO_##hwiosym##_OUTI(base, index,val)
+#define __msmhwio_outxi2(base, hwiosym, index1, index2, val)          HWIO_##hwiosym##_OUTI2(base, index1, index2, val)
+#define __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val)  HWIO_##hwiosym##_OUTI2(base, index1, index2, index3, val)
+#define __msmhwio_outxm(base, hwiosym, mask, val)                     HWIO_##hwiosym##_OUTM(base, mask, val)
+#define __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2)  {	\
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                               }
+#define __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3,  val1, val2, val3) { \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask3, val3); \
+                                                                               }  
+#define __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) { \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask3, val3); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask4, val4); \
+                                                                               } 
+
+
+#define __msmhwio_outxmi(base, hwiosym, index, mask, val)             HWIO_##hwiosym##_OUTMI(base, index, mask, val)
+#define __msmhwio_outxmi2(base, hwiosym, idx1, idx2, mask, val)       HWIO_##hwiosym##_OUTMI2(base, idx1, idx2, mask, val)
+#define __msmhwio_outxmi3(base, hwiosym, idx1, idx2, idx3, mask, val) HWIO_##hwiosym##_OUTMI3(base, idx1, idx2, idx3, mask, val)
+#define __msmhwio_addrx(base, hwiosym)                                HWIO_##hwiosym##_ADDR(base)
+#define __msmhwio_addrxi(base, hwiosym, index)                        HWIO_##hwiosym##_ADDR(base, index)
+#define __msmhwio_addrxi2(base, hwiosym, idx1, idx2)                  HWIO_##hwiosym##_ADDR(base, idx1, idx2)
+#define __msmhwio_addrxi3(base, hwiosym, idx1, idx2, idx3)            HWIO_##hwiosym##_ADDR(base, idx1, idx2, idx3)
+#define __msmhwio_physx(base, hwiosym)                                HWIO_##hwiosym##_PHYS(base)
+#define __msmhwio_physxi(base, hwiosym, index)                        HWIO_##hwiosym##_PHYS(base, index)
+#define __msmhwio_physxi2(base, hwiosym, idx1, idx2)                  HWIO_##hwiosym##_PHYS(base, idx1, idx2)
+#define __msmhwio_physxi3(base, hwiosym, idx1, idx2, idx3)            HWIO_##hwiosym##_PHYS(base, idx1, idx2, idx3)
+
+
+/*
+ * HWIO_INTLOCK
+ *
+ * Macro used by autogenerated code for mutual exclusion around
+ * read-mask-write operations.  This is not supported in HAL
+ * code but can be overridden by non-HAL code.
+ */
+#define HWIO_INTLOCK()
+#define HWIO_INTFREE()
+
+
+/*
+ * Input/output port macros for memory mapped IO.
+ */
+#define __inp(port)         (*((volatile uint8 *) (port)))
+#define __inpw(port)        (*((volatile uint16 *) (port)))
+#define __inpdw(port)       (*((volatile uint32 *) (port)))
+#define __outp(port, val)   (*((volatile uint8 *) (port)) = ((uint8) (val)))
+#define __outpw(port, val)  (*((volatile uint16 *) (port)) = ((uint16) (val)))
+#define __outpdw(port, val) (*((volatile uint32 *) (port)) = ((uint32) (val)))
+
+
+#ifdef HAL_HWIO_EXTERNAL
+
+/*
+ * Replace macros with externally supplied functions.
+ */
+#undef  __inp
+#undef  __inpw
+#undef  __inpdw
+#undef  __outp
+#undef  __outpw
+#undef  __outpdw
+
+#define  __inp(port)          __inp_extern((uint32) (port))
+#define  __inpw(port)         __inpw_extern((uint32) (port))
+#define  __inpdw(port)        __inpdw_extern((uint32) (port))
+#define  __outp(port, val)    __outp_extern((uint32) (port), val)
+#define  __outpw(port, val)   __outpw_extern((uint32) (port), val)
+#define  __outpdw(port, val)  __outpdw_extern((uint32) (port), val)
+
+extern uint8   __inp_extern      ( uint32 nAddr );
+extern uint16  __inpw_extern     ( uint32 nAddr );
+extern uint32  __inpdw_extern    ( uint32 nAddr );
+extern void    __outp_extern     ( uint32 nAddr, uint8  nData );
+extern void    __outpw_extern    ( uint32 nAddr, uint16 nData );
+extern void    __outpdw_extern   ( uint32 nAddr, uint32 nData );
+
+#endif /* HAL_HWIO_EXTERNAL */
+
+
+/*
+ * Base 8-bit byte accessing macros.
+ */
+#define in_byte(addr)               (__inp(addr))
+#define in_byte_masked(addr, mask)  (__inp(addr) & (mask)) 
+#define out_byte(addr, val)         __outp(addr,val)
+#define out_byte_masked(io, mask, val, shadow)  \
+  HWIO_INTLOCK();    \
+  out_byte( io, shadow); \
+  shadow = (shadow & (uint16)(~(mask))) | ((uint16)((val) & (mask))); \
+  HWIO_INTFREE()
+#define out_byte_masked_ns(io, mask, val, current_reg_content)  \
+  out_byte( io, ((current_reg_content & (uint16)(~(mask))) | \
+                ((uint16)((val) & (mask)))) )
+
+
+/*
+ * Base 16-bit word accessing macros.
+ */
+#define in_word(addr)              (__inpw(addr))
+#define in_word_masked(addr, mask) (__inpw(addr) & (mask))
+#define out_word(addr, val)        __outpw(addr,val)
+#define out_word_masked(io, mask, val, shadow)  \
+  HWIO_INTLOCK( ); \
+  shadow = (shadow & (uint16)(~(mask))) |  ((uint16)((val) & (mask))); \
+  out_word( io, shadow); \
+  HWIO_INTFREE( )
+#define out_word_masked_ns(io, mask, val, current_reg_content)  \
+  out_word( io, ((current_reg_content & (uint16)(~(mask))) | \
+                ((uint16)((val) & (mask)))) )
+
+
+/*
+ * Base 32-bit double-word accessing macros.
+ */
+#define in_dword(addr)              (__inpdw(addr))
+#define in_dword_masked(addr, mask) (__inpdw(addr) & (mask))
+#define out_dword(addr, val)        __outpdw(addr,val)
+#define out_dword_masked(io, mask, val, shadow)  \
+   HWIO_INTLOCK(); \
+   shadow = (shadow & (uint32)(~(mask))) | ((uint32)((val) & (mask))); \
+   out_dword( io, shadow); \
+   HWIO_INTFREE()
+#define out_dword_masked_ns(io, mask, val, current_reg_content) \
+  out_dword( io, ((current_reg_content & (uint32)(~(mask))) | \
+                 ((uint32)((val) & (mask)))) )
+
+/** @endcond */
+
+#endif /* HAL_HWIO_H */
+
diff --git a/hw/qca5332/ack_report.h b/hw/qca5332/ack_report.h
new file mode 100644
index 0000000..009d20f
--- /dev/null
+++ b/hw/qca5332/ack_report.h
@@ -0,0 +1,174 @@
+
+/* 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 _ACK_REPORT_H_
+#define _ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_ACK_REPORT 1
+
+
+struct ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t selfgen_response_reason                                 :  4, // [3:0]
+                      ax_trigger_type                                         :  4, // [7:4]
+                      sr_ppdu                                                 :  1, // [8:8]
+                      reserved                                                :  7, // [15:9]
+                      frame_control                                           : 16; // [31:16]
+#else
+             uint32_t frame_control                                           : 16, // [31:16]
+                      reserved                                                :  7, // [15:9]
+                      sr_ppdu                                                 :  1, // [8:8]
+                      ax_trigger_type                                         :  4, // [7:4]
+                      selfgen_response_reason                                 :  4; // [3:0]
+#endif
+};
+
+
+/* Description		SELFGEN_RESPONSE_REASON
+
+			Field that indicates why the received frame needs a response
+			 in SIFS time. The possible responses are listed in order.
+			
+			
+			<enum 0     CTS_frame> 
+			<enum 1     ACK_frame> 
+			<enum 2     BA_frame > 
+			<enum 3     Qboost_trigger> Qboost trigger received
+			<enum 4     PSPOLL_trigger> PSPOLL trigger received
+			<enum 5     UAPSD_trigger > Unscheduled APSD  trigger received
+			 
+			<enum 6     CBF_frame> the CBF frame needs to be send as
+			 a result of NDP or BRPOLL
+			<enum 7     ax_su_trigger> 11ax trigger received for this
+			 device
+			<enum 8     ax_wildcard_trigger> 11ax wildcardtrigger has
+			 been received 
+			<enum 9     ax_unassoc_wildcard_trigger> 11ax wildcard trigger
+			 for unassociated STAs has been received
+			<enum 12     eht_su_trigger> EHT R1 trigger received for
+			 this device
+			
+			<enum 10     MU_UL_response_to_response>
+			
+			<enum 11     Ranging_NDP_LMR_frames> Ranging NDP + LMR need
+			 to be sent in response to ranging NDPA + NDP
+			
+			<legal 0-12>
+*/
+
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_OFFSET                                   0x00000000
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_LSB                                      0
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MSB                                      3
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MASK                                     0x0000000f
+
+
+/* Description		AX_TRIGGER_TYPE
+
+			Field Only valid when selfgen_response_reason is an 11ax
+			 related trigger
+			
+			The 11AX trigger type/ trigger number:
+			It identifies which trigger was received.
+			<enum 0 ax_trigger_basic>
+			<enum 1 ax_trigger_brpoll>
+			<enum 2 ax_trigger_mu_bar>
+			<enum 3 ax_trigger_mu_rts>
+			<enum 4 ax_trigger_buffer_size>
+			<enum 5 ax_trigger_gcr_mu_bar>
+			<enum 6 ax_trigger_BQRP> 
+			<enum 7 ax_trigger_NDP_fb_report_poll> 
+			<enum 8 ax_tb_ranging_trigger>
+			<enum 9 ax_trigger_reserved_9>
+			<enum 10 ax_trigger_reserved_10>
+			<enum 11 ax_trigger_reserved_11>
+			<enum 12 ax_trigger_reserved_12>
+			<enum 13 ax_trigger_reserved_13>
+			<enum 14 ax_trigger_reserved_14>
+			<enum 15 ax_trigger_reserved_15>
+			
+			<legal all>
+*/
+
+#define ACK_REPORT_AX_TRIGGER_TYPE_OFFSET                                           0x00000000
+#define ACK_REPORT_AX_TRIGGER_TYPE_LSB                                              4
+#define ACK_REPORT_AX_TRIGGER_TYPE_MSB                                              7
+#define ACK_REPORT_AX_TRIGGER_TYPE_MASK                                             0x000000f0
+
+
+/* Description		SR_PPDU
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			Indicates if the received frame was sent using SRP as indicated
+			 by the 'SR PPDU' bit in the 'CAS Control' in the 'HE A-Control' 
+			in one of the MPDUs received
+			<legal all>
+*/
+
+#define ACK_REPORT_SR_PPDU_OFFSET                                                   0x00000000
+#define ACK_REPORT_SR_PPDU_LSB                                                      8
+#define ACK_REPORT_SR_PPDU_MSB                                                      8
+#define ACK_REPORT_SR_PPDU_MASK                                                     0x00000100
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define ACK_REPORT_RESERVED_OFFSET                                                  0x00000000
+#define ACK_REPORT_RESERVED_LSB                                                     9
+#define ACK_REPORT_RESERVED_MSB                                                     15
+#define ACK_REPORT_RESERVED_MASK                                                    0x0000fe00
+
+
+/* Description		FRAME_CONTROL
+
+			Field not valid when selfgen_response_reason is MU_UL_response_to_response
+			
+			
+			For SU receptions:
+			frame control field of the received frame
+			
+			In 11ah Mode of Operation, for non-NDP frames the BW information
+			 is extracted from Frame Control fields [11:8].
+			
+			Decode is as follows 
+			
+			Bits[11] - Dynamic/Static 
+			Bits[10:8] - Channel BW
+*/
+
+#define ACK_REPORT_FRAME_CONTROL_OFFSET                                             0x00000000
+#define ACK_REPORT_FRAME_CONTROL_LSB                                                16
+#define ACK_REPORT_FRAME_CONTROL_MSB                                                31
+#define ACK_REPORT_FRAME_CONTROL_MASK                                               0xffff0000
+
+
+
+#endif   // ACK_REPORT
diff --git a/hw/qca5332/buffer_addr_info.h b/hw/qca5332/buffer_addr_info.h
new file mode 100644
index 0000000..d355100
--- /dev/null
+++ b/hw/qca5332/buffer_addr_info.h
@@ -0,0 +1,184 @@
+
+/* 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 _BUFFER_ADDR_INFO_H_
+#define _BUFFER_ADDR_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_BUFFER_ADDR_INFO 2
+
+
+struct buffer_addr_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_addr_31_0                                        : 32; // [31:0]
+             uint32_t buffer_addr_39_32                                       :  8, // [7:0]
+                      return_buffer_manager                                   :  4, // [11:8]
+                      sw_buffer_cookie                                        : 20; // [31:12]
+#else
+             uint32_t buffer_addr_31_0                                        : 32; // [31:0]
+             uint32_t sw_buffer_cookie                                        : 20, // [31:12]
+                      return_buffer_manager                                   :  4, // [11:8]
+                      buffer_addr_39_32                                       :  8; // [7:0]
+#endif
+};
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                                    0x00000000
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_LSB                                       0
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MSB                                       31
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MASK                                      0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                                   0x00000004
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_LSB                                      0
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MSB                                      7
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MASK                                     0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                               0x00000004
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                                  8
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                                  11
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                                 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                                    0x00000004
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_LSB                                       12
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MSB                                       31
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MASK                                      0xfffff000
+
+
+
+#endif   // BUFFER_ADDR_INFO
diff --git a/hw/qca5332/ce_src_desc.h b/hw/qca5332/ce_src_desc.h
new file mode 100644
index 0000000..44973be
--- /dev/null
+++ b/hw/qca5332/ce_src_desc.h
@@ -0,0 +1,289 @@
+
+/* 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 _CE_SRC_DESC_H_
+#define _CE_SRC_DESC_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_CE_SRC_DESC 4
+
+
+struct ce_src_desc {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t src_buffer_low                                          : 32; // [31:0]
+             uint32_t src_buffer_high                                         :  8, // [7:0]
+                      toeplitz_en                                             :  1, // [8:8]
+                      src_swap                                                :  1, // [9:9]
+                      dest_swap                                               :  1, // [10:10]
+                      gather                                                  :  1, // [11:11]
+                      ce_res_0                                                :  1, // [12:12]
+                      barrier_read                                            :  1, // [13:13]
+                      ce_res_1                                                :  2, // [15:14]
+                      length                                                  : 16; // [31:16]
+             uint32_t fw_metadata                                             : 16, // [15:0]
+                      ce_res_2                                                : 16; // [31:16]
+             uint32_t ce_res_3                                                : 20, // [19:0]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t src_buffer_low                                          : 32; // [31:0]
+             uint32_t length                                                  : 16, // [31:16]
+                      ce_res_1                                                :  2, // [15:14]
+                      barrier_read                                            :  1, // [13:13]
+                      ce_res_0                                                :  1, // [12:12]
+                      gather                                                  :  1, // [11:11]
+                      dest_swap                                               :  1, // [10:10]
+                      src_swap                                                :  1, // [9:9]
+                      toeplitz_en                                             :  1, // [8:8]
+                      src_buffer_high                                         :  8; // [7:0]
+             uint32_t ce_res_2                                                : 16, // [31:16]
+                      fw_metadata                                             : 16; // [15:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      ce_res_3                                                : 20; // [19:0]
+#endif
+};
+
+
+/* Description		SRC_BUFFER_LOW
+
+			LSB 32 bits of the 40 Bit Pointer to the source buffer
+			<legal all>
+*/
+
+#define CE_SRC_DESC_SRC_BUFFER_LOW_OFFSET                                           0x00000000
+#define CE_SRC_DESC_SRC_BUFFER_LOW_LSB                                              0
+#define CE_SRC_DESC_SRC_BUFFER_LOW_MSB                                              31
+#define CE_SRC_DESC_SRC_BUFFER_LOW_MASK                                             0xffffffff
+
+
+/* Description		SRC_BUFFER_HIGH
+
+			Bits [6:0] for 40 Bit Pointer to the source buffer
+			Bit [7] can be programmed with VC bit. 
+			Note: CE Descriptor has 40-bit address. Only 37 bits are
+			 routed as address to NoC. Remaining bits are user bits. 
+			Bit [7] of SRC_BUFFER_HIGH can be used for VC configuration. 
+			0 indicate VC0 and 1 indicate VC1.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_OFFSET                                          0x00000004
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_LSB                                             0
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_MSB                                             7
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_MASK                                            0x000000ff
+
+
+/* Description		TOEPLITZ_EN
+
+			Enable generation of 32-bit Toeplitz-LFSR hash for the data
+			 transfer
+			In case of gather field in first source ring entry of the
+			 gather copy cycle in taken into account.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_TOEPLITZ_EN_OFFSET                                              0x00000004
+#define CE_SRC_DESC_TOEPLITZ_EN_LSB                                                 8
+#define CE_SRC_DESC_TOEPLITZ_EN_MSB                                                 8
+#define CE_SRC_DESC_TOEPLITZ_EN_MASK                                                0x00000100
+
+
+/* Description		SRC_SWAP
+
+			Treats source memory organization as big-endian. For each
+			 dword read (4 bytes), the byte 0 is swapped with byte 3
+			 and byte 1 is swapped with byte 2.
+			In case of gather field in first source ring entry of the
+			 gather copy cycle in taken into account.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_SRC_SWAP_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_SRC_SWAP_LSB                                                    9
+#define CE_SRC_DESC_SRC_SWAP_MSB                                                    9
+#define CE_SRC_DESC_SRC_SWAP_MASK                                                   0x00000200
+
+
+/* Description		DEST_SWAP
+
+			Treats destination memory organization as big-endian. For
+			 each dword write (4 bytes), the byte 0 is swapped with 
+			byte 3 and byte 1 is swapped with byte 2.
+			In case of gather field in first source ring entry of the
+			 gather copy cycle in taken into account.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_DEST_SWAP_OFFSET                                                0x00000004
+#define CE_SRC_DESC_DEST_SWAP_LSB                                                   10
+#define CE_SRC_DESC_DEST_SWAP_MSB                                                   10
+#define CE_SRC_DESC_DEST_SWAP_MASK                                                  0x00000400
+
+
+/* Description		GATHER
+
+			Enables gather of multiple copy engine source descriptors
+			 to one destination.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_GATHER_OFFSET                                                   0x00000004
+#define CE_SRC_DESC_GATHER_LSB                                                      11
+#define CE_SRC_DESC_GATHER_MSB                                                      11
+#define CE_SRC_DESC_GATHER_MASK                                                     0x00000800
+
+
+/* Description		CE_RES_0
+
+			Reserved
+			<legal all>
+*/
+
+#define CE_SRC_DESC_CE_RES_0_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_CE_RES_0_LSB                                                    12
+#define CE_SRC_DESC_CE_RES_0_MSB                                                    12
+#define CE_SRC_DESC_CE_RES_0_MASK                                                   0x00001000
+
+
+/* Description		BARRIER_READ
+
+			Barrier Read enable
+			<legal all>
+*/
+
+#define CE_SRC_DESC_BARRIER_READ_OFFSET                                             0x00000004
+#define CE_SRC_DESC_BARRIER_READ_LSB                                                13
+#define CE_SRC_DESC_BARRIER_READ_MSB                                                13
+#define CE_SRC_DESC_BARRIER_READ_MASK                                               0x00002000
+
+
+/* Description		CE_RES_1
+
+			Reserved
+			<legal all>
+*/
+
+#define CE_SRC_DESC_CE_RES_1_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_CE_RES_1_LSB                                                    14
+#define CE_SRC_DESC_CE_RES_1_MSB                                                    15
+#define CE_SRC_DESC_CE_RES_1_MASK                                                   0x0000c000
+
+
+/* Description		LENGTH
+
+			Length of the buffer in units of octets of the current descriptor
+			
+			<legal all>
+*/
+
+#define CE_SRC_DESC_LENGTH_OFFSET                                                   0x00000004
+#define CE_SRC_DESC_LENGTH_LSB                                                      16
+#define CE_SRC_DESC_LENGTH_MSB                                                      31
+#define CE_SRC_DESC_LENGTH_MASK                                                     0xffff0000
+
+
+/* Description		FW_METADATA
+
+			Meta data used by FW
+			In case of gather field in first source ring entry of the
+			 gather copy cycle in taken into account.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_FW_METADATA_OFFSET                                              0x00000008
+#define CE_SRC_DESC_FW_METADATA_LSB                                                 0
+#define CE_SRC_DESC_FW_METADATA_MSB                                                 15
+#define CE_SRC_DESC_FW_METADATA_MASK                                                0x0000ffff
+
+
+/* Description		CE_RES_2
+
+			Reserved
+			<legal all>
+*/
+
+#define CE_SRC_DESC_CE_RES_2_OFFSET                                                 0x00000008
+#define CE_SRC_DESC_CE_RES_2_LSB                                                    16
+#define CE_SRC_DESC_CE_RES_2_MSB                                                    31
+#define CE_SRC_DESC_CE_RES_2_MASK                                                   0xffff0000
+
+
+/* Description		CE_RES_3
+
+			Reserved 
+			<legal all>
+*/
+
+#define CE_SRC_DESC_CE_RES_3_OFFSET                                                 0x0000000c
+#define CE_SRC_DESC_CE_RES_3_LSB                                                    0
+#define CE_SRC_DESC_CE_RES_3_MSB                                                    19
+#define CE_SRC_DESC_CE_RES_3_MASK                                                   0x000fffff
+
+
+/* Description		RING_ID
+
+			The buffer pointer ring ID.
+			0 refers to the IDLE ring
+			1 - N refers to other rings
+			
+			Helps with debugging when dumping ring contents.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_RING_ID_OFFSET                                                  0x0000000c
+#define CE_SRC_DESC_RING_ID_LSB                                                     20
+#define CE_SRC_DESC_RING_ID_MSB                                                     27
+#define CE_SRC_DESC_RING_ID_MASK                                                    0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into the Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define CE_SRC_DESC_LOOPING_COUNT_OFFSET                                            0x0000000c
+#define CE_SRC_DESC_LOOPING_COUNT_LSB                                               28
+#define CE_SRC_DESC_LOOPING_COUNT_MSB                                               31
+#define CE_SRC_DESC_LOOPING_COUNT_MASK                                              0xf0000000
+
+
+
+#endif   // CE_SRC_DESC
diff --git a/hw/qca5332/ce_stat_desc.h b/hw/qca5332/ce_stat_desc.h
new file mode 100644
index 0000000..c2882e8
--- /dev/null
+++ b/hw/qca5332/ce_stat_desc.h
@@ -0,0 +1,260 @@
+
+/* 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 _CE_STAT_DESC_H_
+#define _CE_STAT_DESC_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_CE_STAT_DESC 4
+
+
+struct ce_stat_desc {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ce_res_5                                                :  8, // [7:0]
+                      toeplitz_en                                             :  1, // [8:8]
+                      src_swap                                                :  1, // [9:9]
+                      dest_swap                                               :  1, // [10:10]
+                      gather                                                  :  1, // [11:11]
+                      barrier_read                                            :  1, // [12:12]
+                      ce_res_6                                                :  3, // [15:13]
+                      length                                                  : 16; // [31:16]
+             uint32_t toeplitz_hash_0                                         : 32; // [31:0]
+             uint32_t toeplitz_hash_1                                         : 32; // [31:0]
+             uint32_t fw_metadata                                             : 16, // [15:0]
+                      ce_res_7                                                :  4, // [19:16]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t length                                                  : 16, // [31:16]
+                      ce_res_6                                                :  3, // [15:13]
+                      barrier_read                                            :  1, // [12:12]
+                      gather                                                  :  1, // [11:11]
+                      dest_swap                                               :  1, // [10:10]
+                      src_swap                                                :  1, // [9:9]
+                      toeplitz_en                                             :  1, // [8:8]
+                      ce_res_5                                                :  8; // [7:0]
+             uint32_t toeplitz_hash_0                                         : 32; // [31:0]
+             uint32_t toeplitz_hash_1                                         : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      ce_res_7                                                :  4, // [19:16]
+                      fw_metadata                                             : 16; // [15:0]
+#endif
+};
+
+
+/* Description		CE_RES_5
+
+			Reserved
+			<legal all>
+*/
+
+#define CE_STAT_DESC_CE_RES_5_OFFSET                                                0x00000000
+#define CE_STAT_DESC_CE_RES_5_LSB                                                   0
+#define CE_STAT_DESC_CE_RES_5_MSB                                                   7
+#define CE_STAT_DESC_CE_RES_5_MASK                                                  0x000000ff
+
+
+/* Description		TOEPLITZ_EN
+
+			32-bit Toeplitz-LFSR hash for the data transfer, Enabled
+			
+			<legal all>
+*/
+
+#define CE_STAT_DESC_TOEPLITZ_EN_OFFSET                                             0x00000000
+#define CE_STAT_DESC_TOEPLITZ_EN_LSB                                                8
+#define CE_STAT_DESC_TOEPLITZ_EN_MSB                                                8
+#define CE_STAT_DESC_TOEPLITZ_EN_MASK                                               0x00000100
+
+
+/* Description		SRC_SWAP
+
+			Source memory buffer swapped
+			<legal all>
+*/
+
+#define CE_STAT_DESC_SRC_SWAP_OFFSET                                                0x00000000
+#define CE_STAT_DESC_SRC_SWAP_LSB                                                   9
+#define CE_STAT_DESC_SRC_SWAP_MSB                                                   9
+#define CE_STAT_DESC_SRC_SWAP_MASK                                                  0x00000200
+
+
+/* Description		DEST_SWAP
+
+			Destination  memory buffer swapped
+			<legal all>
+*/
+
+#define CE_STAT_DESC_DEST_SWAP_OFFSET                                               0x00000000
+#define CE_STAT_DESC_DEST_SWAP_LSB                                                  10
+#define CE_STAT_DESC_DEST_SWAP_MSB                                                  10
+#define CE_STAT_DESC_DEST_SWAP_MASK                                                 0x00000400
+
+
+/* Description		GATHER
+
+			Gather of multiple copy engine source descriptors to one
+			 destination enabled
+			<legal all>
+*/
+
+#define CE_STAT_DESC_GATHER_OFFSET                                                  0x00000000
+#define CE_STAT_DESC_GATHER_LSB                                                     11
+#define CE_STAT_DESC_GATHER_MSB                                                     11
+#define CE_STAT_DESC_GATHER_MASK                                                    0x00000800
+
+
+/* Description		BARRIER_READ
+
+			Barrier read enabled
+			<legal all>
+*/
+
+#define CE_STAT_DESC_BARRIER_READ_OFFSET                                            0x00000000
+#define CE_STAT_DESC_BARRIER_READ_LSB                                               12
+#define CE_STAT_DESC_BARRIER_READ_MSB                                               12
+#define CE_STAT_DESC_BARRIER_READ_MASK                                              0x00001000
+
+
+/* Description		CE_RES_6
+
+			Reserved
+			<legal all>
+*/
+
+#define CE_STAT_DESC_CE_RES_6_OFFSET                                                0x00000000
+#define CE_STAT_DESC_CE_RES_6_LSB                                                   13
+#define CE_STAT_DESC_CE_RES_6_MSB                                                   15
+#define CE_STAT_DESC_CE_RES_6_MASK                                                  0x0000e000
+
+
+/* Description		LENGTH
+
+			Sum of all the Lengths of the source descriptor in the gather
+			 chain
+			<legal all>
+*/
+
+#define CE_STAT_DESC_LENGTH_OFFSET                                                  0x00000000
+#define CE_STAT_DESC_LENGTH_LSB                                                     16
+#define CE_STAT_DESC_LENGTH_MSB                                                     31
+#define CE_STAT_DESC_LENGTH_MASK                                                    0xffff0000
+
+
+/* Description		TOEPLITZ_HASH_0
+
+			32 LS bits of 64 bit Toeplitz LFSR hash result
+			<legal all>
+*/
+
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_OFFSET                                         0x00000004
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_LSB                                            0
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_MSB                                            31
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_MASK                                           0xffffffff
+
+
+/* Description		TOEPLITZ_HASH_1
+
+			32 MS bits of 64 bit Toeplitz LFSR hash result
+			<legal all>
+*/
+
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_OFFSET                                         0x00000008
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_LSB                                            0
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_MSB                                            31
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_MASK                                           0xffffffff
+
+
+/* Description		FW_METADATA
+
+			Meta data used by FW
+			In case of gather field in first source ring entry of the
+			 gather copy cycle in taken into account.
+			<legal all>
+*/
+
+#define CE_STAT_DESC_FW_METADATA_OFFSET                                             0x0000000c
+#define CE_STAT_DESC_FW_METADATA_LSB                                                0
+#define CE_STAT_DESC_FW_METADATA_MSB                                                15
+#define CE_STAT_DESC_FW_METADATA_MASK                                               0x0000ffff
+
+
+/* Description		CE_RES_7
+
+			Reserved 
+			<legal all>
+*/
+
+#define CE_STAT_DESC_CE_RES_7_OFFSET                                                0x0000000c
+#define CE_STAT_DESC_CE_RES_7_LSB                                                   16
+#define CE_STAT_DESC_CE_RES_7_MSB                                                   19
+#define CE_STAT_DESC_CE_RES_7_MASK                                                  0x000f0000
+
+
+/* Description		RING_ID
+
+			The buffer pointer ring ID.
+			0 refers to the IDLE ring
+			1 - N refers to other rings
+			
+			Helps with debugging when dumping ring contents.
+			<legal all>
+*/
+
+#define CE_STAT_DESC_RING_ID_OFFSET                                                 0x0000000c
+#define CE_STAT_DESC_RING_ID_LSB                                                    20
+#define CE_STAT_DESC_RING_ID_MSB                                                    27
+#define CE_STAT_DESC_RING_ID_MASK                                                   0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into the Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define CE_STAT_DESC_LOOPING_COUNT_OFFSET                                           0x0000000c
+#define CE_STAT_DESC_LOOPING_COUNT_LSB                                              28
+#define CE_STAT_DESC_LOOPING_COUNT_MSB                                              31
+#define CE_STAT_DESC_LOOPING_COUNT_MASK                                             0xf0000000
+
+
+
+#endif   // CE_STAT_DESC
diff --git a/hw/qca5332/coex_rx_status.h b/hw/qca5332/coex_rx_status.h
new file mode 100644
index 0000000..43bcda7
--- /dev/null
+++ b/hw/qca5332/coex_rx_status.h
@@ -0,0 +1,383 @@
+
+/* 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 _COEX_RX_STATUS_H_
+#define _COEX_RX_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_COEX_RX_STATUS 2
+
+#define NUM_OF_QWORDS_COEX_RX_STATUS 1
+
+
+struct coex_rx_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_mac_frame_status                                     :  2, // [1:0]
+                      rx_with_tx_response                                     :  1, // [2:2]
+                      rx_rate                                                 :  5, // [7:3]
+                      rx_bw                                                   :  3, // [10:8]
+                      single_mpdu                                             :  1, // [11:11]
+                      filter_status                                           :  1, // [12:12]
+                      ampdu                                                   :  1, // [13:13]
+                      directed                                                :  1, // [14:14]
+                      reserved_0                                              :  1, // [15:15]
+                      rx_nss                                                  :  3, // [18:16]
+                      rx_rssi                                                 :  8, // [26:19]
+                      rx_type                                                 :  3, // [29:27]
+                      retry_bit_setting                                       :  1, // [30:30]
+                      more_data_bit_setting                                   :  1; // [31:31]
+             uint32_t remain_rx_packet_time                                   : 16, // [15:0]
+                      rx_remaining_fes_time                                   : 16; // [31:16]
+#else
+             uint32_t more_data_bit_setting                                   :  1, // [31:31]
+                      retry_bit_setting                                       :  1, // [30:30]
+                      rx_type                                                 :  3, // [29:27]
+                      rx_rssi                                                 :  8, // [26:19]
+                      rx_nss                                                  :  3, // [18:16]
+                      reserved_0                                              :  1, // [15:15]
+                      directed                                                :  1, // [14:14]
+                      ampdu                                                   :  1, // [13:13]
+                      filter_status                                           :  1, // [12:12]
+                      single_mpdu                                             :  1, // [11:11]
+                      rx_bw                                                   :  3, // [10:8]
+                      rx_rate                                                 :  5, // [7:3]
+                      rx_with_tx_response                                     :  1, // [2:2]
+                      rx_mac_frame_status                                     :  2; // [1:0]
+             uint32_t rx_remaining_fes_time                                   : 16, // [31:16]
+                      remain_rx_packet_time                                   : 16; // [15:0]
+#endif
+};
+
+
+/* Description		RX_MAC_FRAME_STATUS
+
+			RXPCU send this bit as 1 when it receives the begin of a
+			 frame from PHY, and it passes the address filter. RXPCUsend
+			 this bit as 0 when the frame ends. (on/off bit)
+			<enum 0     ppdu_start> start of PPDU reception. 
+			For SU: Generated the first time the MPDU header passes 
+			the address filter and is destined to this STA. 
+			For MU: Generated the first time the MPDU header from any
+			 user passes the address filter and is destined to this 
+			STA.
+			<enum 1     first_mpdu_FCS_pass> message only sent in case
+			 of A-MPDU reception.
+			For SU:  first time the FCS of an MPDU passes (and frame
+			 is destined to this device)
+			For MU:  first time the FCS of any MPDU passes (and frame
+			 is destined to this device)
+			
+			<enum 2     ppdu_end> receive of PPDU frame reception has
+			 finished 
+			<enum 3 ppdu_end_due_to_phy_nap> receive of PPDU frame reception
+			 has finished as it has been aborted due to PHY NAP generation
+			
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_OFFSET                                   0x0000000000000000
+#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_LSB                                      0
+#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_MSB                                      1
+#define COEX_RX_STATUS_RX_MAC_FRAME_STATUS_MASK                                     0x0000000000000003
+
+
+/* Description		RX_WITH_TX_RESPONSE
+
+			Field only valid when rx_mac_frame_status is first_mpdu_FCS_pass
+			 or ppdu_end.
+			
+			For SU: RXPCU set this bit to indicate it is expecting the
+			 TX to send a response after the receive. 
+			For MU: RXPCU set this bit to indicate it is expecting that
+			 at least for one of the users a response after the reception
+			 needs to be generated.
+			
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_OFFSET                                   0x0000000000000000
+#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_LSB                                      2
+#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_MSB                                      2
+#define COEX_RX_STATUS_RX_WITH_TX_RESPONSE_MASK                                     0x0000000000000004
+
+
+/* Description		RX_RATE
+
+			For SU: RXPCU send the current receive rate at the beginning
+			 of receive when rate is available from PHY. 
+			For MU: RXPCU to use the current receive rate from the first
+			 USER that triggers this TLV to be generated.
+			
+			 Field is always valid
+			
+			 <legal all>
+*/
+
+#define COEX_RX_STATUS_RX_RATE_OFFSET                                               0x0000000000000000
+#define COEX_RX_STATUS_RX_RATE_LSB                                                  3
+#define COEX_RX_STATUS_RX_RATE_MSB                                                  7
+#define COEX_RX_STATUS_RX_RATE_MASK                                                 0x00000000000000f8
+
+
+/* Description		RX_BW
+
+			Actual RX bandwidth. Not SU or MU dependent.
+			RXPCU send the current receive rate at the beginning of 
+			receive. This information is from PHY.
+			Field is always valid 
+			
+			<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 COEX_RX_STATUS_RX_BW_OFFSET                                                 0x0000000000000000
+#define COEX_RX_STATUS_RX_BW_LSB                                                    8
+#define COEX_RX_STATUS_RX_BW_MSB                                                    10
+#define COEX_RX_STATUS_RX_BW_MASK                                                   0x0000000000000700
+
+
+/* Description		SINGLE_MPDU
+
+			For SU: Once set the Received frame is a single MPDU. This
+			 can be a non-AMPDU reception or A-MPDU reception but with
+			 an EOF bit set (VHT single AMPDU).
+			For MU: RXPCU to base this on the first USER that triggers
+			 this TLV to be generated.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_SINGLE_MPDU_OFFSET                                           0x0000000000000000
+#define COEX_RX_STATUS_SINGLE_MPDU_LSB                                              11
+#define COEX_RX_STATUS_SINGLE_MPDU_MSB                                              11
+#define COEX_RX_STATUS_SINGLE_MPDU_MASK                                             0x0000000000000800
+
+
+/* Description		FILTER_STATUS
+
+			1: LMAC is interested in receiving the full packet and forward
+			 it to downstream modules. 0: LMAC is not interested in 
+			receiving the packet.
+			
+			In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,' 
+			Rx PCU will send this TLV for filtered-out packets as well, 
+			with appropriate info in the fields filter_status, AMPDU
+			 and Directed. Otherwise, and in other chips, this TLV is
+			 sent only for packets filtered in, with these fields set
+			  to zero.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_FILTER_STATUS_OFFSET                                         0x0000000000000000
+#define COEX_RX_STATUS_FILTER_STATUS_LSB                                            12
+#define COEX_RX_STATUS_FILTER_STATUS_MSB                                            12
+#define COEX_RX_STATUS_FILTER_STATUS_MASK                                           0x0000000000001000
+
+
+/* Description		AMPDU
+
+			1: Indicates received frame is an AMPDU0: indicates received
+			 frames in not an AMPDU
+			
+			In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,' 
+			Rx PCU will send this TLV for filtered-out packets as well, 
+			with appropriate info in the fields filter_status, AMPDU
+			 and Directed. Otherwise, and in other chips, this TLV is
+			 sent only for packets filtered in, with these fields set
+			 to zero.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_AMPDU_OFFSET                                                 0x0000000000000000
+#define COEX_RX_STATUS_AMPDU_LSB                                                    13
+#define COEX_RX_STATUS_AMPDU_MSB                                                    13
+#define COEX_RX_STATUS_AMPDU_MASK                                                   0x0000000000002000
+
+
+/* Description		DIRECTED
+
+			1: indicates AD1 matches our Receiver address0: indicates
+			 AD1 does not match our Receiver address
+			
+			In HastingsPrime based on the register bit 'COEX_RX_STATUS_NOFILTERIN,' 
+			Rx PCU will send this TLV for filtered-out packets as well, 
+			with appropriate info in the fields filter_status, AMPDU
+			 and Directed. Otherwise, and in other chips, this TLV is
+			 sent only for packets filtered in, with these fields set
+			 to zero.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_DIRECTED_OFFSET                                              0x0000000000000000
+#define COEX_RX_STATUS_DIRECTED_LSB                                                 14
+#define COEX_RX_STATUS_DIRECTED_MSB                                                 14
+#define COEX_RX_STATUS_DIRECTED_MASK                                                0x0000000000004000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define COEX_RX_STATUS_RESERVED_0_OFFSET                                            0x0000000000000000
+#define COEX_RX_STATUS_RESERVED_0_LSB                                               15
+#define COEX_RX_STATUS_RESERVED_0_MSB                                               15
+#define COEX_RX_STATUS_RESERVED_0_MASK                                              0x0000000000008000
+
+
+/* Description		RX_NSS
+
+			For SU: Number of spatial streams in the reception. Field
+			 is always valid
+			For MU: RXPCU to base this on the first USER that triggers
+			 this TLV to be generated.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define COEX_RX_STATUS_RX_NSS_OFFSET                                                0x0000000000000000
+#define COEX_RX_STATUS_RX_NSS_LSB                                                   16
+#define COEX_RX_STATUS_RX_NSS_MSB                                                   18
+#define COEX_RX_STATUS_RX_NSS_MASK                                                  0x0000000000070000
+
+
+/* Description		RX_RSSI
+
+			RXPCU send the current receive RSSI (from the PHYRX_RSSI_LEGACY
+			 TLV) at the beginning of reception. This is information
+			 is from PHY and is not SU or MU dependent. 
+			Field is always valid 
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_RX_RSSI_OFFSET                                               0x0000000000000000
+#define COEX_RX_STATUS_RX_RSSI_LSB                                                  19
+#define COEX_RX_STATUS_RX_RSSI_MSB                                                  26
+#define COEX_RX_STATUS_RX_RSSI_MASK                                                 0x0000000007f80000
+
+
+/* Description		RX_TYPE
+
+			For SU:  RXPCU send the current receive packet type. Field
+			 is always valid.This info is from MAC.
+			For MU: RXPCU to base this on the first USER that triggers
+			 this TLV to be generated.
+			
+			<enum 0     data >
+			<enum 1     management>
+			<enum 2     beacon>
+			<enum 3     control> For reception of RTS frame
+			<enum 4     control_response>  For reception of CTS, ACK
+			 or BA frames
+			<enum 5     others> 
+			<legal 0-5>
+*/
+
+#define COEX_RX_STATUS_RX_TYPE_OFFSET                                               0x0000000000000000
+#define COEX_RX_STATUS_RX_TYPE_LSB                                                  27
+#define COEX_RX_STATUS_RX_TYPE_MSB                                                  29
+#define COEX_RX_STATUS_RX_TYPE_MASK                                                 0x0000000038000000
+
+
+/* Description		RETRY_BIT_SETTING
+
+			For SU: Value of the retry bit in the frame control field
+			 of the first MPDU MAC header that passes the RxPCU frame
+			 filter
+			For MU: RXPCU to base this on the first USER that triggers
+			 this TLV to be generated.
+			
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_RETRY_BIT_SETTING_OFFSET                                     0x0000000000000000
+#define COEX_RX_STATUS_RETRY_BIT_SETTING_LSB                                        30
+#define COEX_RX_STATUS_RETRY_BIT_SETTING_MSB                                        30
+#define COEX_RX_STATUS_RETRY_BIT_SETTING_MASK                                       0x0000000040000000
+
+
+/* Description		MORE_DATA_BIT_SETTING
+
+			For SU: Value of the more data bit in the frame control 
+			field of the first MPDU MAC header that passes the RxPCU
+			 frame filter
+			For MU: RXPCU to base this on the first USER that triggers
+			 this TLV to be generated.
+			
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_OFFSET                                 0x0000000000000000
+#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_LSB                                    31
+#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_MSB                                    31
+#define COEX_RX_STATUS_MORE_DATA_BIT_SETTING_MASK                                   0x0000000080000000
+
+
+/* Description		REMAIN_RX_PACKET_TIME
+
+			HWSCH sends current remaining rx PPDU frame time. This time
+			 covers the entire rx_frame. This information is not in 
+			the L-SIG and we expect to get it from PHY at the start 
+			of the reception. 
+			This is not SU or MU dependent.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_OFFSET                                 0x0000000000000000
+#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_LSB                                    32
+#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_MSB                                    47
+#define COEX_RX_STATUS_REMAIN_RX_PACKET_TIME_MASK                                   0x0000ffff00000000
+
+
+/* Description		RX_REMAINING_FES_TIME
+
+			RXPCU sends the remaining time FES time the moment a frame
+			 with proper FCS is received. The time indicated is the 
+			remaining rx packet time with the duration field value added. 
+			As long as no frame with valid FCS is received, this field
+			 should be set equal to 'remain_rx_packet_time'
+			This is not SU or MU dependent.
+			<legal all>
+*/
+
+#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_OFFSET                                 0x0000000000000000
+#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_LSB                                    48
+#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_MSB                                    63
+#define COEX_RX_STATUS_RX_REMAINING_FES_TIME_MASK                                   0xffff000000000000
+
+
+
+#endif   // COEX_RX_STATUS
diff --git a/hw/qca5332/coex_tx_req.h b/hw/qca5332/coex_tx_req.h
new file mode 100644
index 0000000..ce7151e
--- /dev/null
+++ b/hw/qca5332/coex_tx_req.h
@@ -0,0 +1,490 @@
+
+/* 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 _COEX_TX_REQ_H_
+#define _COEX_TX_REQ_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_COEX_TX_REQ 4
+
+#define NUM_OF_QWORDS_COEX_TX_REQ 2
+
+
+struct coex_tx_req {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tx_pwr                                                  :  8, // [7:0]
+                      min_tx_pwr                                              :  8, // [15:8]
+                      nss                                                     :  3, // [18:16]
+                      tx_chain_mask                                           :  8, // [26:19]
+                      bw                                                      :  3, // [29:27]
+                      reserved_0                                              :  2; // [31:30]
+             uint32_t alt_tx_pwr                                              :  8, // [7:0]
+                      alt_min_tx_pwr                                          :  8, // [15:8]
+                      alt_nss                                                 :  3, // [18:16]
+                      alt_tx_chain_mask                                       :  8, // [26:19]
+                      alt_bw                                                  :  3, // [29:27]
+                      reserved_1                                              :  2; // [31:30]
+             uint32_t tx_pwr_1                                                :  8, // [7:0]
+                      alt_tx_pwr_1                                            :  8, // [15:8]
+                      wlan_request_duration                                   : 16; // [31:16]
+             uint32_t wlan_pkt_type                                           :  4, // [3:0]
+                      coex_tx_reason                                          :  2, // [5:4]
+                      response_frame_type                                     :  5, // [10:6]
+                      wlan_low_priority_slicing_allowed                       :  1, // [11:11]
+                      wlan_high_priority_slicing_allowed                      :  1, // [12:12]
+                      sch_tx_burst_ongoing                                    :  1, // [13:13]
+                      coex_tx_priority                                        :  4, // [17:14]
+                      reserved_3a                                             : 14; // [31:18]
+#else
+             uint32_t reserved_0                                              :  2, // [31:30]
+                      bw                                                      :  3, // [29:27]
+                      tx_chain_mask                                           :  8, // [26:19]
+                      nss                                                     :  3, // [18:16]
+                      min_tx_pwr                                              :  8, // [15:8]
+                      tx_pwr                                                  :  8; // [7:0]
+             uint32_t reserved_1                                              :  2, // [31:30]
+                      alt_bw                                                  :  3, // [29:27]
+                      alt_tx_chain_mask                                       :  8, // [26:19]
+                      alt_nss                                                 :  3, // [18:16]
+                      alt_min_tx_pwr                                          :  8, // [15:8]
+                      alt_tx_pwr                                              :  8; // [7:0]
+             uint32_t wlan_request_duration                                   : 16, // [31:16]
+                      alt_tx_pwr_1                                            :  8, // [15:8]
+                      tx_pwr_1                                                :  8; // [7:0]
+             uint32_t reserved_3a                                             : 14, // [31:18]
+                      coex_tx_priority                                        :  4, // [17:14]
+                      sch_tx_burst_ongoing                                    :  1, // [13:13]
+                      wlan_high_priority_slicing_allowed                      :  1, // [12:12]
+                      wlan_low_priority_slicing_allowed                       :  1, // [11:11]
+                      response_frame_type                                     :  5, // [10:6]
+                      coex_tx_reason                                          :  2, // [5:4]
+                      wlan_pkt_type                                           :  4; // [3:0]
+#endif
+};
+
+
+/* Description		TX_PWR
+
+			Default (desired) transmit parameter
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_REQ_TX_PWR_OFFSET                                                   0x0000000000000000
+#define COEX_TX_REQ_TX_PWR_LSB                                                      0
+#define COEX_TX_REQ_TX_PWR_MSB                                                      7
+#define COEX_TX_REQ_TX_PWR_MASK                                                     0x00000000000000ff
+
+
+/* Description		MIN_TX_PWR
+
+			Default (desired) transmit parameter
+			
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_REQ_MIN_TX_PWR_OFFSET                                               0x0000000000000000
+#define COEX_TX_REQ_MIN_TX_PWR_LSB                                                  8
+#define COEX_TX_REQ_MIN_TX_PWR_MSB                                                  15
+#define COEX_TX_REQ_MIN_TX_PWR_MASK                                                 0x000000000000ff00
+
+
+/* Description		NSS
+
+			Default (desired) transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define COEX_TX_REQ_NSS_OFFSET                                                      0x0000000000000000
+#define COEX_TX_REQ_NSS_LSB                                                         16
+#define COEX_TX_REQ_NSS_MSB                                                         18
+#define COEX_TX_REQ_NSS_MASK                                                        0x0000000000070000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Default (desired) transmit parameter
+			
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define COEX_TX_REQ_TX_CHAIN_MASK_OFFSET                                            0x0000000000000000
+#define COEX_TX_REQ_TX_CHAIN_MASK_LSB                                               19
+#define COEX_TX_REQ_TX_CHAIN_MASK_MSB                                               26
+#define COEX_TX_REQ_TX_CHAIN_MASK_MASK                                              0x0000000007f80000
+
+
+/* Description		BW
+
+			Default (desired) transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 COEX_TX_REQ_BW_OFFSET                                                       0x0000000000000000
+#define COEX_TX_REQ_BW_LSB                                                          27
+#define COEX_TX_REQ_BW_MSB                                                          29
+#define COEX_TX_REQ_BW_MASK                                                         0x0000000038000000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define COEX_TX_REQ_RESERVED_0_OFFSET                                               0x0000000000000000
+#define COEX_TX_REQ_RESERVED_0_LSB                                                  30
+#define COEX_TX_REQ_RESERVED_0_MSB                                                  31
+#define COEX_TX_REQ_RESERVED_0_MASK                                                 0x00000000c0000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_REQ_ALT_TX_PWR_OFFSET                                               0x0000000000000000
+#define COEX_TX_REQ_ALT_TX_PWR_LSB                                                  32
+#define COEX_TX_REQ_ALT_TX_PWR_MSB                                                  39
+#define COEX_TX_REQ_ALT_TX_PWR_MASK                                                 0x000000ff00000000
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_REQ_ALT_MIN_TX_PWR_OFFSET                                           0x0000000000000000
+#define COEX_TX_REQ_ALT_MIN_TX_PWR_LSB                                              40
+#define COEX_TX_REQ_ALT_MIN_TX_PWR_MSB                                              47
+#define COEX_TX_REQ_ALT_MIN_TX_PWR_MASK                                             0x0000ff0000000000
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define COEX_TX_REQ_ALT_NSS_OFFSET                                                  0x0000000000000000
+#define COEX_TX_REQ_ALT_NSS_LSB                                                     48
+#define COEX_TX_REQ_ALT_NSS_MSB                                                     50
+#define COEX_TX_REQ_ALT_NSS_MASK                                                    0x0007000000000000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			
+			<legal 1-255>
+*/
+
+#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_OFFSET                                        0x0000000000000000
+#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_LSB                                           51
+#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_MSB                                           58
+#define COEX_TX_REQ_ALT_TX_CHAIN_MASK_MASK                                          0x07f8000000000000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter.
+			
+			The BW of the upcoming transmission.
+			
+			<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 COEX_TX_REQ_ALT_BW_OFFSET                                                   0x0000000000000000
+#define COEX_TX_REQ_ALT_BW_LSB                                                      59
+#define COEX_TX_REQ_ALT_BW_MSB                                                      61
+#define COEX_TX_REQ_ALT_BW_MASK                                                     0x3800000000000000
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define COEX_TX_REQ_RESERVED_1_OFFSET                                               0x0000000000000000
+#define COEX_TX_REQ_RESERVED_1_LSB                                                  62
+#define COEX_TX_REQ_RESERVED_1_MSB                                                  63
+#define COEX_TX_REQ_RESERVED_1_MASK                                                 0xc000000000000000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define COEX_TX_REQ_TX_PWR_1_OFFSET                                                 0x0000000000000008
+#define COEX_TX_REQ_TX_PWR_1_LSB                                                    0
+#define COEX_TX_REQ_TX_PWR_1_MSB                                                    7
+#define COEX_TX_REQ_TX_PWR_1_MASK                                                   0x00000000000000ff
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define COEX_TX_REQ_ALT_TX_PWR_1_OFFSET                                             0x0000000000000008
+#define COEX_TX_REQ_ALT_TX_PWR_1_LSB                                                8
+#define COEX_TX_REQ_ALT_TX_PWR_1_MSB                                                15
+#define COEX_TX_REQ_ALT_TX_PWR_1_MASK                                               0x000000000000ff00
+
+
+/* Description		WLAN_REQUEST_DURATION
+
+			The amount of time PDG might use for the upcoming transmission
+			 and corresponding reception if there is one...
+			<legal all>
+*/
+
+#define COEX_TX_REQ_WLAN_REQUEST_DURATION_OFFSET                                    0x0000000000000008
+#define COEX_TX_REQ_WLAN_REQUEST_DURATION_LSB                                       16
+#define COEX_TX_REQ_WLAN_REQUEST_DURATION_MSB                                       31
+#define COEX_TX_REQ_WLAN_REQUEST_DURATION_MASK                                      0x00000000ffff0000
+
+
+/* Description		WLAN_PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define COEX_TX_REQ_WLAN_PKT_TYPE_OFFSET                                            0x0000000000000008
+#define COEX_TX_REQ_WLAN_PKT_TYPE_LSB                                               32
+#define COEX_TX_REQ_WLAN_PKT_TYPE_MSB                                               35
+#define COEX_TX_REQ_WLAN_PKT_TYPE_MASK                                              0x0000000f00000000
+
+
+/* Description		COEX_TX_REASON
+
+			<enum 0     cxc_fes_protection_frame>  RTS, CTS2Self or 
+			11h protection type transmission preceding the regular PPDU
+			 portion of the coming FES. 
+			<enum 1     cxc_fes_after_protection >  Regular PPDU transmission
+			 that follows the transmission of medium protection frames:.
+			
+			<enum 2     cxc_fes_only>  Regular PPDU transmission without
+			 preceding medium protection frame exchanges. 
+			
+			<enum 3 cxc_response_frame>  
+			HW generated response frame.
+			Details of the response frame type provided in field: Response_frame_type
+			
+			
+			<legal 0-3>
+*/
+
+#define COEX_TX_REQ_COEX_TX_REASON_OFFSET                                           0x0000000000000008
+#define COEX_TX_REQ_COEX_TX_REASON_LSB                                              36
+#define COEX_TX_REQ_COEX_TX_REASON_MSB                                              37
+#define COEX_TX_REQ_COEX_TX_REASON_MASK                                             0x0000003000000000
+
+
+/* Description		RESPONSE_FRAME_TYPE
+
+			Coex related field
+			<enum 0 Resp_Non_11ah_ACK >  
+			<enum 1 Resp_Non_11ah_BA >
+			<enum 2 Resp_Non_11ah_CTS > 
+			<enum 3 Resp_AH_NDP_CTS> 
+			<enum 4 Resp_AH_NDP_ACK>
+			<enum 5 Resp_AH_NDP_BA>
+			<enum 6 Resp_AH_NDP_MOD_ACK>
+			<enum 7 Resp_AH_Normal_ACK>
+			<enum 8 Resp_AH_Normal_BA>
+			<enum 9  Resp_RTT_ACK>
+			<enum 10 Resp_CBF_RESPONSE>
+			<enum 11 Resp_MBA>
+			<enum 12 Resp_Ranging_NDP>
+			<enum 13 Resp_LMR_RESPONSE>
+			<enum 14 Resp_TRIGGER_RESPONSE_BASIC>
+			<enum 15 Resp_TRIGGER_RESPONSE_BUF_SIZE>
+			<enum 16 Resp_TRIGGER_RESPONSE_BRPOLL>
+			<enum 17 Resp_TRIGGER_RESPONSE_CTS>
+			<enum 18 Resp_TRIGGER_RESPONSE_OTHER>
+			
+			<legal 0-18>
+*/
+
+#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_OFFSET                                      0x0000000000000008
+#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_LSB                                         38
+#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_MSB                                         42
+#define COEX_TX_REQ_RESPONSE_FRAME_TYPE_MASK                                        0x000007c000000000
+
+
+/* Description		WLAN_LOW_PRIORITY_SLICING_ALLOWED
+
+			When set, COEX is allowed to invoke 'tx slicing' algorithms
+			 when WLAN tx is low priority when compared to BT activity, 
+			to get to more optimal throughput. Value 0 will disable 
+			this feature
+			<legal all>
+*/
+
+#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_OFFSET                        0x0000000000000008
+#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_LSB                           43
+#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_MSB                           43
+#define COEX_TX_REQ_WLAN_LOW_PRIORITY_SLICING_ALLOWED_MASK                          0x0000080000000000
+
+
+/* Description		WLAN_HIGH_PRIORITY_SLICING_ALLOWED
+
+			When set, COEX is allowed to invoke 'tx slicing' algorithms
+			 when WLAN tx is high priority when compared to BT activity, 
+			to get to more optimal throughput. Value 0 will disable 
+			this feature.
+			<legal all>
+*/
+
+#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_OFFSET                       0x0000000000000008
+#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_LSB                          44
+#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_MSB                          44
+#define COEX_TX_REQ_WLAN_HIGH_PRIORITY_SLICING_ALLOWED_MASK                         0x0000100000000000
+
+
+/* Description		SCH_TX_BURST_ONGOING
+
+			0: No action
+			1: The next scheduling command needs to start at SIFS time
+			 after finishing the frame transmissions in this command. 
+			This allows for SIFS based bursting
+			<legal all>
+*/
+
+#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_OFFSET                                     0x0000000000000008
+#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_LSB                                        45
+#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_MSB                                        45
+#define COEX_TX_REQ_SCH_TX_BURST_ONGOING_MASK                                       0x0000200000000000
+
+
+/* Description		COEX_TX_PRIORITY
+
+			Transmit priority. Used for Coex weight table look up in
+			 case of regular FES transmission. This value is typically
+			 programmed in relationship to the backoff engine. In case
+			 of self_gen tx,  the value comes from a programmable register
+			 in the TXPCU. For BA and ACK packets, this is related to
+			 AC of the incoming frame. .  
+			
+			For a request type of "fes", the field is copied over from
+			 the scheduling command TLV.
+			<legal all>
+*/
+
+#define COEX_TX_REQ_COEX_TX_PRIORITY_OFFSET                                         0x0000000000000008
+#define COEX_TX_REQ_COEX_TX_PRIORITY_LSB                                            46
+#define COEX_TX_REQ_COEX_TX_PRIORITY_MSB                                            49
+#define COEX_TX_REQ_COEX_TX_PRIORITY_MASK                                           0x0003c00000000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define COEX_TX_REQ_RESERVED_3A_OFFSET                                              0x0000000000000008
+#define COEX_TX_REQ_RESERVED_3A_LSB                                                 50
+#define COEX_TX_REQ_RESERVED_3A_MSB                                                 63
+#define COEX_TX_REQ_RESERVED_3A_MASK                                                0xfffc000000000000
+
+
+
+#endif   // COEX_TX_REQ
diff --git a/hw/qca5332/coex_tx_status.h b/hw/qca5332/coex_tx_status.h
new file mode 100644
index 0000000..d923fb4
--- /dev/null
+++ b/hw/qca5332/coex_tx_status.h
@@ -0,0 +1,349 @@
+
+/* 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 _COEX_TX_STATUS_H_
+#define _COEX_TX_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_COEX_TX_STATUS 4
+
+#define NUM_OF_QWORDS_COEX_TX_STATUS 2
+
+
+struct coex_tx_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reserved_0a                                             :  7, // [6:0]
+                      tx_bw                                                   :  3, // [9:7]
+                      tx_status_reason                                        :  3, // [12:10]
+                      tx_wait_ack                                             :  1, // [13:13]
+                      fes_tx_is_gen_frame                                     :  1, // [14:14]
+                      sch_tx_burst_ongoing                                    :  1, // [15:15]
+                      current_tx_duration                                     : 16; // [31:16]
+             uint32_t next_rx_active_time                                     : 16, // [15:0]
+                      remaining_fes_time                                      : 16; // [31:16]
+             uint32_t tx_antenna_mask                                         :  8, // [7:0]
+                      shared_ant_tx_pwr                                       :  8, // [15:8]
+                      other_ant_tx_pwr                                        :  8, // [23:16]
+                      reserved_2                                              :  8; // [31:24]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t current_tx_duration                                     : 16, // [31:16]
+                      sch_tx_burst_ongoing                                    :  1, // [15:15]
+                      fes_tx_is_gen_frame                                     :  1, // [14:14]
+                      tx_wait_ack                                             :  1, // [13:13]
+                      tx_status_reason                                        :  3, // [12:10]
+                      tx_bw                                                   :  3, // [9:7]
+                      reserved_0a                                             :  7; // [6:0]
+             uint32_t remaining_fes_time                                      : 16, // [31:16]
+                      next_rx_active_time                                     : 16; // [15:0]
+             uint32_t reserved_2                                              :  8, // [31:24]
+                      other_ant_tx_pwr                                        :  8, // [23:16]
+                      shared_ant_tx_pwr                                       :  8, // [15:8]
+                      tx_antenna_mask                                         :  8; // [7:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define COEX_TX_STATUS_RESERVED_0A_OFFSET                                           0x0000000000000000
+#define COEX_TX_STATUS_RESERVED_0A_LSB                                              0
+#define COEX_TX_STATUS_RESERVED_0A_MSB                                              6
+#define COEX_TX_STATUS_RESERVED_0A_MASK                                             0x000000000000007f
+
+
+/* Description		TX_BW
+
+			The BW of the upcoming transmission.
+			Note: Coex might have changed this from the original request. 
+			See coex related fields below
+			
+			<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 COEX_TX_STATUS_TX_BW_OFFSET                                                 0x0000000000000000
+#define COEX_TX_STATUS_TX_BW_LSB                                                    7
+#define COEX_TX_STATUS_TX_BW_MSB                                                    9
+#define COEX_TX_STATUS_TX_BW_MASK                                                   0x0000000000000380
+
+
+/* Description		TX_STATUS_REASON
+
+			<enum 0     FES_tx_start> TXPCU sends this status at the
+			 start of SCH initiated transmission (when the commands 
+			are given to the PHY). This includes the transmission of
+			 RTS and CTS
+			Note that based on field 'Fes_tx_is_gen_frame' COEX can 
+			derive if this is a protection frame or regular PPDU.
+			
+			<enum 1     FES_tx_end> TXPCU sends this status at the end
+			 of SCH initiated transmission (when PHY TX has confirmed
+			 the transmit over the medium has finished)
+			
+			<enum 2     FES_end> TXPCU sends this status at the end 
+			of of the entire frame exchange sequence. This includes 
+			reception (or lack of..) of the ACK/BA/CTS frame
+			TXPCU sends this FES after it has sent the TX_FES_STATUS
+			 TLV(s). This also sent in case of 11ax basic trigger response
+			 transmissions, when an ACK/BA is expected, and that got
+			 received.
+			<enum 3     Response_tx_start> TXPCU sends this status at
+			 the start of Self gen initiated response transmission (when
+			 the commands are given to the PHY)
+			<enum 4     Response_tx_end> TXPCU sends this status at 
+			the end of Self gen initiated response transmission (when
+			 PHY TX has confirmed the transmit over the medium has finished)
+			
+			
+			<enum 5     No_tx_ongoing> TXPCU sends this TLV when forced
+			 by SW to do so. It is used to be able to get TXPCU and 
+			coex synchronized again in case of some error handling scenarios
+			
+			
+			<legal 0-5>
+*/
+
+#define COEX_TX_STATUS_TX_STATUS_REASON_OFFSET                                      0x0000000000000000
+#define COEX_TX_STATUS_TX_STATUS_REASON_LSB                                         10
+#define COEX_TX_STATUS_TX_STATUS_REASON_MSB                                         12
+#define COEX_TX_STATUS_TX_STATUS_REASON_MASK                                        0x0000000000001c00
+
+
+/* Description		TX_WAIT_ACK
+
+			Field can only be set for the 'FES_tx_end' scenario.
+			TXPCU sets this bit to 1 when it is waiting for an ACK/BA
+			 or CTS Response.
+*/
+
+#define COEX_TX_STATUS_TX_WAIT_ACK_OFFSET                                           0x0000000000000000
+#define COEX_TX_STATUS_TX_WAIT_ACK_LSB                                              13
+#define COEX_TX_STATUS_TX_WAIT_ACK_MSB                                              13
+#define COEX_TX_STATUS_TX_WAIT_ACK_MASK                                             0x0000000000002000
+
+
+/* Description		FES_TX_IS_GEN_FRAME
+
+			Field only valid in case tx_status_reason indicates FES_tx_start
+			 or FES_tx_end.
+			
+			Field is set to 1 if the frame transmitted is a self generated
+			 frame like RTS, CTS 2 self or NDP
+*/
+
+#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_OFFSET                                   0x0000000000000000
+#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_LSB                                      14
+#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_MSB                                      14
+#define COEX_TX_STATUS_FES_TX_IS_GEN_FRAME_MASK                                     0x0000000000004000
+
+
+/* Description		SCH_TX_BURST_ONGOING
+
+			The proposed change by HWSCH  requires TXPCU to reflect 
+			TX_FES_SETUP.sch_tx_burst_ongoing field intoCOEX_TX_STATUS.sch_tx_burst_ongoing
+			 field, when tx_status_reason is FES_end.
+			SCH will overwrite this bit (that is set it to 1), when 
+			TXPCU set the tx_status_reason to FES_end, and SCH determines
+			 that this FES is followed by other SIFS bursting based 
+			Scheduler commands.
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_OFFSET                                  0x0000000000000000
+#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_LSB                                     15
+#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_MSB                                     15
+#define COEX_TX_STATUS_SCH_TX_BURST_ONGOING_MASK                                    0x0000000000008000
+
+
+/* Description		CURRENT_TX_DURATION
+
+			In case of FES related transmission:
+			TXPCU sends current transmission time at the beginning of
+			 transmission. This time covers the entire (PPDU) tx_frame. 
+			This field is only valid when 'tx_status_reason' is equal
+			 to FES_tx_start or Response_tx_start. In other scenarios
+			 it is set to 0
+			In us units <legal all>
+*/
+
+#define COEX_TX_STATUS_CURRENT_TX_DURATION_OFFSET                                   0x0000000000000000
+#define COEX_TX_STATUS_CURRENT_TX_DURATION_LSB                                      16
+#define COEX_TX_STATUS_CURRENT_TX_DURATION_MSB                                      31
+#define COEX_TX_STATUS_CURRENT_TX_DURATION_MASK                                     0x00000000ffff0000
+
+
+/* Description		NEXT_RX_ACTIVE_TIME
+
+			In case of FES transmission:
+			The expected receive duration for ACK/CTS/BA frame after
+			 current transmission has finished. This field should be
+			 set at both the start and end of the transmission.  When
+			 no frame reception is expected, this field is 0 
+			
+			In case of Response transmission or Trigger Response transmission:
+			
+			The expected receive duration for upcoming reception. This
+			 field has the same value as the transmitted duration field.
+			
+			
+			Note that for this scenario, there might be an other TX 
+			generated during this specified time. It is not known to
+			 this device what the transmitter is planning to do in the
+			 remainder of the TXOP. In other words, this value represents
+			 the best guess, but might not be fully accurate.
+			
+			In us units 
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_OFFSET                                   0x0000000000000000
+#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_LSB                                      32
+#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_MSB                                      47
+#define COEX_TX_STATUS_NEXT_RX_ACTIVE_TIME_MASK                                     0x0000ffff00000000
+
+
+/* Description		REMAINING_FES_TIME
+
+			In case of FES transmission:
+			TXPCU sends the remaining FES time it expects to occupy 
+			the media.
+			At the 'FES_tx_start', this value is the current_tx_duration
+			 + value of inserted duration field.
+			At the 'FES_tx_end', this value is equal to the duration
+			 field in the just transmitted frame.
+			At the 'FES_end', this value is the remaining FES duration
+			 value. Note that this value should only be non zero in 
+			case of SIFS burting type of transmissions.
+			In case of a FES failure, like reponse frame not received, 
+			this field is set to 0
+			
+			In case of Self Gen response transmission (includes Trigger
+			 response):
+			At the 'Response_tx_start', this field has the same value
+			 as the Current_tx_duration  + inserted duration field
+			At the 'Response_tx_end', this field has the same value 
+			as the inserted duration field
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_REMAINING_FES_TIME_OFFSET                                    0x0000000000000000
+#define COEX_TX_STATUS_REMAINING_FES_TIME_LSB                                       48
+#define COEX_TX_STATUS_REMAINING_FES_TIME_MSB                                       63
+#define COEX_TX_STATUS_REMAINING_FES_TIME_MASK                                      0xffff000000000000
+
+
+/* Description		TX_ANTENNA_MASK
+
+			The actual used antennas for this transmission
+			
+			For debug purpose only. PDG should not have modified the
+			 value given by the Coex.
+			
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_TX_ANTENNA_MASK_OFFSET                                       0x0000000000000008
+#define COEX_TX_STATUS_TX_ANTENNA_MASK_LSB                                          0
+#define COEX_TX_STATUS_TX_ANTENNA_MASK_MSB                                          7
+#define COEX_TX_STATUS_TX_ANTENNA_MASK_MASK                                         0x00000000000000ff
+
+
+/* Description		SHARED_ANT_TX_PWR
+
+			Actual tx power on the shared antenna
+			TXPCU sends at the beginning of transmission when tx_frame
+			 is on. 
+			
+			For debug purpose only. PDG should not have modified the
+			 value given by the Coex.
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_OFFSET                                     0x0000000000000008
+#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_LSB                                        8
+#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_MSB                                        15
+#define COEX_TX_STATUS_SHARED_ANT_TX_PWR_MASK                                       0x000000000000ff00
+
+
+/* Description		OTHER_ANT_TX_PWR
+
+			Actual tx power on the 'unshared' antenna(s)
+			TXPCU sends at the beginning of transmission when tx_frame
+			 is on.
+			
+			For debug purpose only. PDG should not have modified the
+			 value given by the Coex.
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_OFFSET                                      0x0000000000000008
+#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_LSB                                         16
+#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_MSB                                         23
+#define COEX_TX_STATUS_OTHER_ANT_TX_PWR_MASK                                        0x0000000000ff0000
+
+
+/* Description		RESERVED_2
+
+			Generator should set to 0, consumer shall ignore <legal 
+			0>
+*/
+
+#define COEX_TX_STATUS_RESERVED_2_OFFSET                                            0x0000000000000008
+#define COEX_TX_STATUS_RESERVED_2_LSB                                               24
+#define COEX_TX_STATUS_RESERVED_2_MSB                                               31
+#define COEX_TX_STATUS_RESERVED_2_MASK                                              0x00000000ff000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define COEX_TX_STATUS_TLV64_PADDING_OFFSET                                         0x0000000000000008
+#define COEX_TX_STATUS_TLV64_PADDING_LSB                                            32
+#define COEX_TX_STATUS_TLV64_PADDING_MSB                                            63
+#define COEX_TX_STATUS_TLV64_PADDING_MASK                                           0xffffffff00000000
+
+
+
+#endif   // COEX_TX_STATUS
diff --git a/hw/qca5332/com_dtypes.h b/hw/qca5332/com_dtypes.h
new file mode 100644
index 0000000..19e8e5d
--- /dev/null
+++ b/hw/qca5332/com_dtypes.h
@@ -0,0 +1,241 @@
+
+/* 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 COM_DTYPES_H
+#define COM_DTYPES_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For NT apps we want to use the Win32 definitions and/or those
+ supplied by the Win32 compiler for things like NULL, MAX, MIN
+ abs, labs, etc.
+*/
+#ifdef T_WINNT
+   #ifndef WIN32
+      #define WIN32
+   #endif
+   #include <stdlib.h>
+#endif
+
+/* ------------------------------------------------------------------------
+** Constants
+** ------------------------------------------------------------------------ */
+
+#ifdef TRUE
+#undef TRUE
+#endif
+
+#ifdef FALSE
+#undef FALSE
+#endif
+
+/** @addtogroup utils_services
+@{ */
+
+/** @name Macros for Common Data Types
+@{ */
+#define TRUE   1   /**< Boolean TRUE value. */
+#define FALSE  0   /**< Boolean FALSE value. */
+
+#define  ON   1    /**< ON value. */
+#define  OFF  0    /**< OFF value. */
+
+#ifndef NULL
+  #define NULL  0  /**< NULL value. */  
+#endif
+/** @} */ /* end_name_group Macros for Common Data Types */
+
+/* -----------------------------------------------------------------------
+** Standard Types
+** ----------------------------------------------------------------------- */
+
+/** @} */ /* end_addtogroup utils_services */
+
+/* The following definitions are the same across platforms.  This first
+ group are the sanctioned types.
+*/
+#ifndef _ARM_ASM_
+#ifndef _BOOLEAN_DEFINED
+
+/** @addtogroup utils_services
+@{ */
+/** Boolean value type. 
+*/
+typedef  unsigned char      boolean;     
+#define _BOOLEAN_DEFINED
+#endif
+
+/** @cond 
+*/
+#if defined(DALSTDDEF_H) /* guards against a known re-definer */
+#define _BOOLEAN_DEFINED
+#define _UINT32_DEFINED
+#define _UINT16_DEFINED
+#define _UINT8_DEFINED
+#define _INT32_DEFINED
+#define _INT16_DEFINED
+#define _INT8_DEFINED
+#define _UINT64_DEFINED
+#define _INT64_DEFINED
+#define _BYTE_DEFINED
+#endif /* #if !defined(DALSTDDEF_H) */
+/** @endcond */
+
+#ifndef _UINT32_DEFINED
+/** Unsigned 32-bit value.
+*/
+typedef  unsigned int  uint32;      
+#define _UINT32_DEFINED
+#endif
+
+#ifndef _UINT16_DEFINED
+/** Unsigned 16-bit value.
+*/
+typedef  unsigned short     uint16;      
+#define _UINT16_DEFINED
+#endif
+
+#ifndef _UINT8_DEFINED
+/** Unsigned 8-bit value. 
+*/
+typedef  unsigned char      uint8;       
+#define _UINT8_DEFINED
+#endif
+
+#ifndef _INT32_DEFINED
+/** Signed 32-bit value.
+*/
+typedef  signed int    int32;
+#define _INT32_DEFINED
+#endif
+
+#ifndef _INT16_DEFINED
+/** Signed 16-bit value.
+*/
+typedef  signed short       int16;
+#define _INT16_DEFINED
+#endif
+
+#ifndef _INT8_DEFINED
+/** Signed 8-bit value.
+*/
+typedef  signed char        int8;        
+#define _INT8_DEFINED
+#endif
+
+/** @cond
+*/
+/* This group are the deprecated types.  Their use should be
+** discontinued and new code should use the types above
+*/
+#ifndef _BYTE_DEFINED
+/** DEPRECATED: Unsigned 8  bit value type.
+*/
+typedef  unsigned char      byte;         
+#define  _BYTE_DEFINED
+#endif
+
+/** DEPRECATED: Unsinged 16 bit value type.
+*/
+typedef  unsigned short     word;
+/** DEPRECATED: Unsigned 32 bit value type.
+*/
+typedef  unsigned long      dword;        
+
+/** DEPRECATED: Unsigned 8  bit value type.
+*/
+typedef  unsigned char      uint1;
+/** DEPRECATED: Unsigned 16 bit value type.
+*/
+typedef  unsigned short     uint2;
+/** DEPRECATED: Unsigned 32 bit value type.
+*/
+typedef  unsigned long      uint4;        
+
+/** DEPRECATED: Signed 8  bit value type. 
+*/
+typedef  signed char        int1;
+/** DEPRECATED: Signed 16 bit value type.
+*/         
+typedef  signed short       int2;
+/** DEPRECATED: Signed 32 bit value type. 
+*/     
+typedef  long int           int4;         
+
+/** DEPRECATED: Signed 32 bit value.
+*/
+typedef  signed long        sint31;
+/** DEPRECATED: Signed 16 bit value. 
+*/       
+typedef  signed short       sint15;
+/** DEPRECATED: Signed 8  bit value.
+*/       
+typedef  signed char        sint7; 
+
+typedef uint16 UWord16 ;
+typedef uint32 UWord32 ;
+typedef int32  Word32 ;
+typedef int16  Word16 ;
+typedef uint8  UWord8 ;
+typedef int8   Word8 ;
+typedef int32  Vect32 ;
+/** @endcond */
+
+#if (! defined T_WINNT) && (! defined __GNUC__)
+  /* Non WinNT Targets */
+  #ifndef _INT64_DEFINED
+    /** Signed 64-bit value.
+	*/
+    typedef long long     int64;       
+    #define _INT64_DEFINED
+  #endif
+  #ifndef _UINT64_DEFINED
+    /** Unsigned 64-bit value.
+	*/
+    typedef  unsigned long long  uint64;      
+    #define _UINT64_DEFINED
+  #endif
+#else /* T_WINNT || TARGET_OS_SOLARIS || __GNUC__ */
+  /* WINNT or SOLARIS based targets */
+  #if (defined __GNUC__) 
+    #ifndef _INT64_DEFINED
+      typedef long long           int64;
+      #define _INT64_DEFINED
+    #endif
+    #ifndef _UINT64_DEFINED
+      typedef unsigned long long  uint64;
+      #define _UINT64_DEFINED
+    #endif
+  #else
+    typedef  __int64              int64;       /* Signed 64-bit value */
+    #ifndef _UINT64_DEFINED
+      typedef  unsigned __int64   uint64;      /* Unsigned 64-bit value */
+      #define _UINT64_DEFINED
+    #endif
+  #endif
+#endif /* T_WINNT */
+
+#endif /* _ARM_ASM_ */
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */ /* end_addtogroup utils_services */
+#endif  /* COM_DTYPES_H */
diff --git a/hw/qca5332/eht_sig_usr_mu_mimo_info.h b/hw/qca5332/eht_sig_usr_mu_mimo_info.h
new file mode 100644
index 0000000..2c0fb98
--- /dev/null
+++ b/hw/qca5332/eht_sig_usr_mu_mimo_info.h
@@ -0,0 +1,228 @@
+
+/* 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 _EHT_SIG_USR_MU_MIMO_INFO_H_
+#define _EHT_SIG_USR_MU_MIMO_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_MU_MIMO_INFO 2
+
+
+struct eht_sig_usr_mu_mimo_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11, // [10:0]
+                      sta_mcs                                                 :  4, // [14:11]
+                      sta_coding                                              :  1, // [15:15]
+                      sta_spatial_config                                      :  6, // [21:16]
+                      reserved_0a                                             :  1, // [22:22]
+                      rx_integrity_check_passed                               :  1, // [23:23]
+                      subband80_cc_mask                                       :  8; // [31:24]
+             uint32_t user_order_subband80_0                                  :  8, // [7:0]
+                      user_order_subband80_1                                  :  8, // [15:8]
+                      user_order_subband80_2                                  :  8, // [23:16]
+                      user_order_subband80_3                                  :  8; // [31:24]
+#else
+             uint32_t subband80_cc_mask                                       :  8, // [31:24]
+                      rx_integrity_check_passed                               :  1, // [23:23]
+                      reserved_0a                                             :  1, // [22:22]
+                      sta_spatial_config                                      :  6, // [21:16]
+                      sta_coding                                              :  1, // [15:15]
+                      sta_mcs                                                 :  4, // [14:11]
+                      sta_id                                                  : 11; // [10:0]
+             uint32_t user_order_subband80_3                                  :  8, // [31:24]
+                      user_order_subband80_2                                  :  8, // [23:16]
+                      user_order_subband80_1                                  :  8, // [15:8]
+                      user_order_subband80_0                                  :  8; // [7:0]
+#endif
+};
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_OFFSET                                      0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_LSB                                         0
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MSB                                         10
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MASK                                        0x000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: validate
+			15: MCS 0 with DCM
+			<legal 0-13, 15>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_OFFSET                                     0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_LSB                                        11
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MSB                                        14
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MASK                                       0x00007800
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_OFFSET                                  0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_LSB                                     15
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MSB                                     15
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MASK                                    0x00008000
+
+
+/* Description		STA_SPATIAL_CONFIG
+
+			Number of assigned spatial streams and their corresponding
+			 index. 
+			Total number of spatial streams assigned for the MU-MIMO
+			 allocation is also signaled. 
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_OFFSET                          0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_LSB                             16
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MSB                             21
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MASK                            0x003f0000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_OFFSET                                 0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_LSB                                    22
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MSB                                    22
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MASK                                   0x00400000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                   0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                      23
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                      23
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                     0x00800000
+
+
+/* Description		SUBBAND80_CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channels of what 80 MHz 
+			subbands this User field can go to
+			Bit 0: lowest 80 MHz content channel 0
+			Bit 1: lowest 80 MHz content channel 1
+			Bit 2: 2nd lowest 80 MHz content channel 0
+			...
+			Bit 7: highest 80 MHz content channel 1
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_OFFSET                           0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_LSB                              24
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MSB                              31
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MASK                             0xff000000
+
+
+/* Description		USER_ORDER_SUBBAND80_0
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the lowest
+			 80 MHz
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_LSB                         0
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MSB                         7
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MASK                        0x000000ff
+
+
+/* Description		USER_ORDER_SUBBAND80_1
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 lowest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_LSB                         8
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MSB                         15
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MASK                        0x0000ff00
+
+
+/* Description		USER_ORDER_SUBBAND80_2
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 highest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_LSB                         16
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MSB                         23
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MASK                        0x00ff0000
+
+
+/* Description		USER_ORDER_SUBBAND80_3
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the highest
+			 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_LSB                         24
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MSB                         31
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MASK                        0xff000000
+
+
+
+#endif   // EHT_SIG_USR_MU_MIMO_INFO
diff --git a/hw/qca5332/eht_sig_usr_ofdma_info.h b/hw/qca5332/eht_sig_usr_ofdma_info.h
new file mode 100644
index 0000000..ae6ddde
--- /dev/null
+++ b/hw/qca5332/eht_sig_usr_ofdma_info.h
@@ -0,0 +1,259 @@
+
+/* 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 _EHT_SIG_USR_OFDMA_INFO_H_
+#define _EHT_SIG_USR_OFDMA_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_OFDMA_INFO 2
+
+
+struct eht_sig_usr_ofdma_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11, // [10:0]
+                      sta_mcs                                                 :  4, // [14:11]
+                      validate_0a                                             :  1, // [15:15]
+                      nss                                                     :  4, // [19:16]
+                      txbf                                                    :  1, // [20:20]
+                      sta_coding                                              :  1, // [21:21]
+                      reserved_0b                                             :  1, // [22:22]
+                      rx_integrity_check_passed                               :  1, // [23:23]
+                      subband80_cc_mask                                       :  8; // [31:24]
+             uint32_t user_order_subband80_0                                  :  8, // [7:0]
+                      user_order_subband80_1                                  :  8, // [15:8]
+                      user_order_subband80_2                                  :  8, // [23:16]
+                      user_order_subband80_3                                  :  8; // [31:24]
+#else
+             uint32_t subband80_cc_mask                                       :  8, // [31:24]
+                      rx_integrity_check_passed                               :  1, // [23:23]
+                      reserved_0b                                             :  1, // [22:22]
+                      sta_coding                                              :  1, // [21:21]
+                      txbf                                                    :  1, // [20:20]
+                      nss                                                     :  4, // [19:16]
+                      validate_0a                                             :  1, // [15:15]
+                      sta_mcs                                                 :  4, // [14:11]
+                      sta_id                                                  : 11; // [10:0]
+             uint32_t user_order_subband80_3                                  :  8, // [31:24]
+                      user_order_subband80_2                                  :  8, // [23:16]
+                      user_order_subband80_1                                  :  8, // [15:8]
+                      user_order_subband80_0                                  :  8; // [7:0]
+#endif
+};
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_OFFSET                                        0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_LSB                                           0
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MSB                                           10
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MASK                                          0x000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: validate
+			15: MCS 0 with DCM
+			<legal 0-13, 15>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_OFFSET                                       0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_LSB                                          11
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MSB                                          14
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MASK                                         0x00007800
+
+
+/* Description		VALIDATE_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_OFFSET                                   0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_LSB                                      15
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MSB                                      15
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MASK                                     0x00008000
+
+
+/* Description		NSS
+
+			Number of spatial streams for this user
+			
+			The actual number of streams is 1 larger than indicated 
+			in this field.
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_NSS_OFFSET                                           0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_NSS_LSB                                              16
+#define EHT_SIG_USR_OFDMA_INFO_NSS_MSB                                              19
+#define EHT_SIG_USR_OFDMA_INFO_NSS_MASK                                             0x000f0000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_OFFSET                                          0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_LSB                                             20
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_MSB                                             20
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_MASK                                            0x00100000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_OFFSET                                    0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_LSB                                       21
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MSB                                       21
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MASK                                      0x00200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_OFFSET                                   0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_LSB                                      22
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MSB                                      22
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MASK                                     0x00400000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                     0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                        23
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                        23
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                       0x00800000
+
+
+/* Description		SUBBAND80_CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channels of what 80 MHz 
+			subbands this User field can go to
+			Bit 0: lowest 80 MHz content channel 0
+			Bit 1: lowest 80 MHz content channel 1
+			Bit 2: 2nd lowest 80 MHz content channel 0
+			...
+			Bit 7: highest 80 MHz content channel 1
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_OFFSET                             0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_LSB                                24
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MSB                                31
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MASK                               0xff000000
+
+
+/* Description		USER_ORDER_SUBBAND80_0
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the lowest
+			 80 MHz
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_LSB                           0
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MSB                           7
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MASK                          0x000000ff
+
+
+/* Description		USER_ORDER_SUBBAND80_1
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 lowest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_LSB                           8
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MSB                           15
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MASK                          0x0000ff00
+
+
+/* Description		USER_ORDER_SUBBAND80_2
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 highest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_LSB                           16
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MSB                           23
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MASK                          0x00ff0000
+
+
+/* Description		USER_ORDER_SUBBAND80_3
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the highest
+			 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_LSB                           24
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MSB                           31
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MASK                          0xff000000
+
+
+
+#endif   // EHT_SIG_USR_OFDMA_INFO
diff --git a/hw/qca5332/eht_sig_usr_su_info.h b/hw/qca5332/eht_sig_usr_su_info.h
new file mode 100644
index 0000000..e0353f1
--- /dev/null
+++ b/hw/qca5332/eht_sig_usr_su_info.h
@@ -0,0 +1,168 @@
+
+/* 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 _EHT_SIG_USR_SU_INFO_H_
+#define _EHT_SIG_USR_SU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_SU_INFO 1
+
+
+struct eht_sig_usr_su_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11, // [10:0]
+                      sta_mcs                                                 :  4, // [14:11]
+                      validate_0a                                             :  1, // [15:15]
+                      nss                                                     :  4, // [19:16]
+                      txbf                                                    :  1, // [20:20]
+                      sta_coding                                              :  1, // [21:21]
+                      reserved_0b                                             :  9, // [30:22]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_0b                                             :  9, // [30:22]
+                      sta_coding                                              :  1, // [21:21]
+                      txbf                                                    :  1, // [20:20]
+                      nss                                                     :  4, // [19:16]
+                      validate_0a                                             :  1, // [15:15]
+                      sta_mcs                                                 :  4, // [14:11]
+                      sta_id                                                  : 11; // [10:0]
+#endif
+};
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define EHT_SIG_USR_SU_INFO_STA_ID_OFFSET                                           0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_ID_LSB                                              0
+#define EHT_SIG_USR_SU_INFO_STA_ID_MSB                                              10
+#define EHT_SIG_USR_SU_INFO_STA_ID_MASK                                             0x000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: MCS 0 with DCM and 2x duplicate
+			15: MCS 0 with DCM
+			<legal all>
+*/
+
+#define EHT_SIG_USR_SU_INFO_STA_MCS_OFFSET                                          0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_MCS_LSB                                             11
+#define EHT_SIG_USR_SU_INFO_STA_MCS_MSB                                             14
+#define EHT_SIG_USR_SU_INFO_STA_MCS_MASK                                            0x00007800
+
+
+/* Description		VALIDATE_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_OFFSET                                      0x00000000
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_LSB                                         15
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MSB                                         15
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MASK                                        0x00008000
+
+
+/* Description		NSS
+
+			Number of spatial streams for this user
+			
+			The actual number of streams is 1 larger than indicated 
+			in this field.
+			<legal all>
+*/
+
+#define EHT_SIG_USR_SU_INFO_NSS_OFFSET                                              0x00000000
+#define EHT_SIG_USR_SU_INFO_NSS_LSB                                                 16
+#define EHT_SIG_USR_SU_INFO_NSS_MSB                                                 19
+#define EHT_SIG_USR_SU_INFO_NSS_MASK                                                0x000f0000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define EHT_SIG_USR_SU_INFO_TXBF_OFFSET                                             0x00000000
+#define EHT_SIG_USR_SU_INFO_TXBF_LSB                                                20
+#define EHT_SIG_USR_SU_INFO_TXBF_MSB                                                20
+#define EHT_SIG_USR_SU_INFO_TXBF_MASK                                               0x00100000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define EHT_SIG_USR_SU_INFO_STA_CODING_OFFSET                                       0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_CODING_LSB                                          21
+#define EHT_SIG_USR_SU_INFO_STA_CODING_MSB                                          21
+#define EHT_SIG_USR_SU_INFO_STA_CODING_MASK                                         0x00200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_OFFSET                                      0x00000000
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_LSB                                         22
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MSB                                         30
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MASK                                        0x7fc00000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000000
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif   // EHT_SIG_USR_SU_INFO
diff --git a/hw/qca5332/expected_response.h b/hw/qca5332/expected_response.h
new file mode 100644
index 0000000..1c3bb16
--- /dev/null
+++ b/hw/qca5332/expected_response.h
@@ -0,0 +1,716 @@
+
+/* 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 _EXPECTED_RESPONSE_H_
+#define _EXPECTED_RESPONSE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EXPECTED_RESPONSE 6
+
+#define NUM_OF_QWORDS_EXPECTED_RESPONSE 3
+
+
+struct expected_response {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tx_ad2_31_0                                             : 32; // [31:0]
+             uint32_t tx_ad2_47_32                                            : 16, // [15:0]
+                      expected_response_type                                  :  5, // [20:16]
+                      response_to_response                                    :  3, // [23:21]
+                      su_ba_user_number                                       :  1, // [24:24]
+                      response_info_part2_required                            :  1, // [25:25]
+                      transmitted_bssid_check_en                              :  1, // [26:26]
+                      reserved_1                                              :  5; // [31:27]
+             uint32_t ndp_sta_partial_aid_2_8_0                               : 11, // [10:0]
+                      reserved_2                                              : 10, // [20:11]
+                      ndp_sta_partial_aid1_8_0                                : 11; // [31:21]
+             uint32_t ast_index                                               : 16, // [15:0]
+                      capture_ack_ba_sounding                                 :  1, // [16:16]
+                      capture_sounding_1str_20mhz                             :  1, // [17:17]
+                      capture_sounding_1str_40mhz                             :  1, // [18:18]
+                      capture_sounding_1str_80mhz                             :  1, // [19:19]
+                      capture_sounding_1str_160mhz                            :  1, // [20:20]
+                      capture_sounding_1str_240mhz                            :  1, // [21:21]
+                      capture_sounding_1str_320mhz                            :  1, // [22:22]
+                      reserved_3a                                             :  9; // [31:23]
+             uint32_t fcs                                                     :  9, // [8:0]
+                      reserved_4a                                             :  1, // [9:9]
+                      crc                                                     :  4, // [13:10]
+                      scrambler_seed                                          :  7, // [20:14]
+                      reserved_4b                                             : 11; // [31:21]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t tx_ad2_31_0                                             : 32; // [31:0]
+             uint32_t reserved_1                                              :  5, // [31:27]
+                      transmitted_bssid_check_en                              :  1, // [26:26]
+                      response_info_part2_required                            :  1, // [25:25]
+                      su_ba_user_number                                       :  1, // [24:24]
+                      response_to_response                                    :  3, // [23:21]
+                      expected_response_type                                  :  5, // [20:16]
+                      tx_ad2_47_32                                            : 16; // [15:0]
+             uint32_t ndp_sta_partial_aid1_8_0                                : 11, // [31:21]
+                      reserved_2                                              : 10, // [20:11]
+                      ndp_sta_partial_aid_2_8_0                               : 11; // [10:0]
+             uint32_t reserved_3a                                             :  9, // [31:23]
+                      capture_sounding_1str_320mhz                            :  1, // [22:22]
+                      capture_sounding_1str_240mhz                            :  1, // [21:21]
+                      capture_sounding_1str_160mhz                            :  1, // [20:20]
+                      capture_sounding_1str_80mhz                             :  1, // [19:19]
+                      capture_sounding_1str_40mhz                             :  1, // [18:18]
+                      capture_sounding_1str_20mhz                             :  1, // [17:17]
+                      capture_ack_ba_sounding                                 :  1, // [16:16]
+                      ast_index                                               : 16; // [15:0]
+             uint32_t reserved_4b                                             : 11, // [31:21]
+                      scrambler_seed                                          :  7, // [20:14]
+                      crc                                                     :  4, // [13:10]
+                      reserved_4a                                             :  1, // [9:9]
+                      fcs                                                     :  9; // [8:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		TX_AD2_31_0
+
+			Lower 32 bits of the transmitter address (AD2) of the last
+			 packet which was transmitted, which is used by RXPCU in
+			 Proxy STA mode.
+*/
+
+#define EXPECTED_RESPONSE_TX_AD2_31_0_OFFSET                                        0x0000000000000000
+#define EXPECTED_RESPONSE_TX_AD2_31_0_LSB                                           0
+#define EXPECTED_RESPONSE_TX_AD2_31_0_MSB                                           31
+#define EXPECTED_RESPONSE_TX_AD2_31_0_MASK                                          0x00000000ffffffff
+
+
+/* Description		TX_AD2_47_32
+
+			Upper 16 bits of the transmitter address (AD2) of the last
+			 packet which was transmitted, which is used by RXPCU in
+			 Proxy STA mode.
+*/
+
+#define EXPECTED_RESPONSE_TX_AD2_47_32_OFFSET                                       0x0000000000000000
+#define EXPECTED_RESPONSE_TX_AD2_47_32_LSB                                          32
+#define EXPECTED_RESPONSE_TX_AD2_47_32_MSB                                          47
+#define EXPECTED_RESPONSE_TX_AD2_47_32_MASK                                         0x0000ffff00000000
+
+
+/* Description		EXPECTED_RESPONSE_TYPE
+
+			Provides insight for RXPCU of what type of response is expected
+			 in the medium. 
+			
+			Mainly used for debugging purposes.
+			
+			No matter what RXPCU receives, it shall always report it
+			 to TXPCU.
+			
+			Only special scenario where RXPCU will have to generate 
+			a RECEIVED_RESPONSE_INFO TLV , even when no actual MPDU 
+			with passing FCS was received is when the response_type 
+			is set to: frameless_phyrx_response_accepted
+			
+			<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 EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_OFFSET                             0x0000000000000000
+#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_LSB                                48
+#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MSB                                52
+#define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MASK                               0x001f000000000000
+
+
+/* Description		RESPONSE_TO_RESPONSE
+
+			Field indicates if after receiving the PPDU response (indicated
+			 in the field above), TXPCU is expected to generate a reponse
+			 to the response
+			
+			In case a response to response is expected, RXPCU shall 
+			first acknowledge the proper reception of the received frames, 
+			so that TXPCU can first wrapup that portion of the FES.
+			
+			<enum 0 None> No response after response allowed.
+			<enum 1 SU_BA> The response after response that TXPCU is
+			 allowed to generate is a single BA. Even if RXPCU is indicating
+			 that multiple users are received, TXPCU shall only send
+			 a BA for 1 STA. Response_to_response rates can be found
+			 in fields 'response_to_response_rate_info_bw...'
+			<enum 2 MU_BA> The response after response that TXPCU is
+			 allowed to generate is only Multi Destination Multi User
+			 BA. Response_to_response rates can be found in fields 'response_to_response_rate_info_bw...'
+			
+			
+			<enum 3 RESPONSE_TO_RESPONSE_CMD> A response to response
+			 is expected to be generated. In other words, RXPCU will
+			 likely indicate to TXPCU at the end of upcoming reception
+			 that a response is needed. TXPCU is however to ignore this
+			 indication from RXPCU, and assume for a moment that no 
+			response to response is needed, as all the details on how
+			 to handle this is provided in the next scheduling command, 
+			which is marked as a 'response_to_response' type.
+			
+			<legal    0-3>
+*/
+
+#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_OFFSET                               0x0000000000000000
+#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_LSB                                  53
+#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MSB                                  55
+#define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MASK                                 0x00e0000000000000
+
+
+/* Description		SU_BA_USER_NUMBER
+
+			Field only valid when Response_to_response is SU_BA
+			
+			Indicates the user number of which the BA will be send after
+			 receiving the uplink OFDMA.
+*/
+
+#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_OFFSET                                  0x0000000000000000
+#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_LSB                                     56
+#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MSB                                     56
+#define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MASK                                    0x0100000000000000
+
+
+/* Description		RESPONSE_INFO_PART2_REQUIRED
+
+			Field only valid when Response_type  is NOT set to No_response_expected
+			 
+			
+			When set to 1, RXPCU shall generate the  RECEIVED_RESPONSE_INFO_PART2
+			 TLV after having received the response frame. TXPCU shall
+			 wait for this TLV before sending the TX_FES_STATUS_END 
+			TLV.
+			
+			When NOT set, RXPCU shall NOT generate the above mentioned
+			 TLV. TXPCU shall not wait for this TLV and after having
+			 received  RECEIVED_RESPONSE_INFO  TLV, it can immediately
+			 generate the TX_FES_STATUS_END TLV.
+			
+			<legal all>
+*/
+
+#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_OFFSET                       0x0000000000000000
+#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_LSB                          57
+#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MSB                          57
+#define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MASK                         0x0200000000000000
+
+
+/* Description		TRANSMITTED_BSSID_CHECK_EN
+
+			When set to 1, RXPCU shall assume group addressed frame 
+			with Tx_AD2 equal to TBSSID was sent. RxPCU should properly
+			 handle receive frame(s) from STA(s) which A1 is TBSSID 
+			or any VAPs.When NOT set, RXPCU shall compare received frame's
+			 A1 with Tx_AD2 only.
+			<legal all>
+*/
+
+#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_OFFSET                         0x0000000000000000
+#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_LSB                            58
+#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MSB                            58
+#define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MASK                           0x0400000000000000
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define EXPECTED_RESPONSE_RESERVED_1_OFFSET                                         0x0000000000000000
+#define EXPECTED_RESPONSE_RESERVED_1_LSB                                            59
+#define EXPECTED_RESPONSE_RESERVED_1_MSB                                            63
+#define EXPECTED_RESPONSE_RESERVED_1_MASK                                           0xf800000000000000
+
+
+/* Description		NDP_STA_PARTIAL_AID_2_8_0
+
+			This field is applicable only in 11ah mode of operation. 
+			This field carries the information needed for RxPCU to qualify
+			 valid NDP-CTS
+			
+			When an RTS is being transmitted, this field  provides the
+			 partial AID of STA/BSSID of the transmitter,so the received
+			 RA/BSSID of the NDP CTS response frame can be compared 
+			to validate it. This value is provided by SW for valiadating
+			 the NDP CTS. 
+			
+			This filed also carries information for TA of the NDP Modified
+			 ACK when an NDP PS-Poll is transmitted. 
+*/
+
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_OFFSET                          0x0000000000000008
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_LSB                             0
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MSB                             10
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MASK                            0x00000000000007ff
+
+
+/* Description		RESERVED_2
+
+			Reserved: Generator should set to 0, consumer shall ignore
+			 <legal 0>
+*/
+
+#define EXPECTED_RESPONSE_RESERVED_2_OFFSET                                         0x0000000000000008
+#define EXPECTED_RESPONSE_RESERVED_2_LSB                                            11
+#define EXPECTED_RESPONSE_RESERVED_2_MSB                                            20
+#define EXPECTED_RESPONSE_RESERVED_2_MASK                                           0x00000000001ff800
+
+
+/* Description		NDP_STA_PARTIAL_AID1_8_0
+
+			This field is applicable only in 11ah mode of operation. 
+			This field carries the information needed for RxPCU to qualify
+			 valid NDP Modified ACK
+			
+			TxPCU provides the partial AID (RA) of the NDP PS-Poll frame. 
+			
+*/
+
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_OFFSET                           0x0000000000000008
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_LSB                              21
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MSB                              31
+#define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MASK                             0x00000000ffe00000
+
+
+/* Description		AST_INDEX
+
+			The AST index of the receive Ack/BA.  This information is
+			 provided from the TXPCU to the RXPCU for receive Ack/BA.
+			
+*/
+
+#define EXPECTED_RESPONSE_AST_INDEX_OFFSET                                          0x0000000000000008
+#define EXPECTED_RESPONSE_AST_INDEX_LSB                                             32
+#define EXPECTED_RESPONSE_AST_INDEX_MSB                                             47
+#define EXPECTED_RESPONSE_AST_INDEX_MASK                                            0x0000ffff00000000
+
+
+/* Description		CAPTURE_ACK_BA_SOUNDING
+
+			If set enables capture of 1str and 2str sounding on Ack 
+			or BA as long as the corresponding capture_sounding_1str_##mhz
+			 bits is set.
+			
+			If clear the capture of sounding on Ack or BA is disabled
+			 even if the corresponding capture_sounding_1str_##mhz is
+			 set.
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_OFFSET                            0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_LSB                               48
+#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MSB                               48
+#define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MASK                              0x0001000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_20MHZ
+
+			Capture sounding for 1 stream 20 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_OFFSET                        0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_LSB                           49
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MSB                           49
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MASK                          0x0002000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_40MHZ
+
+			Capture sounding for 1 stream 40 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_OFFSET                        0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_LSB                           50
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MSB                           50
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MASK                          0x0004000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_80MHZ
+
+			Capture sounding for 1 stream 80 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_OFFSET                        0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_LSB                           51
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MSB                           51
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MASK                          0x0008000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_160MHZ
+
+			Capture sounding for 1 stream 160 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_OFFSET                       0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_LSB                          52
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MSB                          52
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MASK                         0x0010000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_240MHZ
+
+			Capture sounding for 1 stream 240 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_OFFSET                       0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_LSB                          53
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MSB                          53
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MASK                         0x0020000000000000
+
+
+/* Description		CAPTURE_SOUNDING_1STR_320MHZ
+
+			Capture sounding for 1 stream 320 MHz receive packets
+*/
+
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_OFFSET                       0x0000000000000008
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_LSB                          54
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MSB                          54
+#define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MASK                         0x0040000000000000
+
+
+/* Description		RESERVED_3A
+
+			Reserved: Generator should set to 0, consumer shall ignore
+			 <legal 0>
+*/
+
+#define EXPECTED_RESPONSE_RESERVED_3A_OFFSET                                        0x0000000000000008
+#define EXPECTED_RESPONSE_RESERVED_3A_LSB                                           55
+#define EXPECTED_RESPONSE_RESERVED_3A_MSB                                           63
+#define EXPECTED_RESPONSE_RESERVED_3A_MASK                                          0xff80000000000000
+
+
+/* Description		FCS
+
+			Tx Frame's FCS[31:23]
+			
+			TODO: describe what this is used for ...
+			
+			For aggregates and NDP frames, this field is reserved and
+			 TxPCU should populate this to Zero.
+*/
+
+#define EXPECTED_RESPONSE_FCS_OFFSET                                                0x0000000000000010
+#define EXPECTED_RESPONSE_FCS_LSB                                                   0
+#define EXPECTED_RESPONSE_FCS_MSB                                                   8
+#define EXPECTED_RESPONSE_FCS_MASK                                                  0x00000000000001ff
+
+
+/* Description		RESERVED_4A
+
+			Reserved: Generator should set to 0, consumer shall ignore
+			 <legal 0>
+*/
+
+#define EXPECTED_RESPONSE_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define EXPECTED_RESPONSE_RESERVED_4A_LSB                                           9
+#define EXPECTED_RESPONSE_RESERVED_4A_MSB                                           9
+#define EXPECTED_RESPONSE_RESERVED_4A_MASK                                          0x0000000000000200
+
+
+/* Description		CRC
+
+			TODO: describe what this is used for ...
+			
+			Tx SIG's CRC[3:0]
+*/
+
+#define EXPECTED_RESPONSE_CRC_OFFSET                                                0x0000000000000010
+#define EXPECTED_RESPONSE_CRC_LSB                                                   10
+#define EXPECTED_RESPONSE_CRC_MSB                                                   13
+#define EXPECTED_RESPONSE_CRC_MASK                                                  0x0000000000003c00
+
+
+/* Description		SCRAMBLER_SEED
+
+			TODO: describe what this is used for ...
+			
+			Tx Frames SERVICE[6:0]
+*/
+
+#define EXPECTED_RESPONSE_SCRAMBLER_SEED_OFFSET                                     0x0000000000000010
+#define EXPECTED_RESPONSE_SCRAMBLER_SEED_LSB                                        14
+#define EXPECTED_RESPONSE_SCRAMBLER_SEED_MSB                                        20
+#define EXPECTED_RESPONSE_SCRAMBLER_SEED_MASK                                       0x00000000001fc000
+
+
+/* Description		RESERVED_4B
+
+			Reserved: Generator should set to 0, consumer shall ignore
+			 <legal 0>
+*/
+
+#define EXPECTED_RESPONSE_RESERVED_4B_OFFSET                                        0x0000000000000010
+#define EXPECTED_RESPONSE_RESERVED_4B_LSB                                           21
+#define EXPECTED_RESPONSE_RESERVED_4B_MSB                                           31
+#define EXPECTED_RESPONSE_RESERVED_4B_MASK                                          0x00000000ffe00000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define EXPECTED_RESPONSE_TLV64_PADDING_OFFSET                                      0x0000000000000010
+#define EXPECTED_RESPONSE_TLV64_PADDING_LSB                                         32
+#define EXPECTED_RESPONSE_TLV64_PADDING_MSB                                         63
+#define EXPECTED_RESPONSE_TLV64_PADDING_MASK                                        0xffffffff00000000
+
+
+
+#endif   // EXPECTED_RESPONSE
diff --git a/hw/qca5332/he_sig_a_mu_dl_info.h b/hw/qca5332/he_sig_a_mu_dl_info.h
new file mode 100644
index 0000000..393dfe9
--- /dev/null
+++ b/hw/qca5332/he_sig_a_mu_dl_info.h
@@ -0,0 +1,433 @@
+
+/* 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 _HE_SIG_A_MU_DL_INFO_H_
+#define _HE_SIG_A_MU_DL_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_MU_DL_INFO 2
+
+
+struct he_sig_a_mu_dl_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t dl_ul_flag                                              :  1, // [0:0]
+                      mcs_of_sig_b                                            :  3, // [3:1]
+                      dcm_of_sig_b                                            :  1, // [4:4]
+                      bss_color_id                                            :  6, // [10:5]
+                      spatial_reuse                                           :  4, // [14:11]
+                      transmit_bw                                             :  3, // [17:15]
+                      num_sig_b_symbols                                       :  4, // [21:18]
+                      comp_mode_sig_b                                         :  1, // [22:22]
+                      cp_ltf_size                                             :  2, // [24:23]
+                      doppler_indication                                      :  1, // [25:25]
+                      reserved_0a                                             :  6; // [31:26]
+             uint32_t txop_duration                                           :  7, // [6:0]
+                      reserved_1a                                             :  1, // [7:7]
+                      num_ltf_symbols                                         :  3, // [10:8]
+                      ldpc_extra_symbol                                       :  1, // [11:11]
+                      stbc                                                    :  1, // [12:12]
+                      packet_extension_a_factor                               :  2, // [14:13]
+                      packet_extension_pe_disambiguity                        :  1, // [15:15]
+                      crc                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      reserved_1b                                             :  5, // [30:26]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0a                                             :  6, // [31:26]
+                      doppler_indication                                      :  1, // [25:25]
+                      cp_ltf_size                                             :  2, // [24:23]
+                      comp_mode_sig_b                                         :  1, // [22:22]
+                      num_sig_b_symbols                                       :  4, // [21:18]
+                      transmit_bw                                             :  3, // [17:15]
+                      spatial_reuse                                           :  4, // [14:11]
+                      bss_color_id                                            :  6, // [10:5]
+                      dcm_of_sig_b                                            :  1, // [4:4]
+                      mcs_of_sig_b                                            :  3, // [3:1]
+                      dl_ul_flag                                              :  1; // [0:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_1b                                             :  5, // [30:26]
+                      tail                                                    :  6, // [25:20]
+                      crc                                                     :  4, // [19:16]
+                      packet_extension_pe_disambiguity                        :  1, // [15:15]
+                      packet_extension_a_factor                               :  2, // [14:13]
+                      stbc                                                    :  1, // [12:12]
+                      ldpc_extra_symbol                                       :  1, // [11:11]
+                      num_ltf_symbols                                         :  3, // [10:8]
+                      reserved_1a                                             :  1, // [7:7]
+                      txop_duration                                           :  7; // [6:0]
+#endif
+};
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			NOTE: This is unsupported for "HE MU" format (including "MU_SU") 
+			Tx in Napier and Hastings80.
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_OFFSET                                       0x00000000
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_LSB                                          0
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MSB                                          0
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MASK                                         0x00000001
+
+
+/* Description		MCS_OF_SIG_B
+
+			Indicates the MCS of HE-SIG-B
+			<legal 0-5>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_LSB                                        1
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MSB                                        3
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MASK                                       0x0000000e
+
+
+/* Description		DCM_OF_SIG_B
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to HE-SIG-B 
+			
+			0: No DCM for HE_SIG_B
+			1: DCM for HE_SIG_B
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_LSB                                        4
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MSB                                        4
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MASK                                       0x00000010
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_LSB                                        5
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MSB                                        10
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MASK                                       0x000007e0
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_OFFSET                                    0x00000000
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_LSB                                       11
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MSB                                       14
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MASK                                      0x00007800
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
+			 mode
+			<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
+			 puncturing mode
+			<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
+			 in 80 MHz, where in the preamble only the secondary 20 
+			MHz is punctured
+			<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
+			 puncturing in 80 MHz, where in the preamble only one of
+			 the two 20 MHz sub-channels in secondary 40 MHz is punctured.
+			
+			<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
+			 in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
+			 the preamble only the secondary 20 MHz is punctured.
+			<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
+			 puncturing in 160 MHz or 80+80 MHz, where in the primary
+			 80 MHz of the preamble the primary 40 MHz is present.
+			
+			On RX side, Field Used by MAC HW
+			<legal 0-7>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_LSB                                         15
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MSB                                         17
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MASK                                        0x00038000
+
+
+/* Description		NUM_SIG_B_SYMBOLS
+
+			Number of symbols
+			
+			For OFDMA, the actual number of symbols is 1 larger then
+			 indicated in this field.
+			
+			For MU-MIMO this is equal to the number of users - 1: the
+			 following encoding is used:
+			1 => 2 users
+			2 => 3 users
+			Etc.
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_OFFSET                                0x00000000
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_LSB                                   18
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MSB                                   21
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MASK                                  0x003c0000
+
+
+/* Description		COMP_MODE_SIG_B
+
+			Indicates the compression mode of HE-SIG-B
+			
+			0: Regular [uncomp mode]
+			1: compressed mode (full-BW MU-MIMO only) 
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_OFFSET                                  0x00000000
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_LSB                                     22
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MSB                                     22
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MASK                                    0x00400000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
+			<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP 
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_LSB                                         23
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MSB                                         24
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MASK                                        0x01800000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_OFFSET                               0x00000000
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_LSB                                  25
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MSB                                  25
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MASK                                 0x02000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_LSB                                         26
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MSB                                         31
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MASK                                        0xfc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_OFFSET                                    0x00000004
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_LSB                                       0
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MSB                                       6
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MASK                                      0x0000007f
+
+
+/* Description		RESERVED_1A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_LSB                                         7
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MSB                                         7
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MASK                                        0x00000080
+
+
+/* Description		NUM_LTF_SYMBOLS
+
+			Indicates the number of HE-LTF symbols
+			
+			0: 1 LTF
+			1: 2 LTFs
+			2: 4 LTFs
+			3: 6 LTFs
+			4: 8 LTFs
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_OFFSET                                  0x00000004
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_LSB                                     8
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MSB                                     10
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MASK                                    0x00000700
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                0x00000004
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_LSB                                   11
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MSB                                   11
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MASK                                  0x00000800
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_STBC_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_DL_INFO_STBC_LSB                                                12
+#define HE_SIG_A_MU_DL_INFO_STBC_MSB                                                12
+#define HE_SIG_A_MU_DL_INFO_STBC_MASK                                               0x00001000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET                        0x00000004
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_LSB                           13
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MSB                           14
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MASK                          0x00006000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET                 0x00000004
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                    15
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                    15
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                   0x00008000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_CRC_OFFSET                                              0x00000004
+#define HE_SIG_A_MU_DL_INFO_CRC_LSB                                                 16
+#define HE_SIG_A_MU_DL_INFO_CRC_MSB                                                 19
+#define HE_SIG_A_MU_DL_INFO_CRC_MASK                                                0x000f0000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_TAIL_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_DL_INFO_TAIL_LSB                                                20
+#define HE_SIG_A_MU_DL_INFO_TAIL_MSB                                                25
+#define HE_SIG_A_MU_DL_INFO_TAIL_MASK                                               0x03f00000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_LSB                                         26
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MSB                                         30
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MASK                                        0x7c000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000004
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif   // HE_SIG_A_MU_DL_INFO
diff --git a/hw/qca5332/he_sig_a_mu_ul_info.h b/hw/qca5332/he_sig_a_mu_ul_info.h
new file mode 100644
index 0000000..94ad79f
--- /dev/null
+++ b/hw/qca5332/he_sig_a_mu_ul_info.h
@@ -0,0 +1,224 @@
+
+/* 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 _HE_SIG_A_MU_UL_INFO_H_
+#define _HE_SIG_A_MU_UL_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2
+
+
+struct he_sig_a_mu_ul_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t format_indication                                       :  1, // [0:0]
+                      bss_color_id                                            :  6, // [6:1]
+                      spatial_reuse                                           : 16, // [22:7]
+                      reserved_0a                                             :  1, // [23:23]
+                      transmit_bw                                             :  2, // [25:24]
+                      reserved_0b                                             :  6; // [31:26]
+             uint32_t txop_duration                                           :  7, // [6:0]
+                      reserved_1a                                             :  9, // [15:7]
+                      crc                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      reserved_1b                                             :  5, // [30:26]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0b                                             :  6, // [31:26]
+                      transmit_bw                                             :  2, // [25:24]
+                      reserved_0a                                             :  1, // [23:23]
+                      spatial_reuse                                           : 16, // [22:7]
+                      bss_color_id                                            :  6, // [6:1]
+                      format_indication                                       :  1; // [0:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_1b                                             :  5, // [30:26]
+                      tail                                                    :  6, // [25:20]
+                      crc                                                     :  4, // [19:16]
+                      reserved_1a                                             :  9, // [15:7]
+                      txop_duration                                           :  7; // [6:0]
+#endif
+};
+
+
+/* Description		FORMAT_INDICATION
+
+			Indicates whether the transmission is SU PPDU or a trigger
+			 based UL MU PDDU
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_OFFSET                                0x00000000
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_LSB                                   0
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MSB                                   0
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MASK                                  0x00000001
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_LSB                                        1
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MSB                                        6
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MASK                                       0x0000007e
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_OFFSET                                    0x00000000
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_LSB                                       7
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MSB                                       22
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MASK                                      0x007fff80
+
+
+/* Description		RESERVED_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_LSB                                         23
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MSB                                         23
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MASK                                        0x00800000
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
+			
+			On RX side, Field Used by MAC HW
+			<legal 0-3>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_LSB                                         24
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MSB                                         25
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MASK                                        0x03000000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_LSB                                         26
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MSB                                         31
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MASK                                        0xfc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP <legal 
+			all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_OFFSET                                    0x00000004
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_LSB                                       0
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MSB                                       6
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MASK                                      0x0000007f
+
+
+/* Description		RESERVED_1A
+
+			Set to value indicated in the trigger frame
+			<legal 255>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_LSB                                         7
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MSB                                         15
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MASK                                        0x0000ff80
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			This CRC may also cover some fields of L-SIG (TBD)
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_CRC_OFFSET                                              0x00000004
+#define HE_SIG_A_MU_UL_INFO_CRC_LSB                                                 16
+#define HE_SIG_A_MU_UL_INFO_CRC_MSB                                                 19
+#define HE_SIG_A_MU_UL_INFO_CRC_MASK                                                0x000f0000
+
+
+/* Description		TAIL
+
+			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is 
+			used
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_TAIL_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_UL_INFO_TAIL_LSB                                                20
+#define HE_SIG_A_MU_UL_INFO_TAIL_MSB                                                25
+#define HE_SIG_A_MU_UL_INFO_TAIL_MASK                                               0x03f00000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_LSB                                         26
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MSB                                         30
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MASK                                        0x7c000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000004
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif   // HE_SIG_A_MU_UL_INFO
diff --git a/hw/qca5332/he_sig_a_su_info.h b/hw/qca5332/he_sig_a_su_info.h
new file mode 100644
index 0000000..cfe3afd
--- /dev/null
+++ b/hw/qca5332/he_sig_a_su_info.h
@@ -0,0 +1,549 @@
+
+/* 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 _HE_SIG_A_SU_INFO_H_
+#define _HE_SIG_A_SU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_SU_INFO 2
+
+
+struct he_sig_a_su_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t format_indication                                       :  1, // [0:0]
+                      beam_change                                             :  1, // [1:1]
+                      dl_ul_flag                                              :  1, // [2:2]
+                      transmit_mcs                                            :  4, // [6:3]
+                      dcm                                                     :  1, // [7:7]
+                      bss_color_id                                            :  6, // [13:8]
+                      reserved_0a                                             :  1, // [14:14]
+                      spatial_reuse                                           :  4, // [18:15]
+                      transmit_bw                                             :  2, // [20:19]
+                      cp_ltf_size                                             :  2, // [22:21]
+                      nsts                                                    :  3, // [25:23]
+                      reserved_0b                                             :  6; // [31:26]
+             uint32_t txop_duration                                           :  7, // [6:0]
+                      coding                                                  :  1, // [7:7]
+                      ldpc_extra_symbol                                       :  1, // [8:8]
+                      stbc                                                    :  1, // [9:9]
+                      txbf                                                    :  1, // [10:10]
+                      packet_extension_a_factor                               :  2, // [12:11]
+                      packet_extension_pe_disambiguity                        :  1, // [13:13]
+                      reserved_1a                                             :  1, // [14:14]
+                      doppler_indication                                      :  1, // [15:15]
+                      crc                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      dot11ax_su_extended                                     :  1, // [26:26]
+                      dot11ax_ext_ru_size                                     :  3, // [29:27]
+                      rx_ndp                                                  :  1, // [30:30]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0b                                             :  6, // [31:26]
+                      nsts                                                    :  3, // [25:23]
+                      cp_ltf_size                                             :  2, // [22:21]
+                      transmit_bw                                             :  2, // [20:19]
+                      spatial_reuse                                           :  4, // [18:15]
+                      reserved_0a                                             :  1, // [14:14]
+                      bss_color_id                                            :  6, // [13:8]
+                      dcm                                                     :  1, // [7:7]
+                      transmit_mcs                                            :  4, // [6:3]
+                      dl_ul_flag                                              :  1, // [2:2]
+                      beam_change                                             :  1, // [1:1]
+                      format_indication                                       :  1; // [0:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      rx_ndp                                                  :  1, // [30:30]
+                      dot11ax_ext_ru_size                                     :  3, // [29:27]
+                      dot11ax_su_extended                                     :  1, // [26:26]
+                      tail                                                    :  6, // [25:20]
+                      crc                                                     :  4, // [19:16]
+                      doppler_indication                                      :  1, // [15:15]
+                      reserved_1a                                             :  1, // [14:14]
+                      packet_extension_pe_disambiguity                        :  1, // [13:13]
+                      packet_extension_a_factor                               :  2, // [12:11]
+                      txbf                                                    :  1, // [10:10]
+                      stbc                                                    :  1, // [9:9]
+                      ldpc_extra_symbol                                       :  1, // [8:8]
+                      coding                                                  :  1, // [7:7]
+                      txop_duration                                           :  7; // [6:0]
+#endif
+};
+
+
+/* Description		FORMAT_INDICATION
+
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_OFFSET                                   0x00000000
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_LSB                                      0
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MSB                                      0
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MASK                                     0x00000001
+
+
+/* Description		BEAM_CHANGE
+
+			Indicates whether spatial mapping is changed between legacy
+			 and HE portion of preamble. If not, channel estimation 
+			can include legacy preamble to improve accuracy
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_LSB                                            1
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MSB                                            1
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MASK                                           0x00000002
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_OFFSET                                          0x00000000
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_LSB                                             2
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MSB                                             2
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MASK                                            0x00000004
+
+
+/* Description		TRANSMIT_MCS
+
+			Indicates the data MCS
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_OFFSET                                        0x00000000
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_LSB                                           3
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MSB                                           6
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MASK                                          0x00000078
+
+
+/* Description		DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_DCM_OFFSET                                                 0x00000000
+#define HE_SIG_A_SU_INFO_DCM_LSB                                                    7
+#define HE_SIG_A_SU_INFO_DCM_MSB                                                    7
+#define HE_SIG_A_SU_INFO_DCM_MASK                                                   0x00000080
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_OFFSET                                        0x00000000
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_LSB                                           8
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MSB                                           13
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MASK                                          0x00003f00
+
+
+/* Description		RESERVED_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define HE_SIG_A_SU_INFO_RESERVED_0A_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_RESERVED_0A_LSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_0A_MSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_0A_MASK                                           0x00004000
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_OFFSET                                       0x00000000
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_LSB                                          15
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MSB                                          18
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MASK                                         0x00078000
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                                 
+			<enum 0 HE_SIG_A_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
+			
+			For HE Extended Range SU PPDU
+			Set to 0 for 242-tone RU                                
+			                                                        
+			                  Set to 1 for right 106-tone RU within 
+			the primary 20 MHz  
+			
+			On RX side, Field Used by MAC HW
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_LSB                                            19
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MSB                                            20
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MASK                                           0x00180000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			NOTE:
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_LSB                                            21
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MSB                                            22
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MASK                                           0x00600000
+
+
+/* Description		NSTS
+
+			Indicates number of streams used for the SU transmission
+			
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                      Set to n for n+1 space time stream, 
+			where n = 0, 1, 2,.....,7.                              
+			                                                        
+			                                                        
+			            
+			
+			For HE Extended Range PPDU                              
+			                                                        
+			                                                        
+			                            Set to 0 for 1 space time stream. 
+			 Value 1 is TBD                                         
+			                                                        
+			                                                        
+			                                                        
+			   Values 2 - 7 are reserved
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_NSTS_OFFSET                                                0x00000000
+#define HE_SIG_A_SU_INFO_NSTS_LSB                                                   23
+#define HE_SIG_A_SU_INFO_NSTS_MSB                                                   25
+#define HE_SIG_A_SU_INFO_NSTS_MASK                                                  0x03800000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_SU_INFO_RESERVED_0B_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_RESERVED_0B_LSB                                            26
+#define HE_SIG_A_SU_INFO_RESERVED_0B_MSB                                            31
+#define HE_SIG_A_SU_INFO_RESERVED_0B_MASK                                           0xfc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_OFFSET                                       0x00000004
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_LSB                                          0
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_MSB                                          6
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_MASK                                         0x0000007f
+
+
+/* Description		CODING
+
+			Distinguishes between BCC and LDPC coding. 
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_CODING_OFFSET                                              0x00000004
+#define HE_SIG_A_SU_INFO_CODING_LSB                                                 7
+#define HE_SIG_A_SU_INFO_CODING_MSB                                                 7
+#define HE_SIG_A_SU_INFO_CODING_MASK                                                0x00000080
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                   0x00000004
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_LSB                                      8
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MSB                                      8
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MASK                                     0x00000100
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_STBC_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_STBC_LSB                                                   9
+#define HE_SIG_A_SU_INFO_STBC_MSB                                                   9
+#define HE_SIG_A_SU_INFO_STBC_MASK                                                  0x00000200
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_TXBF_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_TXBF_LSB                                                   10
+#define HE_SIG_A_SU_INFO_TXBF_MSB                                                   10
+#define HE_SIG_A_SU_INFO_TXBF_MASK                                                  0x00000400
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET                           0x00000004
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_LSB                              11
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MSB                              12
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MASK                             0x00001800
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET                    0x00000004
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                       13
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                       13
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                      0x00002000
+
+
+/* Description		RESERVED_1A
+
+			Note: per standard, set to 1
+			<legal 1>
+*/
+
+#define HE_SIG_A_SU_INFO_RESERVED_1A_OFFSET                                         0x00000004
+#define HE_SIG_A_SU_INFO_RESERVED_1A_LSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_1A_MSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_1A_MASK                                           0x00004000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_OFFSET                                  0x00000004
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_LSB                                     15
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MSB                                     15
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MASK                                    0x00008000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_CRC_OFFSET                                                 0x00000004
+#define HE_SIG_A_SU_INFO_CRC_LSB                                                    16
+#define HE_SIG_A_SU_INFO_CRC_MSB                                                    19
+#define HE_SIG_A_SU_INFO_CRC_MASK                                                   0x000f0000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define HE_SIG_A_SU_INFO_TAIL_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_TAIL_LSB                                                   20
+#define HE_SIG_A_SU_INFO_TAIL_MSB                                                   25
+#define HE_SIG_A_SU_INFO_TAIL_MASK                                                  0x03f00000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know that this was an HE_SIG_A_SU received in
+			 'extended' format
+			
+			When set, the 11ax frame is of the extended range format
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_OFFSET                                 0x00000004
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_LSB                                    26
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MSB                                    26
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MASK                                   0x04000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			Field only contains valid info when dot11ax_su_extended 
+			is set.
+			
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know what the number of based RUs was in this
+			 extended range reception. It is used by the MAC to determine
+			 the RU size for the response...
+			
+			<enum 0 EXT_RU_26> 
+			<enum 1 EXT_RU_52>
+			<enum 2 EXT_RU_106>
+			<enum 3 EXT_RU_242><legal 0-3>
+*/
+
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_OFFSET                                 0x00000004
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_LSB                                    27
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MSB                                    29
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MASK                                   0x38000000
+
+
+/* Description		RX_NDP
+
+			TX side:
+			Set to 0
+			
+			RX side:Valid on RX side only, and looked at by MAC HW
+			
+			When set, PHY has received (expected) NDP frame
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_RX_NDP_OFFSET                                              0x00000004
+#define HE_SIG_A_SU_INFO_RX_NDP_LSB                                                 30
+#define HE_SIG_A_SU_INFO_RX_NDP_MSB                                                 30
+#define HE_SIG_A_SU_INFO_RX_NDP_MASK                                                0x40000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                           0x00000004
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                              31
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                              31
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                             0x80000000
+
+
+
+#endif   // HE_SIG_A_SU_INFO
diff --git a/hw/qca5332/he_sig_b1_mu_info.h b/hw/qca5332/he_sig_b1_mu_info.h
new file mode 100644
index 0000000..1e12aa0
--- /dev/null
+++ b/hw/qca5332/he_sig_b1_mu_info.h
@@ -0,0 +1,90 @@
+
+/* 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 _HE_SIG_B1_MU_INFO_H_
+#define _HE_SIG_B1_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B1_MU_INFO 1
+
+
+struct he_sig_b1_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_allocation                                           :  8, // [7:0]
+                      reserved_0                                              : 23, // [30:8]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_0                                              : 23, // [30:8]
+                      ru_allocation                                           :  8; // [7:0]
+#endif
+};
+
+
+/* Description		RU_ALLOCATION
+
+			RU allocation for the user(s) following this common portion
+			 of the SIG
+			
+			For details, refer to  RU_TYPE description
+			<legal all>
+*/
+
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_OFFSET                                      0x00000000
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_LSB                                         0
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MSB                                         7
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MASK                                        0x000000ff
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define HE_SIG_B1_MU_INFO_RESERVED_0_OFFSET                                         0x00000000
+#define HE_SIG_B1_MU_INFO_RESERVED_0_LSB                                            8
+#define HE_SIG_B1_MU_INFO_RESERVED_0_MSB                                            30
+#define HE_SIG_B1_MU_INFO_RESERVED_0_MASK                                           0x7fffff00
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing the HE-SIG-B common info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000000
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+
+#endif   // HE_SIG_B1_MU_INFO
diff --git a/hw/qca5332/he_sig_b2_mu_info.h b/hw/qca5332/he_sig_b2_mu_info.h
new file mode 100644
index 0000000..faef172
--- /dev/null
+++ b/hw/qca5332/he_sig_b2_mu_info.h
@@ -0,0 +1,223 @@
+
+/* 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 _HE_SIG_B2_MU_INFO_H_
+#define _HE_SIG_B2_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B2_MU_INFO 2
+
+
+struct he_sig_b2_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11, // [10:0]
+                      sta_spatial_config                                      :  4, // [14:11]
+                      sta_mcs                                                 :  4, // [18:15]
+                      reserved_set_to_1                                       :  1, // [19:19]
+                      sta_coding                                              :  1, // [20:20]
+                      reserved_0a                                             :  7, // [27:21]
+                      nsts                                                    :  3, // [30:28]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+             uint32_t user_order                                              :  8, // [7:0]
+                      cc_mask                                                 :  8, // [15:8]
+                      reserved_1a                                             : 16; // [31:16]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      nsts                                                    :  3, // [30:28]
+                      reserved_0a                                             :  7, // [27:21]
+                      sta_coding                                              :  1, // [20:20]
+                      reserved_set_to_1                                       :  1, // [19:19]
+                      sta_mcs                                                 :  4, // [18:15]
+                      sta_spatial_config                                      :  4, // [14:11]
+                      sta_id                                                  : 11; // [10:0]
+             uint32_t reserved_1a                                             : 16, // [31:16]
+                      cc_mask                                                 :  8, // [15:8]
+                      user_order                                              :  8; // [7:0]
+#endif
+};
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define HE_SIG_B2_MU_INFO_STA_ID_OFFSET                                             0x00000000
+#define HE_SIG_B2_MU_INFO_STA_ID_LSB                                                0
+#define HE_SIG_B2_MU_INFO_STA_ID_MSB                                                10
+#define HE_SIG_B2_MU_INFO_STA_ID_MASK                                               0x000007ff
+
+
+/* Description		STA_SPATIAL_CONFIG
+
+			Number of assigned spatial streams and their corresponding
+			 index. 
+			Total number of spatial streams assigned for the MU-MIMO
+			 allocation is also signaled. 
+*/
+
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_OFFSET                                 0x00000000
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_LSB                                    11
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MSB                                    14
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MASK                                   0x00007800
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define HE_SIG_B2_MU_INFO_STA_MCS_OFFSET                                            0x00000000
+#define HE_SIG_B2_MU_INFO_STA_MCS_LSB                                               15
+#define HE_SIG_B2_MU_INFO_STA_MCS_MSB                                               18
+#define HE_SIG_B2_MU_INFO_STA_MCS_MASK                                              0x00078000
+
+
+/* Description		RESERVED_SET_TO_1
+
+			<legal 1>
+*/
+
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_OFFSET                                  0x00000000
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_LSB                                     19
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MSB                                     19
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MASK                                    0x00080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define HE_SIG_B2_MU_INFO_STA_CODING_OFFSET                                         0x00000000
+#define HE_SIG_B2_MU_INFO_STA_CODING_LSB                                            20
+#define HE_SIG_B2_MU_INFO_STA_CODING_MSB                                            20
+#define HE_SIG_B2_MU_INFO_STA_CODING_MASK                                           0x00100000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_OFFSET                                        0x00000000
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_LSB                                           21
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_MSB                                           27
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_MASK                                          0x0fe00000
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			Needed by RXPCU. Provided by PHY so that RXPCU does not 
+			need to have the RU number decoding logic.
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define HE_SIG_B2_MU_INFO_NSTS_OFFSET                                               0x00000000
+#define HE_SIG_B2_MU_INFO_NSTS_LSB                                                  28
+#define HE_SIG_B2_MU_INFO_NSTS_MSB                                                  30
+#define HE_SIG_B2_MU_INFO_NSTS_MASK                                                 0x70000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000000
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define HE_SIG_B2_MU_INFO_USER_ORDER_OFFSET                                         0x00000004
+#define HE_SIG_B2_MU_INFO_USER_ORDER_LSB                                            0
+#define HE_SIG_B2_MU_INFO_USER_ORDER_MSB                                            7
+#define HE_SIG_B2_MU_INFO_USER_ORDER_MASK                                           0x000000ff
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
+			<legal all>
+*/
+
+#define HE_SIG_B2_MU_INFO_CC_MASK_OFFSET                                            0x00000004
+#define HE_SIG_B2_MU_INFO_CC_MASK_LSB                                               8
+#define HE_SIG_B2_MU_INFO_CC_MASK_MSB                                               15
+#define HE_SIG_B2_MU_INFO_CC_MASK_MASK                                              0x0000ff00
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_OFFSET                                        0x00000004
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_LSB                                           16
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_MSB                                           31
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_MASK                                          0xffff0000
+
+
+
+#endif   // HE_SIG_B2_MU_INFO
diff --git a/hw/qca5332/he_sig_b2_ofdma_info.h b/hw/qca5332/he_sig_b2_ofdma_info.h
new file mode 100644
index 0000000..b256b44
--- /dev/null
+++ b/hw/qca5332/he_sig_b2_ofdma_info.h
@@ -0,0 +1,225 @@
+
+/* 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 _HE_SIG_B2_OFDMA_INFO_H_
+#define _HE_SIG_B2_OFDMA_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B2_OFDMA_INFO 2
+
+
+struct he_sig_b2_ofdma_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11, // [10:0]
+                      nsts                                                    :  3, // [13:11]
+                      txbf                                                    :  1, // [14:14]
+                      sta_mcs                                                 :  4, // [18:15]
+                      sta_dcm                                                 :  1, // [19:19]
+                      sta_coding                                              :  1, // [20:20]
+                      reserved_0                                              : 10, // [30:21]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+             uint32_t user_order                                              :  8, // [7:0]
+                      cc_mask                                                 :  8, // [15:8]
+                      reserved_1a                                             : 16; // [31:16]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_0                                              : 10, // [30:21]
+                      sta_coding                                              :  1, // [20:20]
+                      sta_dcm                                                 :  1, // [19:19]
+                      sta_mcs                                                 :  4, // [18:15]
+                      txbf                                                    :  1, // [14:14]
+                      nsts                                                    :  3, // [13:11]
+                      sta_id                                                  : 11; // [10:0]
+             uint32_t reserved_1a                                             : 16, // [31:16]
+                      cc_mask                                                 :  8, // [15:8]
+                      user_order                                              :  8; // [7:0]
+#endif
+};
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_OFFSET                                          0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_LSB                                             0
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_MSB                                             10
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_MASK                                            0x000007ff
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_NSTS_OFFSET                                            0x00000000
+#define HE_SIG_B2_OFDMA_INFO_NSTS_LSB                                               11
+#define HE_SIG_B2_OFDMA_INFO_NSTS_MSB                                               13
+#define HE_SIG_B2_OFDMA_INFO_NSTS_MASK                                              0x00003800
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_TXBF_OFFSET                                            0x00000000
+#define HE_SIG_B2_OFDMA_INFO_TXBF_LSB                                               14
+#define HE_SIG_B2_OFDMA_INFO_TXBF_MSB                                               14
+#define HE_SIG_B2_OFDMA_INFO_TXBF_MASK                                              0x00004000
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_OFFSET                                         0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_LSB                                            15
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MSB                                            18
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MASK                                           0x00078000
+
+
+/* Description		STA_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_OFFSET                                         0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_LSB                                            19
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MSB                                            19
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MASK                                           0x00080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_OFFSET                                      0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_LSB                                         20
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MSB                                         20
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MASK                                        0x00100000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_LSB                                         21
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MSB                                         30
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MASK                                        0x7fe00000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                       0x00000000
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                          31
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                          31
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                         0x80000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_OFFSET                                      0x00000004
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_LSB                                         0
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MSB                                         7
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MASK                                        0x000000ff
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
+			<legal all>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_OFFSET                                         0x00000004
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_LSB                                            8
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MSB                                            15
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MASK                                           0x0000ff00
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_OFFSET                                     0x00000004
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_LSB                                        16
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MSB                                        31
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MASK                                       0xffff0000
+
+
+
+#endif   // HE_SIG_B2_OFDMA_INFO
diff --git a/hw/qca5332/ht_sig_info.h b/hw/qca5332/ht_sig_info.h
new file mode 100644
index 0000000..b06ee9a
--- /dev/null
+++ b/hw/qca5332/ht_sig_info.h
@@ -0,0 +1,301 @@
+
+/* 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 _HT_SIG_INFO_H_
+#define _HT_SIG_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HT_SIG_INFO 2
+
+
+struct ht_sig_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mcs                                                     :  7, // [6:0]
+                      cbw                                                     :  1, // [7:7]
+                      length                                                  : 16, // [23:8]
+                      reserved_0                                              :  8; // [31:24]
+             uint32_t smoothing                                               :  1, // [0:0]
+                      not_sounding                                            :  1, // [1:1]
+                      ht_reserved                                             :  1, // [2:2]
+                      aggregation                                             :  1, // [3:3]
+                      stbc                                                    :  2, // [5:4]
+                      fec_coding                                              :  1, // [6:6]
+                      short_gi                                                :  1, // [7:7]
+                      num_ext_sp_str                                          :  2, // [9:8]
+                      crc                                                     :  8, // [17:10]
+                      signal_tail                                             :  6, // [23:18]
+                      reserved_1                                              :  7, // [30:24]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0                                              :  8, // [31:24]
+                      length                                                  : 16, // [23:8]
+                      cbw                                                     :  1, // [7:7]
+                      mcs                                                     :  7; // [6:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_1                                              :  7, // [30:24]
+                      signal_tail                                             :  6, // [23:18]
+                      crc                                                     :  8, // [17:10]
+                      num_ext_sp_str                                          :  2, // [9:8]
+                      short_gi                                                :  1, // [7:7]
+                      fec_coding                                              :  1, // [6:6]
+                      stbc                                                    :  2, // [5:4]
+                      aggregation                                             :  1, // [3:3]
+                      ht_reserved                                             :  1, // [2:2]
+                      not_sounding                                            :  1, // [1:1]
+                      smoothing                                               :  1; // [0:0]
+#endif
+};
+
+
+/* Description		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_MCS_OFFSET                                                      0x00000000
+#define HT_SIG_INFO_MCS_LSB                                                         0
+#define HT_SIG_INFO_MCS_MSB                                                         6
+#define HT_SIG_INFO_MCS_MASK                                                        0x0000007f
+
+
+/* Description		CBW
+
+			Packet bandwidth:
+			<enum 0     ht_20_mhz>
+			<enum 1     ht_40_mhz>
+			<legal 0-1>
+*/
+
+#define HT_SIG_INFO_CBW_OFFSET                                                      0x00000000
+#define HT_SIG_INFO_CBW_LSB                                                         7
+#define HT_SIG_INFO_CBW_MSB                                                         7
+#define HT_SIG_INFO_CBW_MASK                                                        0x00000080
+
+
+/* Description		LENGTH
+
+			This is the MPDU or A-MPDU length in octets of the PPDU
+			<legal all>
+*/
+
+#define HT_SIG_INFO_LENGTH_OFFSET                                                   0x00000000
+#define HT_SIG_INFO_LENGTH_LSB                                                      8
+#define HT_SIG_INFO_LENGTH_MSB                                                      23
+#define HT_SIG_INFO_LENGTH_MASK                                                     0x00ffff00
+
+
+/* Description		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_RESERVED_0_OFFSET                                               0x00000000
+#define HT_SIG_INFO_RESERVED_0_LSB                                                  24
+#define HT_SIG_INFO_RESERVED_0_MSB                                                  31
+#define HT_SIG_INFO_RESERVED_0_MASK                                                 0xff000000
+
+
+/* Description		SMOOTHING
+
+			Field indicates if smoothing is needed
+			E_num 0     do_smoothing Unsupported setting: indicates 
+			smoothing is often used for beamforming 
+			<enum 1     no_smoothing> Indicates no smoothing is used
+			
+			<legal 1>
+*/
+
+#define HT_SIG_INFO_SMOOTHING_OFFSET                                                0x00000004
+#define HT_SIG_INFO_SMOOTHING_LSB                                                   0
+#define HT_SIG_INFO_SMOOTHING_MSB                                                   0
+#define HT_SIG_INFO_SMOOTHING_MASK                                                  0x00000001
+
+
+/* Description		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_NOT_SOUNDING_OFFSET                                             0x00000004
+#define HT_SIG_INFO_NOT_SOUNDING_LSB                                                1
+#define HT_SIG_INFO_NOT_SOUNDING_MSB                                                1
+#define HT_SIG_INFO_NOT_SOUNDING_MASK                                               0x00000002
+
+
+/* Description		HT_RESERVED
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY 
+			<legal 1>
+*/
+
+#define HT_SIG_INFO_HT_RESERVED_OFFSET                                              0x00000004
+#define HT_SIG_INFO_HT_RESERVED_LSB                                                 2
+#define HT_SIG_INFO_HT_RESERVED_MSB                                                 2
+#define HT_SIG_INFO_HT_RESERVED_MASK                                                0x00000004
+
+
+/* Description		AGGREGATION
+
+			<enum 0     mpdu> Indicates MPDU format
+			<enum 1     a_mpdu> Indicates A-MPDU format
+			<legal 0-1>
+*/
+
+#define HT_SIG_INFO_AGGREGATION_OFFSET                                              0x00000004
+#define HT_SIG_INFO_AGGREGATION_LSB                                                 3
+#define HT_SIG_INFO_AGGREGATION_MSB                                                 3
+#define HT_SIG_INFO_AGGREGATION_MASK                                                0x00000008
+
+
+/* Description		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_STBC_OFFSET                                                     0x00000004
+#define HT_SIG_INFO_STBC_LSB                                                        4
+#define HT_SIG_INFO_STBC_MSB                                                        5
+#define HT_SIG_INFO_STBC_MASK                                                       0x00000030
+
+
+/* Description		FEC_CODING
+
+			<enum 0     ht_bcc>  Indicates BCC coding
+			<enum 1     ht_ldpc>  Indicates LDPC coding
+			<legal 0-1>
+*/
+
+#define HT_SIG_INFO_FEC_CODING_OFFSET                                               0x00000004
+#define HT_SIG_INFO_FEC_CODING_LSB                                                  6
+#define HT_SIG_INFO_FEC_CODING_MSB                                                  6
+#define HT_SIG_INFO_FEC_CODING_MASK                                                 0x00000040
+
+
+/* Description		SHORT_GI
+
+			<enum 0     ht_normal_gi>  Indicates normal guard interval
+			
+			<enum 1     ht_short_gi>  Indicates short guard interval
+			
+			<legal 0-1>
+*/
+
+#define HT_SIG_INFO_SHORT_GI_OFFSET                                                 0x00000004
+#define HT_SIG_INFO_SHORT_GI_LSB                                                    7
+#define HT_SIG_INFO_SHORT_GI_MSB                                                    7
+#define HT_SIG_INFO_SHORT_GI_MASK                                                   0x00000080
+
+
+/* Description		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_NUM_EXT_SP_STR_OFFSET                                           0x00000004
+#define HT_SIG_INFO_NUM_EXT_SP_STR_LSB                                              8
+#define HT_SIG_INFO_NUM_EXT_SP_STR_MSB                                              9
+#define HT_SIG_INFO_NUM_EXT_SP_STR_MASK                                             0x00000300
+
+
+/* Description		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_CRC_OFFSET                                                      0x00000004
+#define HT_SIG_INFO_CRC_LSB                                                         10
+#define HT_SIG_INFO_CRC_MSB                                                         17
+#define HT_SIG_INFO_CRC_MASK                                                        0x0003fc00
+
+
+/* Description		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_SIGNAL_TAIL_OFFSET                                              0x00000004
+#define HT_SIG_INFO_SIGNAL_TAIL_LSB                                                 18
+#define HT_SIG_INFO_SIGNAL_TAIL_MSB                                                 23
+#define HT_SIG_INFO_SIGNAL_TAIL_MASK                                                0x00fc0000
+
+
+/* Description		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_RESERVED_1_OFFSET                                               0x00000004
+#define HT_SIG_INFO_RESERVED_1_LSB                                                  24
+#define HT_SIG_INFO_RESERVED_1_MSB                                                  30
+#define HT_SIG_INFO_RESERVED_1_MASK                                                 0x7f000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HT-SIG CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                                0x00000004
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                   31
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                   31
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                  0x80000000
+
+
+
+#endif   // HT_SIG_INFO
diff --git a/hw/qca5332/l_sig_a_info.h b/hw/qca5332/l_sig_a_info.h
new file mode 100644
index 0000000..8690ffc
--- /dev/null
+++ b/hw/qca5332/l_sig_a_info.h
@@ -0,0 +1,209 @@
+
+/* 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 _L_SIG_A_INFO_H_
+#define _L_SIG_A_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_L_SIG_A_INFO 1
+
+
+struct l_sig_a_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rate                                                    :  4, // [3:0]
+                      lsig_reserved                                           :  1, // [4:4]
+                      length                                                  : 12, // [16:5]
+                      parity                                                  :  1, // [17:17]
+                      tail                                                    :  6, // [23:18]
+                      pkt_type                                                :  4, // [27:24]
+                      captured_implicit_sounding                              :  1, // [28:28]
+                      reserved                                                :  2, // [30:29]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved                                                :  2, // [30:29]
+                      captured_implicit_sounding                              :  1, // [28:28]
+                      pkt_type                                                :  4, // [27:24]
+                      tail                                                    :  6, // [23:18]
+                      parity                                                  :  1, // [17:17]
+                      length                                                  : 12, // [16:5]
+                      lsig_reserved                                           :  1, // [4:4]
+                      rate                                                    :  4; // [3:0]
+#endif
+};
+
+
+/* Description		RATE
+
+			This format is originally defined for OFDM as a 4 bit field
+			 but the 5th bit was added to indicate 11b formatted frames. 
+			 In the standard bit [4] is specified as reserved.  For 
+			11b frames this L-SIG is transformed in the PHY into the
+			 11b preamble format.  The following are the rates:
+			<enum 8     ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
+			<enum 9     ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
+			<enum 10     ofdm_12_mbps> QPSK 1/2 (12 Mbps)
+			<enum 11     ofdm_6_mbps> BPSK 1/2 (6 Mbps)
+			<enum 12     ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
+			<enum 13     ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
+			<enum 14     ofdm_18_mbps> QPSK 1/2 (18 Mbps)
+			<enum 15     ofdm_9_mbps> BPSK 3/4 (9 Mbps)
+			<legal 8-15>
+*/
+
+#define L_SIG_A_INFO_RATE_OFFSET                                                    0x00000000
+#define L_SIG_A_INFO_RATE_LSB                                                       0
+#define L_SIG_A_INFO_RATE_MSB                                                       3
+#define L_SIG_A_INFO_RATE_MASK                                                      0x0000000f
+
+
+/* Description		LSIG_RESERVED
+
+			Reserved: Should be set to 0 by the MAC and ignored by the
+			 PHY
+			<legal 0>
+*/
+
+#define L_SIG_A_INFO_LSIG_RESERVED_OFFSET                                           0x00000000
+#define L_SIG_A_INFO_LSIG_RESERVED_LSB                                              4
+#define L_SIG_A_INFO_LSIG_RESERVED_MSB                                              4
+#define L_SIG_A_INFO_LSIG_RESERVED_MASK                                             0x00000010
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU. 
+			 Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
+			 this length provides the spoofed length for the PPDU.  
+			This length provides part of the information (viz. PPDU 
+			duration) to derive the actually PSDU length.  For legacy
+			 OFDM and 11B frames the maximum length is 4095.
+			<legal all>
+*/
+
+#define L_SIG_A_INFO_LENGTH_OFFSET                                                  0x00000000
+#define L_SIG_A_INFO_LENGTH_LSB                                                     5
+#define L_SIG_A_INFO_LENGTH_MSB                                                     16
+#define L_SIG_A_INFO_LENGTH_MASK                                                    0x0001ffe0
+
+
+/* Description		PARITY
+
+			11a/n/ac TX: This field provides even parity over the first
+			 18 bits of the signal field which means that the sum of
+			 1s in the signal field will always be even on transmission. 
+			The value of the field is computed by the MAC.
+			11a/n/ac RX: this field contains the received parity field
+			 from the L-SIG symbol for the current packet.
+			<legal 0-1>
+*/
+
+#define L_SIG_A_INFO_PARITY_OFFSET                                                  0x00000000
+#define L_SIG_A_INFO_PARITY_LSB                                                     17
+#define L_SIG_A_INFO_PARITY_MSB                                                     17
+#define L_SIG_A_INFO_PARITY_MASK                                                    0x00020000
+
+
+/* Description		TAIL
+
+			The 6 bits of tail is always set to 0 is used to flush the
+			 BCC encoder and decoder.  <legal 0>
+*/
+
+#define L_SIG_A_INFO_TAIL_OFFSET                                                    0x00000000
+#define L_SIG_A_INFO_TAIL_LSB                                                       18
+#define L_SIG_A_INFO_TAIL_MSB                                                       23
+#define L_SIG_A_INFO_TAIL_MASK                                                      0x00fc0000
+
+
+/* Description		PKT_TYPE
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define L_SIG_A_INFO_PKT_TYPE_OFFSET                                                0x00000000
+#define L_SIG_A_INFO_PKT_TYPE_LSB                                                   24
+#define L_SIG_A_INFO_PKT_TYPE_MSB                                                   27
+#define L_SIG_A_INFO_PKT_TYPE_MASK                                                  0x0f000000
+
+
+/* Description		CAPTURED_IMPLICIT_SOUNDING
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			This indicates that the PHY has captured implicit sounding.
+			
+*/
+
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_OFFSET                              0x00000000
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_LSB                                 28
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MSB                                 28
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MASK                                0x10000000
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define L_SIG_A_INFO_RESERVED_OFFSET                                                0x00000000
+#define L_SIG_A_INFO_RESERVED_LSB                                                   29
+#define L_SIG_A_INFO_RESERVED_MSB                                                   30
+#define L_SIG_A_INFO_RESERVED_MASK                                                  0x60000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the L-SIG integrity 
+			check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                               0x00000000
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                  31
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                  31
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                 0x80000000
+
+
+
+#endif   // L_SIG_A_INFO
diff --git a/hw/qca5332/l_sig_b_info.h b/hw/qca5332/l_sig_b_info.h
new file mode 100644
index 0000000..14746d9
--- /dev/null
+++ b/hw/qca5332/l_sig_b_info.h
@@ -0,0 +1,107 @@
+
+/* 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 _L_SIG_B_INFO_H_
+#define _L_SIG_B_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_L_SIG_B_INFO 1
+
+
+struct l_sig_b_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rate                                                    :  4, // [3:0]
+                      length                                                  : 12, // [15:4]
+                      reserved                                                : 15, // [30:16]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved                                                : 15, // [30:16]
+                      length                                                  : 12, // [15:4]
+                      rate                                                    :  4; // [3:0]
+#endif
+};
+
+
+/* Description		RATE
+
+			<enum 1    dsss_1_mpbs_long> DSSS 1 Mbps long
+			<enum 2    dsss_2_mbps_long> DSSS 2 Mbps long
+			<enum 3    cck_5_5_mbps_long> CCK 5.5 Mbps long
+			<enum 4    cck_11_mbps_long> CCK 11 Mbps long
+			<enum 5    dsss_2_mbps_short> DSSS 2 Mbps short
+			<enum 6    cck_5_5_mbps_short> CCK 5.5 Mbps short
+			<enum 7    cck_11_mbps_short> CCK 11 Mbps short
+			<legal 1-7>
+*/
+
+#define L_SIG_B_INFO_RATE_OFFSET                                                    0x00000000
+#define L_SIG_B_INFO_RATE_LSB                                                       0
+#define L_SIG_B_INFO_RATE_MSB                                                       3
+#define L_SIG_B_INFO_RATE_MASK                                                      0x0000000f
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU.
+			<legal all>
+*/
+
+#define L_SIG_B_INFO_LENGTH_OFFSET                                                  0x00000000
+#define L_SIG_B_INFO_LENGTH_LSB                                                     4
+#define L_SIG_B_INFO_LENGTH_MSB                                                     15
+#define L_SIG_B_INFO_LENGTH_MASK                                                    0x0000fff0
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define L_SIG_B_INFO_RESERVED_OFFSET                                                0x00000000
+#define L_SIG_B_INFO_RESERVED_LSB                                                   16
+#define L_SIG_B_INFO_RESERVED_MSB                                                   30
+#define L_SIG_B_INFO_RESERVED_MASK                                                  0x7fff0000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the .11b PHY header 
+			CRC check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                               0x00000000
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                  31
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                  31
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                 0x80000000
+
+
+
+#endif   // L_SIG_B_INFO
diff --git a/hw/qca5332/macrx_abort_request_info.h b/hw/qca5332/macrx_abort_request_info.h
new file mode 100644
index 0000000..c5c9995
--- /dev/null
+++ b/hw/qca5332/macrx_abort_request_info.h
@@ -0,0 +1,91 @@
+
+/* 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 _MACRX_ABORT_REQUEST_INFO_H_
+#define _MACRX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_MACRX_ABORT_REQUEST_INFO 1
+
+
+struct macrx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t macrx_abort_reason                                      :  8, // [7:0]
+                      reserved_0                                              :  8; // [15:8]
+#else
+             uint16_t reserved_0                                              :  8, // [15:8]
+                      macrx_abort_reason                                      :  8; // [7:0]
+#endif
+};
+
+
+/* Description		MACRX_ABORT_REASON
+
+			<enum 0 macrx_abort_sw_initiated>
+			<enum 1 macrx_abort_obss_reception> Upon receiving this 
+			abort reason, PHY should stop reception of the current frame
+			 and go back into a search mode
+			<enum 2 macrx_abort_other>
+			<enum 3 macrx_abort_sw_initiated_channel_switch> MAC FW 
+			issued an abort for channel switch reasons
+			<enum 4 macrx_abort_sw_initiated_power_save> MAC FW issued
+			 an abort power save reasons
+			<enum 5 macrx_abort_too_much_bad_data> RXPCU is terminating
+			 the current ongoing reception, as the data that MAC is 
+			receiving seems to be all garbage... The PER is too high, 
+			or in case of MU UL, Likely the trigger frame never got 
+			properly received by any of the targeted MU UL devices. 
+			After the abort, PHYRX can resume a normal search mode.
+			<enum 6 macrx_abort_ul_mu_early_abort> RXPCU is terminating
+			 the current ongoing UL MU reception, because at the end
+			 of the "early_termination_window," the required number 
+			of users with at least one valid MPDU delimiter was not 
+			reached. Likely the trigger frame never got properly received
+			 by the required number of targeted devices. After the abort, 
+			PHYRX can resume a normal search mode.
+			
+			<legal 0-6>
+*/
+
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_OFFSET                          0x00000000
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_LSB                             0
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MSB                             7
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MASK                            0x000000ff
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET                                  0x00000000
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_LSB                                     8
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MSB                                     15
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MASK                                    0x0000ff00
+
+
+
+#endif   // MACRX_ABORT_REQUEST_INFO
diff --git a/hw/qca5332/mactx_eht_sig_usr_mu_mimo.h b/hw/qca5332/mactx_eht_sig_usr_mu_mimo.h
new file mode 100644
index 0000000..fd5329d
--- /dev/null
+++ b/hw/qca5332/mactx_eht_sig_usr_mu_mimo.h
@@ -0,0 +1,217 @@
+
+/* 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 _MACTX_EHT_SIG_USR_MU_MIMO_H_
+#define _MACTX_EHT_SIG_USR_MU_MIMO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "eht_sig_usr_mu_mimo_info.h"
+#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_MU_MIMO 2
+
+#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_MU_MIMO 1
+
+
+struct mactx_eht_sig_usr_mu_mimo {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   eht_sig_usr_mu_mimo_info                                  mactx_eht_sig_usr_mu_mimo_info_details;
+#else
+             struct   eht_sig_usr_mu_mimo_info                                  mactx_eht_sig_usr_mu_mimo_info_details;
+#endif
+};
+
+
+/* Description		MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_LSB 0
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_MSB 10
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_ID_MASK 0x00000000000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: validate
+			15: MCS 0 with DCM
+			<legal 0-13, 15>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_LSB 11
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_MSB 14
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_MCS_MASK 0x0000000000007800
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_LSB 15
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_MSB 15
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_CODING_MASK 0x0000000000008000
+
+
+/* Description		STA_SPATIAL_CONFIG
+
+			Number of assigned spatial streams and their corresponding
+			 index. 
+			Total number of spatial streams assigned for the MU-MIMO
+			 allocation is also signaled. 
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB 16
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB 21
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK 0x00000000003f0000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_LSB 22
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_MSB 22
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000400000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 23
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 23
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000000800000
+
+
+/* Description		SUBBAND80_CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channels of what 80 MHz 
+			subbands this User field can go to
+			Bit 0: lowest 80 MHz content channel 0
+			Bit 1: lowest 80 MHz content channel 1
+			Bit 2: 2nd lowest 80 MHz content channel 0
+			...
+			Bit 7: highest 80 MHz content channel 1
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_LSB 24
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_MSB 31
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_SUBBAND80_CC_MASK_MASK 0x00000000ff000000
+
+
+/* Description		USER_ORDER_SUBBAND80_0
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the lowest
+			 80 MHz
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_LSB 32
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MSB 39
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MASK 0x000000ff00000000
+
+
+/* Description		USER_ORDER_SUBBAND80_1
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 lowest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_LSB 40
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MSB 47
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MASK 0x0000ff0000000000
+
+
+/* Description		USER_ORDER_SUBBAND80_2
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 highest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_LSB 48
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MSB 55
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MASK 0x00ff000000000000
+
+
+/* Description		USER_ORDER_SUBBAND80_3
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the highest
+			 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_LSB 56
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MSB 63
+#define MACTX_EHT_SIG_USR_MU_MIMO_MACTX_EHT_SIG_USR_MU_MIMO_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MASK 0xff00000000000000
+
+
+
+#endif   // MACTX_EHT_SIG_USR_MU_MIMO
diff --git a/hw/qca5332/mactx_eht_sig_usr_ofdma.h b/hw/qca5332/mactx_eht_sig_usr_ofdma.h
new file mode 100644
index 0000000..f151181
--- /dev/null
+++ b/hw/qca5332/mactx_eht_sig_usr_ofdma.h
@@ -0,0 +1,244 @@
+
+/* 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 _MACTX_EHT_SIG_USR_OFDMA_H_
+#define _MACTX_EHT_SIG_USR_OFDMA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "eht_sig_usr_ofdma_info.h"
+#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_OFDMA 2
+
+#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_OFDMA 1
+
+
+struct mactx_eht_sig_usr_ofdma {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   eht_sig_usr_ofdma_info                                    mactx_eht_sig_usr_ofdma_info_details;
+#else
+             struct   eht_sig_usr_ofdma_info                                    mactx_eht_sig_usr_ofdma_info_details;
+#endif
+};
+
+
+/* Description		MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_OFFSET  0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_LSB     0
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_MSB     10
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_ID_MASK    0x00000000000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: validate
+			15: MCS 0 with DCM
+			<legal 0-13, 15>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_LSB    11
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_MSB    14
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_MCS_MASK   0x0000000000007800
+
+
+/* Description		VALIDATE_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_LSB 15
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_MSB 15
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_VALIDATE_0A_MASK 0x0000000000008000
+
+
+/* Description		NSS
+
+			Number of spatial streams for this user
+			
+			The actual number of streams is 1 larger than indicated 
+			in this field.
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_OFFSET     0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_LSB        16
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_MSB        19
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_NSS_MASK       0x00000000000f0000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_OFFSET    0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_LSB       20
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_MSB       20
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_TXBF_MASK      0x0000000000100000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_LSB 21
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_MSB 21
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_STA_CODING_MASK 0x0000000000200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_LSB 22
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_MSB 22
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RESERVED_0B_MASK 0x0000000000400000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 23
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 23
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000000800000
+
+
+/* Description		SUBBAND80_CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channels of what 80 MHz 
+			subbands this User field can go to
+			Bit 0: lowest 80 MHz content channel 0
+			Bit 1: lowest 80 MHz content channel 1
+			Bit 2: 2nd lowest 80 MHz content channel 0
+			...
+			Bit 7: highest 80 MHz content channel 1
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_LSB 24
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_MSB 31
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_SUBBAND80_CC_MASK_MASK 0x00000000ff000000
+
+
+/* Description		USER_ORDER_SUBBAND80_0
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the lowest
+			 80 MHz
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_LSB 32
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MSB 39
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_0_MASK 0x000000ff00000000
+
+
+/* Description		USER_ORDER_SUBBAND80_1
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 lowest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_LSB 40
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MSB 47
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_1_MASK 0x0000ff0000000000
+
+
+/* Description		USER_ORDER_SUBBAND80_2
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the 2nd
+			 highest 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_LSB 48
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MSB 55
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_2_MASK 0x00ff000000000000
+
+
+/* Description		USER_ORDER_SUBBAND80_3
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field within the highest
+			 80 MHz
+			See 'user_order_subband80_0.'
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_LSB 56
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MSB 63
+#define MACTX_EHT_SIG_USR_OFDMA_MACTX_EHT_SIG_USR_OFDMA_INFO_DETAILS_USER_ORDER_SUBBAND80_3_MASK 0xff00000000000000
+
+
+
+#endif   // MACTX_EHT_SIG_USR_OFDMA
diff --git a/hw/qca5332/mactx_eht_sig_usr_su.h b/hw/qca5332/mactx_eht_sig_usr_su.h
new file mode 100644
index 0000000..17d381c
--- /dev/null
+++ b/hw/qca5332/mactx_eht_sig_usr_su.h
@@ -0,0 +1,178 @@
+
+/* 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 _MACTX_EHT_SIG_USR_SU_H_
+#define _MACTX_EHT_SIG_USR_SU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "eht_sig_usr_su_info.h"
+#define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_SU 2
+
+#define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_SU 1
+
+
+struct mactx_eht_sig_usr_su {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   eht_sig_usr_su_info                                       mactx_eht_sig_usr_su_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   eht_sig_usr_su_info                                       mactx_eht_sig_usr_su_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_EHT_SIG_USR_SU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_OFFSET        0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_LSB           0
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MSB           10
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MASK          0x00000000000007ff
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+			0 - 13: MCS 0 - 13
+			14: MCS 0 with DCM and 2x duplicate
+			15: MCS 0 with DCM
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_OFFSET       0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_LSB          11
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MSB          14
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MASK         0x0000000000007800
+
+
+/* Description		VALIDATE_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_OFFSET   0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_LSB      15
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MSB      15
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MASK     0x0000000000008000
+
+
+/* Description		NSS
+
+			Number of spatial streams for this user
+			
+			The actual number of streams is 1 larger than indicated 
+			in this field.
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_OFFSET           0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_LSB              16
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MSB              19
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MASK             0x00000000000f0000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_OFFSET          0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_LSB             20
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MSB             20
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MASK            0x0000000000100000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_OFFSET    0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_LSB       21
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MSB       21
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MASK      0x0000000000200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_OFFSET   0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_LSB      22
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MSB      30
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MASK     0x000000007fc00000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this EHT-SIG user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_OFFSET                                   0x0000000000000000
+#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_LSB                                      32
+#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MSB                                      63
+#define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MASK                                     0xffffffff00000000
+
+
+
+#endif   // MACTX_EHT_SIG_USR_SU
diff --git a/hw/qca5332/mactx_he_sig_a_mu_dl.h b/hw/qca5332/mactx_he_sig_a_mu_dl.h
new file mode 100644
index 0000000..32e31e3
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_a_mu_dl.h
@@ -0,0 +1,400 @@
+
+/* 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 _MACTX_HE_SIG_A_MU_DL_H_
+#define _MACTX_HE_SIG_A_MU_DL_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_mu_dl_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_A_MU_DL 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_A_MU_DL 1
+
+
+struct mactx_he_sig_a_mu_dl {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_mu_dl_info                                       mactx_he_sig_a_mu_dl_info_details;
+#else
+             struct   he_sig_a_mu_dl_info                                       mactx_he_sig_a_mu_dl_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_A_MU_DL_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			NOTE: This is unsupported for "HE MU" format (including "MU_SU") 
+			Tx in Napier and Hastings80.
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET    0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_LSB       0
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MSB       0
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MASK      0x0000000000000001
+
+
+/* Description		MCS_OF_SIG_B
+
+			Indicates the MCS of HE-SIG-B
+			<legal 0-5>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_LSB     1
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MSB     3
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MASK    0x000000000000000e
+
+
+/* Description		DCM_OF_SIG_B
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to HE-SIG-B 
+			
+			0: No DCM for HE_SIG_B
+			1: DCM for HE_SIG_B
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_LSB     4
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MSB     4
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MASK    0x0000000000000010
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_LSB     5
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MSB     10
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MASK    0x00000000000007e0
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_LSB    11
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MSB    14
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MASK   0x0000000000007800
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
+			 mode
+			<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
+			 puncturing mode
+			<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
+			 in 80 MHz, where in the preamble only the secondary 20 
+			MHz is punctured
+			<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
+			 puncturing in 80 MHz, where in the preamble only one of
+			 the two 20 MHz sub-channels in secondary 40 MHz is punctured.
+			
+			<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
+			 in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
+			 the preamble only the secondary 20 MHz is punctured.
+			<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
+			 puncturing in 160 MHz or 80+80 MHz, where in the primary
+			 80 MHz of the preamble the primary 40 MHz is present.
+			
+			On RX side, Field Used by MAC HW
+			<legal 0-7>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_LSB      15
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MSB      17
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MASK     0x0000000000038000
+
+
+/* Description		NUM_SIG_B_SYMBOLS
+
+			Number of symbols
+			
+			For OFDMA, the actual number of symbols is 1 larger then
+			 indicated in this field.
+			
+			For MU-MIMO this is equal to the number of users - 1: the
+			 following encoding is used:
+			1 => 2 users
+			2 => 3 users
+			Etc.
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_LSB 18
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MSB 21
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MASK 0x00000000003c0000
+
+
+/* Description		COMP_MODE_SIG_B
+
+			Indicates the compression mode of HE-SIG-B
+			
+			0: Regular [uncomp mode]
+			1: compressed mode (full-BW MU-MIMO only) 
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_LSB  22
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MSB  22
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MASK 0x0000000000400000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
+			<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP 
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_LSB      23
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MSB      24
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MASK     0x0000000001800000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_LSB 25
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MSB 25
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000000002000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_LSB      26
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MSB      31
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MASK     0x00000000fc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_LSB    32
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MSB    38
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MASK   0x0000007f00000000
+
+
+/* Description		RESERVED_1A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_LSB      39
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MSB      39
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MASK     0x0000008000000000
+
+
+/* Description		NUM_LTF_SYMBOLS
+
+			Indicates the number of HE-LTF symbols
+			
+			0: 1 LTF
+			1: 2 LTFs
+			2: 4 LTFs
+			3: 6 LTFs
+			4: 8 LTFs
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_LSB  40
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MSB  42
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MASK 0x0000070000000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 43
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 43
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000080000000000
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_OFFSET          0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_LSB             44
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MSB             44
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MASK            0x0000100000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 45
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 46
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000600000000000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 47
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 47
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000800000000000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_OFFSET           0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_LSB              48
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MSB              51
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MASK             0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_LSB             52
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MSB             57
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MASK            0x03f0000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_LSB      58
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MSB      62
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MASK     0x7c00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define MACTX_HE_SIG_A_MU_DL_MACTX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_HE_SIG_A_MU_DL
diff --git a/hw/qca5332/mactx_he_sig_a_mu_ul.h b/hw/qca5332/mactx_he_sig_a_mu_ul.h
new file mode 100644
index 0000000..0e2abfe
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_a_mu_ul.h
@@ -0,0 +1,211 @@
+
+/* 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 _MACTX_HE_SIG_A_MU_UL_H_
+#define _MACTX_HE_SIG_A_MU_UL_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_mu_ul_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_A_MU_UL 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_A_MU_UL 1
+
+
+struct mactx_he_sig_a_mu_ul {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_mu_ul_info                                       mactx_he_sig_a_mu_ul_info_details;
+#else
+             struct   he_sig_a_mu_ul_info                                       mactx_he_sig_a_mu_ul_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_A_MU_UL_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		FORMAT_INDICATION
+
+			Indicates whether the transmission is SU PPDU or a trigger
+			 based UL MU PDDU
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_LSB 0
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MSB 0
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_LSB     1
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MSB     6
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_BSS_COLOR_ID_MASK    0x000000000000007e
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_LSB    7
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_MSB    22
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_SPATIAL_REUSE_MASK   0x00000000007fff80
+
+
+/* Description		RESERVED_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_LSB      23
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_MSB      23
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0A_MASK     0x0000000000800000
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
+			
+			On RX side, Field Used by MAC HW
+			<legal 0-3>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_LSB      24
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MSB      25
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TRANSMIT_BW_MASK     0x0000000003000000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_LSB      26
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_MSB      31
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_0B_MASK     0x00000000fc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP <legal 
+			all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_LSB    32
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_MSB    38
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TXOP_DURATION_MASK   0x0000007f00000000
+
+
+/* Description		RESERVED_1A
+
+			Set to value indicated in the trigger frame
+			<legal 255>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_LSB      39
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_MSB      47
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1A_MASK     0x0000ff8000000000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			This CRC may also cover some fields of L-SIG (TBD)
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_OFFSET           0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_LSB              48
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_MSB              51
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_CRC_MASK             0x000f000000000000
+
+
+/* Description		TAIL
+
+			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is 
+			used
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_LSB             52
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MSB             57
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_TAIL_MASK            0x03f0000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_LSB      58
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_MSB      62
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RESERVED_1B_MASK     0x7c00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define MACTX_HE_SIG_A_MU_UL_MACTX_HE_SIG_A_MU_UL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_HE_SIG_A_MU_UL
diff --git a/hw/qca5332/mactx_he_sig_a_su.h b/hw/qca5332/mactx_he_sig_a_su.h
new file mode 100644
index 0000000..f03cf0a
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_a_su.h
@@ -0,0 +1,506 @@
+
+/* 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 _MACTX_HE_SIG_A_SU_H_
+#define _MACTX_HE_SIG_A_SU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_su_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_A_SU 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_A_SU 1
+
+
+struct mactx_he_sig_a_su {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_su_info                                          mactx_he_sig_a_su_info_details;
+#else
+             struct   he_sig_a_su_info                                          mactx_he_sig_a_su_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_A_SU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		FORMAT_INDICATION
+
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB      0
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB      0
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK     0x0000000000000001
+
+
+/* Description		BEAM_CHANGE
+
+			Indicates whether spatial mapping is changed between legacy
+			 and HE portion of preamble. If not, channel estimation 
+			can include legacy preamble to improve accuracy
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB            1
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB            1
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK           0x0000000000000002
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET          0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB             2
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB             2
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK            0x0000000000000004
+
+
+/* Description		TRANSMIT_MCS
+
+			Indicates the data MCS
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB           3
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB           6
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK          0x0000000000000078
+
+
+/* Description		DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET                 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB                    7
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB                    7
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK                   0x0000000000000080
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB           8
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB           13
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK          0x0000000000003f00
+
+
+/* Description		RESERVED_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB            14
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB            14
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK           0x0000000000004000
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET       0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB          15
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB          18
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK         0x0000000000078000
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                                 
+			<enum 0 HE_SIG_A_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
+			
+			For HE Extended Range SU PPDU
+			Set to 0 for 242-tone RU                                
+			                                                        
+			                  Set to 1 for right 106-tone RU within 
+			the primary 20 MHz  
+			
+			On RX side, Field Used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB            19
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB            20
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK           0x0000000000180000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			NOTE:
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB            21
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB            22
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK           0x0000000000600000
+
+
+/* Description		NSTS
+
+			Indicates number of streams used for the SU transmission
+			
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                      Set to n for n+1 space time stream, 
+			where n = 0, 1, 2,.....,7.                              
+			                                                        
+			                                                        
+			            
+			
+			For HE Extended Range PPDU                              
+			                                                        
+			                                                        
+			                            Set to 0 for 1 space time stream. 
+			 Value 1 is TBD                                         
+			                                                        
+			                                                        
+			                                                        
+			   Values 2 - 7 are reserved
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET                0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB                   23
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB                   25
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK                  0x0000000003800000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB            26
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB            31
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK           0x00000000fc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET       0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB          32
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB          38
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK         0x0000007f00000000
+
+
+/* Description		CODING
+
+			Distinguishes between BCC and LDPC coding. 
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET              0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB                 39
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB                 39
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK                0x0000008000000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET   0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB      40
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB      40
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK     0x0000010000000000
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET                0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB                   41
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB                   41
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK                  0x0000020000000000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET                0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB                   42
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB                   42
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK                  0x0000040000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
+
+
+/* Description		RESERVED_1A
+
+			Note: per standard, set to 1
+			<legal 1>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET         0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB            46
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB            46
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK           0x0000400000000000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB     47
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB     47
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK    0x0000800000000000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET                 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB                    48
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB                    51
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK                   0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET                0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB                   52
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB                   57
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK                  0x03f0000000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know that this was an HE_SIG_A_SU received in
+			 'extended' format
+			
+			When set, the 11ax frame is of the extended range format
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB    58
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB    58
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK   0x0400000000000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			Field only contains valid info when dot11ax_su_extended 
+			is set.
+			
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know what the number of based RUs was in this
+			 extended range reception. It is used by the MAC to determine
+			 the RU size for the response...
+			
+			<enum 0 EXT_RU_26> 
+			<enum 1 EXT_RU_52>
+			<enum 2 EXT_RU_106>
+			<enum 3 EXT_RU_242><legal 0-3>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB    59
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB    61
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK   0x3800000000000000
+
+
+/* Description		RX_NDP
+
+			TX side:
+			Set to 0
+			
+			RX side:Valid on RX side only, and looked at by MAC HW
+			
+			When set, PHY has received (expected) NDP frame
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET              0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB                 62
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB                 62
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK                0x4000000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_HE_SIG_A_SU
diff --git a/hw/qca5332/mactx_he_sig_b1_mu.h b/hw/qca5332/mactx_he_sig_b1_mu.h
new file mode 100644
index 0000000..f980900
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_b1_mu.h
@@ -0,0 +1,110 @@
+
+/* 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 _MACTX_HE_SIG_B1_MU_H_
+#define _MACTX_HE_SIG_B1_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b1_mu_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_B1_MU 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_B1_MU 1
+
+
+struct mactx_he_sig_b1_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b1_mu_info                                         mactx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   he_sig_b1_mu_info                                         mactx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_B1_MU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RU_ALLOCATION
+
+			RU allocation for the user(s) following this common portion
+			 of the SIG
+			
+			For details, refer to  RU_TYPE description
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET     0x0000000000000000
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_LSB        0
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MSB        7
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MASK       0x00000000000000ff
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_LSB           8
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MSB           30
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MASK          0x000000007fffff00
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing the HE-SIG-B common info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define MACTX_HE_SIG_B1_MU_MACTX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_OFFSET                                     0x0000000000000000
+#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_LSB                                        32
+#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_MSB                                        63
+#define MACTX_HE_SIG_B1_MU_TLV64_PADDING_MASK                                       0xffffffff00000000
+
+
+
+#endif   // MACTX_HE_SIG_B1_MU
diff --git a/hw/qca5332/mactx_he_sig_b2_mu.h b/hw/qca5332/mactx_he_sig_b2_mu.h
new file mode 100644
index 0000000..e94f757
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_b2_mu.h
@@ -0,0 +1,212 @@
+
+/* 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 _MACTX_HE_SIG_B2_MU_H_
+#define _MACTX_HE_SIG_B2_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_mu_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_B2_MU 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_B2_MU 1
+
+
+struct mactx_he_sig_b2_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_mu_info                                         mactx_he_sig_b2_mu_info_details;
+#else
+             struct   he_sig_b2_mu_info                                         mactx_he_sig_b2_mu_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_B2_MU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET            0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB               0
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB               10
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK              0x00000000000007ff
+
+
+/* Description		STA_SPATIAL_CONFIG
+
+			Number of assigned spatial streams and their corresponding
+			 index. 
+			Total number of spatial streams assigned for the MU-MIMO
+			 allocation is also signaled. 
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB   11
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB   14
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK  0x0000000000007800
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET           0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB              15
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB              18
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK             0x0000000000078000
+
+
+/* Description		RESERVED_SET_TO_1
+
+			<legal 1>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB    19
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB    19
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK   0x0000000000080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB           20
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB           20
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK          0x0000000000100000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET       0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB          21
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB          27
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK         0x000000000fe00000
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			Needed by RXPCU. Provided by PHY so that RXPCU does not 
+			need to have the RU number decoding logic.
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET              0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB                 28
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB                 30
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK                0x0000000070000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB           32
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB           39
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK          0x000000ff00000000
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET           0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB              40
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB              47
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK             0x0000ff0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET       0x0000000000000000
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB          48
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB          63
+#define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK         0xffff000000000000
+
+
+
+#endif   // MACTX_HE_SIG_B2_MU
diff --git a/hw/qca5332/mactx_he_sig_b2_ofdma.h b/hw/qca5332/mactx_he_sig_b2_ofdma.h
new file mode 100644
index 0000000..2f946ed
--- /dev/null
+++ b/hw/qca5332/mactx_he_sig_b2_ofdma.h
@@ -0,0 +1,214 @@
+
+/* 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 _MACTX_HE_SIG_B2_OFDMA_H_
+#define _MACTX_HE_SIG_B2_OFDMA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_ofdma_info.h"
+#define NUM_OF_DWORDS_MACTX_HE_SIG_B2_OFDMA 2
+
+#define NUM_OF_QWORDS_MACTX_HE_SIG_B2_OFDMA 1
+
+
+struct mactx_he_sig_b2_ofdma {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_ofdma_info                                      mactx_he_sig_b2_ofdma_info_details;
+#else
+             struct   he_sig_b2_ofdma_info                                      mactx_he_sig_b2_ofdma_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET      0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_LSB         0
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MSB         10
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MASK        0x00000000000007ff
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_LSB           11
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MSB           13
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MASK          0x0000000000003800
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_OFFSET        0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_LSB           14
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MSB           14
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MASK          0x0000000000004000
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_OFFSET     0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_LSB        15
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MSB        18
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MASK       0x0000000000078000
+
+
+/* Description		STA_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_OFFSET     0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_LSB        19
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MSB        19
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MASK       0x0000000000080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_LSB     20
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MSB     20
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MASK    0x0000000000100000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_LSB     21
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MSB     30
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MASK    0x000000007fe00000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_OFFSET  0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_LSB     32
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MSB     39
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MASK    0x000000ff00000000
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
+			<legal all>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_OFFSET     0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_LSB        40
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MSB        47
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MASK       0x0000ff0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_LSB    48
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MSB    63
+#define MACTX_HE_SIG_B2_OFDMA_MACTX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MASK   0xffff000000000000
+
+
+
+#endif   // MACTX_HE_SIG_B2_OFDMA
diff --git a/hw/qca5332/mactx_ht_sig.h b/hw/qca5332/mactx_ht_sig.h
new file mode 100644
index 0000000..68efcf9
--- /dev/null
+++ b/hw/qca5332/mactx_ht_sig.h
@@ -0,0 +1,280 @@
+
+/* 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 _MACTX_HT_SIG_H_
+#define _MACTX_HT_SIG_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "ht_sig_info.h"
+#define NUM_OF_DWORDS_MACTX_HT_SIG 2
+
+#define NUM_OF_QWORDS_MACTX_HT_SIG 1
+
+
+struct mactx_ht_sig {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   ht_sig_info                                               mactx_ht_sig_info_details;
+#else
+             struct   ht_sig_info                                               mactx_ht_sig_info_details;
+#endif
+};
+
+
+/* Description		MACTX_HT_SIG_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_OFFSET                           0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_LSB                              0
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_MSB                              6
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_MCS_MASK                             0x000000000000007f
+
+
+/* Description		CBW
+
+			Packet bandwidth:
+			<enum 0     ht_20_mhz>
+			<enum 1     ht_40_mhz>
+			<legal 0-1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_OFFSET                           0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_LSB                              7
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_MSB                              7
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CBW_MASK                             0x0000000000000080
+
+
+/* Description		LENGTH
+
+			This is the MPDU or A-MPDU length in octets of the PPDU
+			<legal all>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET                        0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_LSB                           8
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_MSB                           23
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_LENGTH_MASK                          0x0000000000ffff00
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET                    0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB                       24
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_MSB                       31
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK                      0x00000000ff000000
+
+
+/* Description		SMOOTHING
+
+			Field indicates if smoothing is needed
+			E_num 0     do_smoothing Unsupported setting: indicates 
+			smoothing is often used for beamforming 
+			<enum 1     no_smoothing> Indicates no smoothing is used
+			
+			<legal 1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET                     0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB                        32
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_MSB                        32
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK                       0x0000000100000000
+
+
+/* Description		NOT_SOUNDING
+
+			E_num 0     sounding Unsupported setting: indicates sounding
+			 is used
+			<enum 1     no_sounding>  Indicates no sounding is used
+			<legal 1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET                  0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB                     33
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MSB                     33
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK                    0x0000000200000000
+
+
+/* Description		HT_RESERVED
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY 
+			<legal 1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET                   0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB                      34
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_MSB                      34
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK                     0x0000000400000000
+
+
+/* Description		AGGREGATION
+
+			<enum 0     mpdu> Indicates MPDU format
+			<enum 1     a_mpdu> Indicates A-MPDU format
+			<legal 0-1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET                   0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB                      35
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_MSB                      35
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK                     0x0000000800000000
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_OFFSET                          0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_LSB                             36
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_MSB                             37
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_STBC_MASK                            0x0000003000000000
+
+
+/* Description		FEC_CODING
+
+			<enum 0     ht_bcc>  Indicates BCC coding
+			<enum 1     ht_ldpc>  Indicates LDPC coding
+			<legal 0-1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET                    0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB                       38
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_MSB                       38
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK                      0x0000004000000000
+
+
+/* Description		SHORT_GI
+
+			<enum 0     ht_normal_gi>  Indicates normal guard interval
+			
+			<enum 1     ht_short_gi>  Indicates short guard interval
+			
+			<legal 0-1>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET                      0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB                         39
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_MSB                         39
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK                        0x0000008000000000
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET                0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB                   40
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MSB                   41
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK                  0x0000030000000000
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_OFFSET                           0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_LSB                              42
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_MSB                              49
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_CRC_MASK                             0x0003fc0000000000
+
+
+/* Description		SIGNAL_TAIL
+
+			The 6 bits of tail is always set to 0 is used to flush the
+			 BCC encoder and decoder.  <legal 0>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET                   0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB                      50
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MSB                      55
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK                     0x00fc000000000000
+
+
+/* Description		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 MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET                    0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB                       56
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_MSB                       62
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK                      0x7f00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HT-SIG CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET     0x0000000000000000
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB        63
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB        63
+#define MACTX_HT_SIG_MACTX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK       0x8000000000000000
+
+
+
+#endif   // MACTX_HT_SIG
diff --git a/hw/qca5332/mactx_l_sig_a.h b/hw/qca5332/mactx_l_sig_a.h
new file mode 100644
index 0000000..02ac29e
--- /dev/null
+++ b/hw/qca5332/mactx_l_sig_a.h
@@ -0,0 +1,217 @@
+
+/* 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 _MACTX_L_SIG_A_H_
+#define _MACTX_L_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_a_info.h"
+#define NUM_OF_DWORDS_MACTX_L_SIG_A 2
+
+#define NUM_OF_QWORDS_MACTX_L_SIG_A 1
+
+
+struct mactx_l_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_a_info                                              mactx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   l_sig_a_info                                              mactx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_L_SIG_A_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RATE
+
+			This format is originally defined for OFDM as a 4 bit field
+			 but the 5th bit was added to indicate 11b formatted frames. 
+			 In the standard bit [4] is specified as reserved.  For 
+			11b frames this L-SIG is transformed in the PHY into the
+			 11b preamble format.  The following are the rates:
+			<enum 8     ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
+			<enum 9     ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
+			<enum 10     ofdm_12_mbps> QPSK 1/2 (12 Mbps)
+			<enum 11     ofdm_6_mbps> BPSK 1/2 (6 Mbps)
+			<enum 12     ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
+			<enum 13     ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
+			<enum 14     ofdm_18_mbps> QPSK 1/2 (18 Mbps)
+			<enum 15     ofdm_9_mbps> BPSK 3/4 (9 Mbps)
+			<legal 8-15>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_LSB                           0
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_MSB                           3
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+/* Description		LSIG_RESERVED
+
+			Reserved: Should be set to 0 by the MAC and ignored by the
+			 PHY
+			<legal 0>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET               0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB                  4
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MSB                  4
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK                 0x0000000000000010
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU. 
+			 Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
+			 this length provides the spoofed length for the PPDU.  
+			This length provides part of the information (viz. PPDU 
+			duration) to derive the actually PSDU length.  For legacy
+			 OFDM and 11B frames the maximum length is 4095.
+			<legal all>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_LSB                         5
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_MSB                         16
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_LENGTH_MASK                        0x000000000001ffe0
+
+
+/* Description		PARITY
+
+			11a/n/ac TX: This field provides even parity over the first
+			 18 bits of the signal field which means that the sum of
+			 1s in the signal field will always be even on transmission. 
+			The value of the field is computed by the MAC.
+			11a/n/ac RX: this field contains the received parity field
+			 from the L-SIG symbol for the current packet.
+			<legal 0-1>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET                      0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_LSB                         17
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_MSB                         17
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PARITY_MASK                        0x0000000000020000
+
+
+/* Description		TAIL
+
+			The 6 bits of tail is always set to 0 is used to flush the
+			 BCC encoder and decoder.  <legal 0>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET                        0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_LSB                           18
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_MSB                           23
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_TAIL_MASK                          0x0000000000fc0000
+
+
+/* Description		PKT_TYPE
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET                    0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB                       24
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MSB                       27
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK                      0x000000000f000000
+
+
+/* Description		CAPTURED_IMPLICIT_SOUNDING
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			This indicates that the PHY has captured implicit sounding.
+			
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET  0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB     28
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MSB     28
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK    0x0000000010000000
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_LSB                       29
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_MSB                       30
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RESERVED_MASK                      0x0000000060000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the L-SIG integrity 
+			check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define MACTX_L_SIG_A_MACTX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_L_SIG_A_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define MACTX_L_SIG_A_TLV64_PADDING_LSB                                             32
+#define MACTX_L_SIG_A_TLV64_PADDING_MSB                                             63
+#define MACTX_L_SIG_A_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // MACTX_L_SIG_A
diff --git a/hw/qca5332/mactx_l_sig_b.h b/hw/qca5332/mactx_l_sig_b.h
new file mode 100644
index 0000000..132695f
--- /dev/null
+++ b/hw/qca5332/mactx_l_sig_b.h
@@ -0,0 +1,125 @@
+
+/* 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 _MACTX_L_SIG_B_H_
+#define _MACTX_L_SIG_B_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_b_info.h"
+#define NUM_OF_DWORDS_MACTX_L_SIG_B 2
+
+#define NUM_OF_QWORDS_MACTX_L_SIG_B 1
+
+
+struct mactx_l_sig_b {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_b_info                                              mactx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   l_sig_b_info                                              mactx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_L_SIG_B_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RATE
+
+			<enum 1    dsss_1_mpbs_long> DSSS 1 Mbps long
+			<enum 2    dsss_2_mbps_long> DSSS 2 Mbps long
+			<enum 3    cck_5_5_mbps_long> CCK 5.5 Mbps long
+			<enum 4    cck_11_mbps_long> CCK 11 Mbps long
+			<enum 5    dsss_2_mbps_short> DSSS 2 Mbps short
+			<enum 6    cck_5_5_mbps_short> CCK 5.5 Mbps short
+			<enum 7    cck_11_mbps_short> CCK 11 Mbps short
+			<legal 1-7>
+*/
+
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_LSB                           0
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_MSB                           3
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU.
+			<legal all>
+*/
+
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_LSB                         4
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_MSB                         15
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_LENGTH_MASK                        0x000000000000fff0
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_LSB                       16
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_MSB                       30
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RESERVED_MASK                      0x000000007fff0000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the .11b PHY header 
+			CRC check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define MACTX_L_SIG_B_MACTX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_L_SIG_B_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define MACTX_L_SIG_B_TLV64_PADDING_LSB                                             32
+#define MACTX_L_SIG_B_TLV64_PADDING_MSB                                             63
+#define MACTX_L_SIG_B_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // MACTX_L_SIG_B
diff --git a/hw/qca5332/mactx_phy_desc.h b/hw/qca5332/mactx_phy_desc.h
new file mode 100644
index 0000000..0178b45
--- /dev/null
+++ b/hw/qca5332/mactx_phy_desc.h
@@ -0,0 +1,1088 @@
+
+/* 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 _MACTX_PHY_DESC_H_
+#define _MACTX_PHY_DESC_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MACTX_PHY_DESC 4
+
+#define NUM_OF_QWORDS_MACTX_PHY_DESC 2
+
+
+struct mactx_phy_desc {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reserved_0a                                             : 16, // [15:0]
+                      bf_type                                                 :  2, // [17:16]
+                      wait_sifs                                               :  2, // [19:18]
+                      dot11b_preamble_type                                    :  1, // [20:20]
+                      pkt_type                                                :  4, // [24:21]
+                      su_or_mu                                                :  2, // [26:25]
+                      mu_type                                                 :  1, // [27:27]
+                      bandwidth                                               :  3, // [30:28]
+                      channel_capture                                         :  1; // [31:31]
+             uint32_t mcs                                                     :  4, // [3:0]
+                      global_ofdma_mimo_enable                                :  1, // [4:4]
+                      reserved_1a                                             :  1, // [5:5]
+                      stbc                                                    :  1, // [6:6]
+                      dot11ax_su_extended                                     :  1, // [7:7]
+                      dot11ax_trigger_frame_embedded                          :  1, // [8:8]
+                      tx_pwr_shared                                           :  8, // [16:9]
+                      tx_pwr_unshared                                         :  8, // [24:17]
+                      measure_power                                           :  1, // [25:25]
+                      tpc_glut_self_cal                                       :  1, // [26:26]
+                      back_to_back_transmission_expected                      :  1, // [27:27]
+                      heavy_clip_nss                                          :  3, // [30:28]
+                      txbf_per_packet_no_csd_no_walsh                         :  1; // [31:31]
+             uint32_t ndp                                                     :  2, // [1:0]
+                      ul_flag                                                 :  1, // [2:2]
+                      triggered                                               :  1, // [3:3]
+                      ap_pkt_bw                                               :  3, // [6:4]
+                      ru_position_start                                       :  8, // [14:7]
+                      pcu_ppdu_setup_start_reason                             :  3, // [17:15]
+                      tlv_source                                              :  1, // [18:18]
+                      reserved_2a                                             :  2, // [20:19]
+                      nss                                                     :  3, // [23:21]
+                      stream_offset                                           :  3, // [26:24]
+                      reserved_2b                                             :  2, // [28:27]
+                      clpc_enable                                             :  1, // [29:29]
+                      mu_ndp                                                  :  1, // [30:30]
+                      response_expected                                       :  1; // [31:31]
+             uint32_t rx_chain_mask                                           :  8, // [7:0]
+                      rx_chain_mask_valid                                     :  1, // [8:8]
+                      ant_sel_valid                                           :  1, // [9:9]
+                      ant_sel                                                 :  1, // [10:10]
+                      cp_setting                                              :  2, // [12:11]
+                      he_ppdu_subtype                                         :  2, // [14:13]
+                      active_channel                                          :  3, // [17:15]
+                      generate_phyrx_tx_start_timing                          :  1, // [18:18]
+                      ltf_size                                                :  2, // [20:19]
+                      ru_size_updated_v2                                      :  4, // [24:21]
+                      reserved_3c                                             :  1, // [25:25]
+                      u_sig_puncture_pattern_encoding                         :  6; // [31:26]
+#else
+             uint32_t channel_capture                                         :  1, // [31:31]
+                      bandwidth                                               :  3, // [30:28]
+                      mu_type                                                 :  1, // [27:27]
+                      su_or_mu                                                :  2, // [26:25]
+                      pkt_type                                                :  4, // [24:21]
+                      dot11b_preamble_type                                    :  1, // [20:20]
+                      wait_sifs                                               :  2, // [19:18]
+                      bf_type                                                 :  2, // [17:16]
+                      reserved_0a                                             : 16; // [15:0]
+             uint32_t txbf_per_packet_no_csd_no_walsh                         :  1, // [31:31]
+                      heavy_clip_nss                                          :  3, // [30:28]
+                      back_to_back_transmission_expected                      :  1, // [27:27]
+                      tpc_glut_self_cal                                       :  1, // [26:26]
+                      measure_power                                           :  1, // [25:25]
+                      tx_pwr_unshared                                         :  8, // [24:17]
+                      tx_pwr_shared                                           :  8, // [16:9]
+                      dot11ax_trigger_frame_embedded                          :  1, // [8:8]
+                      dot11ax_su_extended                                     :  1, // [7:7]
+                      stbc                                                    :  1, // [6:6]
+                      reserved_1a                                             :  1, // [5:5]
+                      global_ofdma_mimo_enable                                :  1, // [4:4]
+                      mcs                                                     :  4; // [3:0]
+             uint32_t response_expected                                       :  1, // [31:31]
+                      mu_ndp                                                  :  1, // [30:30]
+                      clpc_enable                                             :  1, // [29:29]
+                      reserved_2b                                             :  2, // [28:27]
+                      stream_offset                                           :  3, // [26:24]
+                      nss                                                     :  3, // [23:21]
+                      reserved_2a                                             :  2, // [20:19]
+                      tlv_source                                              :  1, // [18:18]
+                      pcu_ppdu_setup_start_reason                             :  3, // [17:15]
+                      ru_position_start                                       :  8, // [14:7]
+                      ap_pkt_bw                                               :  3, // [6:4]
+                      triggered                                               :  1, // [3:3]
+                      ul_flag                                                 :  1, // [2:2]
+                      ndp                                                     :  2; // [1:0]
+             uint32_t u_sig_puncture_pattern_encoding                         :  6, // [31:26]
+                      reserved_3c                                             :  1, // [25:25]
+                      ru_size_updated_v2                                      :  4, // [24:21]
+                      ltf_size                                                :  2, // [20:19]
+                      generate_phyrx_tx_start_timing                          :  1, // [18:18]
+                      active_channel                                          :  3, // [17:15]
+                      he_ppdu_subtype                                         :  2, // [14:13]
+                      cp_setting                                              :  2, // [12:11]
+                      ant_sel                                                 :  1, // [10:10]
+                      ant_sel_valid                                           :  1, // [9:9]
+                      rx_chain_mask_valid                                     :  1, // [8:8]
+                      rx_chain_mask                                           :  8; // [7:0]
+#endif
+};
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_PHY_DESC_RESERVED_0A_OFFSET                                           0x0000000000000000
+#define MACTX_PHY_DESC_RESERVED_0A_LSB                                              0
+#define MACTX_PHY_DESC_RESERVED_0A_MSB                                              15
+#define MACTX_PHY_DESC_RESERVED_0A_MASK                                             0x000000000000ffff
+
+
+/* Description		BF_TYPE
+
+			<enum 0     NO_BF> Transmit a non-beamformed packet. NOTE
+			 that MAC might have send MACTX_BF_PARAMS... related TLVs
+			 to the PHY for this upcoming transmission, but if this 
+			field indicates NO_BF, MAC_TX has for some reason decided
+			 at the last moment that actual beamform transmission shall
+			 not happen anymore...
+			<enum 1     LEGACY_BF> Transmit a legacy beamformed packet. 
+			 This means beamforming starts at the L-STF.  The possible
+			 preamble formats are 11a, 11n mixed mode and 11ac.  This
+			 is used to support legacy implicit beamforming.
+			<enum 2     SU_BF> Transmit a single-user beamformed packet
+			 starting at the HT-STF or VHT-STF. 
+			<enum 3     MU_BF> Transmit a multi-user beamformed packet
+			 starting at the VHT-STF. In case of an MU transmission, 
+			where maybe not all users are being transmitted in a 'beamformed' 
+			way, but at least one is, this e_num setting will be used
+			 as well
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_BF_TYPE_OFFSET                                               0x0000000000000000
+#define MACTX_PHY_DESC_BF_TYPE_LSB                                                  16
+#define MACTX_PHY_DESC_BF_TYPE_MSB                                                  17
+#define MACTX_PHY_DESC_BF_TYPE_MASK                                                 0x0000000000030000
+
+
+/* Description		WAIT_SIFS
+
+			This bit is evaluated by the PHY TX to determine if this
+			 transmission start on the air needs to be exactly SIFS 
+			aligned compared to the end of the previous reception or
+			 previous transmission.
+			
+			This feature is typically required for Triggered UL response
+			 transmissions, where SIFS accuracy is really required. 
+			For RTT this is also usefull, but not absolutely needed.
+			
+			
+			
+			This field is filled in by TXPCU.
+			  
+			<enum 0 NO_SIFS_TIMING> Transmission shall start with the
+			 normal delay in PHY after receiving this notification
+			<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made 
+			at the SIFS boundary. If shall never start before SIFS boundary, 
+			but if it a little later, it is not ideal and should be 
+			flagged, but transmission shall not be aborted.
+			<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
+			 at exactly SIFS boundary. If this notification is received
+			 by the PHY after SIFS boundary already passed, the PHY 
+			shall abort the transmission
+			<legal 0-2>
+*/
+
+#define MACTX_PHY_DESC_WAIT_SIFS_OFFSET                                             0x0000000000000000
+#define MACTX_PHY_DESC_WAIT_SIFS_LSB                                                18
+#define MACTX_PHY_DESC_WAIT_SIFS_MSB                                                19
+#define MACTX_PHY_DESC_WAIT_SIFS_MASK                                               0x00000000000c0000
+
+
+/* Description		DOT11B_PREAMBLE_TYPE
+
+			Valid for 802.11b packets only.
+			<enum 0     short_preamble>
+			<enum 1     long_preamble>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_OFFSET                                  0x0000000000000000
+#define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_LSB                                     20
+#define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_MSB                                     20
+#define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_MASK                                    0x0000000000100000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			
+			Note: in case of 11ax, see field he_ppdu_subtype for additional
+			 info...
+			
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define MACTX_PHY_DESC_PKT_TYPE_OFFSET                                              0x0000000000000000
+#define MACTX_PHY_DESC_PKT_TYPE_LSB                                                 21
+#define MACTX_PHY_DESC_PKT_TYPE_MSB                                                 24
+#define MACTX_PHY_DESC_PKT_TYPE_MASK                                                0x0000000001e00000
+
+
+/* Description		SU_OR_MU
+
+			Type of transmission:
+			
+			For 11ax:
+			<enum 0 SU_transmission> 
+			11ax:
+			This setting is used for the following preamble type of 
+			transmissions:
+			11ax HE_SU PPDU
+			11ax HE_EXT_SU PPDU
+			11ax HE_TRIG PPDU
+			Note that the above implies all single user transmissions
+			
+			
+			11ac and other pkt_types:
+			Single user transmission
+			
+			<enum 1 MU_transmission> 
+			11ax:
+			This setting is used for the following preamble type of 
+			transmissions:
+			11ax HE_MU
+			Note that this type of transmission implies multiple users
+			
+			
+			For 11ac:
+			Multi-user transmission
+			
+			<enum 2 MU_SU_transmission> 
+			11ax:
+			This setting is used for the following preamble type of 
+			transmissions:
+			11ax HE_MU
+			Note that this type of transmission implies a SINGLE user, 
+			but using HE_MU preamble type...
+			
+			11ac and other pkt_types:
+			Reserved
+			
+			<legal 0-2>
+*/
+
+#define MACTX_PHY_DESC_SU_OR_MU_OFFSET                                              0x0000000000000000
+#define MACTX_PHY_DESC_SU_OR_MU_LSB                                                 25
+#define MACTX_PHY_DESC_SU_OR_MU_MSB                                                 26
+#define MACTX_PHY_DESC_SU_OR_MU_MASK                                                0x0000000006000000
+
+
+/* Description		MU_TYPE
+
+			Field only valid when 
+			SU_or_MU == MU_transmission or
+			SU_or_MU == MU_SU_transmission
+			<enum 0 MU_MIMO_Transmission>
+			<enum 1 MU_OFDMA_Transmission> Note that within the RUs, 
+			there might still be MU-MIMO...
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_MU_TYPE_OFFSET                                               0x0000000000000000
+#define MACTX_PHY_DESC_MU_TYPE_LSB                                                  27
+#define MACTX_PHY_DESC_MU_TYPE_MSB                                                  27
+#define MACTX_PHY_DESC_MU_TYPE_MASK                                                 0x0000000008000000
+
+
+/* Description		BANDWIDTH
+
+			Packet bandwidth:
+			
+			The physical bandwidth that this device will be transmitting
+			 in.
+			
+			Note that for 11ax Trigger response transmissions (when 
+			Field triggered == is_triggered), this bandwith is min(AP_pkt_bw, 
+			STA_ch_bw)
+			
+			<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 MACTX_PHY_DESC_BANDWIDTH_OFFSET                                             0x0000000000000000
+#define MACTX_PHY_DESC_BANDWIDTH_LSB                                                28
+#define MACTX_PHY_DESC_BANDWIDTH_MSB                                                30
+#define MACTX_PHY_DESC_BANDWIDTH_MASK                                               0x0000000070000000
+
+
+/* Description		CHANNEL_CAPTURE
+
+			Indicates that the PHY should be armed to capture the channel
+			 on the next received packet. This channel estimate is passed
+			 to the MAC if the packet is successfully received. 
+			<legal 0-1>
+			This field is not applicable for 11ah  since implicit beamforming
+			 is not supported  
+*/
+
+#define MACTX_PHY_DESC_CHANNEL_CAPTURE_OFFSET                                       0x0000000000000000
+#define MACTX_PHY_DESC_CHANNEL_CAPTURE_LSB                                          31
+#define MACTX_PHY_DESC_CHANNEL_CAPTURE_MSB                                          31
+#define MACTX_PHY_DESC_CHANNEL_CAPTURE_MASK                                         0x0000000080000000
+
+
+/* Description		MCS
+
+			In case of  SU_or_MU == SU_transmission
+			
+			Note that this includes trigger response transmission
+			
+			The MCS to be used for the upcoming transmission. It must
+			 match the 4-bit MCS value that is sent in the appropriate
+			 signal field for the given packet type, except that EHT
+			 BPSK with DCM and/or duplicate is encoded as '0.'
+			
+			In case of .11ba (WUR), this field is filled according to
+			 what is on the MAC side defined as "MCS_TYPE".
+			
+			In case of  SU_or_MU == MU_transmission
+			.11ac: highest MCS of all users
+			.11ax or .11be: highest 4-bit MCS field in all the HE_SIG_B
+			 or EHT_SIG TLVs that MAC S/W informs to MAC H/W. Actual
+			 highest 4-bit MCS to be sent to PHY might be lower after
+			 MAC H/W computation.
+			
+			For details, refer to  the SIG field, related to this pkt_type.
+			
+			(Note that this is slightly different then what is on the
+			 MAC side defined as "MCS_TYPE". For this reason, the 'legal
+			 values' here are NOT defined as MCS_TYPE)
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_MCS_OFFSET                                                   0x0000000000000000
+#define MACTX_PHY_DESC_MCS_LSB                                                      32
+#define MACTX_PHY_DESC_MCS_MSB                                                      35
+#define MACTX_PHY_DESC_MCS_MASK                                                     0x0000000f00000000
+
+
+/* Description		GLOBAL_OFDMA_MIMO_ENABLE
+
+			When set, this transmission contains at least 1 user for
+			 which MU-MIMO is enabled in its RU.
+			After per-BW/puncture pattern user disabling, in case of
+			 pure OFDMA, PDG will clear this bit, but full BW MU-MIMO
+			 is still possible with this bit set.
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_OFFSET                              0x0000000000000000
+#define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_LSB                                 36
+#define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_MSB                                 36
+#define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_MASK                                0x0000001000000000
+
+
+/* Description		RESERVED_1A
+
+*/
+
+#define MACTX_PHY_DESC_RESERVED_1A_OFFSET                                           0x0000000000000000
+#define MACTX_PHY_DESC_RESERVED_1A_LSB                                              37
+#define MACTX_PHY_DESC_RESERVED_1A_MSB                                              37
+#define MACTX_PHY_DESC_RESERVED_1A_MASK                                             0x0000002000000000
+
+
+/* Description		STBC
+
+			When set, this transmission is based on stbc rates.
+*/
+
+#define MACTX_PHY_DESC_STBC_OFFSET                                                  0x0000000000000000
+#define MACTX_PHY_DESC_STBC_LSB                                                     38
+#define MACTX_PHY_DESC_STBC_MSB                                                     38
+#define MACTX_PHY_DESC_STBC_MASK                                                    0x0000004000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be
+			
+			When set, the 11ax or 11be transmission is extended range
+			 SU
+*/
+
+#define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_OFFSET                                   0x0000000000000000
+#define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_LSB                                      39
+#define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_MSB                                      39
+#define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_MASK                                     0x0000008000000000
+
+
+/* Description		DOT11AX_TRIGGER_FRAME_EMBEDDED
+
+			When set, there is an 11ax trigger frame OR 11be trigger
+			 frame embedded in this transmission. PHY shall latch the
+			 transmit BW of this transmission and use it to select the
+			 'MACTX_UPLINK_COMMON/USER...' TLVs parameters belonging
+			 to this BW. Note that these 'MACTX_UPLINK_COMMON/USER...' 
+			might already have been received by the PHY, or will come
+			 in later.
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_OFFSET                        0x0000000000000000
+#define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_LSB                           40
+#define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_MSB                           40
+#define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_MASK                          0x0000010000000000
+
+
+/* Description		TX_PWR_SHARED
+
+			Transmit Power (signed value) in units of 0.25 dBm 
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_TX_PWR_SHARED_OFFSET                                         0x0000000000000000
+#define MACTX_PHY_DESC_TX_PWR_SHARED_LSB                                            41
+#define MACTX_PHY_DESC_TX_PWR_SHARED_MSB                                            48
+#define MACTX_PHY_DESC_TX_PWR_SHARED_MASK                                           0x0001fe0000000000
+
+
+/* Description		TX_PWR_UNSHARED
+
+			Transmit Power (signed value) in units of 0.25 dBm <legal
+			 all>
+*/
+
+#define MACTX_PHY_DESC_TX_PWR_UNSHARED_OFFSET                                       0x0000000000000000
+#define MACTX_PHY_DESC_TX_PWR_UNSHARED_LSB                                          49
+#define MACTX_PHY_DESC_TX_PWR_UNSHARED_MSB                                          56
+#define MACTX_PHY_DESC_TX_PWR_UNSHARED_MASK                                         0x01fe000000000000
+
+
+/* Description		MEASURE_POWER
+
+			This field enables the TPC to use power measurement for 
+			current packet in CLPC updates.
+			<enum 0     measure_dis> TPC will not latch power measurement
+			 result for current packet
+			<enum 1     measure_en> TPC will latch power measurement
+			 result for current packet
+			 <legal all>
+*/
+
+#define MACTX_PHY_DESC_MEASURE_POWER_OFFSET                                         0x0000000000000000
+#define MACTX_PHY_DESC_MEASURE_POWER_LSB                                            57
+#define MACTX_PHY_DESC_MEASURE_POWER_MSB                                            57
+#define MACTX_PHY_DESC_MEASURE_POWER_MASK                                           0x0200000000000000
+
+
+/* Description		TPC_GLUT_SELF_CAL
+
+			Setting related to transmit power control calibration.
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_OFFSET                                     0x0000000000000000
+#define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_LSB                                        58
+#define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_MSB                                        58
+#define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_MASK                                       0x0400000000000000
+
+
+/* Description		BACK_TO_BACK_TRANSMISSION_EXPECTED
+
+			When set, the next transmission is expected to follow this
+			 one in SIFS time (without any response reception in between).
+			
+			
+			For example used when transmitting beacons followed by the
+			 broadcast or multicast frames
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_OFFSET                    0x0000000000000000
+#define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_LSB                       59
+#define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_MSB                       59
+#define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_MASK                      0x0800000000000000
+
+
+/* Description		HEAVY_CLIP_NSS
+
+			Number of active spatial streams in current packet. This
+			 parameter is used by the heavy clip function in the transmitter. 
+			In case of MU PPDU, this is total Nss of all users. 
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_PHY_DESC_HEAVY_CLIP_NSS_OFFSET                                        0x0000000000000000
+#define MACTX_PHY_DESC_HEAVY_CLIP_NSS_LSB                                           60
+#define MACTX_PHY_DESC_HEAVY_CLIP_NSS_MSB                                           62
+#define MACTX_PHY_DESC_HEAVY_CLIP_NSS_MASK                                          0x7000000000000000
+
+
+/* Description		TXBF_PER_PACKET_NO_CSD_NO_WALSH
+
+			This is a global switch that is applied to beamformed packets
+			
+			
+			If set, no_csd and no_walsh is applied to steering packet.
+			
+*/
+
+#define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_OFFSET                       0x0000000000000000
+#define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_LSB                          63
+#define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_MSB                          63
+#define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_MASK                         0x8000000000000000
+
+
+/* Description		NDP
+
+			When not "0", upcoming transmission is one of the indicated
+			 NDP types.
+			
+			<enum 0 no_ndp>No NDP transmission
+			<enum 1 beamforming_ndp>Beamforming NDP
+			<enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
+			<enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
+*/
+
+#define MACTX_PHY_DESC_NDP_OFFSET                                                   0x0000000000000008
+#define MACTX_PHY_DESC_NDP_LSB                                                      0
+#define MACTX_PHY_DESC_NDP_MSB                                                      1
+#define MACTX_PHY_DESC_NDP_MASK                                                     0x0000000000000003
+
+
+/* Description		UL_FLAG
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be
+			
+			
+			Used for HE_SIGB
+			<enum 1     uplink>
+			<enum 0     downlink>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_UL_FLAG_OFFSET                                               0x0000000000000008
+#define MACTX_PHY_DESC_UL_FLAG_LSB                                                  2
+#define MACTX_PHY_DESC_UL_FLAG_MSB                                                  2
+#define MACTX_PHY_DESC_UL_FLAG_MASK                                                 0x0000000000000004
+
+
+/* Description		TRIGGERED
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be
+			
+			
+			Denotes whether it's a triggered uplink transmission
+			
+			Must be set for HE-TB NDPs used in Secure Ranging NDPs (11az) 
+			and Short-NDP (HE TB Feedback NDP).
+			
+			<enum 0     non_trigerred>
+			<enum 1     is_triggered>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_TRIGGERED_OFFSET                                             0x0000000000000008
+#define MACTX_PHY_DESC_TRIGGERED_LSB                                                3
+#define MACTX_PHY_DESC_TRIGGERED_MSB                                                3
+#define MACTX_PHY_DESC_TRIGGERED_MASK                                               0x0000000000000008
+
+
+/* Description		AP_PKT_BW
+
+			Field only valid when triggered == is_triggered
+			
+			This indicates the total bandwidth of the UL_TRIG packet
+			 as indicated in the Trigger Frame.
+			
+			<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 MACTX_PHY_DESC_AP_PKT_BW_OFFSET                                             0x0000000000000008
+#define MACTX_PHY_DESC_AP_PKT_BW_LSB                                                4
+#define MACTX_PHY_DESC_AP_PKT_BW_MSB                                                6
+#define MACTX_PHY_DESC_AP_PKT_BW_MASK                                               0x0000000000000070
+
+
+/* Description		RU_POSITION_START
+
+			Field only valid when triggered == is_triggered
+			
+			
+			This field indicates the start basic (26 tone) RU number
+			 assigned to this user 
+			
+			RU Numbering is based only on the order in which the RUs
+			 are allocated over the available BW, starting from 0 and
+			 in increasing frequency order and not primary-secondary
+			 order.
+			
+			The RU number within 80 MHz is available from the RU allocation
+			 information in the trigger. For 160 MHz transmissions, 
+			the trigger RU allocation only mentions primary/secondary
+			 80 MHz. PDG needs to convert this to lower/higher 80 MHz.
+			
+			
+			If in 'PCU_PPDU_SETUP_START'/'MACTX_PRE_PHY_DESC,' CCA_Subband_channel_bonding_mask
+			 bit 0 is mapped to any of bits 4 - 7 of Freq_Subband_channel_bonding_mask, 
+			then the primary 80 MHz is the higher 80 MHz and the secondary
+			 80 MHz is the lower one.
+			Otherwise (if CCA_Subband_channel_bonding_mask bit 0 is 
+			mapped to any of bits 0 - 3 of Freq_Subband_channel_bonding_mask, 
+			then the primary 80 MHz is the lower 80 MHz and the secondary
+			 80 MHz is the higher one.
+			
+			Note: this type of encoding decouples the formatting of 
+			the trigger from from how info between MAC-PHY is exchanged
+			
+			<legal 0- 147>
+*/
+
+#define MACTX_PHY_DESC_RU_POSITION_START_OFFSET                                     0x0000000000000008
+#define MACTX_PHY_DESC_RU_POSITION_START_LSB                                        7
+#define MACTX_PHY_DESC_RU_POSITION_START_MSB                                        14
+#define MACTX_PHY_DESC_RU_POSITION_START_MASK                                       0x0000000000007f80
+
+
+/* Description		PCU_PPDU_SETUP_START_REASON
+
+			PDG shall fill this with the value it fills in the setup_start_reason
+			 in 'PCU_PPDU_SETUP_START.' It indicates what triggered 
+			the PDG to start Tx setup.
+			Used for debugging purposes.
+			
+			<enum 0     fes_protection_frame>  RTS or CTS-to-self transmission
+			 preceding the regular PPDU portion of the coming FES. The
+			 transmit is initiated by PDG_TX_REQ TLV from TXPCU
+			<enum 1     fes_after_protection >  Regular PPDU transmission
+			 that follows the transmission of medium protection: Either
+			 RTS - CTS exchanges or CTS to self. The transmit is initiated
+			 by PDG_TX_REQ TLV from TXPCU 
+			<enum 2     fes_only>  Regular PPDU transmission without
+			 preceding medium protection frame exchanges. The transmit
+			 is initiated by PDG_TX_REQ TLV from TXPCU
+			<enum 3     response_frame>  response frame transmission. 
+			The transmit is initiated by PDG_RESPONSE TLV from TXPCU
+			
+			<enum 4     trig_response_frame>  11ax triggered response
+			 frame transmission. The transmit is initiated by PDG_TRIG_RESPONSE
+			 TLV from TXPCU
+			<enum 5     dynamic_protection_fes_only> Regular PPDU transmission
+			 without preceding medium protection frame exchanges, because
+			 the dynamic medium protection constraints were not satisfied. 
+			The transmit is initiated by PDG_TX_REQ TLV from TXPCU.
+			
+			<legal 0-5>
+*/
+
+#define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_OFFSET                           0x0000000000000008
+#define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_LSB                              15
+#define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_MSB                              17
+#define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_MASK                             0x0000000000038000
+
+
+/* Description		TLV_SOURCE
+
+			<enum 1 phy_desc_from_pdg> This MACTX_PHY_DESC TLV is generated
+			 by PDG.
+			<enum 0 phy_desc_from_fw> PDG is in bypass mode and this
+			 MACTX_PHY_DESC TLV is queued by firmware.
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_TLV_SOURCE_OFFSET                                            0x0000000000000008
+#define MACTX_PHY_DESC_TLV_SOURCE_LSB                                               18
+#define MACTX_PHY_DESC_TLV_SOURCE_MSB                                               18
+#define MACTX_PHY_DESC_TLV_SOURCE_MASK                                              0x0000000000040000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define MACTX_PHY_DESC_RESERVED_2A_OFFSET                                           0x0000000000000008
+#define MACTX_PHY_DESC_RESERVED_2A_LSB                                              19
+#define MACTX_PHY_DESC_RESERVED_2A_MSB                                              20
+#define MACTX_PHY_DESC_RESERVED_2A_MASK                                             0x0000000000180000
+
+
+/* Description		NSS
+
+			Field only valid when triggered == is_triggered
+			
+			Number of Spatial Streams occupied by the User
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_PHY_DESC_NSS_OFFSET                                                   0x0000000000000008
+#define MACTX_PHY_DESC_NSS_LSB                                                      21
+#define MACTX_PHY_DESC_NSS_MSB                                                      23
+#define MACTX_PHY_DESC_NSS_MASK                                                     0x0000000000e00000
+
+
+/* Description		STREAM_OFFSET
+
+			Field only valid when triggered == is_triggered
+			
+			Specify Stream-offset of the user for HE_TB Ranging NDP 
+			or Short-NDP
+			
+			Stream Offset from which the User occupies the Streams
+*/
+
+#define MACTX_PHY_DESC_STREAM_OFFSET_OFFSET                                         0x0000000000000008
+#define MACTX_PHY_DESC_STREAM_OFFSET_LSB                                            24
+#define MACTX_PHY_DESC_STREAM_OFFSET_MSB                                            26
+#define MACTX_PHY_DESC_STREAM_OFFSET_MASK                                           0x0000000007000000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define MACTX_PHY_DESC_RESERVED_2B_OFFSET                                           0x0000000000000008
+#define MACTX_PHY_DESC_RESERVED_2B_LSB                                              27
+#define MACTX_PHY_DESC_RESERVED_2B_MSB                                              28
+#define MACTX_PHY_DESC_RESERVED_2B_MASK                                             0x0000000018000000
+
+
+/* Description		CLPC_ENABLE
+
+			This field enables closed-loop TPC operation by enabling
+			 CLPC adjustment of DAC gain for the next packet.
+			<enum 0     clpc_off> TPC error update disabled
+			<enum 1     clpc_on> TPC error will be applied to DAC gain
+			 setting for the next packet
+			<legal 0-1>
+*/
+
+#define MACTX_PHY_DESC_CLPC_ENABLE_OFFSET                                           0x0000000000000008
+#define MACTX_PHY_DESC_CLPC_ENABLE_LSB                                              29
+#define MACTX_PHY_DESC_CLPC_ENABLE_MSB                                              29
+#define MACTX_PHY_DESC_CLPC_ENABLE_MASK                                             0x0000000020000000
+
+
+/* Description		MU_NDP
+
+			If set indicates that this packet is an NDP used for MU 
+			channel estimation.  This bit will be used by the TPC to
+			 signal that the analog gain settings can be updated. The
+			 analog gain settings will not change for subsequent MU 
+			data packets.
+*/
+
+#define MACTX_PHY_DESC_MU_NDP_OFFSET                                                0x0000000000000008
+#define MACTX_PHY_DESC_MU_NDP_LSB                                                   30
+#define MACTX_PHY_DESC_MU_NDP_MSB                                                   30
+#define MACTX_PHY_DESC_MU_NDP_MASK                                                  0x0000000040000000
+
+
+/* Description		RESPONSE_EXPECTED
+
+			When set, a response frame in SIFS time is expected after
+			 this transmission.
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_RESPONSE_EXPECTED_OFFSET                                     0x0000000000000008
+#define MACTX_PHY_DESC_RESPONSE_EXPECTED_LSB                                        31
+#define MACTX_PHY_DESC_RESPONSE_EXPECTED_MSB                                        31
+#define MACTX_PHY_DESC_RESPONSE_EXPECTED_MASK                                       0x0000000080000000
+
+
+/* Description		RX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_OFFSET                                         0x0000000000000008
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_LSB                                            32
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_MSB                                            39
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_MASK                                           0x000000ff00000000
+
+
+/* Description		RX_CHAIN_MASK_VALID
+
+			Indicates rx_chain_mask field is valid. 
+			<enum 0 RX_CHAIN_MASK_IS_NOT_VALID>
+			<enum 1 RX_CHAIN_MASK_IS_VALID>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_OFFSET                                   0x0000000000000008
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_LSB                                      40
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_MSB                                      40
+#define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_MASK                                     0x0000010000000000
+
+
+/* Description		ANT_SEL_VALID
+
+			Field only valid when ant_sel_valid is set.
+			
+			TX Antenna select valid
+			<enum 0 ANT_SEL_IS_NOT_VALID>
+			<enum 1 ANT_SEL_IS_VALID>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_ANT_SEL_VALID_OFFSET                                         0x0000000000000008
+#define MACTX_PHY_DESC_ANT_SEL_VALID_LSB                                            41
+#define MACTX_PHY_DESC_ANT_SEL_VALID_MSB                                            41
+#define MACTX_PHY_DESC_ANT_SEL_VALID_MASK                                           0x0000020000000000
+
+
+/* Description		ANT_SEL
+
+			Field only valid when ant_sel_valid is set.
+			
+			Antenna select for TX antenna diversity.
+			<enum 0 ANTENNA_0>
+			<enum 1 ANTENNA_1>
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_ANT_SEL_OFFSET                                               0x0000000000000008
+#define MACTX_PHY_DESC_ANT_SEL_LSB                                                  42
+#define MACTX_PHY_DESC_ANT_SEL_MSB                                                  42
+#define MACTX_PHY_DESC_ANT_SEL_MASK                                                 0x0000040000000000
+
+
+/* Description		CP_SETTING
+
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			Specify the right CP for HE-Ranging NDPs (11az)/Short NDP
+			
+			
+			<enum 0     gi_0_8_us > Legacy normal GI
+			<enum 1     gi_0_4_us > Legacy short GI
+			<enum 2     gi_1_6_us > HE related GI
+			<enum 3     gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define MACTX_PHY_DESC_CP_SETTING_OFFSET                                            0x0000000000000008
+#define MACTX_PHY_DESC_CP_SETTING_LSB                                               43
+#define MACTX_PHY_DESC_CP_SETTING_MSB                                               44
+#define MACTX_PHY_DESC_CP_SETTING_MASK                                              0x0000180000000000
+
+
+/* Description		HE_PPDU_SUBTYPE
+
+			The subtype of HE transmission:
+			
+			Specify as HE-SU for HE-SU Ranging NDP in 11az ;
+			Specify as HE-TB for HE-TB Ranging NDP in 11az ; 
+			Specify as HE-TB for Short -NDP
+			Re-use the same for EHT PPDU types also
+			<enum 0 he_subtype_SU>
+			<enum 1 he_subtype_TRIG>
+			<enum 2 he_subtype_MU>
+			<enum 3 he_subtype_EXT_SU>
+			
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_OFFSET                                       0x0000000000000008
+#define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_LSB                                          45
+#define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_MSB                                          46
+#define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_MASK                                         0x0000600000000000
+
+
+/* Description		ACTIVE_CHANNEL
+
+			Field only valid when triggered == non_trigerred
+			In case of a triggered response transmission, this field
+			 will always be set to 0
+			
+			This field indicates the active frequency band when the 
+			packet bandwidth is less than the channel bandwidth. For
+			 non 11ax packets this is same as the primary channel
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_ACTIVE_CHANNEL_OFFSET                                        0x0000000000000008
+#define MACTX_PHY_DESC_ACTIVE_CHANNEL_LSB                                           47
+#define MACTX_PHY_DESC_ACTIVE_CHANNEL_MSB                                           49
+#define MACTX_PHY_DESC_ACTIVE_CHANNEL_MASK                                          0x0003800000000000
+
+
+/* Description		GENERATE_PHYRX_TX_START_TIMING
+
+			When set, PHY shall generate the PHYRX_TX_START_TIMING TLV
+			 at the earliest opportunity during the preamble transmission
+			
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_OFFSET                        0x0000000000000008
+#define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_LSB                           50
+#define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_MSB                           50
+#define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_MASK                          0x0004000000000000
+
+
+/* Description		LTF_SIZE
+
+			Field only valid when pkt type is HE.
+			
+			Ltf size
+			
+			Specify right LTF-size for HE-Ranging NDPs (11az)/Short-NDP
+			
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define MACTX_PHY_DESC_LTF_SIZE_OFFSET                                              0x0000000000000008
+#define MACTX_PHY_DESC_LTF_SIZE_LSB                                                 51
+#define MACTX_PHY_DESC_LTF_SIZE_MSB                                                 52
+#define MACTX_PHY_DESC_LTF_SIZE_MASK                                                0x0018000000000000
+
+
+/* Description		RU_SIZE_UPDATED_V2
+
+			Field only valid for pkt_type == 11ax or 11be and 
+			SU_or_MU == SU_transmission or 
+			SU_or_MU == MU_SU_transmission
+			
+			The RU size of the upcoming transmission.
+			
+			PHY uses this info to apply different min/max BO if payload
+			 bandwidth is less than 10MHz
+			
+			In case of HE extended range transmission, e-num 2 (10MHz) 
+			or e-num 7 (20MHz) are used.
+			
+			In case of trig transmission or OFDMA single user or MU-MIMO
+			 single user transmission, if the ru_size allocated to the
+			 user is the fullBW (with respect to AP_bw) ru size then
+			 the e-num 7 is used.
+			For all other cases, e-nums corresponding to the ru size
+			 allocated to the user is used.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242><enum 4 RU_484><enum 5 RU_996><enum 6 RU_1992>
+			
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			Note that for an MU-RTS trigger, the response will also 
+			go out in legacy CTS rate... and thus e-num 7 will be used.
+			
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			
+			<enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
+			 to infer the actual RU-size for Multi-large-RU/SU-Puncturing
+			
+			
+			<enum 11 RU_78> multi small RU
+			<enum 12 RU_132> multi small RU
+			
+			
+			
+			NOTE: See the table following this TLV definition that explains
+			 the relationship between this field and the RU size allocated
+			 to users.
+			
+			<legal all>
+*/
+
+#define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_OFFSET                                    0x0000000000000008
+#define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_LSB                                       53
+#define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_MSB                                       56
+#define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_MASK                                      0x01e0000000000000
+
+
+/* Description		RESERVED_3C
+
+			<legal 0>
+*/
+
+#define MACTX_PHY_DESC_RESERVED_3C_OFFSET                                           0x0000000000000008
+#define MACTX_PHY_DESC_RESERVED_3C_LSB                                              57
+#define MACTX_PHY_DESC_RESERVED_3C_MSB                                              57
+#define MACTX_PHY_DESC_RESERVED_3C_MASK                                             0x0200000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			Field only valid for pkt_type == 11be
+			
+			The 6-bit value to be used in U-SIG and/or EHT-SIG Common
+			 field for the puncture pattern
+			<legal 0-29>
+*/
+
+#define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET                       0x0000000000000008
+#define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                          58
+#define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                          63
+#define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                         0xfc00000000000000
+
+
+
+#endif   // MACTX_PHY_DESC
diff --git a/hw/qca5332/mactx_service.h b/hw/qca5332/mactx_service.h
new file mode 100644
index 0000000..afa43dd
--- /dev/null
+++ b/hw/qca5332/mactx_service.h
@@ -0,0 +1,118 @@
+
+/* 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 _MACTX_SERVICE_H_
+#define _MACTX_SERVICE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "service_info.h"
+#define NUM_OF_DWORDS_MACTX_SERVICE 2
+
+#define NUM_OF_QWORDS_MACTX_SERVICE 1
+
+
+struct mactx_service {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   service_info                                              mactx_service_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   service_info                                              mactx_service_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_SERVICE_INFO_DETAILS
+
+			See detailed description of the STRUCT.
+			
+			In case of EHT, instead of 'SERVICE_INFO' the STRUCT 'EHT_SERVICE_INFO' 
+			is used. See detailed description of the STRUCT.
+*/
+
+
+/* Description		SCRAMBLER_SEED
+
+			This field provides the 7-bit seed for the data scrambler. 
+			 <legal all>
+*/
+
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_OFFSET              0x0000000000000000
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_LSB                 0
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_MSB                 6
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SCRAMBLER_SEED_MASK                0x000000000000007f
+
+
+/* Description		RESERVED
+
+			Reserved. Set to 0 by sender and ignored by receiver.  <legal
+			 0>
+*/
+
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_LSB                       7
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_MSB                       7
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_MASK                      0x0000000000000080
+
+
+/* Description		SIG_B_CRC_USER
+
+			In case of vht transmission: vht_sig_b_crc_user
+			<legal all>
+*/
+
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_OFFSET              0x0000000000000000
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_LSB                 8
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_MSB                 15
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_SIG_B_CRC_USER_MASK                0x000000000000ff00
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_OFFSET                  0x0000000000000000
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_LSB                     16
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_MSB                     31
+#define MACTX_SERVICE_MACTX_SERVICE_INFO_DETAILS_RESERVED_1_MASK                    0x00000000ffff0000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_SERVICE_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define MACTX_SERVICE_TLV64_PADDING_LSB                                             32
+#define MACTX_SERVICE_TLV64_PADDING_MSB                                             63
+#define MACTX_SERVICE_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // MACTX_SERVICE
diff --git a/hw/qca5332/mactx_u_sig_eht_su_mu.h b/hw/qca5332/mactx_u_sig_eht_su_mu.h
new file mode 100644
index 0000000..170a405
--- /dev/null
+++ b/hw/qca5332/mactx_u_sig_eht_su_mu.h
@@ -0,0 +1,356 @@
+
+/* 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 _MACTX_U_SIG_EHT_SU_MU_H_
+#define _MACTX_U_SIG_EHT_SU_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "u_sig_eht_su_mu_info.h"
+#define NUM_OF_DWORDS_MACTX_U_SIG_EHT_SU_MU 2
+
+#define NUM_OF_QWORDS_MACTX_U_SIG_EHT_SU_MU 1
+
+
+struct mactx_u_sig_eht_su_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   u_sig_eht_su_mu_info                                      mactx_u_sig_eht_su_mu_info_details;
+#else
+             struct   u_sig_eht_su_mu_info                                      mactx_u_sig_eht_su_mu_info_details;
+#endif
+};
+
+
+/* Description		MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		PHY_VERSION
+
+			<enum 0 U_SIG_VERSION_EHT>
+			Values 1 - 7 are reserved.
+			<legal 0
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_LSB    0
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_MSB    2
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PHY_VERSION_MASK   0x0000000000000007
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU
+			
+			<enum 0 U_SIG_BW20> 20 MHz
+			<enum 1 U_SIG_BW40> 40 MHz
+			<enum 2 U_SIG_BW80> 80 MHz
+			<enum 3 U_SIG_BW160> 160 MHz
+			<enum 4 U_SIG_BW320> 320 MHz
+			<enum 5 U_SIG_BW320_2> DO NOT USE
+			
+			Microcode remaps 'U_SIG_BW320' based on channelization.
+			
+			On RX side, field used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_LSB    3
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_MSB    5
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TRANSMIT_BW_MASK   0x0000000000000038
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_OFFSET  0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_LSB     6
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_MSB     6
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DL_UL_FLAG_MASK    0x0000000000000040
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID
+			
+			Field used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_LSB   7
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_MSB   12
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_BSS_COLOR_ID_MASK  0x0000000000001f80
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field used by MAC HW
+			 <legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_LSB  13
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_MSB  19
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TXOP_DURATION_MASK 0x00000000000fe000
+
+
+/* Description		DISREGARD_0A
+
+			Note: spec indicates this shall be set to 1s
+			<legal 31>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_LSB   20
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_MSB   24
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DISREGARD_0A_MASK  0x0000000001f00000
+
+
+/* Description		VALIDATE_0B
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_LSB    25
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_MSB    25
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_0B_MASK   0x0000000002000000
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_LSB    26
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_MSB    31
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_0C_MASK   0x00000000fc000000
+
+
+/* Description		EHT_PPDU_SIG_CMN_TYPE
+
+			<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
+			<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
+			 EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
+			
+			<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
+			 content channels
+			<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
+			 content channel
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_LSB 32
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MSB 33
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MASK 0x0000000300000000
+
+
+/* Description		VALIDATE_1A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_LSB    34
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_MSB    34
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1A_MASK   0x0000000400000000
+
+
+/* Description		PUNCTURED_CHANNEL_INFORMATION
+
+			For OFDMA BW 20 MHz or 40 MHz:
+			Set to all 1s, i.e. 31
+			
+			For OFDMA of higher BW:
+			Bit 3 = lowest 20 MHz in the current 80 MHz
+			Bit 6 = highest 20 MHz in the current 80 MHz
+			Bit 7 = 1
+			
+			Each bit indicates whether the 20 MHz is modulated or punctured
+			
+			0 = punctured
+			1 = modulated
+			
+			For non-OFDMA:
+			Set to a 5-bit value encoding the puncture pattern, a.k.a. 'U_sig_puncture_pattern_encoding' 
+			elsewhere in the data structures
+			
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_LSB 35
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_MSB 39
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_PUNCTURED_CHANNEL_INFORMATION_MASK 0x000000f800000000
+
+
+/* Description		VALIDATE_1B
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_LSB    40
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_MSB    40
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_VALIDATE_1B_MASK   0x0000010000000000
+
+
+/* Description		MCS_OF_EHT_SIG
+
+			Indicates the MCS of EHT-SIG
+			0 - 1: MCS 0 - 1
+			2: MCS 3
+			3: MCS 0 with DCM
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_LSB 41
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_MSB 42
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_MCS_OF_EHT_SIG_MASK 0x0000060000000000
+
+
+/* Description		NUM_EHT_SIG_SYMBOLS
+
+			Number of symbols
+			
+			The actual number of symbols is 1 larger than indicated 
+			in this field.
+			
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_LSB 43
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_MSB 47
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_NUM_EHT_SIG_SYMBOLS_MASK 0x0000f80000000000
+
+
+/* Description		CRC
+
+			CRC for U-SIG contents
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_OFFSET         0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_LSB            48
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_MSB            51
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_CRC_MASK           0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_OFFSET        0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_LSB           52
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_MSB           57
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_TAIL_MASK          0x03f0000000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			TX side:
+			Set to 0
+			
+			RX side: On RX side, evaluated by MAC HW
+			
+			This is the only way for MAC RX to know that this was a 
+			U_SIG_EHT_SU received in extended range format.
+			
+			When set, the 11be frame is of the extended range format.
+			
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB 58
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB 58
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK 0x0400000000000000
+
+
+/* Description		RESERVED_1D
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_LSB    59
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_MSB    61
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RESERVED_1D_MASK   0x3800000000000000
+
+
+/* Description		RX_NDP
+
+			TX side:
+			Set to 0
+			
+			RX side: On RX side, looked at by MAC HW
+			
+			When set, PHY has received an (expected) NDP frame
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_OFFSET      0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_LSB         62
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_MSB         62
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_NDP_MASK        0x4000000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the U-SIG CRC check 
+			has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define MACTX_U_SIG_EHT_SU_MU_MACTX_U_SIG_EHT_SU_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_U_SIG_EHT_SU_MU
diff --git a/hw/qca5332/mactx_u_sig_eht_tb.h b/hw/qca5332/mactx_u_sig_eht_tb.h
new file mode 100644
index 0000000..e7f1a4f
--- /dev/null
+++ b/hw/qca5332/mactx_u_sig_eht_tb.h
@@ -0,0 +1,258 @@
+
+/* 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 _MACTX_U_SIG_EHT_TB_H_
+#define _MACTX_U_SIG_EHT_TB_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "u_sig_eht_tb_info.h"
+#define NUM_OF_DWORDS_MACTX_U_SIG_EHT_TB 2
+
+#define NUM_OF_QWORDS_MACTX_U_SIG_EHT_TB 1
+
+
+struct mactx_u_sig_eht_tb {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   u_sig_eht_tb_info                                         mactx_u_sig_eht_tb_info_details;
+#else
+             struct   u_sig_eht_tb_info                                         mactx_u_sig_eht_tb_info_details;
+#endif
+};
+
+
+/* Description		MACTX_U_SIG_EHT_TB_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		PHY_VERSION
+
+			<enum 0 U_SIG_VERSION_EHT>
+			Values 1 - 7 are reserved.
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_OFFSET       0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_LSB          0
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_MSB          2
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_PHY_VERSION_MASK         0x0000000000000007
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU, as indicated in the trigger frame
+			
+			
+			<enum 0 U_SIG_BW20> 20 MHz
+			<enum 1 U_SIG_BW40> 40 MHz
+			<enum 2 U_SIG_BW80> 80 MHz
+			<enum 3 U_SIG_BW160> 160 MHz
+			<enum 4 U_SIG_BW320> 320 MHz channelization scheme 1
+			<enum 5 U_SIG_BW320_2> 320 MHz channelization scheme 2
+			
+			On RX side, field used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_OFFSET       0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_LSB          3
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_MSB          5
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TRANSMIT_BW_MASK         0x0000000000000038
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_OFFSET        0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_LSB           6
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_MSB           6
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DL_UL_FLAG_MASK          0x0000000000000040
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID
+			
+			Field used by MAC HW
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_OFFSET      0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_LSB         7
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_MSB         12
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_BSS_COLOR_ID_MASK        0x0000000000001f80
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field used by MAC HW
+			 <legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_OFFSET     0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_LSB        13
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_MSB        19
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TXOP_DURATION_MASK       0x00000000000fe000
+
+
+/* Description		DISREGARD_0A
+
+			Set to value indicated in the trigger frame
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_OFFSET      0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_LSB         20
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_MSB         25
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_0A_MASK        0x0000000003f00000
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_OFFSET       0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_LSB          26
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_MSB          31
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_0C_MASK         0x00000000fc000000
+
+
+/* Description		EHT_PPDU_SIG_CMN_TYPE
+
+			<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
+			<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
+			 EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
+			
+			<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
+			 content channels
+			<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
+			 content channel
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_LSB 32
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MSB 33
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_EHT_PPDU_SIG_CMN_TYPE_MASK 0x0000000300000000
+
+
+/* Description		VALIDATE_1A
+
+			Set to value indicated in the trigger frame
+			<legal 1>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_OFFSET       0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_LSB          34
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_MSB          34
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_VALIDATE_1A_MASK         0x0000000400000000
+
+
+/* Description		SPATIAL_REUSE
+
+			TODO: Placeholder
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_OFFSET     0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_LSB        35
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_MSB        42
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_SPATIAL_REUSE_MASK       0x000007f800000000
+
+
+/* Description		DISREGARD_1B
+
+			Set to value indicated in the trigger frame
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_OFFSET      0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_LSB         43
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_MSB         47
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_DISREGARD_1B_MASK        0x0000f80000000000
+
+
+/* Description		CRC
+
+			CRC for U-SIG contents
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_OFFSET               0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_LSB                  48
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_MSB                  51
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_CRC_MASK                 0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_OFFSET              0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_LSB                 52
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_MSB                 57
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_TAIL_MASK                0x03f0000000000000
+
+
+/* Description		RESERVED_1C
+
+			<legal 0>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_OFFSET       0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_LSB          58
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_MSB          62
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RESERVED_1C_MASK         0x7c00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the U-SIG CRC check 
+			has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define MACTX_U_SIG_EHT_TB_MACTX_U_SIG_EHT_TB_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_U_SIG_EHT_TB
diff --git a/hw/qca5332/mactx_user_desc_common.h b/hw/qca5332/mactx_user_desc_common.h
new file mode 100644
index 0000000..a3cb6ad
--- /dev/null
+++ b/hw/qca5332/mactx_user_desc_common.h
@@ -0,0 +1,1317 @@
+
+/* 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 _MACTX_USER_DESC_COMMON_H_
+#define _MACTX_USER_DESC_COMMON_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "unallocated_ru_160_info.h"
+#include "ru_allocation_160_info.h"
+#define NUM_OF_DWORDS_MACTX_USER_DESC_COMMON 16
+
+#define NUM_OF_QWORDS_MACTX_USER_DESC_COMMON 8
+
+
+struct mactx_user_desc_common {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t num_users                                               :  6, // [5:0]
+                      reserved_0b                                             :  5, // [10:6]
+                      ltf_size                                                :  2, // [12:11]
+                      reserved_0c                                             :  3, // [15:13]
+                      he_stf_long                                             :  1, // [16:16]
+                      reserved_0d                                             :  7, // [23:17]
+                      num_users_he_sigb_band0                                 :  8; // [31:24]
+             uint32_t num_ltf_symbols                                         :  3, // [2:0]
+                      reserved_1a                                             :  5, // [7:3]
+                      num_users_he_sigb_band1                                 :  8, // [15:8]
+                      reserved_1b                                             : 16; // [31:16]
+             uint32_t packet_extension_a_factor                               :  2, // [1:0]
+                      packet_extension_pe_disambiguity                        :  1, // [2:2]
+                      packet_extension                                        :  3, // [5:3]
+                      reserved                                                :  2, // [7:6]
+                      he_sigb_dcm                                             :  1, // [8:8]
+                      reserved_2b                                             :  7, // [15:9]
+                      he_sigb_compression                                     :  1, // [16:16]
+                      reserved_2c                                             : 15; // [31:17]
+             uint32_t he_sigb_0_mcs                                           :  3, // [2:0]
+                      reserved_3a                                             : 13, // [15:3]
+                      num_he_sigb_sym                                         :  5, // [20:16]
+                      center_ru_0                                             :  1, // [21:21]
+                      center_ru_1                                             :  1, // [22:22]
+                      reserved_3b                                             :  1, // [23:23]
+                      ftm_en                                                  :  1, // [24:24]
+                      pe_nss                                                  :  3, // [27:25]
+                      pe_ltf_size                                             :  2, // [29:28]
+                      pe_content                                              :  1, // [30:30]
+                      pe_chain_csd_en                                         :  1; // [31:31]
+             struct   ru_allocation_160_info                                    ru_allocation_0123_details;
+             struct   ru_allocation_160_info                                    ru_allocation_4567_details;
+             struct   unallocated_ru_160_info                                   ru_allocation_160_0_details;
+             struct   unallocated_ru_160_info                                   ru_allocation_160_1_details;
+             uint32_t num_data_symbols                                        : 16, // [15:0]
+                      ndp_ru_tone_set_index                                   :  7, // [22:16]
+                      ndp_feedback_status                                     :  1, // [23:23]
+                      doppler_indication                                      :  1, // [24:24]
+                      reserved_14a                                            :  7; // [31:25]
+             uint32_t spatial_reuse                                           : 16, // [15:0]
+                      reserved_15a                                            : 16; // [31:16]
+#else
+             uint32_t num_users_he_sigb_band0                                 :  8, // [31:24]
+                      reserved_0d                                             :  7, // [23:17]
+                      he_stf_long                                             :  1, // [16:16]
+                      reserved_0c                                             :  3, // [15:13]
+                      ltf_size                                                :  2, // [12:11]
+                      reserved_0b                                             :  5, // [10:6]
+                      num_users                                               :  6; // [5:0]
+             uint32_t reserved_1b                                             : 16, // [31:16]
+                      num_users_he_sigb_band1                                 :  8, // [15:8]
+                      reserved_1a                                             :  5, // [7:3]
+                      num_ltf_symbols                                         :  3; // [2:0]
+             uint32_t reserved_2c                                             : 15, // [31:17]
+                      he_sigb_compression                                     :  1, // [16:16]
+                      reserved_2b                                             :  7, // [15:9]
+                      he_sigb_dcm                                             :  1, // [8:8]
+                      reserved                                                :  2, // [7:6]
+                      packet_extension                                        :  3, // [5:3]
+                      packet_extension_pe_disambiguity                        :  1, // [2:2]
+                      packet_extension_a_factor                               :  2; // [1:0]
+             uint32_t pe_chain_csd_en                                         :  1, // [31:31]
+                      pe_content                                              :  1, // [30:30]
+                      pe_ltf_size                                             :  2, // [29:28]
+                      pe_nss                                                  :  3, // [27:25]
+                      ftm_en                                                  :  1, // [24:24]
+                      reserved_3b                                             :  1, // [23:23]
+                      center_ru_1                                             :  1, // [22:22]
+                      center_ru_0                                             :  1, // [21:21]
+                      num_he_sigb_sym                                         :  5, // [20:16]
+                      reserved_3a                                             : 13, // [15:3]
+                      he_sigb_0_mcs                                           :  3; // [2:0]
+             struct   ru_allocation_160_info                                    ru_allocation_0123_details;
+             struct   ru_allocation_160_info                                    ru_allocation_4567_details;
+             struct   unallocated_ru_160_info                                   ru_allocation_160_0_details;
+             struct   unallocated_ru_160_info                                   ru_allocation_160_1_details;
+             uint32_t reserved_14a                                            :  7, // [31:25]
+                      doppler_indication                                      :  1, // [24:24]
+                      ndp_feedback_status                                     :  1, // [23:23]
+                      ndp_ru_tone_set_index                                   :  7, // [22:16]
+                      num_data_symbols                                        : 16; // [15:0]
+             uint32_t reserved_15a                                            : 16, // [31:16]
+                      spatial_reuse                                           : 16; // [15:0]
+#endif
+};
+
+
+/* Description		NUM_USERS
+
+			The number of users in this transmission
+			
+			Use this same field for HE-ranging NDP as well.
+			<legal 1-37>
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_USERS_OFFSET                                     0x0000000000000000
+#define MACTX_USER_DESC_COMMON_NUM_USERS_LSB                                        0
+#define MACTX_USER_DESC_COMMON_NUM_USERS_MSB                                        5
+#define MACTX_USER_DESC_COMMON_NUM_USERS_MASK                                       0x000000000000003f
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_0B_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_RESERVED_0B_LSB                                      6
+#define MACTX_USER_DESC_COMMON_RESERVED_0B_MSB                                      10
+#define MACTX_USER_DESC_COMMON_RESERVED_0B_MASK                                     0x00000000000007c0
+
+
+/* Description		LTF_SIZE
+
+			Ltf size
+			
+			Specify the right LTF-size for HE-Ranging NDPs (11az)/Short-NDP.
+			
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define MACTX_USER_DESC_COMMON_LTF_SIZE_OFFSET                                      0x0000000000000000
+#define MACTX_USER_DESC_COMMON_LTF_SIZE_LSB                                         11
+#define MACTX_USER_DESC_COMMON_LTF_SIZE_MSB                                         12
+#define MACTX_USER_DESC_COMMON_LTF_SIZE_MASK                                        0x0000000000001800
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_0C_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_RESERVED_0C_LSB                                      13
+#define MACTX_USER_DESC_COMMON_RESERVED_0C_MSB                                      15
+#define MACTX_USER_DESC_COMMON_RESERVED_0C_MASK                                     0x000000000000e000
+
+
+/* Description		HE_STF_LONG
+
+			0: Normal HE STF. 
+			1: Long HE STF
+			
+			Specify the right STF-size for HE-Ranging NDPs (11az)/Short-NDP.
+			
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_HE_STF_LONG_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_HE_STF_LONG_LSB                                      16
+#define MACTX_USER_DESC_COMMON_HE_STF_LONG_MSB                                      16
+#define MACTX_USER_DESC_COMMON_HE_STF_LONG_MASK                                     0x0000000000010000
+
+
+/* Description		RESERVED_0D
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_0D_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_RESERVED_0D_LSB                                      17
+#define MACTX_USER_DESC_COMMON_RESERVED_0D_MSB                                      23
+#define MACTX_USER_DESC_COMMON_RESERVED_0D_MASK                                     0x0000000000fe0000
+
+
+/* Description		NUM_USERS_HE_SIGB_BAND0
+
+			number of users in HE_SIGB_0 or EHT_SIG_0
+			
+			Note for MAC:
+			directly from pdg_fes_setup, based on BW
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_OFFSET                       0x0000000000000000
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_LSB                          24
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_MSB                          31
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_MASK                         0x00000000ff000000
+
+
+/* Description		NUM_LTF_SYMBOLS
+
+			Indicates the number of HE-LTF symbols
+			
+			0: 1 symbol
+			1: 2 symbols
+			2: 3 symbols
+			3: 4 symbols
+			4: 5 symbols
+			5: 6 symbols
+			6: 7 symbols
+			7: 8 symbols
+			
+			NOTE that this encoding is different from what is in "Num_LTF_symbols" 
+			in the HE_SIG_A_MU_DL.
+			
+			NOTE 2: Not used for HE-Ranging NDPs (11az)
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_OFFSET                               0x0000000000000000
+#define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_LSB                                  32
+#define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_MSB                                  34
+#define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_MASK                                 0x0000000700000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_1A_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_RESERVED_1A_LSB                                      35
+#define MACTX_USER_DESC_COMMON_RESERVED_1A_MSB                                      39
+#define MACTX_USER_DESC_COMMON_RESERVED_1A_MASK                                     0x000000f800000000
+
+
+/* Description		NUM_USERS_HE_SIGB_BAND1
+
+			number of users in HE_SIGB_1 or EHT_SIG_1
+			
+			Note for MAC:
+			directly from pdg_fes_setup, based on BW
+			For 20Mhz transmission, this is set to 0
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_OFFSET                       0x0000000000000000
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_LSB                          40
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_MSB                          47
+#define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_MASK                         0x0000ff0000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_1B_OFFSET                                   0x0000000000000000
+#define MACTX_USER_DESC_COMMON_RESERVED_1B_LSB                                      48
+#define MACTX_USER_DESC_COMMON_RESERVED_1B_MSB                                      63
+#define MACTX_USER_DESC_COMMON_RESERVED_1B_MASK                                     0xffff000000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_OFFSET                     0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_LSB                        0
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_MSB                        1
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_MASK                       0x0000000000000003
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET              0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                 2
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                 2
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                0x0000000000000004
+
+
+/* Description		PACKET_EXTENSION
+
+			Packet extension size
+			
+			Specify the right packet extension size for HE-Ranging NDPs
+			 (11az)/Short-NDP.
+			<enum 0     packet_ext_0>
+			<enum 1     packet_ext_4>
+			<enum 2     packet_ext_8>
+			<enum 3     packet_ext_12>
+			<enum 4     packet_ext_16>
+			<enum 5     packet_ext_20>
+			<legal 0 - 5>
+*/
+
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_OFFSET                              0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_LSB                                 3
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_MSB                                 5
+#define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_MASK                                0x0000000000000038
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_OFFSET                                      0x0000000000000008
+#define MACTX_USER_DESC_COMMON_RESERVED_LSB                                         6
+#define MACTX_USER_DESC_COMMON_RESERVED_MSB                                         7
+#define MACTX_USER_DESC_COMMON_RESERVED_MASK                                        0x00000000000000c0
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to HE-SIG-B or EHT-SIG
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_LSB                                      8
+#define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_MSB                                      8
+#define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_MASK                                     0x0000000000000100
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_2B_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_RESERVED_2B_LSB                                      9
+#define MACTX_USER_DESC_COMMON_RESERVED_2B_MSB                                      15
+#define MACTX_USER_DESC_COMMON_RESERVED_2B_MASK                                     0x000000000000fe00
+
+
+/* Description		HE_SIGB_COMPRESSION
+
+			Indicates the compression mode of HE-SIG-B or EHT-SIG
+			<legal all> 
+*/
+
+#define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_OFFSET                           0x0000000000000008
+#define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_LSB                              16
+#define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_MSB                              16
+#define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_MASK                             0x0000000000010000
+
+
+/* Description		RESERVED_2C
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_2C_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_RESERVED_2C_LSB                                      17
+#define MACTX_USER_DESC_COMMON_RESERVED_2C_MSB                                      31
+#define MACTX_USER_DESC_COMMON_RESERVED_2C_MASK                                     0x00000000fffe0000
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Note: stbc setting is indicated in the MACTX_PHY_DESC.
+			
+			Indicates the MCS of HE-SIG-B or EHT-SIG.
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_OFFSET                                 0x0000000000000008
+#define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_LSB                                    32
+#define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_MSB                                    34
+#define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_MASK                                   0x0000000700000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_RESERVED_3A_LSB                                      35
+#define MACTX_USER_DESC_COMMON_RESERVED_3A_MSB                                      47
+#define MACTX_USER_DESC_COMMON_RESERVED_3A_MASK                                     0x0000fff800000000
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
+			 or MACTX_PHY_DESC.pkt_type == 11be)
+			
+			Indicates the number of HE-SIG-B or EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 he_sigb/eht_sig
+			 symbol needs to be transmitted
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_OFFSET                               0x0000000000000008
+#define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_LSB                                  48
+#define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_MSB                                  52
+#define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_MASK                                 0x001f000000000000
+
+
+/* Description		CENTER_RU_0
+
+			Field only valid for 11ax transmission with a BW of 80Mhz
+			 or 160 Mhz
+			
+			Indicates whether the Center RU is occupied in the lower
+			 80 MHz band. This is part of HE_SIGB content channel 1
+			
+			0: center RU is NOT used
+			1: center RU is used
+			
+			NOTE: EHT is not expected to use the center RU.
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_CENTER_RU_0_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_CENTER_RU_0_LSB                                      53
+#define MACTX_USER_DESC_COMMON_CENTER_RU_0_MSB                                      53
+#define MACTX_USER_DESC_COMMON_CENTER_RU_0_MASK                                     0x0020000000000000
+
+
+/* Description		CENTER_RU_1
+
+			Field only valid for 11ax transmission with a BW of 160 
+			Mhz (or 80 + 80)
+			
+			Indicates whether the Center RU is occupied in the upper
+			 80 MHz band. This is part of HE_SIGB content channel 1
+			
+			0: center RU is NOT used
+			1: center RU is used
+			
+			NOTE: EHT is not expected to use the center RU.
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_CENTER_RU_1_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_CENTER_RU_1_LSB                                      54
+#define MACTX_USER_DESC_COMMON_CENTER_RU_1_MSB                                      54
+#define MACTX_USER_DESC_COMMON_CENTER_RU_1_MASK                                     0x0040000000000000
+
+
+/* Description		RESERVED_3B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_3B_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_RESERVED_3B_LSB                                      55
+#define MACTX_USER_DESC_COMMON_RESERVED_3B_MSB                                      55
+#define MACTX_USER_DESC_COMMON_RESERVED_3B_MASK                                     0x0080000000000000
+
+
+/* Description		FTM_EN
+
+			This field is set to 1 if the present packet is either an
+			 FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az).
+			
+			0: non-FTM frame
+			1: FTM or HE-Ranging NDP Frame
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_FTM_EN_OFFSET                                        0x0000000000000008
+#define MACTX_USER_DESC_COMMON_FTM_EN_LSB                                           56
+#define MACTX_USER_DESC_COMMON_FTM_EN_MSB                                           56
+#define MACTX_USER_DESC_COMMON_FTM_EN_MASK                                          0x0100000000000000
+
+
+/* Description		PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_USER_DESC_COMMON_PE_NSS_OFFSET                                        0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PE_NSS_LSB                                           57
+#define MACTX_USER_DESC_COMMON_PE_NSS_MSB                                           59
+#define MACTX_USER_DESC_COMMON_PE_NSS_MASK                                          0x0e00000000000000
+
+
+/* Description		PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_OFFSET                                   0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_LSB                                      60
+#define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_MSB                                      61
+#define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_MASK                                     0x3000000000000000
+
+
+/* Description		PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_PE_CONTENT_OFFSET                                    0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PE_CONTENT_LSB                                       62
+#define MACTX_USER_DESC_COMMON_PE_CONTENT_MSB                                       62
+#define MACTX_USER_DESC_COMMON_PE_CONTENT_MASK                                      0x4000000000000000
+
+
+/* Description		PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_OFFSET                               0x0000000000000008
+#define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_LSB                                  63
+#define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_MSB                                  63
+#define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_MASK                                 0x8000000000000000
+
+
+/* Description		RU_ALLOCATION_0123_DETAILS
+
+			See detailed description of the STRUCT.
+*/
+
+
+/* Description		RU_ALLOCATION_BAND0_0
+
+			Field not used for MIMO
+			
+			Indicates RU arrangement in frequency domain. RU allocated
+			 for MU-MIMO, and number of users in the MU-MIMO.
+			0 - valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			1 - valid for HE_80/HE_160 (80+80)/ EHT_80/EHT_160/EHT_240/EHT_320
+			
+			2 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			3 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			
+			The four bands are for HE_SIGB0 & B1 respectively or for
+			 EHT_SIG0, EHT_SIG1, EHT_SIG2 & EHT_SIG3 respectively.
+			
+			valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320 packets and denotes RU-map of the first 
+			20MHz band of HE_SIGB0 or EHT_SIG0
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_LSB 0
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_MSB 8
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_MASK 0x00000000000001ff
+
+
+/* Description		RU_ALLOCATION_BAND0_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB0
+			 or EHT_SIG0
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_LSB 9
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_MSB 17
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_MASK 0x000000000003fe00
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_OFFSET        0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_LSB           18
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_MSB           23
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_MASK          0x0000000000fc0000
+
+
+/* Description		RU_ALLOCATIONS_01_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{0, 
+			1}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB 24
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB 27
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK 0x000000000f000000
+
+
+/* Description		RU_ALLOCATIONS_23_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{2, 
+			3}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB 28
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB 31
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK 0x00000000f0000000
+
+
+/* Description		RU_ALLOCATION_BAND0_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB0 or EHT_SIG0
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_LSB 32
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_MSB 40
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_MASK 0x000001ff00000000
+
+
+/* Description		RU_ALLOCATION_BAND0_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB0 or EHT_SIG0
+			
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_OFFSET 0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_LSB 41
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_MSB 49
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_MASK 0x0003fe0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_OFFSET        0x0000000000000010
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_LSB           50
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_MSB           63
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_MASK          0xfffc000000000000
+
+
+/* Description		RU_ALLOCATION_BAND1_0
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_40/HE_80/HE_160/ EHT_40/EHT_80/EHT_160/ EHT_240/EHT_320
+			 packets and denotes RU-map of the first 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_OFFSET 0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_LSB 0
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_MSB 8
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_MASK 0x00000000000001ff
+
+
+/* Description		RU_ALLOCATION_BAND1_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_OFFSET 0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_LSB 9
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_MSB 17
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_MASK 0x000000000003fe00
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_OFFSET        0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_LSB           18
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_MSB           31
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_MASK          0x00000000fffc0000
+
+
+/* Description		RU_ALLOCATION_BAND1_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB1 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_OFFSET 0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_LSB 32
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_MSB 40
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_MASK 0x000001ff00000000
+
+
+/* Description		RU_ALLOCATION_BAND1_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB1 or EHT_SIG1
+			
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_OFFSET 0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_LSB 41
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_MSB 49
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_MASK 0x0003fe0000000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_OFFSET        0x0000000000000018
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_LSB           50
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_MSB           63
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_MASK          0xfffc000000000000
+
+
+/* Description		RU_ALLOCATION_4567_DETAILS
+
+			See detailed description of the STRUCT.
+			
+			Valid for EHT_240/EHT_320 packets and denotes RU-map of 
+			the fifth/sixth/sevent/eighth 20MHz bands of EHT_SIG0/EHT_SIG1
+			
+*/
+
+
+/* Description		RU_ALLOCATION_BAND0_0
+
+			Field not used for MIMO
+			
+			Indicates RU arrangement in frequency domain. RU allocated
+			 for MU-MIMO, and number of users in the MU-MIMO.
+			0 - valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			1 - valid for HE_80/HE_160 (80+80)/ EHT_80/EHT_160/EHT_240/EHT_320
+			
+			2 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			3 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			
+			The four bands are for HE_SIGB0 & B1 respectively or for
+			 EHT_SIG0, EHT_SIG1, EHT_SIG2 & EHT_SIG3 respectively.
+			
+			valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320 packets and denotes RU-map of the first 
+			20MHz band of HE_SIGB0 or EHT_SIG0
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_LSB 0
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_MSB 8
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_MASK 0x00000000000001ff
+
+
+/* Description		RU_ALLOCATION_BAND0_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB0
+			 or EHT_SIG0
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_LSB 9
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_MSB 17
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_MASK 0x000000000003fe00
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_OFFSET        0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_LSB           18
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_MSB           23
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_MASK          0x0000000000fc0000
+
+
+/* Description		RU_ALLOCATIONS_01_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{0, 
+			1}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB 24
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB 27
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK 0x000000000f000000
+
+
+/* Description		RU_ALLOCATIONS_23_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{2, 
+			3}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB 28
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB 31
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK 0x00000000f0000000
+
+
+/* Description		RU_ALLOCATION_BAND0_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB0 or EHT_SIG0
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_LSB 32
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_MSB 40
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_MASK 0x000001ff00000000
+
+
+/* Description		RU_ALLOCATION_BAND0_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB0 or EHT_SIG0
+			
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_OFFSET 0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_LSB 41
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_MSB 49
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_MASK 0x0003fe0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_OFFSET        0x0000000000000020
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_LSB           50
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_MSB           63
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_MASK          0xfffc000000000000
+
+
+/* Description		RU_ALLOCATION_BAND1_0
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_40/HE_80/HE_160/ EHT_40/EHT_80/EHT_160/ EHT_240/EHT_320
+			 packets and denotes RU-map of the first 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_OFFSET 0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_LSB 0
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_MSB 8
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_MASK 0x00000000000001ff
+
+
+/* Description		RU_ALLOCATION_BAND1_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_OFFSET 0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_LSB 9
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_MSB 17
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_MASK 0x000000000003fe00
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_OFFSET        0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_LSB           18
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_MSB           31
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_MASK          0x00000000fffc0000
+
+
+/* Description		RU_ALLOCATION_BAND1_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB1 or EHT_SIG1
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_OFFSET 0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_LSB 32
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_MSB 40
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_MASK 0x000001ff00000000
+
+
+/* Description		RU_ALLOCATION_BAND1_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB1 or EHT_SIG1
+			
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_OFFSET 0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_LSB 41
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_MSB 49
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_MASK 0x0003fe0000000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_OFFSET        0x0000000000000028
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_LSB           50
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_MSB           63
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_MASK          0xfffc000000000000
+
+
+/* Description		RU_ALLOCATION_160_0_DETAILS
+
+			See detailed description of the STRUCT.
+*/
+
+
+/* Description		SUBBAND80_0_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the lower 80 MHz
+			
+			Valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_LSB      0
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_MSB      7
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_MASK     0x00000000000000ff
+
+
+/* Description		SUBBAND80_0_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the lower 80 MHz
+			
+			Valid for HE_40/HE_80/HE_160 (80+80)/ EHT_40/EHT_80/EHT_160/EHT_240/EHT_320
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_LSB      8
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_MSB      15
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_MASK     0x000000000000ff00
+
+
+/* Description		SUBBAND80_1_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_LSB      16
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_MSB      23
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_MASK     0x0000000000ff0000
+
+
+/* Description		SUBBAND80_1_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_LSB      24
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_MSB      31
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_MASK     0x00000000ff000000
+
+
+/* Description		RU_ALLOCATION_160_1_DETAILS
+
+			See detailed description of the STRUCT.
+			
+			Valid for EHT_240/EHT_320
+*/
+
+
+/* Description		SUBBAND80_0_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the lower 80 MHz
+			
+			Valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_LSB      32
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_MSB      39
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_MASK     0x000000ff00000000
+
+
+/* Description		SUBBAND80_0_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the lower 80 MHz
+			
+			Valid for HE_40/HE_80/HE_160 (80+80)/ EHT_40/EHT_80/EHT_160/EHT_240/EHT_320
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_LSB      40
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_MSB      47
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_MASK     0x0000ff0000000000
+
+
+/* Description		SUBBAND80_1_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_LSB      48
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_MSB      55
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_MASK     0x00ff000000000000
+
+
+/* Description		SUBBAND80_1_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_OFFSET   0x0000000000000030
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_LSB      56
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_MSB      63
+#define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_MASK     0xff00000000000000
+
+
+/* Description		NUM_DATA_SYMBOLS
+
+			The number of data symbols in the upcoming transmission.
+			
+			
+			This does not include PE_LTF. Also for STBC packets this
+			 has to be an even number.
+			
+			NOTE: Napier and Hastings80 MAC might not handle LDPC extra
+			 symbol and/or padding for STBC to make this an even number.
+			
+*/
+
+#define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_OFFSET                              0x0000000000000038
+#define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_LSB                                 0
+#define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_MSB                                 15
+#define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_MASK                                0x000000000000ffff
+
+
+/* Description		NDP_RU_TONE_SET_INDEX
+
+			Determines the RU tone set (1 - 72) to use for Short-NDP
+			 feedback
+			
+			Can be set to 0 for frames other than Short-NDP
+			<legal 0-72>
+*/
+
+#define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_OFFSET                         0x0000000000000038
+#define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_LSB                            16
+#define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_MSB                            22
+#define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_MASK                           0x00000000007f0000
+
+
+/* Description		NDP_FEEDBACK_STATUS
+
+			Determines the feedback value for Short-NDP
+			<legal 0-1>
+*/
+
+#define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_OFFSET                           0x0000000000000038
+#define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_LSB                              23
+#define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_MSB                              23
+#define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_MASK                             0x0000000000800000
+
+
+/* Description		DOPPLER_INDICATION
+
+			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
+			 or MACTX_PHY_DESC.pkt_type == 11be).
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_OFFSET                            0x0000000000000038
+#define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_LSB                               24
+#define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_MSB                               24
+#define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_MASK                              0x0000000001000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_14A_OFFSET                                  0x0000000000000038
+#define MACTX_USER_DESC_COMMON_RESERVED_14A_LSB                                     25
+#define MACTX_USER_DESC_COMMON_RESERVED_14A_MSB                                     31
+#define MACTX_USER_DESC_COMMON_RESERVED_14A_MASK                                    0x00000000fe000000
+
+
+/* Description		SPATIAL_REUSE
+
+			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
+			 or MACTX_PHY_DESC.pkt_type == 11be)
+			
+			For an HE TB PPDU all 16 bits are valid.
+			For an EHT TB PPDU LSB 8 bits are valid.
+			For any other HE/EHT PPDU LSB 4 bits are valid.
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_OFFSET                                 0x0000000000000038
+#define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_LSB                                    32
+#define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_MSB                                    47
+#define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_MASK                                   0x0000ffff00000000
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_COMMON_RESERVED_15A_OFFSET                                  0x0000000000000038
+#define MACTX_USER_DESC_COMMON_RESERVED_15A_LSB                                     48
+#define MACTX_USER_DESC_COMMON_RESERVED_15A_MSB                                     63
+#define MACTX_USER_DESC_COMMON_RESERVED_15A_MASK                                    0xffff000000000000
+
+
+
+#endif   // MACTX_USER_DESC_COMMON
diff --git a/hw/qca5332/mactx_user_desc_per_user.h b/hw/qca5332/mactx_user_desc_per_user.h
new file mode 100644
index 0000000..b51c758
--- /dev/null
+++ b/hw/qca5332/mactx_user_desc_per_user.h
@@ -0,0 +1,482 @@
+
+/* 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 _MACTX_USER_DESC_PER_USER_H_
+#define _MACTX_USER_DESC_PER_USER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MACTX_USER_DESC_PER_USER 4
+
+#define NUM_OF_QWORDS_MACTX_USER_DESC_PER_USER 2
+
+
+struct mactx_user_desc_per_user {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t psdu_length                                             : 24, // [23:0]
+                      reserved_0a                                             :  8; // [31:24]
+             uint32_t ru_start_index                                          :  8, // [7:0]
+                      ru_size                                                 :  4, // [11:8]
+                      reserved_1b                                             :  4, // [15:12]
+                      ofdma_mu_mimo_enabled                                   :  1, // [16:16]
+                      nss                                                     :  3, // [19:17]
+                      stream_offset                                           :  3, // [22:20]
+                      reserved_1c                                             :  1, // [23:23]
+                      mcs                                                     :  4, // [27:24]
+                      dcm                                                     :  1, // [28:28]
+                      reserved_1d                                             :  3; // [31:29]
+             uint32_t fec_type                                                :  1, // [0:0]
+                      reserved_2a                                             :  7, // [7:1]
+                      user_bf_type                                            :  2, // [9:8]
+                      reserved_2b                                             :  6, // [15:10]
+                      drop_user_cbf                                           :  1, // [16:16]
+                      reserved_2c                                             :  7, // [23:17]
+                      ldpc_extra_symbol                                       :  1, // [24:24]
+                      force_extra_symbol                                      :  1, // [25:25]
+                      reserved_2d                                             :  6; // [31:26]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      per_user_subband_mask                                   : 16; // [31:16]
+#else
+             uint32_t reserved_0a                                             :  8, // [31:24]
+                      psdu_length                                             : 24; // [23:0]
+             uint32_t reserved_1d                                             :  3, // [31:29]
+                      dcm                                                     :  1, // [28:28]
+                      mcs                                                     :  4, // [27:24]
+                      reserved_1c                                             :  1, // [23:23]
+                      stream_offset                                           :  3, // [22:20]
+                      nss                                                     :  3, // [19:17]
+                      ofdma_mu_mimo_enabled                                   :  1, // [16:16]
+                      reserved_1b                                             :  4, // [15:12]
+                      ru_size                                                 :  4, // [11:8]
+                      ru_start_index                                          :  8; // [7:0]
+             uint32_t reserved_2d                                             :  6, // [31:26]
+                      force_extra_symbol                                      :  1, // [25:25]
+                      ldpc_extra_symbol                                       :  1, // [24:24]
+                      reserved_2c                                             :  7, // [23:17]
+                      drop_user_cbf                                           :  1, // [16:16]
+                      reserved_2b                                             :  6, // [15:10]
+                      user_bf_type                                            :  2, // [9:8]
+                      reserved_2a                                             :  7, // [7:1]
+                      fec_type                                                :  1; // [0:0]
+             uint32_t per_user_subband_mask                                   : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+#endif
+};
+
+
+/* Description		PSDU_LENGTH
+
+			PSDU Length for the User in octets
+			NOTE: This also holds good for .11ba packets
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_OFFSET                                 0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_LSB                                    0
+#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_MSB                                    23
+#define MACTX_USER_DESC_PER_USER_PSDU_LENGTH_MASK                                   0x0000000000ffffff
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_0A_OFFSET                                 0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RESERVED_0A_LSB                                    24
+#define MACTX_USER_DESC_PER_USER_RESERVED_0A_MSB                                    31
+#define MACTX_USER_DESC_PER_USER_RESERVED_0A_MASK                                   0x00000000ff000000
+
+
+/* Description		RU_START_INDEX
+
+			Field only valid in case of .11ax or .11be OFDMA transmission
+			  (=> from MACTX_PHY_DESC, field MU_type == OFDMA)
+			OR 
+			11ax SU "Narrow band" transmission.
+			
+			RU Number to which User is assigned
+			RU numbering is over the entire BW, starting from 0 and 
+			for the different users in increasing frequency order and
+			 not primary-secondary order.
+			
+			For DL OFDMA transmissions, PDG shall fill this as instructed
+			 by SW.
+			
+			For UL OFDMA transmissions, the RU number within 80 MHz 
+			is available from the RU allocation information in the trigger. 
+			For 160 MHz UL OFDMA transmissions, the trigger RU allocation
+			 only mentions primary/secondary 80 MHz. PDG needs to convert
+			 this to lower/higher 80 MHz.
+			
+			If in 'PCU_PPDU_SETUP_START'/'MACTX_PRE_PHY_DESC,' CCA_Subband_channel_bonding_mask
+			 bit 0 is mapped to any of bits 4 - 7 of Freq_Subband_channel_bonding_mask, 
+			then the primary 80 MHz is the higher 80 MHz and the secondary
+			 80 MHz is the lower one.
+			Otherwise (if CCA_Subband_channel_bonding_mask bit 0 is 
+			mapped to any of bits 0 - 3 of Freq_Subband_channel_bonding_mask, 
+			then the primary 80 MHz is the lower 80 MHz and the secondary
+			 80 MHz is the higher one.
+			
+			<legal 0-147>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_OFFSET                              0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_LSB                                 32
+#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_MSB                                 39
+#define MACTX_USER_DESC_PER_USER_RU_START_INDEX_MASK                                0x000000ff00000000
+
+
+/* Description		RU_SIZE
+
+			The size of the RU for this user
+			
+			In case of HE extended range transmission, e-num 2 (10MHz) 
+			or e-num 7 (20MHz) are used.
+			
+			In case of trig transmission or OFDMA single user or MU-MIMO
+			 single user transmission, if the RU allocated to the user
+			 is the full BW (with respect to AP_bw) then the e-num 7
+			 is used.
+			For all other cases, e-nums corresponding to the RU size
+			 allocated to the user is used.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26>
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
+			 to infer the actual RU-size for Multi-large-RU/SU-Puncturing
+			
+			<enum 11 RU_78> multi small RU
+			<enum 12 RU_132> multi small RU<legal 0-12>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RU_SIZE_OFFSET                                     0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RU_SIZE_LSB                                        40
+#define MACTX_USER_DESC_PER_USER_RU_SIZE_MSB                                        43
+#define MACTX_USER_DESC_PER_USER_RU_SIZE_MASK                                       0x00000f0000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_1B_OFFSET                                 0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RESERVED_1B_LSB                                    44
+#define MACTX_USER_DESC_PER_USER_RESERVED_1B_MSB                                    47
+#define MACTX_USER_DESC_PER_USER_RESERVED_1B_MASK                                   0x0000f00000000000
+
+
+/* Description		OFDMA_MU_MIMO_ENABLED
+
+			Field only valid in case of .11ax or .11be OFDMA transmission
+			  (=> from MACTX_PHY_DESC, field MU_type == OFDMA)
+			
+			When set, for this user there is MIMO transmission within
+			 the RU
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_OFFSET                       0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_LSB                          48
+#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_MSB                          48
+#define MACTX_USER_DESC_PER_USER_OFDMA_MU_MIMO_ENABLED_MASK                         0x0001000000000000
+
+
+/* Description		NSS
+
+			Number of Spatial Streams occupied by the User
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define MACTX_USER_DESC_PER_USER_NSS_OFFSET                                         0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_NSS_LSB                                            49
+#define MACTX_USER_DESC_PER_USER_NSS_MSB                                            51
+#define MACTX_USER_DESC_PER_USER_NSS_MASK                                           0x000e000000000000
+
+
+/* Description		STREAM_OFFSET
+
+			Field only valid in case of MU-MIMO transmission  (=> from
+			 MACTX_PHY_DESC, field MU_type == MU-MIMO) 
+			OR
+			when field Ofdma_mu_mimo_enabled is set
+			
+			Stream Offset from which the User occupies the Streams
+			
+			Note MAC:
+			directly from pdg_fes_setup, based on BW
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_OFFSET                               0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_LSB                                  52
+#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_MSB                                  54
+#define MACTX_USER_DESC_PER_USER_STREAM_OFFSET_MASK                                 0x0070000000000000
+
+
+/* Description		RESERVED_1C
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_1C_OFFSET                                 0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RESERVED_1C_LSB                                    55
+#define MACTX_USER_DESC_PER_USER_RESERVED_1C_MSB                                    55
+#define MACTX_USER_DESC_PER_USER_RESERVED_1C_MASK                                   0x0080000000000000
+
+
+/* Description		MCS
+
+			Modulation Coding Scheme for the User
+			
+			The MCS to be used for the upcoming transmission. It must
+			 match the 4-bit MCS value that is sent in the appropriate
+			 signal field for the given packet type, except that EHT
+			 BPSK with DCM and/or duplicate is encoded as '0.'
+			
+			
+			For details, refer to  the SIG field, related to this pkt_type.
+			
+			(Note that this is slightly different then what is on the
+			 MAC side defined as "MCS_TYPE". For this reason, the 'legal
+			 values' here are NOT defined as MCS_TYPE)
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_MCS_OFFSET                                         0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_MCS_LSB                                            56
+#define MACTX_USER_DESC_PER_USER_MCS_MSB                                            59
+#define MACTX_USER_DESC_PER_USER_MCS_MASK                                           0x0f00000000000000
+
+
+/* Description		DCM
+
+			Field only valid in case of 11ax transmission
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_DCM_OFFSET                                         0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_DCM_LSB                                            60
+#define MACTX_USER_DESC_PER_USER_DCM_MSB                                            60
+#define MACTX_USER_DESC_PER_USER_DCM_MASK                                           0x1000000000000000
+
+
+/* Description		RESERVED_1D
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_1D_OFFSET                                 0x0000000000000000
+#define MACTX_USER_DESC_PER_USER_RESERVED_1D_LSB                                    61
+#define MACTX_USER_DESC_PER_USER_RESERVED_1D_MSB                                    63
+#define MACTX_USER_DESC_PER_USER_RESERVED_1D_MASK                                   0xe000000000000000
+
+
+/* Description		FEC_TYPE
+
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_FEC_TYPE_OFFSET                                    0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_FEC_TYPE_LSB                                       0
+#define MACTX_USER_DESC_PER_USER_FEC_TYPE_MSB                                       0
+#define MACTX_USER_DESC_PER_USER_FEC_TYPE_MASK                                      0x0000000000000001
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_2A_OFFSET                                 0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_RESERVED_2A_LSB                                    1
+#define MACTX_USER_DESC_PER_USER_RESERVED_2A_MSB                                    7
+#define MACTX_USER_DESC_PER_USER_RESERVED_2A_MASK                                   0x00000000000000fe
+
+
+/* Description		USER_BF_TYPE
+
+			This field is valid for all packets using multiple antennas
+			 because it defines whether the user's tones will be beamformed, 
+			spatially spread, both or none of the above.
+			
+			<enum 0     USER_NO_BF> Direct mapping from Stream to Chain
+			
+			<enum 1     USER_WALSH_ONLY>  Enable Walsh mapping only
+			<enum 2     USER_BF_ONLY> Enable Beamforming only
+			<enum 3     USER_WALSH_AND_BF> Enable Walsh and Beamforming
+			
+			
+			NOTE: USER_NO_BF and USER_BF_ONLY are not allowed if the
+			 number of spatial streams (NSS) < the number of Tx chains
+			 (NTx).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_OFFSET                                0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_LSB                                   8
+#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_MSB                                   9
+#define MACTX_USER_DESC_PER_USER_USER_BF_TYPE_MASK                                  0x0000000000000300
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_2B_OFFSET                                 0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_RESERVED_2B_LSB                                    10
+#define MACTX_USER_DESC_PER_USER_RESERVED_2B_MSB                                    15
+#define MACTX_USER_DESC_PER_USER_RESERVED_2B_MASK                                   0x000000000000fc00
+
+
+/* Description		DROP_USER_CBF
+
+			This user shall be dropped because of CBF FCS failure or
+			 no CBF reception.
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_OFFSET                               0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_LSB                                  16
+#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_MSB                                  16
+#define MACTX_USER_DESC_PER_USER_DROP_USER_CBF_MASK                                 0x0000000000010000
+
+
+/* Description		RESERVED_2C
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_2C_OFFSET                                 0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_RESERVED_2C_LSB                                    17
+#define MACTX_USER_DESC_PER_USER_RESERVED_2C_MSB                                    23
+#define MACTX_USER_DESC_PER_USER_RESERVED_2C_MASK                                   0x0000000000fe0000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), 
+			or at least one LDPC user's PPDU encoding process (if an
+			 MU PPDU), results in an extra OFDM symbol (or symbols) 
+			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
+			 (Encoding process for MU PPDUs). Set to 0 otherwise.
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_OFFSET                           0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_LSB                              24
+#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_MSB                              24
+#define MACTX_USER_DESC_PER_USER_LDPC_EXTRA_SYMBOL_MASK                             0x0000000001000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if none of the users' PPDU encoding process resuls in an
+			 extra OFDM symbol (or symbols).
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_OFFSET                          0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_LSB                             25
+#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_MSB                             25
+#define MACTX_USER_DESC_PER_USER_FORCE_EXTRA_SYMBOL_MASK                            0x0000000002000000
+
+
+/* Description		RESERVED_2D
+
+			<legal 0>
+*/
+
+#define MACTX_USER_DESC_PER_USER_RESERVED_2D_OFFSET                                 0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_RESERVED_2D_LSB                                    26
+#define MACTX_USER_DESC_PER_USER_RESERVED_2D_MSB                                    31
+#define MACTX_USER_DESC_PER_USER_RESERVED_2D_MASK                                   0x00000000fc000000
+
+
+/* Description		SW_PEER_ID
+
+			When set to 0, SW did not populate this field.
+			
+			The SW peer ID for this user
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_OFFSET                                  0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_LSB                                     32
+#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_MSB                                     47
+#define MACTX_USER_DESC_PER_USER_SW_PEER_ID_MASK                                    0x0000ffff00000000
+
+
+/* Description		PER_USER_SUBBAND_MASK
+
+			This specifies a per-20 MHz subband mask per-user to be 
+			used in case of either multi-large-RU or preamble puncturing.
+			
+			<legal all>
+*/
+
+#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_OFFSET                       0x0000000000000008
+#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_LSB                          48
+#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_MSB                          63
+#define MACTX_USER_DESC_PER_USER_PER_USER_SUBBAND_MASK_MASK                         0xffff000000000000
+
+
+
+#endif   // MACTX_USER_DESC_PER_USER
diff --git a/hw/qca5332/mactx_vht_sig_a.h b/hw/qca5332/mactx_vht_sig_a.h
new file mode 100644
index 0000000..1961705
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_a.h
@@ -0,0 +1,370 @@
+
+/* 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 _MACTX_VHT_SIG_A_H_
+#define _MACTX_VHT_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_a_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_A 2
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_A 1
+
+
+struct mactx_vht_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_a_info                                            mactx_vht_sig_a_info_details;
+#else
+             struct   vht_sig_a_info                                            mactx_vht_sig_a_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_A_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		BANDWIDTH
+
+			Packet bandwidth
+			
+			<enum 0    20_MHZ_11AC>
+			<enum 1    40_MHZ_11AC>
+			<enum 2    80_MHZ_11AC>
+			<enum 3    160_MHZ_11AC>
+			
+			<legal 0-3>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET               0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB                  0
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MSB                  1
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK                 0x0000000000000003
+
+
+/* Description		VHTA_RESERVED_0
+
+			Reserved.  Set to 1 by MAC, PHY should ignore
+			<legal 1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET         0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB            2
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MSB            2
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK           0x0000000000000004
+
+
+/* Description		STBC
+
+			Space time block coding:
+			<enum 0     stbc_disabled>  Indicates STBC is disabled
+			<enum 1     stbc_enabled>  Indicates STBC is enabled on 
+			all streams
+			<legal 0-1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET                    0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_LSB                       3
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_MSB                       3
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_STBC_MASK                      0x0000000000000008
+
+
+/* Description		GROUP_ID
+
+			In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 
+			to an AP or to a mesh STA, the Group ID field is set to 
+			0, otherwise it is set to 63.  In an NDP PPDU the Group 
+			ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
+			 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
+			 ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group 
+			ID).  <legal all>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET                0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB                   4
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MSB                   9
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK                  0x00000000000003f0
+
+
+/* Description		N_STS
+
+			For MU: 
+			3 bits/user with maximum of 4 users (user u uses
+			vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 
+			3) 
+			Set to 0 for 0 space time streams
+			Set to 1 for 1 space time stream
+			Set to 2 for 2 space time streams
+			Set to 3 for 3 space time streams
+			Set to 4 for 4 space time streams (not supported in Wifi
+			 3.0)
+			Values 5-7 are reserved
+			In this field, references to user "u" should be interpreted
+			 as MU user "u". As described in the previous chapter in
+			 this document (see chapter on User number), the MU user
+			 value for a given client is defined for each MU group that
+			 the client participates in. The MU user number is not related
+			 to the internal user number that is used within the BFer. 
+			
+			
+			
+			For SU:
+			vht_sig_a[0][12:10]
+			Set to 0 for 1 space time stream
+			Set to 1 for 2 space time streams
+			Set to 2 for 3 space time streams
+			Set to 3 for 4 space time streams 
+			Set to 4 for 5 space time streams 
+			Set to 5 for 6 space time streams
+			Set to 6 for 7 space time streams
+			Set to 7 for 8 space time streams
+			
+			vht_sig_a[0][21:13]
+			Partial AID: 
+			Set to the value of the TXVECTOR parameter PARTIAL_AID. 
+			Partial AID provides an abbreviated indication of the intended
+			 recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
+			 9.17a (Partial AID in VHT PPDUs)).
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET                   0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB                      10
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_MSB                      21
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK                     0x00000000003ffc00
+
+
+/* Description		TXOP_PS_NOT_ALLOWED
+
+			E_num 0     txop_ps_allowed  Not supported: If set to by
+			 VHT AP if it allows non-AP VHT STAs in TXOP power save 
+			mode to enter Doze state during a TXOP
+			<enum 1     no_txop_ps_allowed> Otherwise
+			<legal 1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET     0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB        22
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MSB        22
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK       0x0000000000400000
+
+
+/* Description		VHTA_RESERVED_0B
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY  <legal 1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB           23
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MSB           23
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK          0x0000000000800000
+
+
+/* Description		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 MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET              0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB                 24
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MSB                 31
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK                0x00000000ff000000
+
+
+/* Description		GI_SETTING
+
+			<enum 0     normal_gi>  Indicates short guard interval is
+			 not used in the data field
+			<enum 1     short_gi>  Indicates short guard interval is
+			 used in the data field
+			<enum 3     short_gi_ambiguity>  Indicates short guard interval
+			 is used in the data field and NSYM mod 10 = 9
+			NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
+			 and PSDU_LENGTH calculation).
+			<legal 0,1,3>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET              0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB                 32
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MSB                 33
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK                0x0000000300000000
+
+
+/* Description		SU_MU_CODING
+
+			For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
+			 MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
+			 B2 indicates the coding used for user 0; set to 0 for BCC
+			 and 1 for LDPC. If the MU[0] NSTS field is 0, then this
+			 field is reserved and set to 1
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET            0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB               34
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MSB               34
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK              0x0000000400000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), 
+			or at least one LDPC user's PPDU encoding process (if an
+			 MU PPDU), results in an extra OFDM symbol (or symbols) 
+			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
+			 (Encoding process for MU PPDUs). Set to 0 otherwise.
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET       0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB          35
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB          35
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK         0x0000000800000000
+
+
+/* Description		MCS
+
+			For SU:
+			Set to 0 for BPSK 1/2
+			Set to 1 for QPSK 1/2
+			Set to 2 for QPSK 3/4
+			Set to 3 for 16-QAM 1/2
+			Set to 4 for 16-QAM 3/4
+			Set to 5 for 64-QAM 2/3
+			Set to 6 for 64-QAM 3/4
+			Set to 7 for 64-QAM 5/6
+			Set to 8 for 256-QAM 3/4
+			Set to 9 for 256-QAM 5/6
+			For MU:
+			If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
+			 coding for user 1: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 
+			reserved and set to 1.
+			If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
+			 coding for user 2: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 
+			reserved and set to 1.
+			If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
+			 coding for user 3: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 
+			reserved and set to 1.
+			vht_sig_a[1][7] is reserved and set to 1
+			<legal 0-15>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET                     0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_LSB                        36
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_MSB                        39
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_MCS_MASK                       0x000000f000000000
+
+
+/* Description		BEAMFORMED
+
+			For SU:
+			Set to 1 if a Beamforming steering matrix is applied to 
+			the waveform in an SU transmission as described in IEEE802.11ac_D1.0
+			 Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
+			
+			For MU:
+			Reserved and set to 1
+			<legal 0-1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET              0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB                 40
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MSB                 40
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK                0x0000010000000000
+
+
+/* Description		VHTA_RESERVED_1
+
+			Reserved and set to 1.  <legal 1>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET         0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB            41
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MSB            41
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK           0x0000020000000000
+
+
+/* Description		CRC
+
+			CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
+			 (CRC calculation for HTSIG) with C7 in vht_sig_a[1][10], 
+			etc.  <legal all>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET                     0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_LSB                        42
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_MSB                        49
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_CRC_MASK                       0x0003fc0000000000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder. 
+			 Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET                    0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB                       50
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_MSB                       55
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK                      0x00fc000000000000
+
+
+/* Description		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 MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET              0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB                 56
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MSB                 62
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK                0x7f00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB  63
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB  63
+#define MACTX_VHT_SIG_A_MACTX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_A
diff --git a/hw/qca5332/mactx_vht_sig_b_mu160.h b/hw/qca5332/mactx_vht_sig_b_mu160.h
new file mode 100644
index 0000000..5ec8b6d
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_mu160.h
@@ -0,0 +1,446 @@
+
+/* 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 _MACTX_VHT_SIG_B_MU160_H_
+#define _MACTX_VHT_SIG_B_MU160_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_mu160_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU160 8
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU160 4
+
+
+struct mactx_vht_sig_b_mu160 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_mu160_info                                      mactx_vht_sig_b_mu160_info_details;
+#else
+             struct   vht_sig_b_mu160_info                                      mactx_vht_sig_b_mu160_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_MU160_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_LSB         0
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_MSB         18
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_MASK        0x000000000007ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field  <legal 0-11>
+			
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_OFFSET         0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_LSB            19
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_MSB            22
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_MASK           0x0000000000780000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_LSB           23
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_MSB           28
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_MASK          0x000000001f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_OFFSET  0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_LSB     29
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_MSB     31
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_0_MASK    0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length". This field is not valid for RX packets
+			 <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_LSB  32
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_MSB  50
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_A_MASK 0x0007ffff00000000
+
+
+/* Description		MCS_COPY_A
+
+			Same as "mcs". This field is not valid for RX packets  <legal
+			 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_OFFSET  0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_LSB     51
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_MSB     54
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_A_MASK    0x0078000000000000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail". This field is not valid for RX packets  <legal
+			 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_LSB    55
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_MSB    60
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_A_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_1
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_OFFSET  0x0000000000000000
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_LSB     61
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_MSB     63
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_1_MASK    0xe000000000000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_LSB  0
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_MSB  18
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_B_MASK 0x000000000007ffff
+
+
+/* Description		MCS_COPY_B
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_LSB     19
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_MSB     22
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_B_MASK    0x0000000000780000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_LSB    23
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_MSB    28
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_B_MASK   0x000000001f800000
+
+
+/* Description		RESERVED_2
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_LSB     29
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_MSB     31
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_2_MASK    0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_LSB  32
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_MSB  50
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_C_MASK 0x0007ffff00000000
+
+
+/* Description		MCS_COPY_C
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_LSB     51
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_MSB     54
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_C_MASK    0x0078000000000000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_LSB    55
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_MSB    60
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_C_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_3
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_LSB     61
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_MSB     63
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_3_MASK    0xe000000000000000
+
+
+/* Description		LENGTH_COPY_D
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_LSB  0
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_MSB  18
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_D_MASK 0x000000000007ffff
+
+
+/* Description		MCS_COPY_D
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_LSB     19
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_MSB     22
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_D_MASK    0x0000000000780000
+
+
+/* Description		TAIL_COPY_D
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_LSB    23
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_MSB    28
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_D_MASK   0x000000001f800000
+
+
+/* Description		RESERVED_4
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_LSB     29
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_MSB     31
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_4_MASK    0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_E
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_LSB  32
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_MSB  50
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_E_MASK 0x0007ffff00000000
+
+
+/* Description		MCS_COPY_E
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_LSB     51
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_MSB     54
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_E_MASK    0x0078000000000000
+
+
+/* Description		TAIL_COPY_E
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_LSB    55
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_MSB    60
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_E_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_5
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_LSB     61
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_MSB     63
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_5_MASK    0xe000000000000000
+
+
+/* Description		LENGTH_COPY_F
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_LSB  0
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_MSB  18
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_F_MASK 0x000000000007ffff
+
+
+/* Description		MCS_COPY_F
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_OFFSET  0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_LSB     19
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_MSB     22
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_F_MASK    0x0000000000780000
+
+
+/* Description		TAIL_COPY_F
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_LSB    23
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_MSB    28
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_F_MASK   0x000000001f800000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.   <legal
+			 0-3>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_LSB 29
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_MSB 31
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MU_USER_NUMBER_MASK 0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_G
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_LSB  32
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_MSB  50
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_LENGTH_COPY_G_MASK 0x0007ffff00000000
+
+
+/* Description		MCS_COPY_G
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_OFFSET  0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_LSB     51
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_MSB     54
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_MCS_COPY_G_MASK    0x0078000000000000
+
+
+/* Description		TAIL_COPY_G
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_LSB    55
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_MSB    60
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_TAIL_COPY_G_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_7
+
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_OFFSET  0x0000000000000018
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_LSB     61
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_MSB     63
+#define MACTX_VHT_SIG_B_MU160_MACTX_VHT_SIG_B_MU160_INFO_DETAILS_RESERVED_7_MASK    0xe000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_MU160
diff --git a/hw/qca5332/mactx_vht_sig_b_mu20.h b/hw/qca5332/mactx_vht_sig_b_mu20.h
new file mode 100644
index 0000000..6791089
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_mu20.h
@@ -0,0 +1,132 @@
+
+/* 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 _MACTX_VHT_SIG_B_MU20_H_
+#define _MACTX_VHT_SIG_B_MU20_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_mu20_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU20 2
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU20 1
+
+
+struct mactx_vht_sig_b_mu20 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_mu20_info                                       mactx_vht_sig_b_mu20_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   vht_sig_b_mu20_info                                       mactx_vht_sig_b_mu20_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_MU20_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_MSB           15
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_LENGTH_MASK          0x000000000000ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field 
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_OFFSET           0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_LSB              16
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_MSB              19
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MCS_MASK             0x00000000000f0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_LSB             20
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_MSB             25
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_TAIL_MASK            0x0000000003f00000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.  
+			<legal 0-3>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_LSB   26
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_MSB   28
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_MU_USER_NUMBER_MASK  0x000000001c000000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_LSB       29
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_MSB       31
+#define MACTX_VHT_SIG_B_MU20_MACTX_VHT_SIG_B_MU20_INFO_DETAILS_RESERVED_0_MASK      0x00000000e0000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_OFFSET                                   0x0000000000000000
+#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_LSB                                      32
+#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_MSB                                      63
+#define MACTX_VHT_SIG_B_MU20_TLV64_PADDING_MASK                                     0xffffffff00000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_MU20
diff --git a/hw/qca5332/mactx_vht_sig_b_mu40.h b/hw/qca5332/mactx_vht_sig_b_mu40.h
new file mode 100644
index 0000000..ffa0de8
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_mu40.h
@@ -0,0 +1,165 @@
+
+/* 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 _MACTX_VHT_SIG_B_MU40_H_
+#define _MACTX_VHT_SIG_B_MU40_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_mu40_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU40 2
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU40 1
+
+
+struct mactx_vht_sig_b_mu40 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_mu40_info                                       mactx_vht_sig_b_mu40_info_details;
+#else
+             struct   vht_sig_b_mu40_info                                       mactx_vht_sig_b_mu40_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_MU40_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_MSB           16
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_MASK          0x000000000001ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field 
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_OFFSET           0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_LSB              17
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_MSB              20
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_MASK             0x00000000001e0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_LSB             21
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_MSB             26
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_MASK            0x0000000007e00000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_LSB       27
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_MSB       28
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_0_MASK      0x0000000018000000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.   <legal
+			 0-3>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_LSB   29
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_MSB   31
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MU_USER_NUMBER_MASK  0x00000000e0000000
+
+
+/* Description		LENGTH_COPY
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_OFFSET   0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_LSB      32
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_MSB      48
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_LENGTH_COPY_MASK     0x0001ffff00000000
+
+
+/* Description		MCS_COPY
+
+			Same as "mcs". This field is not valid for RX packets. <legal
+			 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_LSB         49
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_MSB         52
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_MCS_COPY_MASK        0x001e000000000000
+
+
+/* Description		TAIL_COPY
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_OFFSET     0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_LSB        53
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_MSB        58
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_TAIL_COPY_MASK       0x07e0000000000000
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_LSB       59
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_MSB       63
+#define MACTX_VHT_SIG_B_MU40_MACTX_VHT_SIG_B_MU40_INFO_DETAILS_RESERVED_1_MASK      0xf800000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_MU40
diff --git a/hw/qca5332/mactx_vht_sig_b_mu80.h b/hw/qca5332/mactx_vht_sig_b_mu80.h
new file mode 100644
index 0000000..b3122ac
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_mu80.h
@@ -0,0 +1,250 @@
+
+/* 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 _MACTX_VHT_SIG_B_MU80_H_
+#define _MACTX_VHT_SIG_B_MU80_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_mu80_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_MU80 4
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_MU80 2
+
+
+struct mactx_vht_sig_b_mu80 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_mu80_info                                       mactx_vht_sig_b_mu80_info_details;
+#else
+             struct   vht_sig_b_mu80_info                                       mactx_vht_sig_b_mu80_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_MU80_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_MSB           18
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_MASK          0x000000000007ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field  <legal 0-11>
+			
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_OFFSET           0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_LSB              19
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_MSB              22
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_MASK             0x0000000000780000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_LSB             23
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_MSB             28
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_MASK            0x000000001f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_LSB       29
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_MSB       31
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_0_MASK      0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length". This field is not valid for RX packets
+			 <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_LSB    32
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_MSB    50
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_A_MASK   0x0007ffff00000000
+
+
+/* Description		MCS_COPY_A
+
+			Same as "mcs". This field is not valid for RX packets  <legal
+			 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_LSB       51
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_MSB       54
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_A_MASK      0x0078000000000000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail". This field is not valid for RX packets  <legal
+			 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_OFFSET   0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_LSB      55
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_MSB      60
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_A_MASK     0x1f80000000000000
+
+
+/* Description		RESERVED_1
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_LSB       61
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_MSB       63
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_1_MASK      0xe000000000000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_LSB    0
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_MSB    18
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_B_MASK   0x000000000007ffff
+
+
+/* Description		MCS_COPY_B
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_OFFSET    0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_LSB       19
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_MSB       22
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_B_MASK      0x0000000000780000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_OFFSET   0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_LSB      23
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_MSB      28
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_B_MASK     0x000000001f800000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.  <legal 
+			0-3>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_LSB   29
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_MSB   31
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MU_USER_NUMBER_MASK  0x00000000e0000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_LSB    32
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_MSB    50
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_LENGTH_COPY_C_MASK   0x0007ffff00000000
+
+
+/* Description		MCS_COPY_C
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_OFFSET    0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_LSB       51
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_MSB       54
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_MCS_COPY_C_MASK      0x0078000000000000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_OFFSET   0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_LSB      55
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_MSB      60
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_TAIL_COPY_C_MASK     0x1f80000000000000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_OFFSET    0x0000000000000008
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_LSB       61
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_MSB       63
+#define MACTX_VHT_SIG_B_MU80_MACTX_VHT_SIG_B_MU80_INFO_DETAILS_RESERVED_3_MASK      0xe000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_MU80
diff --git a/hw/qca5332/mactx_vht_sig_b_su160.h b/hw/qca5332/mactx_vht_sig_b_su160.h
new file mode 100644
index 0000000..92c1568
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_su160.h
@@ -0,0 +1,515 @@
+
+/* 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 _MACTX_VHT_SIG_B_SU160_H_
+#define _MACTX_VHT_SIG_B_SU160_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_su160_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU160 8
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU160 4
+
+
+struct mactx_vht_sig_b_su160 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_su160_info                                      mactx_vht_sig_b_su160_info_details;
+#else
+             struct   vht_sig_b_su160_info                                      mactx_vht_sig_b_su160_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_SU160_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_LSB         0
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_MSB         20
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_MASK        0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_LSB  21
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_MSB  22
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_MASK 0x0000000000600000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_LSB           23
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_MSB           28
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_MASK          0x000000001f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_OFFSET  0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_LSB     29
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_MSB     30
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_0_MASK    0x0000000060000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_LSB         31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_MSB         31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_MASK        0x0000000080000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_LSB  32
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_MSB  52
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_A_MASK 0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_A
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_LSB 53
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_MSB 54
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_A_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_LSB    55
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_MSB    60
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_A_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_1
+
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_OFFSET  0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_LSB     61
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_MSB     62
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_1_MASK    0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_A
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_LSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_MSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_A_MASK 0x8000000000000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_LSB  0
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_MSB  20
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_B_MASK 0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_B
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_LSB 21
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_MSB 22
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_B_MASK 0x0000000000600000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_LSB    23
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_MSB    28
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_B_MASK   0x000000001f800000
+
+
+/* Description		RESERVED_2
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_LSB     29
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_MSB     30
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_2_MASK    0x0000000060000000
+
+
+/* Description		RX_NDP_COPY_B
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_LSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_MSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_B_MASK 0x0000000080000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_LSB  32
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_MSB  52
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_C_MASK 0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_C
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_LSB 53
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_MSB 54
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_C_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_LSB    55
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_MSB    60
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_C_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_3
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_OFFSET  0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_LSB     61
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_MSB     62
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_3_MASK    0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_C
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_LSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_MSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_C_MASK 0x8000000000000000
+
+
+/* Description		LENGTH_COPY_D
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_LSB  0
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_MSB  20
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_D_MASK 0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_D
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_LSB 21
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_MSB 22
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_D_MASK 0x0000000000600000
+
+
+/* Description		TAIL_COPY_D
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_LSB    23
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_MSB    28
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_D_MASK   0x000000001f800000
+
+
+/* Description		RESERVED_4
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_LSB     29
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_MSB     30
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_4_MASK    0x0000000060000000
+
+
+/* Description		RX_NDP_COPY_D
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_LSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_MSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_D_MASK 0x0000000080000000
+
+
+/* Description		LENGTH_COPY_E
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_LSB  32
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_MSB  52
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_E_MASK 0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_E
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_LSB 53
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_MSB 54
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_E_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_E
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_LSB    55
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_MSB    60
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_E_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_5
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_OFFSET  0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_LSB     61
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_MSB     62
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_5_MASK    0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_E
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_OFFSET 0x0000000000000010
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_LSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_MSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_E_MASK 0x8000000000000000
+
+
+/* Description		LENGTH_COPY_F
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_LSB  0
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_MSB  20
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_F_MASK 0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_F
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_LSB 21
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_MSB 22
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_F_MASK 0x0000000000600000
+
+
+/* Description		TAIL_COPY_F
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_LSB    23
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_MSB    28
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_F_MASK   0x000000001f800000
+
+
+/* Description		RESERVED_6
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_OFFSET  0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_LSB     29
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_MSB     30
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_6_MASK    0x0000000060000000
+
+
+/* Description		RX_NDP_COPY_F
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_LSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_MSB  31
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_F_MASK 0x0000000080000000
+
+
+/* Description		LENGTH_COPY_G
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_LSB  32
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_MSB  52
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_LENGTH_COPY_G_MASK 0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_G
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_LSB 53
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_MSB 54
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_VHTB_RESERVED_COPY_G_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_G
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_LSB    55
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_MSB    60
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_TAIL_COPY_G_MASK   0x1f80000000000000
+
+
+/* Description		RESERVED_7
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_OFFSET  0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_LSB     61
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_MSB     62
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RESERVED_7_MASK    0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_G
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_OFFSET 0x0000000000000018
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_LSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_MSB  63
+#define MACTX_VHT_SIG_B_SU160_MACTX_VHT_SIG_B_SU160_INFO_DETAILS_RX_NDP_COPY_G_MASK 0x8000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_SU160
diff --git a/hw/qca5332/mactx_vht_sig_b_su20.h b/hw/qca5332/mactx_vht_sig_b_su20.h
new file mode 100644
index 0000000..b26c4fc
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_su20.h
@@ -0,0 +1,132 @@
+
+/* 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 _MACTX_VHT_SIG_B_SU20_H_
+#define _MACTX_VHT_SIG_B_SU20_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_su20_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU20 2
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU20 1
+
+
+struct mactx_vht_sig_b_su20 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_su20_info                                       mactx_vht_sig_b_su20_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   vht_sig_b_su20_info                                       mactx_vht_sig_b_su20_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_SU20_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_MSB           16
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_LENGTH_MASK          0x000000000001ffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive
+			<legal 2,7>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_LSB    17
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_MSB    19
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_VHTB_RESERVED_MASK   0x00000000000e0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_LSB             20
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_MSB             25
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_TAIL_MASK            0x0000000003f00000
+
+
+/* Description		RESERVED
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_LSB         26
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_MSB         30
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RESERVED_MASK        0x000000007c000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_LSB           31
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_MSB           31
+#define MACTX_VHT_SIG_B_SU20_MACTX_VHT_SIG_B_SU20_INFO_DETAILS_RX_NDP_MASK          0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_OFFSET                                   0x0000000000000000
+#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_LSB                                      32
+#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_MSB                                      63
+#define MACTX_VHT_SIG_B_SU20_TLV64_PADDING_MASK                                     0xffffffff00000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_SU20
diff --git a/hw/qca5332/mactx_vht_sig_b_su40.h b/hw/qca5332/mactx_vht_sig_b_su40.h
new file mode 100644
index 0000000..cc0fcc3
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_su40.h
@@ -0,0 +1,173 @@
+
+/* 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 _MACTX_VHT_SIG_B_SU40_H_
+#define _MACTX_VHT_SIG_B_SU40_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_su40_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU40 2
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU40 1
+
+
+struct mactx_vht_sig_b_su40 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_su40_info                                       mactx_vht_sig_b_su40_info_details;
+#else
+             struct   vht_sig_b_su40_info                                       mactx_vht_sig_b_su40_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_SU40_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_MSB           18
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_MASK          0x000000000007ffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones and ignored on receive  <legal
+			 3>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_LSB    19
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_MSB    20
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_MASK   0x0000000000180000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_LSB             21
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_MSB             26
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_MASK            0x0000000007e00000
+
+
+/* Description		RESERVED
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_OFFSET      0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_LSB         27
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_MSB         30
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_MASK        0x0000000078000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_LSB           31
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_MSB           31
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_MASK          0x0000000080000000
+
+
+/* Description		LENGTH_COPY
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_OFFSET   0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_LSB      32
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_MSB      50
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_LENGTH_COPY_MASK     0x0007ffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY
+
+			Same as "vhtb_reserved"  <legal 3>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_LSB 51
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_MSB 52
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_VHTB_RESERVED_COPY_MASK 0x0018000000000000
+
+
+/* Description		TAIL_COPY
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_OFFSET     0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_LSB        53
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_MSB        58
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_TAIL_COPY_MASK       0x07e0000000000000
+
+
+/* Description		RESERVED_COPY
+
+			Same as "reserved"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_LSB    59
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_MSB    62
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RESERVED_COPY_MASK   0x7800000000000000
+
+
+/* Description		RX_NDP_COPY
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_OFFSET   0x0000000000000000
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_LSB      63
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_MSB      63
+#define MACTX_VHT_SIG_B_SU40_MACTX_VHT_SIG_B_SU40_INFO_DETAILS_RX_NDP_COPY_MASK     0x8000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_SU40
diff --git a/hw/qca5332/mactx_vht_sig_b_su80.h b/hw/qca5332/mactx_vht_sig_b_su80.h
new file mode 100644
index 0000000..2238b05
--- /dev/null
+++ b/hw/qca5332/mactx_vht_sig_b_su80.h
@@ -0,0 +1,287 @@
+
+/* 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 _MACTX_VHT_SIG_B_SU80_H_
+#define _MACTX_VHT_SIG_B_SU80_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_b_su80_info.h"
+#define NUM_OF_DWORDS_MACTX_VHT_SIG_B_SU80 4
+
+#define NUM_OF_QWORDS_MACTX_VHT_SIG_B_SU80 2
+
+
+struct mactx_vht_sig_b_su80 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_b_su80_info                                       mactx_vht_sig_b_su80_info_details;
+#else
+             struct   vht_sig_b_su80_info                                       mactx_vht_sig_b_su80_info_details;
+#endif
+};
+
+
+/* Description		MACTX_VHT_SIG_B_SU80_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_LSB           0
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_MSB           20
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_MASK          0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_LSB    21
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_MSB    22
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_MASK   0x0000000000600000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_LSB             23
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_MSB             28
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_MASK            0x000000001f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_LSB       29
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_MSB       30
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_0_MASK      0x0000000060000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_OFFSET        0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_LSB           31
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_MSB           31
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_MASK          0x0000000080000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_LSB    32
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_MSB    52
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_A_MASK   0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_A
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_LSB 53
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_MSB 54
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_A_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_OFFSET   0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_LSB      55
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_MSB      60
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_A_MASK     0x1f80000000000000
+
+
+/* Description		RESERVED_1
+
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_OFFSET    0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_LSB       61
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_MSB       62
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_1_MASK      0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_A
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_OFFSET 0x0000000000000000
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_LSB    63
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_MSB    63
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_A_MASK   0x8000000000000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_LSB    0
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_MSB    20
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_B_MASK   0x00000000001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_B
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_LSB 21
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_MSB 22
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_B_MASK 0x0000000000600000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_OFFSET   0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_LSB      23
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_MSB      28
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_B_MASK     0x000000001f800000
+
+
+/* Description		RESERVED_2
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_OFFSET    0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_LSB       29
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_MSB       30
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_2_MASK      0x0000000060000000
+
+
+/* Description		RX_NDP_COPY_B
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_LSB    31
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_MSB    31
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_B_MASK   0x0000000080000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length" <legal all>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_LSB    32
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_MSB    52
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_LENGTH_COPY_C_MASK   0x001fffff00000000
+
+
+/* Description		VHTB_RESERVED_COPY_C
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_LSB 53
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_MSB 54
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_VHTB_RESERVED_COPY_C_MASK 0x0060000000000000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail"  <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_OFFSET   0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_LSB      55
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_MSB      60
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_TAIL_COPY_C_MASK     0x1f80000000000000
+
+
+/* Description		RESERVED_3
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_OFFSET    0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_LSB       61
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_MSB       62
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RESERVED_3_MASK      0x6000000000000000
+
+
+/* Description		RX_NDP_COPY_C
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_OFFSET 0x0000000000000008
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_LSB    63
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_MSB    63
+#define MACTX_VHT_SIG_B_SU80_MACTX_VHT_SIG_B_SU80_INFO_DETAILS_RX_NDP_COPY_C_MASK   0x8000000000000000
+
+
+
+#endif   // MACTX_VHT_SIG_B_SU80
diff --git a/hw/qca5332/mlo_sta_id_details.h b/hw/qca5332/mlo_sta_id_details.h
new file mode 100644
index 0000000..d943ec1
--- /dev/null
+++ b/hw/qca5332/mlo_sta_id_details.h
@@ -0,0 +1,114 @@
+
+/* 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 _MLO_STA_ID_DETAILS_H_
+#define _MLO_STA_ID_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_MLO_STA_ID_DETAILS 1
+
+
+struct mlo_sta_id_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t nstr_mlo_sta_id                                         : 10, // [9:0]
+                      block_self_ml_sync                                      :  1, // [10:10]
+                      block_partner_ml_sync                                   :  1, // [11:11]
+                      nstr_mlo_sta_id_valid                                   :  1, // [12:12]
+                      reserved_0a                                             :  3; // [15:13]
+#else
+             uint16_t reserved_0a                                             :  3, // [15:13]
+                      nstr_mlo_sta_id_valid                                   :  1, // [12:12]
+                      block_partner_ml_sync                                   :  1, // [11:11]
+                      block_self_ml_sync                                      :  1, // [10:10]
+                      nstr_mlo_sta_id                                         : 10; // [9:0]
+#endif
+};
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_OFFSET                                   0x00000000
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_LSB                                      0
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_MSB                                      9
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_MASK                                     0x000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_OFFSET                                0x00000000
+#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_LSB                                   10
+#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_MSB                                   10
+#define MLO_STA_ID_DETAILS_BLOCK_SELF_ML_SYNC_MASK                                  0x00000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_OFFSET                             0x00000000
+#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_LSB                                11
+#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_MSB                                11
+#define MLO_STA_ID_DETAILS_BLOCK_PARTNER_ML_SYNC_MASK                               0x00000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_OFFSET                             0x00000000
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_LSB                                12
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_MSB                                12
+#define MLO_STA_ID_DETAILS_NSTR_MLO_STA_ID_VALID_MASK                               0x00001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MLO_STA_ID_DETAILS_RESERVED_0A_OFFSET                                       0x00000000
+#define MLO_STA_ID_DETAILS_RESERVED_0A_LSB                                          13
+#define MLO_STA_ID_DETAILS_RESERVED_0A_MSB                                          15
+#define MLO_STA_ID_DETAILS_RESERVED_0A_MASK                                         0x0000e000
+
+
+
+#endif   // MLO_STA_ID_DETAILS
diff --git a/hw/qca5332/mon_buffer_addr.h b/hw/qca5332/mon_buffer_addr.h
new file mode 100644
index 0000000..8bd6d62
--- /dev/null
+++ b/hw/qca5332/mon_buffer_addr.h
@@ -0,0 +1,164 @@
+
+/* 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 _MON_BUFFER_ADDR_H_
+#define _MON_BUFFER_ADDR_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MON_BUFFER_ADDR 4
+
+#define NUM_OF_QWORDS_MON_BUFFER_ADDR 2
+
+
+struct mon_buffer_addr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t dma_length                                              : 12, // [11:0]
+                      reserved_2a                                             :  4, // [15:12]
+                      msdu_continuation                                       :  1, // [16:16]
+                      truncated                                               :  1, // [17:17]
+                      reserved_2b                                             : 14; // [31:18]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t reserved_2b                                             : 14, // [31:18]
+                      truncated                                               :  1, // [17:17]
+                      msdu_continuation                                       :  1, // [16:16]
+                      reserved_2a                                             :  4, // [15:12]
+                      dma_length                                              : 12; // [11:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		BUFFER_VIRT_ADDR_31_0
+
+			Lower 32 bits of the 64-bit virtual address of the packet
+			 buffer
+			<legal all>
+*/
+
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_OFFSET                                0x0000000000000000
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_LSB                                   0
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_MSB                                   31
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_31_0_MASK                                  0x00000000ffffffff
+
+
+/* Description		BUFFER_VIRT_ADDR_63_32
+
+			Upper 32 bits of the 64-bit virtual address of the packet
+			 buffer
+			<legal all>
+*/
+
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_OFFSET                               0x0000000000000000
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_LSB                                  32
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_MSB                                  63
+#define MON_BUFFER_ADDR_BUFFER_VIRT_ADDR_63_32_MASK                                 0xffffffff00000000
+
+
+/* Description		DMA_LENGTH
+
+			The number of bytes DMA'd into the packet buffer MINUS 1.
+			
+			
+			The packet could be truncated in case of a 'TX_FLUSH' or
+			 'RX_FLUSH,' or in case of drops due to back-pressure.
+			<legal all>
+*/
+
+#define MON_BUFFER_ADDR_DMA_LENGTH_OFFSET                                           0x0000000000000008
+#define MON_BUFFER_ADDR_DMA_LENGTH_LSB                                              0
+#define MON_BUFFER_ADDR_DMA_LENGTH_MSB                                              11
+#define MON_BUFFER_ADDR_DMA_LENGTH_MASK                                             0x0000000000000fff
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define MON_BUFFER_ADDR_RESERVED_2A_OFFSET                                          0x0000000000000008
+#define MON_BUFFER_ADDR_RESERVED_2A_LSB                                             12
+#define MON_BUFFER_ADDR_RESERVED_2A_MSB                                             15
+#define MON_BUFFER_ADDR_RESERVED_2A_MASK                                            0x000000000000f000
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this packet buffer was not able to hold the entire
+			 MSDU. The next buffer will therefore contain additional
+			 packet bytes.
+			<legal all>
+*/
+
+#define MON_BUFFER_ADDR_MSDU_CONTINUATION_OFFSET                                    0x0000000000000008
+#define MON_BUFFER_ADDR_MSDU_CONTINUATION_LSB                                       16
+#define MON_BUFFER_ADDR_MSDU_CONTINUATION_MSB                                       16
+#define MON_BUFFER_ADDR_MSDU_CONTINUATION_MASK                                      0x0000000000010000
+
+
+/* Description		TRUNCATED
+
+			When set, this TLV belongs to a previously truncated MPDU.
+			
+			<legal all>
+*/
+
+#define MON_BUFFER_ADDR_TRUNCATED_OFFSET                                            0x0000000000000008
+#define MON_BUFFER_ADDR_TRUNCATED_LSB                                               17
+#define MON_BUFFER_ADDR_TRUNCATED_MSB                                               17
+#define MON_BUFFER_ADDR_TRUNCATED_MASK                                              0x0000000000020000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define MON_BUFFER_ADDR_RESERVED_2B_OFFSET                                          0x0000000000000008
+#define MON_BUFFER_ADDR_RESERVED_2B_LSB                                             18
+#define MON_BUFFER_ADDR_RESERVED_2B_MSB                                             31
+#define MON_BUFFER_ADDR_RESERVED_2B_MASK                                            0x00000000fffc0000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define MON_BUFFER_ADDR_TLV64_PADDING_OFFSET                                        0x0000000000000008
+#define MON_BUFFER_ADDR_TLV64_PADDING_LSB                                           32
+#define MON_BUFFER_ADDR_TLV64_PADDING_MSB                                           63
+#define MON_BUFFER_ADDR_TLV64_PADDING_MASK                                          0xffffffff00000000
+
+
+
+#endif   // MON_BUFFER_ADDR
diff --git a/hw/qca5332/mon_destination_ring.h b/hw/qca5332/mon_destination_ring.h
new file mode 100644
index 0000000..385c2ed
--- /dev/null
+++ b/hw/qca5332/mon_destination_ring.h
@@ -0,0 +1,233 @@
+
+/* 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 _MON_DESTINATION_RING_H_
+#define _MON_DESTINATION_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MON_DESTINATION_RING 4
+
+
+struct mon_destination_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t stat_buf_virt_addr_31_0                                 : 32; // [31:0]
+             uint32_t stat_buf_virt_addr_63_32                                : 32; // [31:0]
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t end_offset                                              : 12, // [11:0]
+                      reserved_3a                                             :  4, // [15:12]
+                      end_reason                                              :  2, // [17:16]
+                      initiator                                               :  1, // [18:18]
+                      empty_descriptor                                        :  1, // [19:19]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t stat_buf_virt_addr_31_0                                 : 32; // [31:0]
+             uint32_t stat_buf_virt_addr_63_32                                : 32; // [31:0]
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      empty_descriptor                                        :  1, // [19:19]
+                      initiator                                               :  1, // [18:18]
+                      end_reason                                              :  2, // [17:16]
+                      reserved_3a                                             :  4, // [15:12]
+                      end_offset                                              : 12; // [11:0]
+#endif
+};
+
+
+/* Description		STAT_BUF_VIRT_ADDR_31_0
+
+			Lower 32 bits of the 64-bit virtual address of the status
+			 buffer
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_OFFSET                         0x00000000
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_LSB                            0
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_MSB                            31
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_31_0_MASK                           0xffffffff
+
+
+/* Description		STAT_BUF_VIRT_ADDR_63_32
+
+			Upper 32 bits of the 64-bit virtual address of the status
+			 buffer
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_OFFSET                        0x00000004
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_LSB                           0
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_MSB                           31
+#define MON_DESTINATION_RING_STAT_BUF_VIRT_ADDR_63_32_MASK                          0xffffffff
+
+
+/* Description		PPDU_ID
+
+			TXMON fills this with the schedule_id from 'TX_FES_SETUP' 
+			when Initiator = 1.
+			TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO' 
+			when Initiator = 0.
+			RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
+			
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_PPDU_ID_OFFSET                                         0x00000008
+#define MON_DESTINATION_RING_PPDU_ID_LSB                                            0
+#define MON_DESTINATION_RING_PPDU_ID_MSB                                            31
+#define MON_DESTINATION_RING_PPDU_ID_MASK                                           0xffffffff
+
+
+/* Description		END_OFFSET
+
+			The offset (in units of 4 bytes) into the status buffer 
+			where DMA ended, i.e. offset to the last TLV + last TLV 
+			size MINUS 1.
+			
+			In case of a 'TX_FLUSH' or 'RX_FLUSH,' this reflects the
+			 offset at which flush occurred.
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_END_OFFSET_OFFSET                                      0x0000000c
+#define MON_DESTINATION_RING_END_OFFSET_LSB                                         0
+#define MON_DESTINATION_RING_END_OFFSET_MSB                                         11
+#define MON_DESTINATION_RING_END_OFFSET_MASK                                        0x00000fff
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_RESERVED_3A_OFFSET                                     0x0000000c
+#define MON_DESTINATION_RING_RESERVED_3A_LSB                                        12
+#define MON_DESTINATION_RING_RESERVED_3A_MSB                                        15
+#define MON_DESTINATION_RING_RESERVED_3A_MASK                                       0x0000f000
+
+
+/* Description		END_REASON
+
+			<enum 0 MON_status_buffer_full> The status buffer was fully
+			 written.
+			<enum 1 MON_flush_detected> A 'TX_FLUSH' or 'RX_FLUSH' was
+			 received. This is implicitly the end of the Tx FES or Rx
+			 PPDU. The status buffer data can be discarded by SW.
+			<enum 2 MON_end_of_PPDU> A 'TX_FES_STATUS_END' or 'RX_PPDU_END' 
+			was received indicating the end of the Tx FES or Rx PPDU.
+			
+			<enum 3 MON_PPDU_truncated> The PPDU got truncated due to
+			 a system-level error.
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_END_REASON_OFFSET                                      0x0000000c
+#define MON_DESTINATION_RING_END_REASON_LSB                                         16
+#define MON_DESTINATION_RING_END_REASON_MSB                                         17
+#define MON_DESTINATION_RING_END_REASON_MASK                                        0x00030000
+
+
+/* Description		INITIATOR
+
+			1: This descriptor belongs to a TX FES (TXOP initiator)
+			0: This descriptor belongs to a response TX (TXOP responder)
+			
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_INITIATOR_OFFSET                                       0x0000000c
+#define MON_DESTINATION_RING_INITIATOR_LSB                                          18
+#define MON_DESTINATION_RING_INITIATOR_MSB                                          18
+#define MON_DESTINATION_RING_INITIATOR_MASK                                         0x00040000
+
+
+/* Description		EMPTY_DESCRIPTOR
+
+			0: This descriptor is written on a flush or the end of a
+			 PPDU or the end of status buffer
+			1: This descriptor is written to indicate drop information
+			 (see 'MON_DESTINATION_RING_WITH_DROP' structure)
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_OFFSET                                0x0000000c
+#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_LSB                                   19
+#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_MSB                                   19
+#define MON_DESTINATION_RING_EMPTY_DESCRIPTOR_MASK                                  0x00080000
+
+
+/* Description		RING_ID
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of TXMON/RXMON)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			It help to identify the ring that is being looked
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_RING_ID_OFFSET                                         0x0000000c
+#define MON_DESTINATION_RING_RING_ID_LSB                                            20
+#define MON_DESTINATION_RING_RING_ID_MSB                                            27
+#define MON_DESTINATION_RING_RING_ID_MASK                                           0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: SW/DEBUG
+			Producer: SRNG (of TXMON/RXMON)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_LOOPING_COUNT_OFFSET                                   0x0000000c
+#define MON_DESTINATION_RING_LOOPING_COUNT_LSB                                      28
+#define MON_DESTINATION_RING_LOOPING_COUNT_MSB                                      31
+#define MON_DESTINATION_RING_LOOPING_COUNT_MASK                                     0xf0000000
+
+
+
+#endif   // MON_DESTINATION_RING
diff --git a/hw/qca5332/mon_destination_ring_with_drop.h b/hw/qca5332/mon_destination_ring_with_drop.h
new file mode 100644
index 0000000..9121594
--- /dev/null
+++ b/hw/qca5332/mon_destination_ring_with_drop.h
@@ -0,0 +1,259 @@
+
+/* 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 _MON_DESTINATION_RING_WITH_DROP_H_
+#define _MON_DESTINATION_RING_WITH_DROP_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MON_DESTINATION_RING_WITH_DROP 4
+
+
+struct mon_destination_ring_with_drop {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ppdu_drop_cnt                                           : 10, // [9:0]
+                      mpdu_drop_cnt                                           : 10, // [19:10]
+                      tlv_drop_cnt                                            : 10, // [29:20]
+                      end_of_ppdu_seen                                        :  1, // [30:30]
+                      reserved_0a                                             :  1; // [31:31]
+             uint32_t reserved_1a                                             : 32; // [31:0]
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t reserved_3a                                             : 18, // [17:0]
+                      initiator                                               :  1, // [18:18]
+                      empty_descriptor                                        :  1, // [19:19]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t reserved_0a                                             :  1, // [31:31]
+                      end_of_ppdu_seen                                        :  1, // [30:30]
+                      tlv_drop_cnt                                            : 10, // [29:20]
+                      mpdu_drop_cnt                                           : 10, // [19:10]
+                      ppdu_drop_cnt                                           : 10; // [9:0]
+             uint32_t reserved_1a                                             : 32; // [31:0]
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      empty_descriptor                                        :  1, // [19:19]
+                      initiator                                               :  1, // [18:18]
+                      reserved_3a                                             : 18; // [17:0]
+#endif
+};
+
+
+/* Description		PPDU_DROP_CNT
+
+			The number of PPDUs dropped due to the back-pressure
+			
+			Set to 1023 if >1023 PPDUs got dropped
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_OFFSET                         0x00000000
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_LSB                            0
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MSB                            9
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MASK                           0x000003ff
+
+
+/* Description		MPDU_DROP_CNT
+
+			The number of MPDUs dropped within the first PPDU due to
+			 the back-pressure
+			
+			Set to 1023 if >1023 MPDUs got dropped
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_OFFSET                         0x00000000
+#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_LSB                            10
+#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MSB                            19
+#define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MASK                           0x000ffc00
+
+
+/* Description		TLV_DROP_CNT
+
+			The number of PPDU-level (global or per-user) TLVs dropped
+			 within the first PPDU due to the back-pressure
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_OFFSET                          0x00000000
+#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_LSB                             20
+#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MSB                             29
+#define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MASK                            0x3ff00000
+
+
+/* Description		END_OF_PPDU_SEEN
+
+			Field valid only if mpdu_drop_cnt > 0 or tlv_drop_cnt > 
+			0
+			
+			Set by TXMON if 'TX_FES_STATUS_END' is received for a partially
+			 dropped PPDU when Initiator = 1.
+			Set by TXMON if 'RESPONSE_END_STATUS' is received for a 
+			partially dropped PPDU when Initiator = 0.
+			Set by RXMON if 'RX_PPDU_END_STATUS_DONE' is received for
+			 a partially dropped PPDU.
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_OFFSET                      0x00000000
+#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_LSB                         30
+#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MSB                         30
+#define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MASK                        0x40000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_OFFSET                           0x00000000
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_LSB                              31
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MSB                              31
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MASK                             0x80000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_OFFSET                           0x00000004
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_LSB                              0
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MSB                              31
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MASK                             0xffffffff
+
+
+/* Description		PPDU_ID
+
+			The ID of the last PPDU which saw the back-pressure on AXI
+			
+			
+			TXMON fills this with the schedule_id from 'TX_FES_SETUP' 
+			when Initiator = 1.
+			TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO' 
+			when Initiator = 0.
+			RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
+			
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_OFFSET                               0x00000008
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_LSB                                  0
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MSB                                  31
+#define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MASK                                 0xffffffff
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_OFFSET                           0x0000000c
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_LSB                              0
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MSB                              17
+#define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MASK                             0x0003ffff
+
+
+/* Description		INITIATOR
+
+			1: This descriptor belongs to a TX FES (TXOP initiator)
+			0: This descriptor belongs to a response TX (TXOP responder)
+			
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_OFFSET                             0x0000000c
+#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_LSB                                18
+#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MSB                                18
+#define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MASK                               0x00040000
+
+
+/* Description		EMPTY_DESCRIPTOR
+
+			0: This descriptor is written on a flush or the end of a
+			 PPDU or the end of status buffer (see 'MON_DESTINATION_RING' 
+			structure)
+			1: This descriptor is written to indicate drop information
+			
+			<legal 1>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_OFFSET                      0x0000000c
+#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_LSB                         19
+#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MSB                         19
+#define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MASK                        0x00080000
+
+
+/* Description		RING_ID
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of TXMON/RXMON)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			It help to identify the ring that is being looked
+			<legal 0>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_RING_ID_OFFSET                               0x0000000c
+#define MON_DESTINATION_RING_WITH_DROP_RING_ID_LSB                                  20
+#define MON_DESTINATION_RING_WITH_DROP_RING_ID_MSB                                  27
+#define MON_DESTINATION_RING_WITH_DROP_RING_ID_MASK                                 0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: SW/DEBUG
+			Producer: SRNG (of TXMON/RXMON)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_OFFSET                         0x0000000c
+#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_LSB                            28
+#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MSB                            31
+#define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MASK                           0xf0000000
+
+
+
+#endif   // MON_DESTINATION_RING_WITH_DROP
diff --git a/hw/qca5332/mon_drop.h b/hw/qca5332/mon_drop.h
new file mode 100644
index 0000000..7b74cf7
--- /dev/null
+++ b/hw/qca5332/mon_drop.h
@@ -0,0 +1,146 @@
+
+/* 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 _MON_DROP_H_
+#define _MON_DROP_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MON_DROP 2
+
+#define NUM_OF_QWORDS_MON_DROP 1
+
+
+struct mon_drop {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t ppdu_drop_cnt                                           : 10, // [9:0]
+                      mpdu_drop_cnt                                           : 10, // [19:10]
+                      tlv_drop_cnt                                            : 10, // [29:20]
+                      end_of_ppdu_seen                                        :  1, // [30:30]
+                      reserved_1a                                             :  1; // [31:31]
+#else
+             uint32_t ppdu_id                                                 : 32; // [31:0]
+             uint32_t reserved_1a                                             :  1, // [31:31]
+                      end_of_ppdu_seen                                        :  1, // [30:30]
+                      tlv_drop_cnt                                            : 10, // [29:20]
+                      mpdu_drop_cnt                                           : 10, // [19:10]
+                      ppdu_drop_cnt                                           : 10; // [9:0]
+#endif
+};
+
+
+/* Description		PPDU_ID
+
+			The ID of the last PPDU which saw the back-pressure on AXI
+			
+			
+			TXMON fills this with the schedule_id from 'TX_FES_SETUP' 
+			in case of a TX FES (TXOP initiator).
+			TXMON fills this with the Phy_ppdu_id from 'RX_RESPONSE_REQUIRED_INFO' 
+			in case of a response TX (TXOP responder).
+			RXMON fills this with the Phy_ppdu_id from 'RX_PPDU_START.'
+			
+			<legal all>
+*/
+
+#define MON_DROP_PPDU_ID_OFFSET                                                     0x0000000000000000
+#define MON_DROP_PPDU_ID_LSB                                                        0
+#define MON_DROP_PPDU_ID_MSB                                                        31
+#define MON_DROP_PPDU_ID_MASK                                                       0x00000000ffffffff
+
+
+/* Description		PPDU_DROP_CNT
+
+			The number of PPDUs dropped due to the back-pressure
+			
+			Set to 1023 if >1023 PPDUs got dropped
+			<legal all>
+*/
+
+#define MON_DROP_PPDU_DROP_CNT_OFFSET                                               0x0000000000000000
+#define MON_DROP_PPDU_DROP_CNT_LSB                                                  32
+#define MON_DROP_PPDU_DROP_CNT_MSB                                                  41
+#define MON_DROP_PPDU_DROP_CNT_MASK                                                 0x000003ff00000000
+
+
+/* Description		MPDU_DROP_CNT
+
+			The number of MPDUs dropped within the first PPDU due to
+			 the back-pressure
+			
+			Set to 1023 if >1023 MPDUs got dropped
+			<legal all>
+*/
+
+#define MON_DROP_MPDU_DROP_CNT_OFFSET                                               0x0000000000000000
+#define MON_DROP_MPDU_DROP_CNT_LSB                                                  42
+#define MON_DROP_MPDU_DROP_CNT_MSB                                                  51
+#define MON_DROP_MPDU_DROP_CNT_MASK                                                 0x000ffc0000000000
+
+
+/* Description		TLV_DROP_CNT
+
+			The number of PPDU-level (global or per-user) TLVs dropped
+			 within the first PPDU due to the back-pressure
+*/
+
+#define MON_DROP_TLV_DROP_CNT_OFFSET                                                0x0000000000000000
+#define MON_DROP_TLV_DROP_CNT_LSB                                                   52
+#define MON_DROP_TLV_DROP_CNT_MSB                                                   61
+#define MON_DROP_TLV_DROP_CNT_MASK                                                  0x3ff0000000000000
+
+
+/* Description		END_OF_PPDU_SEEN
+
+			Field valid only if mpdu_drop_cnt > 0 or tlv_drop_cnt > 
+			0
+			
+			Set by TXMON if 'TX_FES_STATUS_END' is received but dropped
+			 in case of a TX FES (TXOP initiator).
+			Set by TXMON if 'RESPONSE_END_STATUS' is received but dropped
+			 in case of a response TX (TXOP responder).
+			Set by RXMON if 'RX_PPDU_END' is received but dropped
+*/
+
+#define MON_DROP_END_OF_PPDU_SEEN_OFFSET                                            0x0000000000000000
+#define MON_DROP_END_OF_PPDU_SEEN_LSB                                               62
+#define MON_DROP_END_OF_PPDU_SEEN_MSB                                               62
+#define MON_DROP_END_OF_PPDU_SEEN_MASK                                              0x4000000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define MON_DROP_RESERVED_1A_OFFSET                                                 0x0000000000000000
+#define MON_DROP_RESERVED_1A_LSB                                                    63
+#define MON_DROP_RESERVED_1A_MSB                                                    63
+#define MON_DROP_RESERVED_1A_MASK                                                   0x8000000000000000
+
+
+
+#endif   // MON_DROP
diff --git a/hw/qca5332/mon_ingress_ring.h b/hw/qca5332/mon_ingress_ring.h
new file mode 100644
index 0000000..f63fac3
--- /dev/null
+++ b/hw/qca5332/mon_ingress_ring.h
@@ -0,0 +1,221 @@
+
+/* 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 _MON_INGRESS_RING_H_
+#define _MON_INGRESS_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_MON_INGRESS_RING 4
+
+
+struct mon_ingress_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+#else
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+#endif
+};
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: TXMON/RXMON
+			Producer: SW
+			
+			Details of the physical address of the buffer
+			
+			'Sw_buffer_cookie' and 'Return_buffer_manager' sub-fields
+			 are reserved and unused by TXMON/RXMON.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET           0x00000000
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB              0
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB              31
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK             0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET          0x00000004
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB             0
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB             7
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK            0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET      0x00000004
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB         8
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB         11
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK        0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET           0x00000004
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB              12
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB              31
+#define MON_INGRESS_RING_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK             0xfffff000
+
+
+/* Description		BUFFER_VIRT_ADDR_31_0
+
+			Lower 32 bits of the 64-bit virtual address corresponding
+			 to Buffer_addr_info_details
+			<legal all>
+*/
+
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_OFFSET                               0x00000008
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_LSB                                  0
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_MSB                                  31
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_31_0_MASK                                 0xffffffff
+
+
+/* Description		BUFFER_VIRT_ADDR_63_32
+
+			Upper 32 bits of the 64-bit virtual address corresponding
+			 to Buffer_addr_info_details
+			<legal all>
+*/
+
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_OFFSET                              0x0000000c
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_LSB                                 0
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_MSB                                 31
+#define MON_INGRESS_RING_BUFFER_VIRT_ADDR_63_32_MASK                                0xffffffff
+
+
+
+#endif   // MON_INGRESS_RING
diff --git a/hw/qca5332/no_ack_report.h b/hw/qca5332/no_ack_report.h
new file mode 100644
index 0000000..eab46c8
--- /dev/null
+++ b/hw/qca5332/no_ack_report.h
@@ -0,0 +1,320 @@
+
+/* 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 _NO_ACK_REPORT_H_
+#define _NO_ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_NO_ACK_REPORT 4
+
+
+struct no_ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t no_ack_transmit_reason                                  :  4, // [3:0]
+                      macrx_abort_reason                                      :  4, // [7:4]
+                      phyrx_abort_reason                                      :  8, // [15:8]
+                      frame_control                                           : 16; // [31:16]
+             uint32_t rx_ppdu_duration                                        : 24, // [23:0]
+                      sr_ppdu_during_obss                                     :  1, // [24:24]
+                      selfgen_response_reason_to_sr_ppdu                      :  4, // [28:25]
+                      reserved_1                                              :  3; // [31:29]
+             uint32_t pre_bt_broadcast_status_details                         : 12, // [11:0]
+                      first_bt_broadcast_status_details                       : 12, // [23:12]
+                      reserved_2                                              :  8; // [31:24]
+             uint32_t second_bt_broadcast_status_details                      : 12, // [11:0]
+                      reserved_3                                              : 20; // [31:12]
+#else
+             uint32_t frame_control                                           : 16, // [31:16]
+                      phyrx_abort_reason                                      :  8, // [15:8]
+                      macrx_abort_reason                                      :  4, // [7:4]
+                      no_ack_transmit_reason                                  :  4; // [3:0]
+             uint32_t reserved_1                                              :  3, // [31:29]
+                      selfgen_response_reason_to_sr_ppdu                      :  4, // [28:25]
+                      sr_ppdu_during_obss                                     :  1, // [24:24]
+                      rx_ppdu_duration                                        : 24; // [23:0]
+             uint32_t reserved_2                                              :  8, // [31:24]
+                      first_bt_broadcast_status_details                       : 12, // [23:12]
+                      pre_bt_broadcast_status_details                         : 12; // [11:0]
+             uint32_t reserved_3                                              : 20, // [31:12]
+                      second_bt_broadcast_status_details                      : 12; // [11:0]
+#endif
+};
+
+
+/* Description		NO_ACK_TRANSMIT_REASON
+
+			Field that indicates why the received frame is not needing
+			 any transmit response in SIFS time. 
+			
+			The possible responses are listed in order.
+			
+			<enum 0     NO_ACK_FCS_errors > All received frames have
+			 FCS errors.
+			<enum 1     Unicast_no_ack_frame_received > All received
+			 frames did not require a response.
+			<enum 2     NO_ACK_Broadcast> Broadcast frame received
+			<enum 3     NO_ACK_Multicast> Multicast frame received
+			<enum 4     Not_directed> Frames received are not directed
+			 to this device (based on addr1)
+			<enum 5     AST_no_ack> The AST entry indicated that NO 
+			ACK shall be send
+			<enum 6     PHY_GID_mismatch> PHY dropped the incoming frame
+			 dur to GID mismatch
+			<enum 7     PHY_AID_mismatch> PHY dropped the incoming frame
+			 dur to AID mismatch
+			<enum 8     NO_ACK_PHY_error> PHY reported an error during
+			 reception. For details, see the 'phy_error...' fields
+			<enum 9     RTS_bw_not_available> The requested BW for the
+			 CTS response frame is not available
+			<enum 10     NDPA_Frame> An NDPA frame got received
+			<enum 11     NDP_Frame> An NDP frame got received
+			<enum 12     Trigger_NAV_blocked> a trigger frame was received, 
+			but due to NAV setting, no response could be generated
+			<enum 13     Trigger_no_AID> A trigger frame was received, 
+			but this device's AID was not in the list
+			<enum 14     NO_ACK_MAC_ABORT_REQ > No ACK is needed as 
+			SW asked RXPCU to send a abort_request to the PHYRX
+			<enum 15     no_response_other> placeholder in case non 
+			of the above properly cover the reasons
+			
+			Also see the field SR_PPDU_during_OBSS.
+			<legal 0-15>
+*/
+
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_OFFSET                                 0x00000000
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_LSB                                    0
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MSB                                    3
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MASK                                   0x0000000f
+
+
+/* Description		MACRX_ABORT_REASON
+
+			Field only valid when No_ack_transmit_reason is set to NO_ACK_MAC_ABORT_REQ
+			
+			
+			Error field received from MACRX_ABORT_REQUEST.Macrx_abort_reason[2:0]
+			
+			 <Legal all>
+*/
+
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_OFFSET                                     0x00000000
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_LSB                                        4
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_MSB                                        7
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_MASK                                       0x000000f0
+
+
+/* Description		PHYRX_ABORT_REASON
+
+			Field only valid when No_ack_transmit_reason is set to NO_ACK_PHY_error
+			
+			
+			Error field received from PHYRX_ABORT_REQUEST.Phyrx_abort_reason
+			
+			
+			<Legal all>
+*/
+
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_OFFSET                                     0x00000000
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_LSB                                        8
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MSB                                        15
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MASK                                       0x0000ff00
+
+
+/* Description		FRAME_CONTROL
+
+			frame control field of the received (first properly received) 
+			frame
+			
+			<Legal all>
+*/
+
+#define NO_ACK_REPORT_FRAME_CONTROL_OFFSET                                          0x00000000
+#define NO_ACK_REPORT_FRAME_CONTROL_LSB                                             16
+#define NO_ACK_REPORT_FRAME_CONTROL_MSB                                             31
+#define NO_ACK_REPORT_FRAME_CONTROL_MASK                                            0xffff0000
+
+
+/* Description		RX_PPDU_DURATION
+
+			The length of this PPDU reception in us 
+			<Legal all>
+*/
+
+#define NO_ACK_REPORT_RX_PPDU_DURATION_OFFSET                                       0x00000004
+#define NO_ACK_REPORT_RX_PPDU_DURATION_LSB                                          0
+#define NO_ACK_REPORT_RX_PPDU_DURATION_MSB                                          23
+#define NO_ACK_REPORT_RX_PPDU_DURATION_MASK                                         0x00ffffff
+
+
+/* Description		SR_PPDU_DURING_OBSS
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			Indicates that the received frame was sent using SRP as 
+			indicated by the 'SR PPDU' bit in the 'CAS Control' in the
+			 'HE A-Control' in one of the MPDUs received, and that the
+			 response could not be generated due to OBSS traffic setting
+			 the NAV
+			<legal all>
+*/
+
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_OFFSET                                    0x00000004
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_LSB                                       24
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MSB                                       24
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MASK                                      0x01000000
+
+
+/* Description		SELFGEN_RESPONSE_REASON_TO_SR_PPDU
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			This field indicates why the received SR PPDU needs a response
+			 in SIFS time. The e-num used is the same as in the field
+			 selfgen_response_reason in 'ACK_REPORT' structure although
+			 some of these will be unused in case of an SR PPDU.
+			
+			<enum 0     CTS_frame>
+			<enum 1     ACK_frame>
+			<enum 2     BA_frame >
+			<enum 3     Qboost_trigger> Qboost trigger received
+			<enum 4     PSPOLL_trigger> PSPOLL trigger received
+			<enum 5     UAPSD_trigger > Unscheduled APSD  trigger received
+			
+			<enum 6     CBF_frame> the CBF frame needs to be send as
+			 a result of NDP or BRPOLL
+			<enum 7     ax_su_trigger> 11ax trigger received for this
+			 device
+			<enum 8     ax_wildcard_trigger> 11ax wildcardtrigger has
+			 been received
+			<enum 9     ax_unassoc_wildcard_trigger> 11ax wildcard trigger
+			 for unassociated STAs has been received
+			<enum 12     eht_su_trigger> EHT R1 trigger received for
+			 this device
+			<enum 10     MU_UL_response_to_response>
+			
+			<enum 11     Ranging_NDP_LMR_frames> Ranging NDP + LMR need
+			 to be sent in response to ranging NDPA + NDP
+			
+			<legal 0-12>
+*/
+
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_OFFSET                     0x00000004
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_LSB                        25
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MSB                        28
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MASK                       0x1e000000
+
+
+/* Description		RESERVED_1
+
+			<legal all>
+*/
+
+#define NO_ACK_REPORT_RESERVED_1_OFFSET                                             0x00000004
+#define NO_ACK_REPORT_RESERVED_1_LSB                                                29
+#define NO_ACK_REPORT_RESERVED_1_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_1_MASK                                               0xe0000000
+
+
+/* Description		PRE_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the first received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			After power up, this field is all initialized to 0
+			
+			Bits: [31:28]: always 0
+			
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET                        0x00000008
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_LSB                           0
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MSB                           11
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MASK                          0x00000fff
+
+
+/* Description		FIRST_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the first received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no COEX_STATUS_BROADCAST tlv is received during this 
+			PPDU reception, this field will be set to 0
+			<legal all>
+*/
+
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET                      0x00000008
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB                         12
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB                         23
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK                        0x00fff000
+
+
+/* Description		RESERVED_2
+
+			<legal 0>
+*/
+
+#define NO_ACK_REPORT_RESERVED_2_OFFSET                                             0x00000008
+#define NO_ACK_REPORT_RESERVED_2_LSB                                                24
+#define NO_ACK_REPORT_RESERVED_2_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_2_MASK                                               0xff000000
+
+
+/* Description		SECOND_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the second received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no second COEX_STATUS_BROADCAST tlv is received during
+			 this PPDU reception, this field will be set to 0
+			<legal all>
+*/
+
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET                     0x0000000c
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB                        0
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB                        11
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK                       0x00000fff
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define NO_ACK_REPORT_RESERVED_3_OFFSET                                             0x0000000c
+#define NO_ACK_REPORT_RESERVED_3_LSB                                                12
+#define NO_ACK_REPORT_RESERVED_3_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_3_MASK                                               0xfffff000
+
+
+
+#endif   // NO_ACK_REPORT
diff --git a/hw/qca5332/ofdma_trigger_details.h b/hw/qca5332/ofdma_trigger_details.h
new file mode 100644
index 0000000..9786753
--- /dev/null
+++ b/hw/qca5332/ofdma_trigger_details.h
@@ -0,0 +1,2641 @@
+
+/* 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 _OFDMA_TRIGGER_DETAILS_H_
+#define _OFDMA_TRIGGER_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "mlo_sta_id_details.h"
+#define NUM_OF_DWORDS_OFDMA_TRIGGER_DETAILS 22
+
+#define NUM_OF_QWORDS_OFDMA_TRIGGER_DETAILS 11
+
+
+struct ofdma_trigger_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ax_trigger_source                                       :  1, // [0:0]
+                      rx_trigger_frame_user_source                            :  2, // [2:1]
+                      received_bandwidth                                      :  3, // [5:3]
+                      txop_duration_all_ones                                  :  1, // [6:6]
+                      eht_trigger_response                                    :  1, // [7:7]
+                      pre_rssi_comb                                           :  8, // [15:8]
+                      rssi_comb                                               :  8, // [23:16]
+                      rxpcu_pcie_l0_req_duration                              :  8; // [31:24]
+             uint32_t he_trigger_ul_ppdu_length                               :  5, // [4:0]
+                      he_trigger_ru_allocation                                :  8, // [12:5]
+                      he_trigger_dl_tx_power                                  :  5, // [17:13]
+                      he_trigger_ul_target_rssi                               :  5, // [22:18]
+                      he_trigger_ul_mcs                                       :  2, // [24:23]
+                      he_trigger_reserved                                     :  1, // [25:25]
+                      bss_color                                               :  6; // [31:26]
+             uint32_t trigger_type                                            :  4, // [3:0]
+                      lsig_response_length                                    : 12, // [15:4]
+                      cascade_indication                                      :  1, // [16:16]
+                      carrier_sense                                           :  1, // [17:17]
+                      bandwidth                                               :  2, // [19:18]
+                      cp_ltf_size                                             :  2, // [21:20]
+                      mu_mimo_ltf_mode                                        :  1, // [22:22]
+                      number_of_ltfs                                          :  3, // [25:23]
+                      stbc                                                    :  1, // [26:26]
+                      ldpc_extra_symbol                                       :  1, // [27:27]
+                      ap_tx_power_lsb_part                                    :  4; // [31:28]
+             uint32_t ap_tx_power_msb_part                                    :  2, // [1:0]
+                      packet_extension_a_factor                               :  2, // [3:2]
+                      packet_extension_pe_disambiguity                        :  1, // [4:4]
+                      spatial_reuse                                           : 16, // [20:5]
+                      doppler                                                 :  1, // [21:21]
+                      he_siga_reserved                                        :  9, // [30:22]
+                      reserved_3b                                             :  1; // [31:31]
+             uint32_t aid12                                                   : 12, // [11:0]
+                      ru_allocation                                           :  9, // [20:12]
+                      mcs                                                     :  4, // [24:21]
+                      dcm                                                     :  1, // [25:25]
+                      start_spatial_stream                                    :  3, // [28:26]
+                      number_of_spatial_stream                                :  3; // [31:29]
+             uint32_t target_rssi                                             :  7, // [6:0]
+                      coding_type                                             :  1, // [7:7]
+                      mpdu_mu_spacing_factor                                  :  2, // [9:8]
+                      tid_aggregation_limit                                   :  3, // [12:10]
+                      reserved_5b                                             :  1, // [13:13]
+                      prefered_ac                                             :  2, // [15:14]
+                      bar_control_ack_policy                                  :  1, // [16:16]
+                      bar_control_multi_tid                                   :  1, // [17:17]
+                      bar_control_compressed_bitmap                           :  1, // [18:18]
+                      bar_control_reserved                                    :  9, // [27:19]
+                      bar_control_tid_info                                    :  4; // [31:28]
+             uint32_t nr0_per_tid_info_reserved                               : 12, // [11:0]
+                      nr0_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr0_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr0_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr1_per_tid_info_reserved                               : 12, // [11:0]
+                      nr1_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr1_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr1_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr2_per_tid_info_reserved                               : 12, // [11:0]
+                      nr2_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr2_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr2_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr3_per_tid_info_reserved                               : 12, // [11:0]
+                      nr3_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr3_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr3_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr4_per_tid_info_reserved                               : 12, // [11:0]
+                      nr4_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr4_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr4_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr5_per_tid_info_reserved                               : 12, // [11:0]
+                      nr5_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr5_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr5_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr6_per_tid_info_reserved                               : 12, // [11:0]
+                      nr6_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr6_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr6_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t nr7_per_tid_info_reserved                               : 12, // [11:0]
+                      nr7_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr7_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr7_start_seq_ctrl_start_seq_number                     : 12; // [31:20]
+             uint32_t fb_segment_retransmission_bitmap                        :  8, // [7:0]
+                      reserved_14a                                            :  2, // [9:8]
+                      u_sig_puncture_pattern_encoding                         :  6, // [15:10]
+                      dot11be_puncture_bitmap                                 : 16; // [31:16]
+             uint32_t rx_chain_mask                                           :  8, // [7:0]
+                      rx_duration_field                                       : 16, // [23:8]
+                      scrambler_seed                                          :  7, // [30:24]
+                      rx_chain_mask_type                                      :  1; // [31:31]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint16_t normalized_pre_rssi_comb                                :  8, // [23:16]
+                      normalized_rssi_comb                                    :  8; // [31:24]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      response_tx_duration                                    : 16; // [31:16]
+             uint32_t ranging_trigger_subtype                                 :  4, // [3:0]
+                      tbr_trigger_common_info_79_68                           : 12, // [15:4]
+                      tbr_trigger_sound_reserved_20_12                        :  9, // [24:16]
+                      i2r_rep                                                 :  3, // [27:25]
+                      tbr_trigger_sound_reserved_25_24                        :  2, // [29:28]
+                      reserved_18a                                            :  1, // [30:30]
+                      qos_null_only_response_tx                               :  1; // [31:31]
+             uint32_t tbr_trigger_sound_sac                                   : 16, // [15:0]
+                      reserved_19a                                            :  8, // [23:16]
+                      u_sig_reserved2                                         :  5, // [28:24]
+                      reserved_19b                                            :  3; // [31:29]
+             uint32_t eht_special_aid12                                       : 12, // [11:0]
+                      phy_version                                             :  3, // [14:12]
+                      bandwidth_ext                                           :  2, // [16:15]
+                      eht_spatial_reuse                                       :  8, // [24:17]
+                      u_sig_reserved1                                         :  7; // [31:25]
+             uint32_t eht_trigger_special_user_info_71_40                     : 32; // [31:0]
+#else
+             uint32_t rxpcu_pcie_l0_req_duration                              :  8, // [31:24]
+                      rssi_comb                                               :  8, // [23:16]
+                      pre_rssi_comb                                           :  8, // [15:8]
+                      eht_trigger_response                                    :  1, // [7:7]
+                      txop_duration_all_ones                                  :  1, // [6:6]
+                      received_bandwidth                                      :  3, // [5:3]
+                      rx_trigger_frame_user_source                            :  2, // [2:1]
+                      ax_trigger_source                                       :  1; // [0:0]
+             uint32_t bss_color                                               :  6, // [31:26]
+                      he_trigger_reserved                                     :  1, // [25:25]
+                      he_trigger_ul_mcs                                       :  2, // [24:23]
+                      he_trigger_ul_target_rssi                               :  5, // [22:18]
+                      he_trigger_dl_tx_power                                  :  5, // [17:13]
+                      he_trigger_ru_allocation                                :  8, // [12:5]
+                      he_trigger_ul_ppdu_length                               :  5; // [4:0]
+             uint32_t ap_tx_power_lsb_part                                    :  4, // [31:28]
+                      ldpc_extra_symbol                                       :  1, // [27:27]
+                      stbc                                                    :  1, // [26:26]
+                      number_of_ltfs                                          :  3, // [25:23]
+                      mu_mimo_ltf_mode                                        :  1, // [22:22]
+                      cp_ltf_size                                             :  2, // [21:20]
+                      bandwidth                                               :  2, // [19:18]
+                      carrier_sense                                           :  1, // [17:17]
+                      cascade_indication                                      :  1, // [16:16]
+                      lsig_response_length                                    : 12, // [15:4]
+                      trigger_type                                            :  4; // [3:0]
+             uint32_t reserved_3b                                             :  1, // [31:31]
+                      he_siga_reserved                                        :  9, // [30:22]
+                      doppler                                                 :  1, // [21:21]
+                      spatial_reuse                                           : 16, // [20:5]
+                      packet_extension_pe_disambiguity                        :  1, // [4:4]
+                      packet_extension_a_factor                               :  2, // [3:2]
+                      ap_tx_power_msb_part                                    :  2; // [1:0]
+             uint32_t number_of_spatial_stream                                :  3, // [31:29]
+                      start_spatial_stream                                    :  3, // [28:26]
+                      dcm                                                     :  1, // [25:25]
+                      mcs                                                     :  4, // [24:21]
+                      ru_allocation                                           :  9, // [20:12]
+                      aid12                                                   : 12; // [11:0]
+             uint32_t bar_control_tid_info                                    :  4, // [31:28]
+                      bar_control_reserved                                    :  9, // [27:19]
+                      bar_control_compressed_bitmap                           :  1, // [18:18]
+                      bar_control_multi_tid                                   :  1, // [17:17]
+                      bar_control_ack_policy                                  :  1, // [16:16]
+                      prefered_ac                                             :  2, // [15:14]
+                      reserved_5b                                             :  1, // [13:13]
+                      tid_aggregation_limit                                   :  3, // [12:10]
+                      mpdu_mu_spacing_factor                                  :  2, // [9:8]
+                      coding_type                                             :  1, // [7:7]
+                      target_rssi                                             :  7; // [6:0]
+             uint32_t nr0_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr0_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr0_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr0_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr1_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr1_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr1_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr1_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr2_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr2_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr2_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr2_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr3_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr3_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr3_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr3_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr4_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr4_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr4_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr4_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr5_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr5_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr5_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr5_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr6_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr6_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr6_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr6_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t nr7_start_seq_ctrl_start_seq_number                     : 12, // [31:20]
+                      nr7_start_seq_ctrl_frag_number                          :  4, // [19:16]
+                      nr7_per_tid_info_tid_value                              :  4, // [15:12]
+                      nr7_per_tid_info_reserved                               : 12; // [11:0]
+             uint32_t dot11be_puncture_bitmap                                 : 16, // [31:16]
+                      u_sig_puncture_pattern_encoding                         :  6, // [15:10]
+                      reserved_14a                                            :  2, // [9:8]
+                      fb_segment_retransmission_bitmap                        :  8; // [7:0]
+             uint32_t rx_chain_mask_type                                      :  1, // [31:31]
+                      scrambler_seed                                          :  7, // [30:24]
+                      rx_duration_field                                       : 16, // [23:8]
+                      rx_chain_mask                                           :  8; // [7:0]
+             uint32_t normalized_rssi_comb                                    :  8, // [31:24]
+                      normalized_pre_rssi_comb                                :  8; // [23:16]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint32_t response_tx_duration                                    : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t qos_null_only_response_tx                               :  1, // [31:31]
+                      reserved_18a                                            :  1, // [30:30]
+                      tbr_trigger_sound_reserved_25_24                        :  2, // [29:28]
+                      i2r_rep                                                 :  3, // [27:25]
+                      tbr_trigger_sound_reserved_20_12                        :  9, // [24:16]
+                      tbr_trigger_common_info_79_68                           : 12, // [15:4]
+                      ranging_trigger_subtype                                 :  4; // [3:0]
+             uint32_t reserved_19b                                            :  3, // [31:29]
+                      u_sig_reserved2                                         :  5, // [28:24]
+                      reserved_19a                                            :  8, // [23:16]
+                      tbr_trigger_sound_sac                                   : 16; // [15:0]
+             uint32_t u_sig_reserved1                                         :  7, // [31:25]
+                      eht_spatial_reuse                                       :  8, // [24:17]
+                      bandwidth_ext                                           :  2, // [16:15]
+                      phy_version                                             :  3, // [14:12]
+                      eht_special_aid12                                       : 12; // [11:0]
+             uint32_t eht_trigger_special_user_info_71_40                     : 32; // [31:0]
+#endif
+};
+
+
+/* Description		AX_TRIGGER_SOURCE
+
+			<enum 0 11ax_trigger_frame>
+			<enum 1 he_control_based_trigger>
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_OFFSET                              0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_LSB                                 0
+#define OFDMA_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MSB                                 0
+#define OFDMA_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MASK                                0x0000000000000001
+
+
+/* Description		RX_TRIGGER_FRAME_USER_SOURCE
+
+			Field not really needed by PDG, but is there for debugging
+			 purposes to be put in event.
+			
+			<enum 0 dot11ax_direct_trigger_frame>
+			<enum 1 dot11ax_wildcard_trigger_frame> wildcard trigger
+			 for associated STAs
+			<enum 2 dot11ax_usassoc_wildcard_trigger_frame> wildcard
+			 trigger for unassociated STAs
+			
+			<legal 0-2>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RX_TRIGGER_FRAME_USER_SOURCE_OFFSET                   0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_RX_TRIGGER_FRAME_USER_SOURCE_LSB                      1
+#define OFDMA_TRIGGER_DETAILS_RX_TRIGGER_FRAME_USER_SOURCE_MSB                      2
+#define OFDMA_TRIGGER_DETAILS_RX_TRIGGER_FRAME_USER_SOURCE_MASK                     0x0000000000000006
+
+
+/* Description		RECEIVED_BANDWIDTH
+
+			Received Packet bandwidth of the trigger frame.
+			
+			Note that this is not the BW indicated within the trigger
+			 frame itself.
+			
+			<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 OFDMA_TRIGGER_DETAILS_RECEIVED_BANDWIDTH_OFFSET                             0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_RECEIVED_BANDWIDTH_LSB                                3
+#define OFDMA_TRIGGER_DETAILS_RECEIVED_BANDWIDTH_MSB                                5
+#define OFDMA_TRIGGER_DETAILS_RECEIVED_BANDWIDTH_MASK                               0x0000000000000038
+
+
+/* Description		TXOP_DURATION_ALL_ONES
+
+			When set, TXOP_DURATION of the received frame was set to
+			 all 1s.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TXOP_DURATION_ALL_ONES_OFFSET                         0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_TXOP_DURATION_ALL_ONES_LSB                            6
+#define OFDMA_TRIGGER_DETAILS_TXOP_DURATION_ALL_ONES_MSB                            6
+#define OFDMA_TRIGGER_DETAILS_TXOP_DURATION_ALL_ONES_MASK                           0x0000000000000040
+
+
+/* Description		EHT_TRIGGER_RESPONSE
+
+			0: Trigger expects an HE TB PPDU Tx response.
+			1: Trigger expects an EHT TB PPDU Tx response.
+			<legal 0>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_RESPONSE_OFFSET                           0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_RESPONSE_LSB                              7
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_RESPONSE_MSB                              7
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_RESPONSE_MASK                             0x0000000000000080
+
+
+/* Description		PRE_RSSI_COMB
+
+			Combined pre_rssi of all chains. Based on primary channel
+			 RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_PRE_RSSI_COMB_OFFSET                                  0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_PRE_RSSI_COMB_LSB                                     8
+#define OFDMA_TRIGGER_DETAILS_PRE_RSSI_COMB_MSB                                     15
+#define OFDMA_TRIGGER_DETAILS_PRE_RSSI_COMB_MASK                                    0x000000000000ff00
+
+
+/* Description		RSSI_COMB
+
+			Combined rssi of all chains. Based on primary channel RSSI.
+			
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RSSI_COMB_OFFSET                                      0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_RSSI_COMB_LSB                                         16
+#define OFDMA_TRIGGER_DETAILS_RSSI_COMB_MSB                                         23
+#define OFDMA_TRIGGER_DETAILS_RSSI_COMB_MASK                                        0x0000000000ff0000
+
+
+/* Description		RXPCU_PCIE_L0_REQ_DURATION
+
+			RXPCU fills the duration in µs for which it has asserted
+			 the 'L0 request' signal to PCIe when it generates this 
+			TLV. This may be capped by either the max. PCIe L1SS exit
+			 latency (~75 µs) or the max. value possible for this field.
+			
+			
+			This is filled as zero if ILP is unsupported (e.g. in Maple
+			 and Spruce) or disabled.
+			
+			PDG uses this to fill Qos_null_only_response_tx.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RXPCU_PCIE_L0_REQ_DURATION_OFFSET                     0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_RXPCU_PCIE_L0_REQ_DURATION_LSB                        24
+#define OFDMA_TRIGGER_DETAILS_RXPCU_PCIE_L0_REQ_DURATION_MSB                        31
+#define OFDMA_TRIGGER_DETAILS_RXPCU_PCIE_L0_REQ_DURATION_MASK                       0x00000000ff000000
+
+
+/* Description		HE_TRIGGER_UL_PPDU_LENGTH
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			length of the HE trigger-based PPDU response.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_PPDU_LENGTH_OFFSET                      0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_PPDU_LENGTH_LSB                         32
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_PPDU_LENGTH_MSB                         36
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_PPDU_LENGTH_MASK                        0x0000001f00000000
+
+
+/* Description		HE_TRIGGER_RU_ALLOCATION
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			RU allocation for HE based trigger
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RU_ALLOCATION_OFFSET                       0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RU_ALLOCATION_LSB                          37
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RU_ALLOCATION_MSB                          44
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RU_ALLOCATION_MASK                         0x00001fe000000000
+
+
+/* Description		HE_TRIGGER_DL_TX_POWER
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			Downlink TX power
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_DL_TX_POWER_OFFSET                         0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_DL_TX_POWER_LSB                            45
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_DL_TX_POWER_MSB                            49
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_DL_TX_POWER_MASK                           0x0003e00000000000
+
+
+/* Description		HE_TRIGGER_UL_TARGET_RSSI
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			Ul target RSSI
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_TARGET_RSSI_OFFSET                      0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_TARGET_RSSI_LSB                         50
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_TARGET_RSSI_MSB                         54
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_TARGET_RSSI_MASK                        0x007c000000000000
+
+
+/* Description		HE_TRIGGER_UL_MCS
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			UL MCS
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_MCS_OFFSET                              0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_MCS_LSB                                 55
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_MCS_MSB                                 56
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_UL_MCS_MASK                                0x0180000000000000
+
+
+/* Description		HE_TRIGGER_RESERVED
+
+			Field only valid when ax_trigger_source = he_control_based_trigger
+			
+			
+			Field extracted from the HE control field.
+			Reserved field
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RESERVED_OFFSET                            0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RESERVED_LSB                               57
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RESERVED_MSB                               57
+#define OFDMA_TRIGGER_DETAILS_HE_TRIGGER_RESERVED_MASK                              0x0200000000000000
+
+
+/* Description		BSS_COLOR
+
+			The BSS color of the AP
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BSS_COLOR_OFFSET                                      0x0000000000000000
+#define OFDMA_TRIGGER_DETAILS_BSS_COLOR_LSB                                         58
+#define OFDMA_TRIGGER_DETAILS_BSS_COLOR_MSB                                         63
+#define OFDMA_TRIGGER_DETAILS_BSS_COLOR_MASK                                        0xfc00000000000000
+
+
+/* Description		TRIGGER_TYPE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Indicates what kind of response is required to the received
+			 OFDMA trigger...
+			
+			Field not really needed by PDG, but is there for debugging
+			 purposes to be put in event.
+			
+			<enum 0 ax_trigger_basic> TXPCU sends back whatever SW has
+			 programmed...for the basic response..
+			<enum 1 ax_trigger_brpoll>  TXPCU is only allowed to send
+			 CBF frame(s) back
+			<enum 2 ax_trigger_mu_bar> TXPCU shall first send BA info, 
+			and optionally followed with data. No info from SCH is expected
+			
+			<enum 3 ax_trigger_mu_rts> TXPCU shall only send CTS back. 
+			No info from SCH is expected
+			<enum 4 ax_trigger_buffer_size> Also known as the BSRP trigger. 
+			TXPCU sends back whatever SW has programmed...for the basic
+			 response..
+			<enum 5 ax_trigger_gcr_mu_bar>
+			<enum 6 ax_trigger_BQRP> Bandwidth Query Report Poll
+			<enum 7 ax_trigger_NDP_fb_report_poll> NDP feedback report
+			 Poll
+			<enum 8 ax_tb_ranging_trigger> ranging Trigger Frame of 
+			subvariant indicated by Ranging_Trigger_Subtype
+			<enum 9 ax_trigger_reserved_9>
+			<enum 10 ax_trigger_reserved_10>
+			<enum 11 ax_trigger_reserved_11>
+			<enum 12 ax_trigger_reserved_12>
+			<enum 13 ax_trigger_reserved_13>
+			<enum 14 ax_trigger_reserved_14>
+			<enum 15 ax_trigger_reserved_15>
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TRIGGER_TYPE_OFFSET                                   0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_TRIGGER_TYPE_LSB                                      0
+#define OFDMA_TRIGGER_DETAILS_TRIGGER_TYPE_MSB                                      3
+#define OFDMA_TRIGGER_DETAILS_TRIGGER_TYPE_MASK                                     0x000000000000000f
+
+
+/* Description		LSIG_RESPONSE_LENGTH
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Indicates the value of the L-SIG Length field of the HE 
+			trigger-based PPDU that is the response to the Trigger frame
+			 
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET                           0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_LSB                              4
+#define OFDMA_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MSB                              15
+#define OFDMA_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MASK                             0x000000000000fff0
+
+
+/* Description		CASCADE_INDICATION
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			When set to 1, then a subsequent Trigger frame follows the
+			 current Trigger frame.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_CASCADE_INDICATION_OFFSET                             0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_CASCADE_INDICATION_LSB                                16
+#define OFDMA_TRIGGER_DETAILS_CASCADE_INDICATION_MSB                                16
+#define OFDMA_TRIGGER_DETAILS_CASCADE_INDICATION_MASK                               0x0000000000010000
+
+
+/* Description		CARRIER_SENSE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Need to sense the energy before transmit when CS=1 if allocated
+			 channel is not available do not transmit . If CS=0 no need
+			 to check for idle channel.  For region based restrict ignore
+			 this bit and always check channel before transmit.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_CARRIER_SENSE_OFFSET                                  0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_CARRIER_SENSE_LSB                                     17
+#define OFDMA_TRIGGER_DETAILS_CARRIER_SENSE_MSB                                     17
+#define OFDMA_TRIGGER_DETAILS_CARRIER_SENSE_MASK                                    0x0000000000020000
+
+
+/* Description		BANDWIDTH
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Indicates the bandwidth in the HE-SIG-A/U-SIG of the HE/EHT
+			 Trigger based PPDU
+			
+			Also see field Bandwidth_ext that determines 320 MHz bandwidth
+			 for EHT.
+			
+			<enum 0 HE_SIG_A_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_OFFSET                                      0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_LSB                                         18
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_MSB                                         19
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_MASK                                        0x00000000000c0000
+
+
+/* Description		CP_LTF_SIZE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 Trig_OneX_LTF_1_6CP> 1xLTF + 1.6 us CP 
+			<enum 1 Trig_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP 
+			<enum 2 Trig_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP 
+			
+			<legal 0-2>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_CP_LTF_SIZE_OFFSET                                    0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_CP_LTF_SIZE_LSB                                       20
+#define OFDMA_TRIGGER_DETAILS_CP_LTF_SIZE_MSB                                       21
+#define OFDMA_TRIGGER_DETAILS_CP_LTF_SIZE_MASK                                      0x0000000000300000
+
+
+/* Description		MU_MIMO_LTF_MODE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			MU MIMO LTF mode field indicates the mode in which pilots
+			 are allocated
+			
+			Must be set to 0 for HE-Ranging NDPs (11az) or Short-NDP
+			
+			
+			0: Single-stream pilot
+			1: Mask LTF sequence of each spatial stream by a distinct
+			 orthogonal code
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MU_MIMO_LTF_MODE_OFFSET                               0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_MU_MIMO_LTF_MODE_LSB                                  22
+#define OFDMA_TRIGGER_DETAILS_MU_MIMO_LTF_MODE_MSB                                  22
+#define OFDMA_TRIGGER_DETAILS_MU_MIMO_LTF_MODE_MASK                                 0x0000000000400000
+
+
+/* Description		NUMBER_OF_LTFS
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			includes the total number of LTFs the STA must include in
+			 the response TRIG PPDU
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_LTFS_OFFSET                                 0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_LTFS_LSB                                    23
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_LTFS_MSB                                    25
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_LTFS_MASK                                   0x0000000003800000
+
+
+/* Description		STBC
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			indicates whether STBS is used (for all STAs)
+			It is set to 1 if STBC encoding is used and set to 0 otherwise.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_STBC_OFFSET                                           0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_STBC_LSB                                              26
+#define OFDMA_TRIGGER_DETAILS_STBC_MSB                                              26
+#define OFDMA_TRIGGER_DETAILS_STBC_MASK                                             0x0000000004000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			indicates the status of LDPC Extra Symbol. It is set to 
+			1 when LDPC extra symbol is present and set to 0 otherwise
+			 
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET                              0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_LDPC_EXTRA_SYMBOL_LSB                                 27
+#define OFDMA_TRIGGER_DETAILS_LDPC_EXTRA_SYMBOL_MSB                                 27
+#define OFDMA_TRIGGER_DETAILS_LDPC_EXTRA_SYMBOL_MASK                                0x0000000008000000
+
+
+/* Description		AP_TX_POWER_LSB_PART
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Bits [3:0] of the ap_tx_power
+			
+			indicates the combined average power per 20 MHz bandwidth
+			 of all transmit antennas used to transmit the trigger frame
+			 at the HE AP. The resolution for the transmit power reported
+			 in the Common Info field is 1dB
+			
+			Values 0 to 61 maps to -20 dBm to 40 dBm
+			Other values are reserved.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_LSB_PART_OFFSET                           0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_LSB_PART_LSB                              28
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_LSB_PART_MSB                              31
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_LSB_PART_MASK                             0x00000000f0000000
+
+
+/* Description		AP_TX_POWER_MSB_PART
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Bits [5:4] of the ap_tx_power
+			See description above
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_MSB_PART_OFFSET                           0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_MSB_PART_LSB                              32
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_MSB_PART_MSB                              33
+#define OFDMA_TRIGGER_DETAILS_AP_TX_POWER_MSB_PART_MASK                             0x0000000300000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET                      0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB                         34
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB                         35
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK                        0x0000000c00000000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET               0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                  36
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                  36
+#define OFDMA_TRIGGER_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                 0x0000001000000000
+
+
+/* Description		SPATIAL_REUSE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			indicates the value of the Spatial Reuse in the HE-SIGA 
+			of the HE_TRIG PPDU transmitted as a response to the Trigger
+			 frame 
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_SPATIAL_REUSE_OFFSET                                  0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_SPATIAL_REUSE_LSB                                     37
+#define OFDMA_TRIGGER_DETAILS_SPATIAL_REUSE_MSB                                     52
+#define OFDMA_TRIGGER_DETAILS_SPATIAL_REUSE_MASK                                    0x001fffe000000000
+
+
+/* Description		DOPPLER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			TODO: add description
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_DOPPLER_OFFSET                                        0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_DOPPLER_LSB                                           53
+#define OFDMA_TRIGGER_DETAILS_DOPPLER_MSB                                           53
+#define OFDMA_TRIGGER_DETAILS_DOPPLER_MASK                                          0x0020000000000000
+
+
+/* Description		HE_SIGA_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			indicates the values of the reserved bits in the HE-SIGA
+			 of the HE_TRIG PPDU transmitted as a response to the Trigger
+			 frame
+			
+			In case of an EHT AP, bits [23:22] indicate the bits [55:54] 
+			of the Trigger 'Common Info' called 'Special User Info Field
+			 Present' and 'HE/EHT P160.' These are used along with Reserved_18a
+			 to determine the presence of the EHT 'Special User Info' 
+			field and EHT_trigger_response.
+*/
+
+#define OFDMA_TRIGGER_DETAILS_HE_SIGA_RESERVED_OFFSET                               0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_HE_SIGA_RESERVED_LSB                                  54
+#define OFDMA_TRIGGER_DETAILS_HE_SIGA_RESERVED_MSB                                  62
+#define OFDMA_TRIGGER_DETAILS_HE_SIGA_RESERVED_MASK                                 0x7fc0000000000000
+
+
+/* Description		RESERVED_3B
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Common trigger info
+			
+			Reserved bit 63 in the Trigger 'Common Info'
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_3B_OFFSET                                    0x0000000000000008
+#define OFDMA_TRIGGER_DETAILS_RESERVED_3B_LSB                                       63
+#define OFDMA_TRIGGER_DETAILS_RESERVED_3B_MSB                                       63
+#define OFDMA_TRIGGER_DETAILS_RESERVED_3B_MASK                                      0x8000000000000000
+
+
+/* Description		AID12
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			The AID12 subfield of the Per User Info field indicates 
+			the LSB 12 bits of the AID of the STA allocated the RU to
+			 transmit the MPDU(s) in the HE trigger-based PPDU
+			
+			Note strictly needed, but added here for debugging purposes.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_AID12_OFFSET                                          0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_AID12_LSB                                             0
+#define OFDMA_TRIGGER_DETAILS_AID12_MSB                                             11
+#define OFDMA_TRIGGER_DETAILS_AID12_MASK                                            0x0000000000000fff
+
+
+/* Description		RU_ALLOCATION
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			trigger based RU definition
+			
+			If EHT_trigger_response = 0, only lower 8 bits are valid.
+			
+			If EHT_trigger_response = 1, all 9 bits re valid.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RU_ALLOCATION_OFFSET                                  0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_RU_ALLOCATION_LSB                                     12
+#define OFDMA_TRIGGER_DETAILS_RU_ALLOCATION_MSB                                     20
+#define OFDMA_TRIGGER_DETAILS_RU_ALLOCATION_MASK                                    0x00000000001ff000
+
+
+/* Description		MCS
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			indicates the MCS of the HE trigger-based PPDU response 
+			of the STA identified by User Identifier field
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MCS_OFFSET                                            0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_MCS_LSB                                               21
+#define OFDMA_TRIGGER_DETAILS_MCS_MSB                                               24
+#define OFDMA_TRIGGER_DETAILS_MCS_MASK                                              0x0000000001e00000
+
+
+/* Description		DCM
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			indicates dual carrier modulation of the HE trigger-based
+			 PPDU response of the STA identified by User Identifier 
+			subfield. A value of 1 indicates that the HE trigger-based
+			 PPDU response shall use DCM.
+			Set to 0 to indicate that DCM shall not be used
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_DCM_OFFSET                                            0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_DCM_LSB                                               25
+#define OFDMA_TRIGGER_DETAILS_DCM_MSB                                               25
+#define OFDMA_TRIGGER_DETAILS_DCM_MASK                                              0x0000000002000000
+
+
+/* Description		START_SPATIAL_STREAM
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			Indicates the starting spatial stream, STARTING_SS_NUM, 
+			and is set to STARTING_SS_NUM  - 1 of the HE trigger-based
+			 PPDU response of the STA identified by User Identifier 
+			field. 
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_START_SPATIAL_STREAM_OFFSET                           0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_START_SPATIAL_STREAM_LSB                              26
+#define OFDMA_TRIGGER_DETAILS_START_SPATIAL_STREAM_MSB                              28
+#define OFDMA_TRIGGER_DETAILS_START_SPATIAL_STREAM_MASK                             0x000000001c000000
+
+
+/* Description		NUMBER_OF_SPATIAL_STREAM
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			indicates the number of spatial streams, NUM_SS and is set
+			 to NUM_SS - 1, of the HE trigger-based PPDU response of
+			 the STA identified by User Identifier field.
+			
+			In case of EHT_trigger_response=1, RXPCU fills the MSB of
+			 STARTING_SS_NUM in bit 31. If this is set, it will cause
+			 PDG to indicate to PHY > 4-stream transmission resulting
+			 in an abort in EHT R1 chips.
+			
+			TODO: Cleanup for EHT R2 chips
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_SPATIAL_STREAM_OFFSET                       0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_SPATIAL_STREAM_LSB                          29
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_SPATIAL_STREAM_MSB                          31
+#define OFDMA_TRIGGER_DETAILS_NUMBER_OF_SPATIAL_STREAM_MASK                         0x00000000e0000000
+
+
+/* Description		TARGET_RSSI
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			Indicates the target received signal power of the the HE
+			 trigger-based PPDU response. The resolution for the Target
+			 RSSI in the Per User Info field is 1dB 
+			
+			Values 0 to 90 maps to -110 dBm to -20 dBm
+			Other values are reserved.
+			
+			Value 127 indicates to the STA to transmit an HE triggerbased
+			 PPDU response at its maximum transmit power for the assigned
+			 MCS. If Trigger_type = ax_tb_ranging_trigger and Ranging_Trigger_Subtype
+			 = TF_Sound or TF_Secure_Sound, value 127 indicates to the
+			 STA to transmit an HE TB-ranging NDP response at its maximum
+			 transmit power for MCS 0.
+			
+			Used for power control algorithm
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TARGET_RSSI_OFFSET                                    0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_TARGET_RSSI_LSB                                       32
+#define OFDMA_TRIGGER_DETAILS_TARGET_RSSI_MSB                                       38
+#define OFDMA_TRIGGER_DETAILS_TARGET_RSSI_MASK                                      0x0000007f00000000
+
+
+/* Description		CODING_TYPE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			indicates the code type of the HE trigger-based PPDU response
+			 of the STA identified by User Identifier subfield. 
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_CODING_TYPE_OFFSET                                    0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_CODING_TYPE_LSB                                       39
+#define OFDMA_TRIGGER_DETAILS_CODING_TYPE_MSB                                       39
+#define OFDMA_TRIGGER_DETAILS_CODING_TYPE_MASK                                      0x0000008000000000
+
+
+/* Description		MPDU_MU_SPACING_FACTOR
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Basic trigger variant user info
+			
+			<enum 0 Spacing_multiplier_is_1>
+			<enum 1 Spacing_multiplier_is_2>
+			<enum 2 Spacing_multiplier_is_4>
+			<enum 3 Spacing_multiplier_is_8>
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MPDU_MU_SPACING_FACTOR_OFFSET                         0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_MPDU_MU_SPACING_FACTOR_LSB                            40
+#define OFDMA_TRIGGER_DETAILS_MPDU_MU_SPACING_FACTOR_MSB                            41
+#define OFDMA_TRIGGER_DETAILS_MPDU_MU_SPACING_FACTOR_MASK                           0x0000030000000000
+
+
+/* Description		TID_AGGREGATION_LIMIT
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Basic trigger variant user info
+			
+			indicates the of the number of TIDs that can be aggregated
+			 by a STA in a multi-TID A-MPDU carried in the responding
+			 Trigger-based PPDU 
+			
+			
+			Napier AX and Hastings: 
+			TXPCU will also evaluate this field, when trigger type is
+			 Basic trigger. In that case, when this field is 0, TXPCU
+			 will not send any data from user 0, but will immediately
+			 go to user 1, which has the QoSNULL data frames...
+			TODO: change for Hawkeye 2.0
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TID_AGGREGATION_LIMIT_OFFSET                          0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_TID_AGGREGATION_LIMIT_LSB                             42
+#define OFDMA_TRIGGER_DETAILS_TID_AGGREGATION_LIMIT_MSB                             44
+#define OFDMA_TRIGGER_DETAILS_TID_AGGREGATION_LIMIT_MASK                            0x00001c0000000000
+
+
+/* Description		RESERVED_5B
+
+			<legal 0>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_5B_OFFSET                                    0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_RESERVED_5B_LSB                                       45
+#define OFDMA_TRIGGER_DETAILS_RESERVED_5B_MSB                                       45
+#define OFDMA_TRIGGER_DETAILS_RESERVED_5B_MASK                                      0x0000200000000000
+
+
+/* Description		PREFERED_AC
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Basic trigger variant user info
+			
+			<enum 0 Prefered_ac_is_BK>
+			<enum 1 Prefered_ac_is_BE>
+			<enum 2 Prefered_ac_is_VI>
+			<enum 3 Prefered_ac_is_VO>
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_PREFERED_AC_OFFSET                                    0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_PREFERED_AC_LSB                                       46
+#define OFDMA_TRIGGER_DETAILS_PREFERED_AC_MSB                                       47
+#define OFDMA_TRIGGER_DETAILS_PREFERED_AC_MASK                                      0x0000c00000000000
+
+
+/* Description		BAR_CONTROL_ACK_POLICY
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Bar control field ack policy extracted from the trigger 
+			frame
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_ACK_POLICY_OFFSET                         0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_ACK_POLICY_LSB                            48
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_ACK_POLICY_MSB                            48
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_ACK_POLICY_MASK                           0x0001000000000000
+
+
+/* Description		BAR_CONTROL_MULTI_TID
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Bar control field multi_tid extracted from the trigger frame
+			
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_MULTI_TID_OFFSET                          0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_MULTI_TID_LSB                             49
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_MULTI_TID_MSB                             49
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_MULTI_TID_MASK                            0x0002000000000000
+
+
+/* Description		BAR_CONTROL_COMPRESSED_BITMAP
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Bar control field compressed bitmap extracted from the trigger
+			 frame
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_COMPRESSED_BITMAP_OFFSET                  0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_COMPRESSED_BITMAP_LSB                     50
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_COMPRESSED_BITMAP_MSB                     50
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_COMPRESSED_BITMAP_MASK                    0x0004000000000000
+
+
+/* Description		BAR_CONTROL_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Bar control field reserved part extracted from the trigger
+			 frame
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_RESERVED_OFFSET                           0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_RESERVED_LSB                              51
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_RESERVED_MSB                              59
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_RESERVED_MASK                             0x0ff8000000000000
+
+
+/* Description		BAR_CONTROL_TID_INFO
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Bar control field tid info extracted from the trigger frame
+			
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_TID_INFO_OFFSET                           0x0000000000000010
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_TID_INFO_LSB                              60
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_TID_INFO_MSB                              63
+#define OFDMA_TRIGGER_DETAILS_BAR_CONTROL_TID_INFO_MASK                             0xf000000000000000
+
+
+/* Description		NR0_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=0
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_RESERVED_LSB                         0
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_RESERVED_MSB                         11
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_RESERVED_MASK                        0x0000000000000fff
+
+
+/* Description		NR0_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=0
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_TID_VALUE_LSB                        12
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_TID_VALUE_MSB                        15
+#define OFDMA_TRIGGER_DETAILS_NR0_PER_TID_INFO_TID_VALUE_MASK                       0x000000000000f000
+
+
+/* Description		NR0_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=0
+			
+			OR
+			
+			Field only valid if the BAR control type indicates Basic
+			 Block ACK request
+			
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_FRAG_NUMBER_LSB                    16
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_FRAG_NUMBER_MSB                    19
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x00000000000f0000
+
+
+/* Description		NR0_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=0
+			
+			OR
+			
+			Field valid if the BAR control type indicates Basic Block
+			 ACK request
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               20
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               31
+#define OFDMA_TRIGGER_DETAILS_NR0_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0x00000000fff00000
+
+
+/* Description		NR1_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=1
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_RESERVED_LSB                         32
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_RESERVED_MSB                         43
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_RESERVED_MASK                        0x00000fff00000000
+
+
+/* Description		NR1_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=1
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_TID_VALUE_LSB                        44
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_TID_VALUE_MSB                        47
+#define OFDMA_TRIGGER_DETAILS_NR1_PER_TID_INFO_TID_VALUE_MASK                       0x0000f00000000000
+
+
+/* Description		NR1_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=1
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_FRAG_NUMBER_LSB                    48
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_FRAG_NUMBER_MSB                    51
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x000f000000000000
+
+
+/* Description		NR1_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=1
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000018
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               52
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               63
+#define OFDMA_TRIGGER_DETAILS_NR1_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0xfff0000000000000
+
+
+/* Description		NR2_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=2
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_RESERVED_LSB                         0
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_RESERVED_MSB                         11
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_RESERVED_MASK                        0x0000000000000fff
+
+
+/* Description		NR2_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=2
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_TID_VALUE_LSB                        12
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_TID_VALUE_MSB                        15
+#define OFDMA_TRIGGER_DETAILS_NR2_PER_TID_INFO_TID_VALUE_MASK                       0x000000000000f000
+
+
+/* Description		NR2_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=2
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_FRAG_NUMBER_LSB                    16
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_FRAG_NUMBER_MSB                    19
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x00000000000f0000
+
+
+/* Description		NR2_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=2
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               20
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               31
+#define OFDMA_TRIGGER_DETAILS_NR2_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0x00000000fff00000
+
+
+/* Description		NR3_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=3
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_RESERVED_LSB                         32
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_RESERVED_MSB                         43
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_RESERVED_MASK                        0x00000fff00000000
+
+
+/* Description		NR3_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=3
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_TID_VALUE_LSB                        44
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_TID_VALUE_MSB                        47
+#define OFDMA_TRIGGER_DETAILS_NR3_PER_TID_INFO_TID_VALUE_MASK                       0x0000f00000000000
+
+
+/* Description		NR3_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=3
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_FRAG_NUMBER_LSB                    48
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_FRAG_NUMBER_MSB                    51
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x000f000000000000
+
+
+/* Description		NR3_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=3
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000020
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               52
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               63
+#define OFDMA_TRIGGER_DETAILS_NR3_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0xfff0000000000000
+
+
+/* Description		NR4_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=4
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_RESERVED_LSB                         0
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_RESERVED_MSB                         11
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_RESERVED_MASK                        0x0000000000000fff
+
+
+/* Description		NR4_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=4
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_TID_VALUE_LSB                        12
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_TID_VALUE_MSB                        15
+#define OFDMA_TRIGGER_DETAILS_NR4_PER_TID_INFO_TID_VALUE_MASK                       0x000000000000f000
+
+
+/* Description		NR4_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=4
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_FRAG_NUMBER_LSB                    16
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_FRAG_NUMBER_MSB                    19
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x00000000000f0000
+
+
+/* Description		NR4_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=4
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               20
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               31
+#define OFDMA_TRIGGER_DETAILS_NR4_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0x00000000fff00000
+
+
+/* Description		NR5_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=5
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_RESERVED_LSB                         32
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_RESERVED_MSB                         43
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_RESERVED_MASK                        0x00000fff00000000
+
+
+/* Description		NR5_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=5
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_TID_VALUE_LSB                        44
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_TID_VALUE_MSB                        47
+#define OFDMA_TRIGGER_DETAILS_NR5_PER_TID_INFO_TID_VALUE_MASK                       0x0000f00000000000
+
+
+/* Description		NR5_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=5
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_FRAG_NUMBER_LSB                    48
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_FRAG_NUMBER_MSB                    51
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x000f000000000000
+
+
+/* Description		NR5_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=5
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000028
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               52
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               63
+#define OFDMA_TRIGGER_DETAILS_NR5_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0xfff0000000000000
+
+
+/* Description		NR6_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=6
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_RESERVED_LSB                         0
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_RESERVED_MSB                         11
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_RESERVED_MASK                        0x0000000000000fff
+
+
+/* Description		NR6_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=6
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_TID_VALUE_LSB                        12
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_TID_VALUE_MSB                        15
+#define OFDMA_TRIGGER_DETAILS_NR6_PER_TID_INFO_TID_VALUE_MASK                       0x000000000000f000
+
+
+/* Description		NR6_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=6
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_FRAG_NUMBER_LSB                    16
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_FRAG_NUMBER_MSB                    19
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x00000000000f0000
+
+
+/* Description		NR6_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=6
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               20
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               31
+#define OFDMA_TRIGGER_DETAILS_NR6_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0x00000000fff00000
+
+
+/* Description		NR7_PER_TID_INFO_RESERVED
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=7
+			
+			Per TID info, field "Reserved
+			Field"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_RESERVED_OFFSET                      0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_RESERVED_LSB                         32
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_RESERVED_MSB                         43
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_RESERVED_MASK                        0x00000fff00000000
+
+
+/* Description		NR7_PER_TID_INFO_TID_VALUE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=7
+			
+			Per TID info, field "TID value"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_TID_VALUE_OFFSET                     0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_TID_VALUE_LSB                        44
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_TID_VALUE_MSB                        47
+#define OFDMA_TRIGGER_DETAILS_NR7_PER_TID_INFO_TID_VALUE_MASK                       0x0000f00000000000
+
+
+/* Description		NR7_START_SEQ_CTRL_FRAG_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field only valid if the BAR control type indicates Multi-TID
+			 and BAR_control_TID_info >=7
+			
+			Start Sequence control, subfield fragment
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_FRAG_NUMBER_OFFSET                 0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_FRAG_NUMBER_LSB                    48
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_FRAG_NUMBER_MSB                    51
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_FRAG_NUMBER_MASK                   0x000f000000000000
+
+
+/* Description		NR7_START_SEQ_CTRL_START_SEQ_NUMBER
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			MU-BAR trigger variant user info
+			
+			Field valid if the BAR control type indicates Multi-TID 
+			and BAR_control_TID_info >=7
+			
+			Start Sequence control, subfield Start sequence number
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_START_SEQ_NUMBER_OFFSET            0x0000000000000030
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_START_SEQ_NUMBER_LSB               52
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_START_SEQ_NUMBER_MSB               63
+#define OFDMA_TRIGGER_DETAILS_NR7_START_SEQ_CTRL_START_SEQ_NUMBER_MASK              0xfff0000000000000
+
+
+/* Description		FB_SEGMENT_RETRANSMISSION_BITMAP
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			Beamforming_report_poll trigger variant user info
+			
+			Segment information field extracted from the trigger frame
+			
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_FB_SEGMENT_RETRANSMISSION_BITMAP_OFFSET               0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_FB_SEGMENT_RETRANSMISSION_BITMAP_LSB                  0
+#define OFDMA_TRIGGER_DETAILS_FB_SEGMENT_RETRANSMISSION_BITMAP_MSB                  7
+#define OFDMA_TRIGGER_DETAILS_FB_SEGMENT_RETRANSMISSION_BITMAP_MASK                 0x00000000000000ff
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_14A_OFFSET                                   0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_RESERVED_14A_LSB                                      8
+#define OFDMA_TRIGGER_DETAILS_RESERVED_14A_MSB                                      9
+#define OFDMA_TRIGGER_DETAILS_RESERVED_14A_MASK                                     0x0000000000000300
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			This field is only valid if the trigger was received in 
+			an EHT PPDU.
+			
+			The 6-bit value used in U-SIG and/or EHT-SIG Common field
+			 for the puncture pattern
+			<legal 0-29>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET                0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                   10
+#define OFDMA_TRIGGER_DETAILS_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                   15
+#define OFDMA_TRIGGER_DETAILS_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                  0x000000000000fc00
+
+
+/* Description		DOT11BE_PUNCTURE_BITMAP
+
+			This field is only valid if the trigger was received in 
+			an EHT PPDU.
+			
+			The bitmap of 20 MHz sub-bands valid in the EHT PPDU reception
+			
+			
+			RXPCU gets this from the received U-SIG and/or EHT-SIG via
+			 PHY microcode.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_DOT11BE_PUNCTURE_BITMAP_OFFSET                        0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_DOT11BE_PUNCTURE_BITMAP_LSB                           16
+#define OFDMA_TRIGGER_DETAILS_DOT11BE_PUNCTURE_BITMAP_MSB                           31
+#define OFDMA_TRIGGER_DETAILS_DOT11BE_PUNCTURE_BITMAP_MASK                          0x00000000ffff0000
+
+
+/* Description		RX_CHAIN_MASK
+
+			Description dependent on the setting of field Rx_chain_mask_type.
+			
+			
+			The chain mask at the start of the reception of this frame
+			 when Rx_chain_mask_type is set to 1'b0. In this mode used
+			 in 11ax TPC calculations for UL OFDMA/MIMO and has to be
+			 in sync with the rssi_comb value as this is also used by
+			 the MAC for the TPC calculations.
+			
+			
+			The final rx chain mask used for the frame reception when
+			 Rx_chain_mask_type is set to 1'b1
+			
+			each bit is one antenna
+			0: the chain is NOT used
+			1: the chain is used
+			
+			Supports up to 8 chains
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_OFFSET                                  0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_LSB                                     32
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_MSB                                     39
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_MASK                                    0x000000ff00000000
+
+
+/* Description		RX_DURATION_FIELD
+
+			The duration field embedded in the received trigger frame.
+			
+			PDG uses this field to calculate what the duration field
+			 value should be in the response frame.
+			This is returned to the TX PCU
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RX_DURATION_FIELD_OFFSET                              0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_RX_DURATION_FIELD_LSB                                 40
+#define OFDMA_TRIGGER_DETAILS_RX_DURATION_FIELD_MSB                                 55
+#define OFDMA_TRIGGER_DETAILS_RX_DURATION_FIELD_MASK                                0x00ffff0000000000
+
+
+/* Description		SCRAMBLER_SEED
+
+			This field provides the 7-bit seed for the data scrambler. 
+			
+			Used in response generation to MU-RTS trigger, where CTS
+			 needs to have the same scrambler seed as the RTS
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_SCRAMBLER_SEED_OFFSET                                 0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_SCRAMBLER_SEED_LSB                                    56
+#define OFDMA_TRIGGER_DETAILS_SCRAMBLER_SEED_MSB                                    62
+#define OFDMA_TRIGGER_DETAILS_SCRAMBLER_SEED_MASK                                   0x7f00000000000000
+
+
+/* Description		RX_CHAIN_MASK_TYPE
+
+			Indicates if the field rx_chain_mask represents the mask
+			 at start of reception (on which the Rssi_comb value is 
+			based), or the setting used during the remainder of the 
+			reception
+			
+			1'b0: rxtd.listen_pri80_mask 
+			1'b1: Final receive mask
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_TYPE_OFFSET                             0x0000000000000038
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_TYPE_LSB                                63
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_TYPE_MSB                                63
+#define OFDMA_TRIGGER_DETAILS_RX_CHAIN_MASK_TYPE_MASK                               0x8000000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+			
+			Hamilton v1 filled 'Bss_color' in bits [5:0] and 'Qos_null_only_response_tx' 
+			in bit [6] here.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET          0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB             0
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB             9
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK            0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET       0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB          10
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB          10
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK         0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET    0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB       11
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB       11
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK      0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET    0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB       12
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB       12
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK      0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET              0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB                 13
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB                 15
+#define OFDMA_TRIGGER_DETAILS_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK                0x000000000000e000
+
+
+/* Description		NORMALIZED_PRE_RSSI_COMB
+
+			Combined pre_rssi of all chains, but "normalized" back to
+			 a single chain. This avoids PDG from having to evaluate
+			 this in combination with receive chain mask and perform
+			 all kinds of pre-processing algorithms.
+			
+			Based on primary channel RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_PRE_RSSI_COMB_OFFSET                       0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_PRE_RSSI_COMB_LSB                          16
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_PRE_RSSI_COMB_MSB                          23
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_PRE_RSSI_COMB_MASK                         0x0000000000ff0000
+
+
+/* Description		NORMALIZED_RSSI_COMB
+
+			Combined rssi of all chains, but "normalized" back to a 
+			single chain. This avoids PDG from having to evaluate this
+			 in combination with receive chain mask and perform all 
+			kinds of pre-processing algorithms.
+			
+			Based on primary channel RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_RSSI_COMB_OFFSET                           0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_RSSI_COMB_LSB                              24
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_RSSI_COMB_MSB                              31
+#define OFDMA_TRIGGER_DETAILS_NORMALIZED_RSSI_COMB_MASK                             0x00000000ff000000
+
+
+/* Description		SW_PEER_ID
+
+			Used by the PHY to correlated received trigger frames with
+			 an AP and calculate long term statistics for this AP
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_SW_PEER_ID_OFFSET                                     0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_SW_PEER_ID_LSB                                        32
+#define OFDMA_TRIGGER_DETAILS_SW_PEER_ID_MSB                                        47
+#define OFDMA_TRIGGER_DETAILS_SW_PEER_ID_MASK                                       0x0000ffff00000000
+
+
+/* Description		RESPONSE_TX_DURATION
+
+			Field filled in by PDG based on the value that is given 
+			in field response_Length in the RECEIVED_TRIGGER_INFO TLV
+			
+			
+			The amount of time the transmission of the HW response shall
+			 take (in us)
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESPONSE_TX_DURATION_OFFSET                           0x0000000000000040
+#define OFDMA_TRIGGER_DETAILS_RESPONSE_TX_DURATION_LSB                              48
+#define OFDMA_TRIGGER_DETAILS_RESPONSE_TX_DURATION_MSB                              63
+#define OFDMA_TRIGGER_DETAILS_RESPONSE_TX_DURATION_MASK                             0xffff000000000000
+
+
+/* Description		RANGING_TRIGGER_SUBTYPE
+
+			Field only valid if  Trigger_type = ax_tb_ranging_trigger
+			
+			
+			Indicates the Trigger subtype for the current ranging TF
+			
+			
+			<enum 0 TF_Poll>
+			<enum 1 TF_Sound>
+			<enum 2 TF_Secure_Sound>
+			<enum 3 TF_Report>
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal 0-3>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET                        0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB                           0
+#define OFDMA_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB                           3
+#define OFDMA_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK                          0x000000000000000f
+
+
+/* Description		TBR_TRIGGER_COMMON_INFO_79_68
+
+			Field only valid if Trigger_type = ax_tb_ranging_trigger
+			
+			
+			Ranging trigger variant common info
+			
+			Includes fields "Reserved," "Token," "Sounding Dialog Token
+			 Number"
+			
+			If the Trigger Dependent Common Info sub-field is less than
+			 16 bits, the upper bits are set to 0.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_COMMON_INFO_79_68_OFFSET                  0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_COMMON_INFO_79_68_LSB                     4
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_COMMON_INFO_79_68_MSB                     15
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_COMMON_INFO_79_68_MASK                    0x000000000000fff0
+
+
+/* Description		TBR_TRIGGER_SOUND_RESERVED_20_12
+
+			Field only valid if Trigger_type = ax_tb_ranging_trigger
+			 and Ranging_Trigger_Subtype = TF_Sound or TF_Secure_Sound
+			
+			
+			Ranging trigger variant sounding/secure sounding sub-variant
+			 user info bits [20:12]
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_20_12_OFFSET               0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_20_12_LSB                  16
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_20_12_MSB                  24
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_20_12_MASK                 0x0000000001ff0000
+
+
+/* Description		I2R_REP
+
+			Field only valid if Trigger_type = ax_tb_ranging_trigger
+			 and Ranging_Trigger_Subtype = TF_Sound or TF_Secure_Sound
+			
+			
+			Ranging trigger variant sounding/secure sounding sub-variant
+			 user info field "I2R Rep"
+			
+			PDG uses this to to populate Nrep in 'MACTX_11AZ_USER_DESC_PER_USER.'
+			
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_I2R_REP_OFFSET                                        0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_I2R_REP_LSB                                           25
+#define OFDMA_TRIGGER_DETAILS_I2R_REP_MSB                                           27
+#define OFDMA_TRIGGER_DETAILS_I2R_REP_MASK                                          0x000000000e000000
+
+
+/* Description		TBR_TRIGGER_SOUND_RESERVED_25_24
+
+			Field only valid if Trigger_type = ax_tb_ranging_trigger
+			 and Ranging_Trigger_Subtype = TF_Sound or TF_Secure_Sound
+			
+			
+			Ranging trigger variant sounding/secure sounding sub-variant
+			 user info bits [25:24]
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_25_24_OFFSET               0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_25_24_LSB                  28
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_25_24_MSB                  29
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_RESERVED_25_24_MASK                 0x0000000030000000
+
+
+/* Description		RESERVED_18A
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			User trigger info
+			
+			Reserved bit 39 in the Trigger 'User Info'
+			
+			In case of an EHT AP, the bit 39 of the Trigger 'User Info' 
+			called 'PS160' is used along with HE_SIGA_Reserved to determine
+			 EHT_trigger_response. In case of EHT, 'PS160' is also included
+			 in the MSB of field RU_allocation.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_18A_OFFSET                                   0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_RESERVED_18A_LSB                                      30
+#define OFDMA_TRIGGER_DETAILS_RESERVED_18A_MSB                                      30
+#define OFDMA_TRIGGER_DETAILS_RESERVED_18A_MASK                                     0x0000000040000000
+
+
+/* Description		QOS_NULL_ONLY_RESPONSE_TX
+
+			Field filled in by PDG based on Rxpcu_PCIe_L0_req_duration
+			
+			
+			If based on the duration for which RXPCU has asserted the
+			 'L0 request' signal to PCIe and the PCIe L1SS exit + MAC
+			 + PHY Tx latencies, PDG determines that null delimiters
+			 + a programmable minimum MPDU size cannot fit the trigger
+			 response, PDG sets this bit.
+			
+			HWSCH uses this bit to determine whether to select only 
+			the 'SCHEDULER_CMD' with Trig_resp_qos_null_only set, i.e. 
+			which transmit only QoS Nulls.
+			
+			This is filled as zero if ILP is unsupported (e.g. in Maple
+			 and Spruce) or disabled.
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_QOS_NULL_ONLY_RESPONSE_TX_OFFSET                      0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_QOS_NULL_ONLY_RESPONSE_TX_LSB                         31
+#define OFDMA_TRIGGER_DETAILS_QOS_NULL_ONLY_RESPONSE_TX_MSB                         31
+#define OFDMA_TRIGGER_DETAILS_QOS_NULL_ONLY_RESPONSE_TX_MASK                        0x0000000080000000
+
+
+/* Description		TBR_TRIGGER_SOUND_SAC
+
+			Field only valid if Trigger_type = ax_tb_ranging_trigger
+			 and Ranging_Trigger_Subtype = TF_Secure_Sound
+			
+			Ranging trigger variant secure sounding sub-variant user
+			 info field "SAC"
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_SAC_OFFSET                          0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_SAC_LSB                             32
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_SAC_MSB                             47
+#define OFDMA_TRIGGER_DETAILS_TBR_TRIGGER_SOUND_SAC_MASK                            0x0000ffff00000000
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19A_OFFSET                                   0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19A_LSB                                      48
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19A_MSB                                      55
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19A_MASK                                     0x00ff000000000000
+
+
+/* Description		U_SIG_RESERVED2
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			Indicates the values of the 5 'disregard' bits [41:37] in
+			 the U-SIG of the EHT_TRIG PPDU transmitted as a response
+			 to the Trigger frame
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED2_OFFSET                                0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED2_LSB                                   56
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED2_MSB                                   60
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED2_MASK                                  0x1f00000000000000
+
+
+/* Description		RESERVED_19B
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			Reserved bits in the Trigger
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19B_OFFSET                                   0x0000000000000048
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19B_LSB                                      61
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19B_MSB                                      63
+#define OFDMA_TRIGGER_DETAILS_RESERVED_19B_MASK                                     0xe000000000000000
+
+
+/* Description		EHT_SPECIAL_AID12
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			The AID12 subfield of the Special User Info field should
+			 be '2007' for EHT R1 triggers.
+			
+			Note strictly needed, but added here for debugging purposes.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_EHT_SPECIAL_AID12_OFFSET                              0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_EHT_SPECIAL_AID12_LSB                                 0
+#define OFDMA_TRIGGER_DETAILS_EHT_SPECIAL_AID12_MSB                                 11
+#define OFDMA_TRIGGER_DETAILS_EHT_SPECIAL_AID12_MASK                                0x0000000000000fff
+
+
+/* Description		PHY_VERSION
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			The PHY version should be '0' for EHT R1 triggers.
+			
+			Note strictly needed, but added here for debugging purposes.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_PHY_VERSION_OFFSET                                    0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_PHY_VERSION_LSB                                       12
+#define OFDMA_TRIGGER_DETAILS_PHY_VERSION_MSB                                       14
+#define OFDMA_TRIGGER_DETAILS_PHY_VERSION_MASK                                      0x0000000000007000
+
+
+/* Description		BANDWIDTH_EXT
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			
+			
+			This along with the field Bandwidth determines the HE-SIG-A/U-SIG
+			 BW value for the HE/EHT Trigger-based PPDU.
+			
+			Bandwidth/Bandwidth_ext:
+			0/0: 20 MHz
+			1/0: 40 MHz
+			2/0: 80 MHz
+			3/1: 160 MHz
+			3/2: 320 MHz channelization 1
+			3/3: 320 MHz channelization 2
+			All other cominations are reserved.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_EXT_OFFSET                                  0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_EXT_LSB                                     15
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_EXT_MSB                                     16
+#define OFDMA_TRIGGER_DETAILS_BANDWIDTH_EXT_MASK                                    0x0000000000018000
+
+
+/* Description		EHT_SPATIAL_REUSE
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			Indicates the value of the Spatial Reuse in the U-SIG of
+			 the EHT_TRIG PPDU transmitted as a response to the Trigger
+			 frame 
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_EHT_SPATIAL_REUSE_OFFSET                              0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_EHT_SPATIAL_REUSE_LSB                                 17
+#define OFDMA_TRIGGER_DETAILS_EHT_SPATIAL_REUSE_MSB                                 24
+#define OFDMA_TRIGGER_DETAILS_EHT_SPATIAL_REUSE_MASK                                0x0000000001fe0000
+
+
+/* Description		U_SIG_RESERVED1
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Special User Info
+			
+			Indicates the values of the 6 'disregard' bits [25:20] and
+			 1 'validate' bit [28] in the U-SIG of the EHT_TRIG PPDU
+			 transmitted as a response to the Trigger frame
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED1_OFFSET                                0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED1_LSB                                   25
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED1_MSB                                   31
+#define OFDMA_TRIGGER_DETAILS_U_SIG_RESERVED1_MASK                                  0x00000000fe000000
+
+
+/* Description		EHT_TRIGGER_SPECIAL_USER_INFO_71_40
+
+			Field only valid when ax_trigger_source = 11ax_trigger_frame
+			
+			
+			EHT Trigger Dependent field in Special User Info
+			
+			If the Trigger Dependent User Info sub-field is less than
+			 32 bits, the upper bits are set to 0.
+			
+			<legal all>
+*/
+
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_SPECIAL_USER_INFO_71_40_OFFSET            0x0000000000000050
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_SPECIAL_USER_INFO_71_40_LSB               32
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_SPECIAL_USER_INFO_71_40_MSB               63
+#define OFDMA_TRIGGER_DETAILS_EHT_TRIGGER_SPECIAL_USER_INFO_71_40_MASK              0xffffffff00000000
+
+
+
+#endif   // OFDMA_TRIGGER_DETAILS
diff --git a/hw/qca5332/pcu_ppdu_setup_init.h b/hw/qca5332/pcu_ppdu_setup_init.h
new file mode 100644
index 0000000..13ad7e7
--- /dev/null
+++ b/hw/qca5332/pcu_ppdu_setup_init.h
@@ -0,0 +1,7472 @@
+
+/* 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 _PCU_PPDU_SETUP_INIT_H_
+#define _PCU_PPDU_SETUP_INIT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "pdg_response_rate_setting.h"
+#define NUM_OF_DWORDS_PCU_PPDU_SETUP_INIT 58
+
+#define NUM_OF_QWORDS_PCU_PPDU_SETUP_INIT 29
+
+
+struct pcu_ppdu_setup_init {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t medium_prot_type                                        :  3, // [2:0]
+                      response_type                                           :  5, // [7:3]
+                      response_info_part2_required                            :  1, // [8:8]
+                      response_to_response                                    :  3, // [11:9]
+                      mba_user_order                                          :  2, // [13:12]
+                      expected_mba_size                                       : 11, // [24:14]
+                      required_ul_mu_resp_user_count                          :  6, // [30:25]
+                      transmitted_bssid_check_en                              :  1; // [31:31]
+             uint32_t mprot_required_bw1                                      :  1, // [0:0]
+                      mprot_required_bw20                                     :  1, // [1:1]
+                      mprot_required_bw40                                     :  1, // [2:2]
+                      mprot_required_bw80                                     :  1, // [3:3]
+                      mprot_required_bw160                                    :  1, // [4:4]
+                      mprot_required_bw240                                    :  1, // [5:5]
+                      mprot_required_bw320                                    :  1, // [6:6]
+                      ppdu_allowed_bw1                                        :  1, // [7:7]
+                      ppdu_allowed_bw20                                       :  1, // [8:8]
+                      ppdu_allowed_bw40                                       :  1, // [9:9]
+                      ppdu_allowed_bw80                                       :  1, // [10:10]
+                      ppdu_allowed_bw160                                      :  1, // [11:11]
+                      ppdu_allowed_bw240                                      :  1, // [12:12]
+                      ppdu_allowed_bw320                                      :  1, // [13:13]
+                      set_fc_pwr_mgt                                          :  1, // [14:14]
+                      use_cts_duration_for_data_tx                            :  1, // [15:15]
+                      update_timestamp_64                                     :  1, // [16:16]
+                      update_timestamp_32_lower                               :  1, // [17:17]
+                      update_timestamp_32_upper                               :  1, // [18:18]
+                      reserved_1a                                             : 13; // [31:19]
+             uint32_t insert_timestamp_offset_0                               : 16, // [15:0]
+                      insert_timestamp_offset_1                               : 16; // [31:16]
+             uint32_t max_bw40_try_count                                      :  4, // [3:0]
+                      max_bw80_try_count                                      :  4, // [7:4]
+                      max_bw160_try_count                                     :  4, // [11:8]
+                      max_bw240_try_count                                     :  4, // [15:12]
+                      max_bw320_try_count                                     :  4, // [19:16]
+                      insert_wur_timestamp_offset                             :  6, // [25:20]
+                      update_wur_timestamp                                    :  1, // [26:26]
+                      wur_embedded_bssid_present                              :  1, // [27:27]
+                      insert_wur_fcs                                          :  1, // [28:28]
+                      reserved_3b                                             :  3; // [31:29]
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw20;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw40;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw80;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw160;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw240;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw320;
+             uint32_t r2r_hw_response_tx_duration                             : 16, // [15:0]
+                      r2r_rx_duration_field                                   : 16; // [31:16]
+             uint32_t r2r_group_id                                            :  6, // [5:0]
+                      r2r_response_frame_type                                 :  4, // [9:6]
+                      r2r_sta_partial_aid                                     : 11, // [20:10]
+                      use_address_fields_for_protection                       :  1, // [21:21]
+                      r2r_set_required_response_time                          :  1, // [22:22]
+                      reserved_29a                                            :  3, // [25:23]
+                      r2r_bw20_active_channel                                 :  3, // [28:26]
+                      r2r_bw40_active_channel                                 :  3; // [31:29]
+             uint32_t r2r_bw80_active_channel                                 :  3, // [2:0]
+                      r2r_bw160_active_channel                                :  3, // [5:3]
+                      r2r_bw240_active_channel                                :  3, // [8:6]
+                      r2r_bw320_active_channel                                :  3, // [11:9]
+                      r2r_bw20                                                :  3, // [14:12]
+                      r2r_bw40                                                :  3, // [17:15]
+                      r2r_bw80                                                :  3, // [20:18]
+                      r2r_bw160                                               :  3, // [23:21]
+                      r2r_bw240                                               :  3, // [26:24]
+                      r2r_bw320                                               :  3, // [29:27]
+                      reserved_30a                                            :  2; // [31:30]
+             uint32_t mu_response_expected_bitmap_31_0                        : 32; // [31:0]
+             uint32_t mu_response_expected_bitmap_36_32                       :  5, // [4:0]
+                      mu_expected_response_cbf_count                          :  6, // [10:5]
+                      mu_expected_response_sta_count                          :  6, // [16:11]
+                      transmit_includes_multidestination                      :  1, // [17:17]
+                      insert_prev_tx_start_timing_info                        :  1, // [18:18]
+                      insert_current_tx_start_timing_info                     :  1, // [19:19]
+                      tx_start_transmit_time_byte_offset                      : 12; // [31:20]
+             uint32_t protection_frame_ad1_31_0                               : 32; // [31:0]
+             uint32_t protection_frame_ad1_47_32                              : 16, // [15:0]
+                      protection_frame_ad2_15_0                               : 16; // [31:16]
+             uint32_t protection_frame_ad2_47_16                              : 32; // [31:0]
+             uint32_t dynamic_medium_prot_threshold                           : 24, // [23:0]
+                      dynamic_medium_prot_type                                :  1, // [24:24]
+                      reserved_54a                                            :  7; // [31:25]
+             uint32_t protection_frame_ad3_31_0                               : 32; // [31:0]
+             uint32_t protection_frame_ad3_47_32                              : 16, // [15:0]
+                      protection_frame_ad4_15_0                               : 16; // [31:16]
+             uint32_t protection_frame_ad4_47_16                              : 32; // [31:0]
+#else
+             uint32_t transmitted_bssid_check_en                              :  1, // [31:31]
+                      required_ul_mu_resp_user_count                          :  6, // [30:25]
+                      expected_mba_size                                       : 11, // [24:14]
+                      mba_user_order                                          :  2, // [13:12]
+                      response_to_response                                    :  3, // [11:9]
+                      response_info_part2_required                            :  1, // [8:8]
+                      response_type                                           :  5, // [7:3]
+                      medium_prot_type                                        :  3; // [2:0]
+             uint32_t reserved_1a                                             : 13, // [31:19]
+                      update_timestamp_32_upper                               :  1, // [18:18]
+                      update_timestamp_32_lower                               :  1, // [17:17]
+                      update_timestamp_64                                     :  1, // [16:16]
+                      use_cts_duration_for_data_tx                            :  1, // [15:15]
+                      set_fc_pwr_mgt                                          :  1, // [14:14]
+                      ppdu_allowed_bw320                                      :  1, // [13:13]
+                      ppdu_allowed_bw240                                      :  1, // [12:12]
+                      ppdu_allowed_bw160                                      :  1, // [11:11]
+                      ppdu_allowed_bw80                                       :  1, // [10:10]
+                      ppdu_allowed_bw40                                       :  1, // [9:9]
+                      ppdu_allowed_bw20                                       :  1, // [8:8]
+                      ppdu_allowed_bw1                                        :  1, // [7:7]
+                      mprot_required_bw320                                    :  1, // [6:6]
+                      mprot_required_bw240                                    :  1, // [5:5]
+                      mprot_required_bw160                                    :  1, // [4:4]
+                      mprot_required_bw80                                     :  1, // [3:3]
+                      mprot_required_bw40                                     :  1, // [2:2]
+                      mprot_required_bw20                                     :  1, // [1:1]
+                      mprot_required_bw1                                      :  1; // [0:0]
+             uint32_t insert_timestamp_offset_1                               : 16, // [31:16]
+                      insert_timestamp_offset_0                               : 16; // [15:0]
+             uint32_t reserved_3b                                             :  3, // [31:29]
+                      insert_wur_fcs                                          :  1, // [28:28]
+                      wur_embedded_bssid_present                              :  1, // [27:27]
+                      update_wur_timestamp                                    :  1, // [26:26]
+                      insert_wur_timestamp_offset                             :  6, // [25:20]
+                      max_bw320_try_count                                     :  4, // [19:16]
+                      max_bw240_try_count                                     :  4, // [15:12]
+                      max_bw160_try_count                                     :  4, // [11:8]
+                      max_bw80_try_count                                      :  4, // [7:4]
+                      max_bw40_try_count                                      :  4; // [3:0]
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw20;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw40;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw80;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw160;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw240;
+             struct   pdg_response_rate_setting                                 response_to_response_rate_info_bw320;
+             uint32_t r2r_rx_duration_field                                   : 16, // [31:16]
+                      r2r_hw_response_tx_duration                             : 16; // [15:0]
+             uint32_t r2r_bw40_active_channel                                 :  3, // [31:29]
+                      r2r_bw20_active_channel                                 :  3, // [28:26]
+                      reserved_29a                                            :  3, // [25:23]
+                      r2r_set_required_response_time                          :  1, // [22:22]
+                      use_address_fields_for_protection                       :  1, // [21:21]
+                      r2r_sta_partial_aid                                     : 11, // [20:10]
+                      r2r_response_frame_type                                 :  4, // [9:6]
+                      r2r_group_id                                            :  6; // [5:0]
+             uint32_t reserved_30a                                            :  2, // [31:30]
+                      r2r_bw320                                               :  3, // [29:27]
+                      r2r_bw240                                               :  3, // [26:24]
+                      r2r_bw160                                               :  3, // [23:21]
+                      r2r_bw80                                                :  3, // [20:18]
+                      r2r_bw40                                                :  3, // [17:15]
+                      r2r_bw20                                                :  3, // [14:12]
+                      r2r_bw320_active_channel                                :  3, // [11:9]
+                      r2r_bw240_active_channel                                :  3, // [8:6]
+                      r2r_bw160_active_channel                                :  3, // [5:3]
+                      r2r_bw80_active_channel                                 :  3; // [2:0]
+             uint32_t mu_response_expected_bitmap_31_0                        : 32; // [31:0]
+             uint32_t tx_start_transmit_time_byte_offset                      : 12, // [31:20]
+                      insert_current_tx_start_timing_info                     :  1, // [19:19]
+                      insert_prev_tx_start_timing_info                        :  1, // [18:18]
+                      transmit_includes_multidestination                      :  1, // [17:17]
+                      mu_expected_response_sta_count                          :  6, // [16:11]
+                      mu_expected_response_cbf_count                          :  6, // [10:5]
+                      mu_response_expected_bitmap_36_32                       :  5; // [4:0]
+             uint32_t protection_frame_ad1_31_0                               : 32; // [31:0]
+             uint32_t protection_frame_ad2_15_0                               : 16, // [31:16]
+                      protection_frame_ad1_47_32                              : 16; // [15:0]
+             uint32_t protection_frame_ad2_47_16                              : 32; // [31:0]
+             uint32_t reserved_54a                                            :  7, // [31:25]
+                      dynamic_medium_prot_type                                :  1, // [24:24]
+                      dynamic_medium_prot_threshold                           : 24; // [23:0]
+             uint32_t protection_frame_ad3_31_0                               : 32; // [31:0]
+             uint32_t protection_frame_ad4_15_0                               : 16, // [31:16]
+                      protection_frame_ad3_47_32                              : 16; // [15:0]
+             uint32_t protection_frame_ad4_47_16                              : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MEDIUM_PROT_TYPE
+
+			Self Gen Medium Protection type used
+			<enum 0 No_protection>
+			<enum 1 RTS_legacy>
+			<enum 2 RTS_11ac_static_bw>
+			<enum 3 RTS_11ac_dynamic_bw>
+			<enum 4 CTS2Self>
+			<enum 5 QoS_Null_no_ack_3addr>
+			<enum 6 QoS_Null_no_ack_4addr>
+			
+			<legal 0-6>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MEDIUM_PROT_TYPE_OFFSET                                 0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MEDIUM_PROT_TYPE_LSB                                    0
+#define PCU_PPDU_SETUP_INIT_MEDIUM_PROT_TYPE_MSB                                    2
+#define PCU_PPDU_SETUP_INIT_MEDIUM_PROT_TYPE_MASK                                   0x0000000000000007
+
+
+/* Description		RESPONSE_TYPE
+
+			PPDU transmission Response type expected
+			
+			Used by PDG to calculate the anticipated response duration
+			 time.
+			
+			Used by TXPCU to prepare for expecting to receive a response.
+			
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TYPE_OFFSET                                    0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TYPE_LSB                                       3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TYPE_MSB                                       7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TYPE_MASK                                      0x00000000000000f8
+
+
+/* Description		RESPONSE_INFO_PART2_REQUIRED
+
+			Field only valid when Response_type  is NOT set to No_response_expected
+			 
+			
+			When set to 1, RXPCU shall generate the  RECEIVED_RESPONSE_INFO_PART2
+			 TLV after having received the response frame. TXPCU shall
+			 wait for this TLV before sending the TX_FES_STATUS_END 
+			TLV.
+			
+			When NOT set, RXPCU shall NOT generate the above mentioned
+			 TLV. TXPCU shall not wait for this TLV and after having
+			 received  RECEIVED_RESPONSE_INFO  TLV, it can immediately
+			 generate the TX_FES_STATUS_END TLV.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_INFO_PART2_REQUIRED_OFFSET                     0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_RESPONSE_INFO_PART2_REQUIRED_LSB                        8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_INFO_PART2_REQUIRED_MSB                        8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_INFO_PART2_REQUIRED_MASK                       0x0000000000000100
+
+
+/* Description		RESPONSE_TO_RESPONSE
+
+			Field indicates if after receiving an expected PPDU response
+			 (as indicated by the Response_type), TXPCU is expected 
+			to generate a reponse to that response
+			
+			Example: OFDMA trigger frame is sent, with expected response
+			 being UL OFDMA data, which result in a response to the 
+			response of MBA
+			
+			<enum 0 None> No response after response allowed.
+			<enum 1 SU_BA> The response after response that TXPCU is
+			 allowed to generate is a single BA. Even if RXPCU is indicating
+			 that multiple users are received, TXPCU shall only send
+			 a BA for 1 STA. Response_to_response rates can be found
+			 in fields 'response_to_response_rate_info_bw...'
+			<enum 2 MU_BA> The response after response that TXPCU is
+			 allowed to generate is only Multi Destination Multi User
+			 BA. Response_to_response rates can be found in fields 'response_to_response_rate_info_bw...'
+			
+			
+			<enum 3 RESPONSE_TO_RESPONSE_CMD> A response to response
+			 is expected to be generated. In other words, RXPCU will
+			 likely indicate to TXPCU at the end of upcoming reception
+			 that a response is needed. TXPCU is however to ignore this
+			 indication from RXPCU, and assume for a moment that no 
+			response to response is needed, as all the details on how
+			 to handle this is provided in the next scheduling command, 
+			which is marked as a 'response_to_response' type.
+			
+			<legal    0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_OFFSET                             0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_LSB                                9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_MSB                                11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_MASK                               0x0000000000000e00
+
+
+/* Description		MBA_USER_ORDER
+
+			Field only valid in case of 'response_to_response' set to
+			 MU_BA.
+			
+			<enum 0 mu_ba_fixed_user_order> TXPCU shall ask RXPCU for
+			 BA info for all TX users, in order from user 0 to user 
+			N
+			<enum 1 mu_ba_optimized_user_order> TXPCU shall ask RXPCU
+			 for BA info for all TX users, but let RXPCU determine in
+			 which order the BA bitmaps for each user shall be returned. 
+			Note that RXPCU might return some 'invalid' bitmaps in case
+			 there was no data received from all the users. 
+			<enum 2 mu_ba_fully_optimized> TXPCU shall ask RXPCU for
+			 BA info for the number RX users that RXPCU indicated in
+			 the 'Max_rx_user_count' in the RX_PPDU_START TLV. TXPCU
+			 shall let RXPCU determine in which order the BA bitmaps
+			 for each user shall be returned. Note that RXPCU might 
+			still return some 'invalid' bitmaps in case there were only
+			 frames with FCS errors for some of the users
+			<enum 3 mu_ba_fully_optimized_multi_tid> TXPCU shall ask
+			 RXPCU for BA info for the number bitmaps that RXPCU indicated
+			 in the (SUM of) response_ack_count, response_ba64_count, 
+			response_ba256_count fields in RX_RESPONSE_REQUIRED. TXPCU
+			 shall let RXPCU determine in which order the BA bitmaps
+			 for each user (and sometimes multiple bitmaps for a the
+			 same user in case of multi TID) shall be returned. It is
+			 not expected that RXPCU will return invalid bitmaps for
+			 this scenario as RXPCU earlier indicates that this number
+			 of bitmaps was actually available in RXPCU...
+			
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MBA_USER_ORDER_OFFSET                                   0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MBA_USER_ORDER_LSB                                      12
+#define PCU_PPDU_SETUP_INIT_MBA_USER_ORDER_MSB                                      13
+#define PCU_PPDU_SETUP_INIT_MBA_USER_ORDER_MASK                                     0x0000000000003000
+
+
+/* Description		EXPECTED_MBA_SIZE
+
+			Field only valid for:
+			Mba_user_order == mu_ba_fixed_user_order, mu_ba_optimized_user_order
+			
+			
+			The expected number of bytes in response (Multi destination) 
+			BA that TXPCU shall request to PDG.
+			NOTE that SW should have pre-calculated and thus looked-up
+			 the window sizes for each of the STAs.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_EXPECTED_MBA_SIZE_OFFSET                                0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_EXPECTED_MBA_SIZE_LSB                                   14
+#define PCU_PPDU_SETUP_INIT_EXPECTED_MBA_SIZE_MSB                                   24
+#define PCU_PPDU_SETUP_INIT_EXPECTED_MBA_SIZE_MASK                                  0x0000000001ffc000
+
+
+/* Description		REQUIRED_UL_MU_RESP_USER_COUNT
+
+			Field only valid for: Response_to_response
+			== MU_BA 
+			or 
+			RESPONSE_TO_RESPONSE_CMD
+			
+			Field MU_RX_successful_user_count as reported in the RECEIVED_RESPONSE_INFO
+			 TLV shall be >= to this field, in order to consider the
+			 reception successful.
+			
+			Note that the value in this field shall always be equal 
+			or smaller to the number of bits set in field MU_Response_expected_bitmap_....
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_REQUIRED_UL_MU_RESP_USER_COUNT_OFFSET                   0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_REQUIRED_UL_MU_RESP_USER_COUNT_LSB                      25
+#define PCU_PPDU_SETUP_INIT_REQUIRED_UL_MU_RESP_USER_COUNT_MSB                      30
+#define PCU_PPDU_SETUP_INIT_REQUIRED_UL_MU_RESP_USER_COUNT_MASK                     0x000000007e000000
+
+
+/* Description		TRANSMITTED_BSSID_CHECK_EN
+
+			When set to 1, RXPCU shall assume group addressed frame 
+			with Tx_AD2 equal to TBSSID was sent. RxPCU should properly
+			 handle receive frame(s) from STA(s) which A1 is TBSSID 
+			or any VAPs.When NOT set, RXPCU shall compare received frame's
+			 A1 with Tx_AD2 only.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_TRANSMITTED_BSSID_CHECK_EN_OFFSET                       0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_TRANSMITTED_BSSID_CHECK_EN_LSB                          31
+#define PCU_PPDU_SETUP_INIT_TRANSMITTED_BSSID_CHECK_EN_MSB                          31
+#define PCU_PPDU_SETUP_INIT_TRANSMITTED_BSSID_CHECK_EN_MASK                         0x0000000080000000
+
+
+/* Description		MPROT_REQUIRED_BW1
+
+			Field only valid when ppdu_allowed_bw1 is set.
+			
+			When set, Medium protection transmission is required for
+			 a 1 MHz bandwidth PPDU transmission. In case of MU transmissions, 
+			all the medium protection settings are coming from user0. <legal
+			 all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW1_OFFSET                               0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW1_LSB                                  32
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW1_MSB                                  32
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW1_MASK                                 0x0000000100000000
+
+
+/* Description		MPROT_REQUIRED_BW20
+
+			Field only valid when ppdu_allowed_bw20_bw2  is set.
+			
+			NOTE: This field is also known as Mprot_required_pattern_0
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 20 MHz or 2Mhz 11ah bandwidth PPDU transmission
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW20_OFFSET                              0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW20_LSB                                 33
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW20_MSB                                 33
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW20_MASK                                0x0000000200000000
+
+
+/* Description		MPROT_REQUIRED_BW40
+
+			Field only valid when ppdu_allowed_bw40_bw4 is set.
+			
+			NOTE: This field is also known as Mprot_required_pattern_1
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 40 MHz or 4Mhz 11ah bandwidth PPDU transmission 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW40_OFFSET                              0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW40_LSB                                 34
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW40_MSB                                 34
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW40_MASK                                0x0000000400000000
+
+
+/* Description		MPROT_REQUIRED_BW80
+
+			Field only valid when ppdu_allowed_bw80_bw8  is set.
+			
+			
+			NOTE: This field is also known as Mprot_required_pattern_2
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 80 MHz or 8MHz 11ah bandwidth PPDU transmission 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW80_OFFSET                              0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW80_LSB                                 35
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW80_MSB                                 35
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW80_MASK                                0x0000000800000000
+
+
+/* Description		MPROT_REQUIRED_BW160
+
+			Field only valid when ppdu_allowed_bw160_bw16 is set.
+			
+			NOTE: This field is also known as Mprot_required_pattern_3
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 160 MHz or 16MHz 11ah bandwidth PPDU transmission. 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW160_OFFSET                             0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW160_LSB                                36
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW160_MSB                                36
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW160_MASK                               0x0000001000000000
+
+
+/* Description		MPROT_REQUIRED_BW240
+
+			Field only valid when ppdu_allowed_bw240 is set.
+			
+			NOTE: This field is also known as Mprot_required_pattern_4
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 240 MHz bandwidth PPDU transmission. 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW240_OFFSET                             0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW240_LSB                                37
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW240_MSB                                37
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW240_MASK                               0x0000002000000000
+
+
+/* Description		MPROT_REQUIRED_BW320
+
+			Field only valid when ppdu_allowed_bw320 is set.
+			
+			NOTE: This field is also known as Mprot_required_pattern_5
+			 in case punctured transmission is enabled.
+			
+			When set, Medium protection transmission is required for
+			 a 320 MHz bandwidth PPDU transmission. 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW320_OFFSET                             0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW320_LSB                                38
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW320_MSB                                38
+#define PCU_PPDU_SETUP_INIT_MPROT_REQUIRED_BW320_MASK                               0x0000004000000000
+
+
+/* Description		PPDU_ALLOWED_BW1
+
+			When set, allow PPDU transmission with 1 MHz 11ah bandwidth. 
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW1_OFFSET                                 0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW1_LSB                                    39
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW1_MSB                                    39
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW1_MASK                                   0x0000008000000000
+
+
+/* Description		PPDU_ALLOWED_BW20
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 20 MHz or 2MHz 11ah
+			 bandwidth 
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW20_OFFSET                                0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW20_LSB                                   40
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW20_MSB                                   40
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW20_MASK                                  0x0000010000000000
+
+
+/* Description		PPDU_ALLOWED_BW40
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 40 MHz or 4MHz 11ah
+			 bandwidth 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW40_OFFSET                                0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW40_LSB                                   41
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW40_MSB                                   41
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW40_MASK                                  0x0000020000000000
+
+
+/* Description		PPDU_ALLOWED_BW80
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 80 MHz or 8MHz 11ah
+			 bandwidth 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW80_OFFSET                                0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW80_LSB                                   42
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW80_MSB                                   42
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW80_MASK                                  0x0000040000000000
+
+
+/* Description		PPDU_ALLOWED_BW160
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 160 MHz or 16MHz 
+			11ah bandwidth 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW160_OFFSET                               0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW160_LSB                                  43
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW160_MSB                                  43
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW160_MASK                                 0x0000080000000000
+
+
+/* Description		PPDU_ALLOWED_BW240
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 240 MHz bandwidth
+			 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW240_OFFSET                               0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW240_LSB                                  44
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW240_MSB                                  44
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW240_MASK                                 0x0000100000000000
+
+
+/* Description		PPDU_ALLOWED_BW320
+
+			Field Not valid in  case punctured transmission is enabled. 
+			This fields meaning is than taken over by field TX_PUNCTURE_SETUP.
+			
+			puncture_pattern_count
+			
+			When set, allow PPDU transmission with 320 MHz bandwidth
+			 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW320_OFFSET                               0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW320_LSB                                  45
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW320_MSB                                  45
+#define PCU_PPDU_SETUP_INIT_PPDU_ALLOWED_BW320_MASK                                 0x0000200000000000
+
+
+/* Description		SET_FC_PWR_MGT
+
+			Field valid for SU transmissions only
+			
+			When set, the TXPCU will set the power management bit in
+			 the Frame Control field for the transmitted frames.
+			
+			Note: this is there for backup purposes only. TXOLE is the
+			 module now that should be setting the pm bit to the proper
+			 value.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_SET_FC_PWR_MGT_OFFSET                                   0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_SET_FC_PWR_MGT_LSB                                      46
+#define PCU_PPDU_SETUP_INIT_SET_FC_PWR_MGT_MSB                                      46
+#define PCU_PPDU_SETUP_INIT_SET_FC_PWR_MGT_MASK                                     0x0000400000000000
+
+
+/* Description		USE_CTS_DURATION_FOR_DATA_TX
+
+			When set, take the value of the duration field from the 
+			CTS frame, and use this as the reference point for how long
+			 the 'data' ppdu transmission can be.
+			This is an E2E feature.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_USE_CTS_DURATION_FOR_DATA_TX_OFFSET                     0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_USE_CTS_DURATION_FOR_DATA_TX_LSB                        47
+#define PCU_PPDU_SETUP_INIT_USE_CTS_DURATION_FOR_DATA_TX_MSB                        47
+#define PCU_PPDU_SETUP_INIT_USE_CTS_DURATION_FOR_DATA_TX_MASK                       0x0000800000000000
+
+
+/* Description		UPDATE_TIMESTAMP_64
+
+			When set, TXPCU shall update the timestamp value at the 
+			indicated location.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_64_OFFSET                              0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_64_LSB                                 48
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_64_MSB                                 48
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_64_MASK                                0x0001000000000000
+
+
+/* Description		UPDATE_TIMESTAMP_32_LOWER
+
+			Update the 32 bit timestamp at the offset specified by the
+			 insert_timestamp_offset_32.  This will be used for AWDL
+			 action frames.  The value of the TSF will be added to the
+			 timestamp field in the packet buffer in memory.  The tx_delay
+			 should also be included in the timestamp field<legal all>
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_LOWER_OFFSET                        0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_LOWER_LSB                           49
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_LOWER_MSB                           49
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_LOWER_MASK                          0x0002000000000000
+
+
+/* Description		UPDATE_TIMESTAMP_32_UPPER
+
+			Update the 64 bit TSF at the offset specified by the insert_timestamp_offset_64. 
+			 This will be used for beacons and probe response frames. 
+			 The value of the TSF will be added to the TSF field in 
+			the packet buffer in memory.  The tx_delay should also be
+			 included in the TSF field
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_UPPER_OFFSET                        0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_UPPER_LSB                           50
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_UPPER_MSB                           50
+#define PCU_PPDU_SETUP_INIT_UPDATE_TIMESTAMP_32_UPPER_MASK                          0x0004000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESERVED_1A_OFFSET                                      0x0000000000000000
+#define PCU_PPDU_SETUP_INIT_RESERVED_1A_LSB                                         51
+#define PCU_PPDU_SETUP_INIT_RESERVED_1A_MSB                                         63
+#define PCU_PPDU_SETUP_INIT_RESERVED_1A_MASK                                        0xfff8000000000000
+
+
+/* Description		INSERT_TIMESTAMP_OFFSET_0
+
+			Byte offset  to the first byte of the lower 32 bit timestamp
+			 to be inserted.  This is applicable to both beacon and 
+			probe response TSF and the AWDL timestamp<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_0_OFFSET                        0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_0_LSB                           0
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_0_MSB                           15
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_0_MASK                          0x000000000000ffff
+
+
+/* Description		INSERT_TIMESTAMP_OFFSET_1
+
+			Byte offset  to the first byte of the upper 32 bit timestamp
+			 to be inserted.  This is applicable to both beacon and 
+			probe response TSF and the AWDL timestamp<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_1_OFFSET                        0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_1_LSB                           16
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_1_MSB                           31
+#define PCU_PPDU_SETUP_INIT_INSERT_TIMESTAMP_OFFSET_1_MASK                          0x00000000ffff0000
+
+
+/* Description		MAX_BW40_TRY_COUNT
+
+			Field only valid when ppdu_allowed_bw40_bw4 or Mprot_required_bw40_bw4
+			 is set.
+			
+			NOTE: This field is also known as Max_try_count_pattern_1
+			 in case punctured transmission is enabled.
+			
+			The maximum number of times that TXPCU will try to do a 
+			transmission at this or a higher BW, before deciding to 
+			go to a lower BW.
+			If this count (as indicated by field Optimal_bw_retry_count
+			 in TX_FES_SETUP) has not been reached yet, and this BW 
+			is not available, TXPCU will generate a flush with flush
+			 reason set to 'TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW.'
+			
+			When value is 0, it means that if this BW is not available, 
+			TXPCU should immediately try a lower BW.
+			
+			Note that this value shall always be equal or greater then: 
+			Max_bw80_try_count
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MAX_BW40_TRY_COUNT_OFFSET                               0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_MAX_BW40_TRY_COUNT_LSB                                  32
+#define PCU_PPDU_SETUP_INIT_MAX_BW40_TRY_COUNT_MSB                                  35
+#define PCU_PPDU_SETUP_INIT_MAX_BW40_TRY_COUNT_MASK                                 0x0000000f00000000
+
+
+/* Description		MAX_BW80_TRY_COUNT
+
+			Field only valid when ppdu_allowed_bw80_bw4 or Mprot_required_bw80_bw4
+			 is set.
+			
+			NOTE: This field is also known as Max_try_count_pattern_2
+			 in case punctured transmission is enabled.
+			
+			The maximum number of times that TXPCU will try to do a 
+			transmission at this or a higher BW, before deciding to 
+			go to a lower BW.
+			If this count (as indicated by field Optimal_bw_retry_count
+			 in TX_FES_SETUP) has not been reached yet, and this BW 
+			is not available, TXPCU will generate a flush with flush
+			 reason set to 'TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW.'
+			
+			When value is 0, it means that if this BW is not available, 
+			TXPCU should immediately try a lower BW.
+			
+			Note that this value shall always be equal or greater then: 
+			Max_bw160_try_count
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MAX_BW80_TRY_COUNT_OFFSET                               0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_MAX_BW80_TRY_COUNT_LSB                                  36
+#define PCU_PPDU_SETUP_INIT_MAX_BW80_TRY_COUNT_MSB                                  39
+#define PCU_PPDU_SETUP_INIT_MAX_BW80_TRY_COUNT_MASK                                 0x000000f000000000
+
+
+/* Description		MAX_BW160_TRY_COUNT
+
+			Field only valid when ppdu_allowed_bw160_bw16 or Mprot_required_bw160_bw16
+			 is set.
+			
+			NOTE: This field is also known as Max_try_count_pattern_3
+			 in case punctured transmission is enabled.
+			
+			The maximum number of times that TXPCU will try to do a 
+			transmission at this, before deciding to go to a lower BW.
+			
+			If this count (as indicated by field Optimal_bw_retry_count
+			 in TX_FES_SETUP) has not been reached yet, and this BW 
+			is not available, TXPCU will generate a flush with flush
+			 reason set to 'TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW.'
+			
+			When value is 0, it means that if this BW is not available, 
+			TXPCU should immediately try a lower BW.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MAX_BW160_TRY_COUNT_OFFSET                              0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_MAX_BW160_TRY_COUNT_LSB                                 40
+#define PCU_PPDU_SETUP_INIT_MAX_BW160_TRY_COUNT_MSB                                 43
+#define PCU_PPDU_SETUP_INIT_MAX_BW160_TRY_COUNT_MASK                                0x00000f0000000000
+
+
+/* Description		MAX_BW240_TRY_COUNT
+
+			Field only valid when ppdu_allowed_bw240 or Mprot_required_bw240
+			 is set.
+			
+			NOTE: This field is also known as Max_try_count_pattern_4
+			 in case punctured transmission is enabled.
+			
+			The maximum number of times that TXPCU will try to do a 
+			transmission at this, before deciding to go to a lower BW.
+			
+			If this count (as indicated by field Optimal_bw_retry_count
+			 in TX_FES_SETUP) has not been reached yet, and this BW 
+			is not available, TXPCU will generate a flush with flush
+			 reason set to 'TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW.'
+			
+			When value is 0, it means that if this BW is not available, 
+			TXPCU should immediately try a lower BW.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MAX_BW240_TRY_COUNT_OFFSET                              0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_MAX_BW240_TRY_COUNT_LSB                                 44
+#define PCU_PPDU_SETUP_INIT_MAX_BW240_TRY_COUNT_MSB                                 47
+#define PCU_PPDU_SETUP_INIT_MAX_BW240_TRY_COUNT_MASK                                0x0000f00000000000
+
+
+/* Description		MAX_BW320_TRY_COUNT
+
+			Field only valid when ppdu_allowed_bw320 or Mprot_required_bw320
+			 is set.
+			
+			NOTE: This field is also known as Max_try_count_pattern_5
+			 in case punctured transmission is enabled.
+			
+			The maximum number of times that TXPCU will try to do a 
+			transmission at this, before deciding to go to a lower BW.
+			
+			If this count (as indicated by field Optimal_bw_retry_count
+			 in TX_FES_SETUP) has not been reached yet, and this BW 
+			is not available, TXPCU will generate a flush with flush
+			 reason set to 'TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW.'
+			
+			When value is 0, it means that if this BW is not available, 
+			TXPCU should immediately try a lower BW.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MAX_BW320_TRY_COUNT_OFFSET                              0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_MAX_BW320_TRY_COUNT_LSB                                 48
+#define PCU_PPDU_SETUP_INIT_MAX_BW320_TRY_COUNT_MSB                                 51
+#define PCU_PPDU_SETUP_INIT_MAX_BW320_TRY_COUNT_MASK                                0x000f000000000000
+
+
+/* Description		INSERT_WUR_TIMESTAMP_OFFSET
+
+			Field only to be used in case PCU_PPDU_SETUP_START.pkt_type
+			 indicates a .11ba packet
+			
+			Used by TXPCU to determine the offset within a WUR packet, 
+			e.g. a WUR beacon into which to insert the timestamp.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_TIMESTAMP_OFFSET_OFFSET                      0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_TIMESTAMP_OFFSET_LSB                         52
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_TIMESTAMP_OFFSET_MSB                         57
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_TIMESTAMP_OFFSET_MASK                        0x03f0000000000000
+
+
+/* Description		UPDATE_WUR_TIMESTAMP
+
+			Field only to be used in case PCU_PPDU_SETUP_START.pkt_type
+			 indicates a .11ba packet
+			
+			TXPCU will insert the timestamp into a WUR packet if this
+			 bit is set.
+			
+			<legal all> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_UPDATE_WUR_TIMESTAMP_OFFSET                             0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_UPDATE_WUR_TIMESTAMP_LSB                                58
+#define PCU_PPDU_SETUP_INIT_UPDATE_WUR_TIMESTAMP_MSB                                58
+#define PCU_PPDU_SETUP_INIT_UPDATE_WUR_TIMESTAMP_MASK                               0x0400000000000000
+
+
+/* Description		WUR_EMBEDDED_BSSID_PRESENT
+
+			Field only to be used in case PCU_PPDU_SETUP_START.pkt_type
+			 indicates a .11ba packet
+			
+			If this bit is set, TXPCU will assume the packet includes
+			 an extra 16 bits which contain the embedded BSSID to be
+			 used in the WUR FCS calculation. TXPCU will replace the
+			 16 bits with the 16-bit FCS field.
+			If this bit is clear, TXPCU will append the 16-bit FCS calculated
+			 without any embedded BSSID.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_WUR_EMBEDDED_BSSID_PRESENT_OFFSET                       0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_WUR_EMBEDDED_BSSID_PRESENT_LSB                          59
+#define PCU_PPDU_SETUP_INIT_WUR_EMBEDDED_BSSID_PRESENT_MSB                          59
+#define PCU_PPDU_SETUP_INIT_WUR_EMBEDDED_BSSID_PRESENT_MASK                         0x0800000000000000
+
+
+/* Description		INSERT_WUR_FCS
+
+			Field only to be used in case PCU_PPDU_SETUP_START.pkt_type
+			 indicates a .11ba packet
+			
+			TXPCU will replace/append the FCS bytes for a WUR packet
+			 if this bit is set. The replace/append choice is based 
+			on WUR_embedded_BSSID_present.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_FCS_OFFSET                                   0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_FCS_LSB                                      60
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_FCS_MSB                                      60
+#define PCU_PPDU_SETUP_INIT_INSERT_WUR_FCS_MASK                                     0x1000000000000000
+
+
+/* Description		RESERVED_3B
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESERVED_3B_OFFSET                                      0x0000000000000008
+#define PCU_PPDU_SETUP_INIT_RESERVED_3B_LSB                                         61
+#define PCU_PPDU_SETUP_INIT_RESERVED_3B_MSB                                         63
+#define PCU_PPDU_SETUP_INIT_RESERVED_3B_MASK                                        0xe000000000000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW20
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_0
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 20 MHz.
+			
+			Note: 
+			see field R2R_bw20_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_0A_OFFSET  0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_0A_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_0A_MSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_0A_MASK    0x0000000000000001
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_ANTENNA_SECTOR_CTRL_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_ANTENNA_SECTOR_CTRL_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_PKT_TYPE_OFFSET     0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_PKT_TYPE_LSB        25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_PKT_TYPE_MSB        28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_PKT_TYPE_MASK       0x000000001e000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SMOOTHING_OFFSET    0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SMOOTHING_LSB       29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SMOOTHING_MSB       29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SMOOTHING_MASK      0x0000000020000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_LDPC_OFFSET         0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_LDPC_LSB            30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_LDPC_MSB            30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_LDPC_MASK           0x0000000040000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STBC_OFFSET         0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STBC_LSB            31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STBC_MSB            31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STBC_MASK           0x0000000080000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_OFFSET   0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_LSB      32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_MSB      39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_MASK     0x000000ff00000000
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_MIN_TX_PWR_OFFSET 0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_MIN_TX_PWR_LSB  40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_MIN_TX_PWR_MSB  47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_NSS_OFFSET      0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_NSS_LSB         48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_NSS_MSB         50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_NSS_MASK        0x0007000000000000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_CHAIN_MASK_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_CHAIN_MASK_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_BW_OFFSET       0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_BW_LSB          59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_BW_MSB          61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_BW_MASK         0x3800000000000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STF_LTF_3DB_BOOST_LSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STF_LTF_3DB_BOOST_MSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_STF_LTF_3DB_BOOST_MASK 0x4000000000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000010
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_FORCE_EXTRA_SYMBOL_LSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_FORCE_EXTRA_SYMBOL_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_RATE_MCS_OFFSET 0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_RATE_MCS_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_RATE_MCS_MSB    3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_RATE_MCS_MASK   0x000000000000000f
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NSS_OFFSET          0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NSS_LSB             4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NSS_MSB             6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NSS_MASK            0x0000000000000070
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DPD_ENABLE_OFFSET   0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DPD_ENABLE_LSB      7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DPD_ENABLE_MSB      7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DPD_ENABLE_MASK     0x0000000000000080
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_OFFSET       0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_LSB          8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_MSB          15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_MASK         0x000000000000ff00
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MIN_TX_PWR_OFFSET   0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MIN_TX_PWR_LSB      16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MIN_TX_PWR_MSB      23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MIN_TX_PWR_MASK     0x0000000000ff0000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_CHAIN_MASK_OFFSET 0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_CHAIN_MASK_LSB   24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_CHAIN_MASK_MSB   31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_CHAIN_MASK_MASK  0x00000000ff000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3A_OFFSET  0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3A_LSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3A_MSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3A_MASK    0x000000ff00000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SGI_OFFSET          0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SGI_LSB             40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SGI_MSB             41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_SGI_MASK            0x0000030000000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RATE_MCS_OFFSET     0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RATE_MCS_LSB        42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RATE_MCS_MSB        45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RATE_MCS_MASK       0x00003c0000000000
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3B_OFFSET  0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3B_LSB     46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3B_MSB     47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_3B_MASK    0x0000c00000000000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_1_OFFSET     0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_1_LSB        48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_1_MSB        55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_TX_PWR_1_MASK       0x00ff000000000000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_1_OFFSET 0x0000000000000018
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_1_LSB    56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_1_MSB    63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_ALT_TX_PWR_1_MASK   0xff00000000000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_AGGREGATION_OFFSET  0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_AGGREGATION_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_AGGREGATION_MSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_AGGREGATION_MASK    0x0000000000000001
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_BSS_COLOR_ID_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_BSS_COLOR_ID_MSB 6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SPATIAL_REUSE_LSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SPATIAL_REUSE_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CP_LTF_SIZE_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CP_LTF_SIZE_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DCM_OFFSET  0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DCM_LSB     13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DCM_MSB     13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DCM_MASK    0x0000000000002000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DOPPLER_INDICATION_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DOPPLER_INDICATION_MSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SU_EXTENDED_LSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SU_EXTENDED_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_MIN_PACKET_EXTENSION_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_MIN_PACKET_EXTENSION_MSB 17
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_NSS_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_NSS_LSB  18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_NSS_MSB  20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_NSS_MASK 0x00000000001c0000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CONTENT_LSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CONTENT_MSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CONTENT_MASK 0x0000000000200000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_LTF_SIZE_LSB 22
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_LTF_SIZE_MSB 23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CHAIN_CSD_EN_LSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CHAIN_CSD_EN_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CHAIN_CSD_EN_LSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CHAIN_CSD_EN_MSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DL_UL_FLAG_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DL_UL_FLAG_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_4A_OFFSET  0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_4A_LSB     27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_4A_MSB     31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_4A_MASK    0x00000000f8000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_START_INDEX_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_START_INDEX_MSB 35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_SIZE_LSB 36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_SIZE_MSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_EHT_DUPLICATE_MODE_LSB 40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_EHT_DUPLICATE_MODE_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_EHT_DUPLICATE_MODE_MASK 0x0000030000000000
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_DCM_OFFSET  0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_DCM_LSB     42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_DCM_MSB     42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_DCM_MASK    0x0000040000000000
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_0_MCS_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_0_MCS_LSB   43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_0_MCS_MSB   45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_HE_SIGB_0_MCS_MASK  0x0000380000000000
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NUM_HE_SIGB_SYM_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NUM_HE_SIGB_SYM_MSB 50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_5A_OFFSET  0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_5A_LSB     52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_5A_MSB     57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_RESERVED_5A_MASK    0x03f0000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000020
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_MSB 27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11BE_PARAMS_PLACEHOLDER_LSB 28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11BE_PARAMS_PLACEHOLDER_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW20_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW40
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_1
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 40 MHz.
+			
+			Note: 
+			see field R2R_bw40_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_0A_OFFSET  0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_0A_LSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_0A_MSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_0A_MASK    0x0000000100000000
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_ANTENNA_SECTOR_CTRL_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_ANTENNA_SECTOR_CTRL_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_ANTENNA_SECTOR_CTRL_MASK 0x01fffffe00000000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_PKT_TYPE_OFFSET     0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_PKT_TYPE_LSB        57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_PKT_TYPE_MSB        60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_PKT_TYPE_MASK       0x1e00000000000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SMOOTHING_OFFSET    0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SMOOTHING_LSB       61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SMOOTHING_MSB       61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SMOOTHING_MASK      0x2000000000000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_LDPC_OFFSET         0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_LDPC_LSB            62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_LDPC_MSB            62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_LDPC_MASK           0x4000000000000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STBC_OFFSET         0x0000000000000028
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STBC_LSB            63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STBC_MSB            63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STBC_MASK           0x8000000000000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_OFFSET   0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_LSB      0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_MSB      7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_MASK     0x00000000000000ff
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_MIN_TX_PWR_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_MIN_TX_PWR_LSB  8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_MIN_TX_PWR_MSB  15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_MIN_TX_PWR_MASK 0x000000000000ff00
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_NSS_OFFSET      0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_NSS_LSB         16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_NSS_MSB         18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_NSS_MASK        0x0000000000070000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_CHAIN_MASK_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_CHAIN_MASK_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_CHAIN_MASK_MASK 0x0000000007f80000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_BW_OFFSET       0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_BW_LSB          27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_BW_MSB          29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_BW_MASK         0x0000000038000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STF_LTF_3DB_BOOST_LSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STF_LTF_3DB_BOOST_MSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_STF_LTF_3DB_BOOST_MASK 0x0000000040000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_FORCE_EXTRA_SYMBOL_LSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_FORCE_EXTRA_SYMBOL_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_FORCE_EXTRA_SYMBOL_MASK 0x0000000080000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_RATE_MCS_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_RATE_MCS_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_RATE_MCS_MSB    35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_RATE_MCS_MASK   0x0000000f00000000
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NSS_OFFSET          0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NSS_LSB             36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NSS_MSB             38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NSS_MASK            0x0000007000000000
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DPD_ENABLE_OFFSET   0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DPD_ENABLE_LSB      39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DPD_ENABLE_MSB      39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DPD_ENABLE_MASK     0x0000008000000000
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_OFFSET       0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_LSB          40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_MSB          47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_MASK         0x0000ff0000000000
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MIN_TX_PWR_OFFSET   0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MIN_TX_PWR_LSB      48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MIN_TX_PWR_MSB      55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MIN_TX_PWR_MASK     0x00ff000000000000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_CHAIN_MASK_OFFSET 0x0000000000000030
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_CHAIN_MASK_LSB   56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_CHAIN_MASK_MSB   63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_CHAIN_MASK_MASK  0xff00000000000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3A_OFFSET  0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3A_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3A_MSB     7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3A_MASK    0x00000000000000ff
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SGI_OFFSET          0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SGI_LSB             8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SGI_MSB             9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_SGI_MASK            0x0000000000000300
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RATE_MCS_OFFSET     0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RATE_MCS_LSB        10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RATE_MCS_MSB        13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RATE_MCS_MASK       0x0000000000003c00
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3B_OFFSET  0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3B_LSB     14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3B_MSB     15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_3B_MASK    0x000000000000c000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_1_OFFSET     0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_1_LSB        16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_1_MSB        23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_TX_PWR_1_MASK       0x0000000000ff0000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_1_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_1_LSB    24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_1_MSB    31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_ALT_TX_PWR_1_MASK   0x00000000ff000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_AGGREGATION_OFFSET  0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_AGGREGATION_LSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_AGGREGATION_MSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_AGGREGATION_MASK    0x0000000100000000
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_BSS_COLOR_ID_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_BSS_COLOR_ID_MSB 38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_BSS_COLOR_ID_MASK 0x0000007e00000000
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SPATIAL_REUSE_LSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SPATIAL_REUSE_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SPATIAL_REUSE_MASK 0x0000078000000000
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CP_LTF_SIZE_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CP_LTF_SIZE_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CP_LTF_SIZE_MASK 0x0000180000000000
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DCM_OFFSET  0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DCM_LSB     45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DCM_MSB     45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DCM_MASK    0x0000200000000000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DOPPLER_INDICATION_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DOPPLER_INDICATION_MSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DOPPLER_INDICATION_MASK 0x0000400000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SU_EXTENDED_LSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SU_EXTENDED_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_SU_EXTENDED_MASK 0x0000800000000000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_MIN_PACKET_EXTENSION_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_MIN_PACKET_EXTENSION_MSB 49
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0003000000000000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_NSS_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_NSS_LSB  50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_NSS_MSB  52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_NSS_MASK 0x001c000000000000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CONTENT_LSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CONTENT_MSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CONTENT_MASK 0x0020000000000000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_LTF_SIZE_LSB 54
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_LTF_SIZE_MSB 55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_LTF_SIZE_MASK 0x00c0000000000000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CHAIN_CSD_EN_LSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CHAIN_CSD_EN_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_CHAIN_CSD_EN_MASK 0x0100000000000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CHAIN_CSD_EN_LSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CHAIN_CSD_EN_MSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0200000000000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DL_UL_FLAG_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DL_UL_FLAG_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_DL_UL_FLAG_MASK 0x0400000000000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_4A_OFFSET  0x0000000000000038
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_4A_LSB     59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_4A_MSB     63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_4A_MASK    0xf800000000000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_START_INDEX_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_START_INDEX_MSB 3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_START_INDEX_MASK 0x000000000000000f
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_SIZE_LSB 4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_SIZE_MSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11AX_EXT_RU_SIZE_MASK 0x00000000000000f0
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_EHT_DUPLICATE_MODE_LSB 8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_EHT_DUPLICATE_MODE_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_EHT_DUPLICATE_MODE_MASK 0x0000000000000300
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_DCM_OFFSET  0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_DCM_LSB     10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_DCM_MSB     10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_DCM_MASK    0x0000000000000400
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_0_MCS_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_0_MCS_LSB   11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_0_MCS_MSB   13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_HE_SIGB_0_MCS_MASK  0x0000000000003800
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NUM_HE_SIGB_SYM_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NUM_HE_SIGB_SYM_MSB 18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_NUM_HE_SIGB_SYM_MASK 0x000000000007c000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_SOURCE_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_SOURCE_MSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0000000000080000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_5A_OFFSET  0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_5A_LSB     20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_5A_MSB     25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_RESERVED_5A_MASK    0x0000000003f00000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x00000000fc000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x000003ff00000000
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000040000000000
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000080000000000
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000100000000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x0000e00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_MSB 59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_REQUIRED_RESPONSE_TIME_MASK 0x0fff000000000000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000040
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11BE_PARAMS_PLACEHOLDER_LSB 60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11BE_PARAMS_PLACEHOLDER_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW40_DOT11BE_PARAMS_PLACEHOLDER_MASK 0xf000000000000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW80
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_2
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 80 MHz.
+			
+			Note: 
+			see field R2R_bw80_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_0A_OFFSET  0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_0A_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_0A_MSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_0A_MASK    0x0000000000000001
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_ANTENNA_SECTOR_CTRL_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_ANTENNA_SECTOR_CTRL_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_PKT_TYPE_OFFSET     0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_PKT_TYPE_LSB        25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_PKT_TYPE_MSB        28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_PKT_TYPE_MASK       0x000000001e000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SMOOTHING_OFFSET    0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SMOOTHING_LSB       29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SMOOTHING_MSB       29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SMOOTHING_MASK      0x0000000020000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_LDPC_OFFSET         0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_LDPC_LSB            30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_LDPC_MSB            30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_LDPC_MASK           0x0000000040000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STBC_OFFSET         0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STBC_LSB            31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STBC_MSB            31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STBC_MASK           0x0000000080000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_OFFSET   0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_LSB      32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_MSB      39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_MASK     0x000000ff00000000
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_MIN_TX_PWR_OFFSET 0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_MIN_TX_PWR_LSB  40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_MIN_TX_PWR_MSB  47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_NSS_OFFSET      0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_NSS_LSB         48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_NSS_MSB         50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_NSS_MASK        0x0007000000000000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_CHAIN_MASK_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_CHAIN_MASK_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_BW_OFFSET       0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_BW_LSB          59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_BW_MSB          61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_BW_MASK         0x3800000000000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STF_LTF_3DB_BOOST_LSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STF_LTF_3DB_BOOST_MSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_STF_LTF_3DB_BOOST_MASK 0x4000000000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000048
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_FORCE_EXTRA_SYMBOL_LSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_FORCE_EXTRA_SYMBOL_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_RATE_MCS_OFFSET 0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_RATE_MCS_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_RATE_MCS_MSB    3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_RATE_MCS_MASK   0x000000000000000f
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NSS_OFFSET          0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NSS_LSB             4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NSS_MSB             6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NSS_MASK            0x0000000000000070
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DPD_ENABLE_OFFSET   0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DPD_ENABLE_LSB      7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DPD_ENABLE_MSB      7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DPD_ENABLE_MASK     0x0000000000000080
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_OFFSET       0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_LSB          8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_MSB          15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_MASK         0x000000000000ff00
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MIN_TX_PWR_OFFSET   0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MIN_TX_PWR_LSB      16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MIN_TX_PWR_MSB      23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MIN_TX_PWR_MASK     0x0000000000ff0000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_CHAIN_MASK_OFFSET 0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_CHAIN_MASK_LSB   24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_CHAIN_MASK_MSB   31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_CHAIN_MASK_MASK  0x00000000ff000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3A_OFFSET  0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3A_LSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3A_MSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3A_MASK    0x000000ff00000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SGI_OFFSET          0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SGI_LSB             40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SGI_MSB             41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_SGI_MASK            0x0000030000000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RATE_MCS_OFFSET     0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RATE_MCS_LSB        42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RATE_MCS_MSB        45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RATE_MCS_MASK       0x00003c0000000000
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3B_OFFSET  0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3B_LSB     46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3B_MSB     47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_3B_MASK    0x0000c00000000000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_1_OFFSET     0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_1_LSB        48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_1_MSB        55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_TX_PWR_1_MASK       0x00ff000000000000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_1_OFFSET 0x0000000000000050
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_1_LSB    56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_1_MSB    63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_ALT_TX_PWR_1_MASK   0xff00000000000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_AGGREGATION_OFFSET  0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_AGGREGATION_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_AGGREGATION_MSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_AGGREGATION_MASK    0x0000000000000001
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_BSS_COLOR_ID_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_BSS_COLOR_ID_MSB 6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SPATIAL_REUSE_LSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SPATIAL_REUSE_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CP_LTF_SIZE_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CP_LTF_SIZE_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DCM_OFFSET  0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DCM_LSB     13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DCM_MSB     13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DCM_MASK    0x0000000000002000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DOPPLER_INDICATION_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DOPPLER_INDICATION_MSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SU_EXTENDED_LSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SU_EXTENDED_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_MIN_PACKET_EXTENSION_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_MIN_PACKET_EXTENSION_MSB 17
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_NSS_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_NSS_LSB  18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_NSS_MSB  20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_NSS_MASK 0x00000000001c0000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CONTENT_LSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CONTENT_MSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CONTENT_MASK 0x0000000000200000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_LTF_SIZE_LSB 22
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_LTF_SIZE_MSB 23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CHAIN_CSD_EN_LSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CHAIN_CSD_EN_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CHAIN_CSD_EN_LSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CHAIN_CSD_EN_MSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DL_UL_FLAG_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DL_UL_FLAG_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_4A_OFFSET  0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_4A_LSB     27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_4A_MSB     31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_4A_MASK    0x00000000f8000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_START_INDEX_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_START_INDEX_MSB 35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_SIZE_LSB 36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_SIZE_MSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_EHT_DUPLICATE_MODE_LSB 40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_EHT_DUPLICATE_MODE_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_EHT_DUPLICATE_MODE_MASK 0x0000030000000000
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_DCM_OFFSET  0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_DCM_LSB     42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_DCM_MSB     42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_DCM_MASK    0x0000040000000000
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_0_MCS_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_0_MCS_LSB   43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_0_MCS_MSB   45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_HE_SIGB_0_MCS_MASK  0x0000380000000000
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NUM_HE_SIGB_SYM_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NUM_HE_SIGB_SYM_MSB 50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_5A_OFFSET  0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_5A_LSB     52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_5A_MSB     57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_RESERVED_5A_MASK    0x03f0000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000058
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_MSB 27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11BE_PARAMS_PLACEHOLDER_LSB 28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11BE_PARAMS_PLACEHOLDER_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW80_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW160
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_3
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 160 MHz.
+			
+			Note: 
+			see field R2R_bw160_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_0A_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_0A_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_0A_MSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_0A_MASK   0x0000000100000000
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_ANTENNA_SECTOR_CTRL_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_ANTENNA_SECTOR_CTRL_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_ANTENNA_SECTOR_CTRL_MASK 0x01fffffe00000000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_PKT_TYPE_OFFSET    0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_PKT_TYPE_LSB       57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_PKT_TYPE_MSB       60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_PKT_TYPE_MASK      0x1e00000000000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SMOOTHING_OFFSET   0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SMOOTHING_LSB      61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SMOOTHING_MSB      61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SMOOTHING_MASK     0x2000000000000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_LDPC_OFFSET        0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_LDPC_LSB           62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_LDPC_MSB           62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_LDPC_MASK          0x4000000000000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STBC_OFFSET        0x0000000000000060
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STBC_LSB           63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STBC_MSB           63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STBC_MASK          0x8000000000000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_OFFSET  0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_MSB     7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_MASK    0x00000000000000ff
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_MIN_TX_PWR_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_MIN_TX_PWR_LSB 8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_MIN_TX_PWR_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_MIN_TX_PWR_MASK 0x000000000000ff00
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_NSS_OFFSET     0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_NSS_LSB        16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_NSS_MSB        18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_NSS_MASK       0x0000000000070000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_CHAIN_MASK_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_CHAIN_MASK_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_CHAIN_MASK_MASK 0x0000000007f80000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_BW_OFFSET      0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_BW_LSB         27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_BW_MSB         29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_BW_MASK        0x0000000038000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STF_LTF_3DB_BOOST_LSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STF_LTF_3DB_BOOST_MSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_STF_LTF_3DB_BOOST_MASK 0x0000000040000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_FORCE_EXTRA_SYMBOL_LSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_FORCE_EXTRA_SYMBOL_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_FORCE_EXTRA_SYMBOL_MASK 0x0000000080000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_RATE_MCS_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_RATE_MCS_LSB   32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_RATE_MCS_MSB   35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_RATE_MCS_MASK  0x0000000f00000000
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NSS_OFFSET         0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NSS_LSB            36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NSS_MSB            38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NSS_MASK           0x0000007000000000
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DPD_ENABLE_OFFSET  0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DPD_ENABLE_LSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DPD_ENABLE_MSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DPD_ENABLE_MASK    0x0000008000000000
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_OFFSET      0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_LSB         40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_MSB         47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_MASK        0x0000ff0000000000
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MIN_TX_PWR_OFFSET  0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MIN_TX_PWR_LSB     48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MIN_TX_PWR_MSB     55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MIN_TX_PWR_MASK    0x00ff000000000000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_CHAIN_MASK_OFFSET 0x0000000000000068
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_CHAIN_MASK_LSB  56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_CHAIN_MASK_MSB  63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_CHAIN_MASK_MASK 0xff00000000000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3A_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3A_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3A_MSB    7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3A_MASK   0x00000000000000ff
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SGI_OFFSET         0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SGI_LSB            8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SGI_MSB            9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_SGI_MASK           0x0000000000000300
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RATE_MCS_OFFSET    0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RATE_MCS_LSB       10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RATE_MCS_MSB       13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RATE_MCS_MASK      0x0000000000003c00
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3B_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3B_LSB    14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3B_MSB    15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_3B_MASK   0x000000000000c000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_1_OFFSET    0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_1_LSB       16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_1_MSB       23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_TX_PWR_1_MASK      0x0000000000ff0000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_1_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_1_LSB   24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_1_MSB   31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_ALT_TX_PWR_1_MASK  0x00000000ff000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_AGGREGATION_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_AGGREGATION_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_AGGREGATION_MSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_AGGREGATION_MASK   0x0000000100000000
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_BSS_COLOR_ID_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_BSS_COLOR_ID_MSB 38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_BSS_COLOR_ID_MASK 0x0000007e00000000
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SPATIAL_REUSE_LSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SPATIAL_REUSE_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SPATIAL_REUSE_MASK 0x0000078000000000
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CP_LTF_SIZE_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CP_LTF_SIZE_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CP_LTF_SIZE_MASK 0x0000180000000000
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DCM_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DCM_LSB    45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DCM_MSB    45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DCM_MASK   0x0000200000000000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DOPPLER_INDICATION_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DOPPLER_INDICATION_MSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DOPPLER_INDICATION_MASK 0x0000400000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SU_EXTENDED_LSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SU_EXTENDED_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_SU_EXTENDED_MASK 0x0000800000000000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_MIN_PACKET_EXTENSION_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_MIN_PACKET_EXTENSION_MSB 49
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0003000000000000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_NSS_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_NSS_LSB 50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_NSS_MSB 52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_NSS_MASK 0x001c000000000000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CONTENT_LSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CONTENT_MSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CONTENT_MASK 0x0020000000000000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_LTF_SIZE_LSB 54
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_LTF_SIZE_MSB 55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_LTF_SIZE_MASK 0x00c0000000000000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CHAIN_CSD_EN_LSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CHAIN_CSD_EN_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_CHAIN_CSD_EN_MASK 0x0100000000000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CHAIN_CSD_EN_LSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CHAIN_CSD_EN_MSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0200000000000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DL_UL_FLAG_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DL_UL_FLAG_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_DL_UL_FLAG_MASK 0x0400000000000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_4A_OFFSET 0x0000000000000070
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_4A_LSB    59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_4A_MSB    63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_4A_MASK   0xf800000000000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_START_INDEX_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_START_INDEX_MSB 3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_START_INDEX_MASK 0x000000000000000f
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_SIZE_LSB 4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_SIZE_MSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11AX_EXT_RU_SIZE_MASK 0x00000000000000f0
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_EHT_DUPLICATE_MODE_LSB 8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_EHT_DUPLICATE_MODE_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_EHT_DUPLICATE_MODE_MASK 0x0000000000000300
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_DCM_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_DCM_LSB    10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_DCM_MSB    10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_DCM_MASK   0x0000000000000400
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_0_MCS_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_0_MCS_LSB  11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_0_MCS_MSB  13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_HE_SIGB_0_MCS_MASK 0x0000000000003800
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NUM_HE_SIGB_SYM_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NUM_HE_SIGB_SYM_MSB 18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_NUM_HE_SIGB_SYM_MASK 0x000000000007c000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_SOURCE_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_SOURCE_MSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0000000000080000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_5A_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_5A_LSB    20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_5A_MSB    25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_RESERVED_5A_MASK   0x0000000003f00000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x00000000fc000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x000003ff00000000
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000040000000000
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000080000000000
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000100000000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x0000e00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_MSB 59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_REQUIRED_RESPONSE_TIME_MASK 0x0fff000000000000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000078
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11BE_PARAMS_PLACEHOLDER_LSB 60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11BE_PARAMS_PLACEHOLDER_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW160_DOT11BE_PARAMS_PLACEHOLDER_MASK 0xf000000000000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW240
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_4
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 240 MHz.
+			
+			Note: 
+			see field R2R_bw240_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_0A_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_0A_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_0A_MSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_0A_MASK   0x0000000000000001
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_ANTENNA_SECTOR_CTRL_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_ANTENNA_SECTOR_CTRL_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_PKT_TYPE_OFFSET    0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_PKT_TYPE_LSB       25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_PKT_TYPE_MSB       28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_PKT_TYPE_MASK      0x000000001e000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SMOOTHING_OFFSET   0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SMOOTHING_LSB      29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SMOOTHING_MSB      29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SMOOTHING_MASK     0x0000000020000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_LDPC_OFFSET        0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_LDPC_LSB           30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_LDPC_MSB           30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_LDPC_MASK          0x0000000040000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STBC_OFFSET        0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STBC_LSB           31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STBC_MSB           31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STBC_MASK          0x0000000080000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_OFFSET  0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_LSB     32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_MSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_MASK    0x000000ff00000000
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_MIN_TX_PWR_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_MIN_TX_PWR_LSB 40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_MIN_TX_PWR_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_NSS_OFFSET     0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_NSS_LSB        48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_NSS_MSB        50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_NSS_MASK       0x0007000000000000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_CHAIN_MASK_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_CHAIN_MASK_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_BW_OFFSET      0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_BW_LSB         59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_BW_MSB         61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_BW_MASK        0x3800000000000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STF_LTF_3DB_BOOST_LSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STF_LTF_3DB_BOOST_MSB 62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_STF_LTF_3DB_BOOST_MASK 0x4000000000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000080
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_FORCE_EXTRA_SYMBOL_LSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_FORCE_EXTRA_SYMBOL_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_RATE_MCS_OFFSET 0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_RATE_MCS_LSB   0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_RATE_MCS_MSB   3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_RATE_MCS_MASK  0x000000000000000f
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NSS_OFFSET         0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NSS_LSB            4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NSS_MSB            6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NSS_MASK           0x0000000000000070
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DPD_ENABLE_OFFSET  0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DPD_ENABLE_LSB     7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DPD_ENABLE_MSB     7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DPD_ENABLE_MASK    0x0000000000000080
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_OFFSET      0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_LSB         8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_MSB         15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_MASK        0x000000000000ff00
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MIN_TX_PWR_OFFSET  0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MIN_TX_PWR_LSB     16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MIN_TX_PWR_MSB     23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MIN_TX_PWR_MASK    0x0000000000ff0000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_CHAIN_MASK_OFFSET 0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_CHAIN_MASK_LSB  24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_CHAIN_MASK_MSB  31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_CHAIN_MASK_MASK 0x00000000ff000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3A_OFFSET 0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3A_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3A_MSB    39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3A_MASK   0x000000ff00000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SGI_OFFSET         0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SGI_LSB            40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SGI_MSB            41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_SGI_MASK           0x0000030000000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RATE_MCS_OFFSET    0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RATE_MCS_LSB       42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RATE_MCS_MSB       45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RATE_MCS_MASK      0x00003c0000000000
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3B_OFFSET 0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3B_LSB    46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3B_MSB    47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_3B_MASK   0x0000c00000000000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_1_OFFSET    0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_1_LSB       48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_1_MSB       55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_TX_PWR_1_MASK      0x00ff000000000000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_1_OFFSET 0x0000000000000088
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_1_LSB   56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_1_MSB   63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_ALT_TX_PWR_1_MASK  0xff00000000000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_AGGREGATION_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_AGGREGATION_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_AGGREGATION_MSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_AGGREGATION_MASK   0x0000000000000001
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_BSS_COLOR_ID_LSB 1
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_BSS_COLOR_ID_MSB 6
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SPATIAL_REUSE_LSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SPATIAL_REUSE_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CP_LTF_SIZE_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CP_LTF_SIZE_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DCM_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DCM_LSB    13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DCM_MSB    13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DCM_MASK   0x0000000000002000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DOPPLER_INDICATION_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DOPPLER_INDICATION_MSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SU_EXTENDED_LSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SU_EXTENDED_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_MIN_PACKET_EXTENSION_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_MIN_PACKET_EXTENSION_MSB 17
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_NSS_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_NSS_LSB 18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_NSS_MSB 20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_NSS_MASK 0x00000000001c0000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CONTENT_LSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CONTENT_MSB 21
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CONTENT_MASK 0x0000000000200000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_LTF_SIZE_LSB 22
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_LTF_SIZE_MSB 23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CHAIN_CSD_EN_LSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CHAIN_CSD_EN_MSB 24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CHAIN_CSD_EN_LSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CHAIN_CSD_EN_MSB 25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DL_UL_FLAG_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DL_UL_FLAG_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_4A_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_4A_LSB    27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_4A_MSB    31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_4A_MASK   0x00000000f8000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_START_INDEX_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_START_INDEX_MSB 35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_SIZE_LSB 36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_SIZE_MSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_EHT_DUPLICATE_MODE_LSB 40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_EHT_DUPLICATE_MODE_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_EHT_DUPLICATE_MODE_MASK 0x0000030000000000
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_DCM_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_DCM_LSB    42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_DCM_MSB    42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_DCM_MASK   0x0000040000000000
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_0_MCS_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_0_MCS_LSB  43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_0_MCS_MSB  45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_HE_SIGB_0_MCS_MASK 0x0000380000000000
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NUM_HE_SIGB_SYM_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NUM_HE_SIGB_SYM_MSB 50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_5A_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_5A_LSB    52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_5A_MSB    57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_RESERVED_5A_MASK   0x03f0000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000090
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_LSB 16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_MSB 27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11BE_PARAMS_PLACEHOLDER_LSB 28
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11BE_PARAMS_PLACEHOLDER_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW240_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_RATE_INFO_BW320
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			NOTE: This field is also known as response_to_response_rate_info_pattern_5
+			 in case punctured transmission is enabled.
+			
+			Used by TXPCU to determine what the transmit rates are for
+			 the response to response transmission in case original 
+			transmission was 320 MHz.
+			
+			Note: 
+			see field R2R_bw320_active_channel for the BW of this transmission
+			
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_0A_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_0A_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_0A_MSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_0A_MASK   0x0000000100000000
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_ANTENNA_SECTOR_CTRL_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_ANTENNA_SECTOR_CTRL_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_ANTENNA_SECTOR_CTRL_MASK 0x01fffffe00000000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_PKT_TYPE_OFFSET    0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_PKT_TYPE_LSB       57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_PKT_TYPE_MSB       60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_PKT_TYPE_MASK      0x1e00000000000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SMOOTHING_OFFSET   0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SMOOTHING_LSB      61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SMOOTHING_MSB      61
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SMOOTHING_MASK     0x2000000000000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_LDPC_OFFSET        0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_LDPC_LSB           62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_LDPC_MSB           62
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_LDPC_MASK          0x4000000000000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STBC_OFFSET        0x0000000000000098
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STBC_LSB           63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STBC_MSB           63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STBC_MASK          0x8000000000000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_OFFSET  0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_LSB     0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_MSB     7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_MASK    0x00000000000000ff
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_MIN_TX_PWR_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_MIN_TX_PWR_LSB 8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_MIN_TX_PWR_MSB 15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_MIN_TX_PWR_MASK 0x000000000000ff00
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_NSS_OFFSET     0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_NSS_LSB        16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_NSS_MSB        18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_NSS_MASK       0x0000000000070000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_CHAIN_MASK_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_CHAIN_MASK_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_CHAIN_MASK_MSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_CHAIN_MASK_MASK 0x0000000007f80000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_BW_OFFSET      0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_BW_LSB         27
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_BW_MSB         29
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_BW_MASK        0x0000000038000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STF_LTF_3DB_BOOST_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STF_LTF_3DB_BOOST_LSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STF_LTF_3DB_BOOST_MSB 30
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_STF_LTF_3DB_BOOST_MASK 0x0000000040000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_FORCE_EXTRA_SYMBOL_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_FORCE_EXTRA_SYMBOL_LSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_FORCE_EXTRA_SYMBOL_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_FORCE_EXTRA_SYMBOL_MASK 0x0000000080000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_RATE_MCS_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_RATE_MCS_LSB   32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_RATE_MCS_MSB   35
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_RATE_MCS_MASK  0x0000000f00000000
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NSS_OFFSET         0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NSS_LSB            36
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NSS_MSB            38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NSS_MASK           0x0000007000000000
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DPD_ENABLE_OFFSET  0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DPD_ENABLE_LSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DPD_ENABLE_MSB     39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DPD_ENABLE_MASK    0x0000008000000000
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_OFFSET      0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_LSB         40
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_MSB         47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_MASK        0x0000ff0000000000
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MIN_TX_PWR_OFFSET  0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MIN_TX_PWR_LSB     48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MIN_TX_PWR_MSB     55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MIN_TX_PWR_MASK    0x00ff000000000000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_CHAIN_MASK_OFFSET 0x00000000000000a0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_CHAIN_MASK_LSB  56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_CHAIN_MASK_MSB  63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_CHAIN_MASK_MASK 0xff00000000000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3A_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3A_LSB    0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3A_MSB    7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3A_MASK   0x00000000000000ff
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SGI_OFFSET         0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SGI_LSB            8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SGI_MSB            9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_SGI_MASK           0x0000000000000300
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RATE_MCS_OFFSET    0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RATE_MCS_LSB       10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RATE_MCS_MSB       13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RATE_MCS_MASK      0x0000000000003c00
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3B_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3B_LSB    14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3B_MSB    15
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_3B_MASK   0x000000000000c000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_1_OFFSET    0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_1_LSB       16
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_1_MSB       23
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_TX_PWR_1_MASK      0x0000000000ff0000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_1_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_1_LSB   24
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_1_MSB   31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_ALT_TX_PWR_1_MASK  0x00000000ff000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_AGGREGATION_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_AGGREGATION_LSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_AGGREGATION_MSB    32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_AGGREGATION_MASK   0x0000000100000000
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_BSS_COLOR_ID_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_BSS_COLOR_ID_LSB 33
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_BSS_COLOR_ID_MSB 38
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_BSS_COLOR_ID_MASK 0x0000007e00000000
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SPATIAL_REUSE_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SPATIAL_REUSE_LSB 39
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SPATIAL_REUSE_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SPATIAL_REUSE_MASK 0x0000078000000000
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CP_LTF_SIZE_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CP_LTF_SIZE_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CP_LTF_SIZE_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CP_LTF_SIZE_MASK 0x0000180000000000
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DCM_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DCM_LSB    45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DCM_MSB    45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DCM_MASK   0x0000200000000000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DOPPLER_INDICATION_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DOPPLER_INDICATION_LSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DOPPLER_INDICATION_MSB 46
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DOPPLER_INDICATION_MASK 0x0000400000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SU_EXTENDED_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SU_EXTENDED_LSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SU_EXTENDED_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_SU_EXTENDED_MASK 0x0000800000000000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_MIN_PACKET_EXTENSION_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_MIN_PACKET_EXTENSION_MSB 49
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0003000000000000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_NSS_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_NSS_LSB 50
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_NSS_MSB 52
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_NSS_MASK 0x001c000000000000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CONTENT_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CONTENT_LSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CONTENT_MSB 53
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CONTENT_MASK 0x0020000000000000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_LTF_SIZE_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_LTF_SIZE_LSB 54
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_LTF_SIZE_MSB 55
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_LTF_SIZE_MASK 0x00c0000000000000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CHAIN_CSD_EN_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CHAIN_CSD_EN_LSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CHAIN_CSD_EN_MSB 56
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_CHAIN_CSD_EN_MASK 0x0100000000000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CHAIN_CSD_EN_LSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CHAIN_CSD_EN_MSB 57
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0200000000000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DL_UL_FLAG_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DL_UL_FLAG_LSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DL_UL_FLAG_MSB 58
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_DL_UL_FLAG_MASK 0x0400000000000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_4A_OFFSET 0x00000000000000a8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_4A_LSB    59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_4A_MSB    63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_4A_MASK   0xf800000000000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_START_INDEX_LSB 0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_START_INDEX_MSB 3
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_START_INDEX_MASK 0x000000000000000f
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_SIZE_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_SIZE_LSB 4
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_SIZE_MSB 7
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11AX_EXT_RU_SIZE_MASK 0x00000000000000f0
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_EHT_DUPLICATE_MODE_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_EHT_DUPLICATE_MODE_LSB 8
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_EHT_DUPLICATE_MODE_MSB 9
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_EHT_DUPLICATE_MODE_MASK 0x0000000000000300
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_DCM_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_DCM_LSB    10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_DCM_MSB    10
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_DCM_MASK   0x0000000000000400
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_0_MCS_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_0_MCS_LSB  11
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_0_MCS_MSB  13
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_HE_SIGB_0_MCS_MASK 0x0000000000003800
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NUM_HE_SIGB_SYM_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NUM_HE_SIGB_SYM_LSB 14
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NUM_HE_SIGB_SYM_MSB 18
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_NUM_HE_SIGB_SYM_MASK 0x000000000007c000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_SOURCE_LSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_SOURCE_MSB 19
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0000000000080000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_5A_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_5A_LSB    20
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_5A_MSB    25
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_RESERVED_5A_MASK   0x0000000003f00000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x00000000fc000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 32
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 41
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x000003ff00000000
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 42
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000040000000000
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 43
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000080000000000
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 44
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000100000000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 45
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 47
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x0000e00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_LSB 48
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_MSB 59
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_REQUIRED_RESPONSE_TIME_MASK 0x0fff000000000000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x00000000000000b0
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11BE_PARAMS_PLACEHOLDER_LSB 60
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11BE_PARAMS_PLACEHOLDER_MSB 63
+#define PCU_PPDU_SETUP_INIT_RESPONSE_TO_RESPONSE_RATE_INFO_BW320_DOT11BE_PARAMS_PLACEHOLDER_MASK 0xf000000000000000
+
+
+/* Description		R2R_HW_RESPONSE_TX_DURATION
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			The amount of time the transmission of the HW response to
+			 response will take (in us)
+			
+			Used for coex as well as e.g. for sync MLO to align R2R 
+			times on the medium across multiple channels
+			
+			This field also represents the 'alt_hw_response_tx_duration'. 
+			Note that this implies that no different duration can be
+			 programmed for the default and alt setting. SW should program
+			 the worst case value in the RXPCU table in case they are
+			 different.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_HW_RESPONSE_TX_DURATION_OFFSET                      0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_HW_RESPONSE_TX_DURATION_LSB                         0
+#define PCU_PPDU_SETUP_INIT_R2R_HW_RESPONSE_TX_DURATION_MSB                         15
+#define PCU_PPDU_SETUP_INIT_R2R_HW_RESPONSE_TX_DURATION_MASK                        0x000000000000ffff
+
+
+/* Description		R2R_RX_DURATION_FIELD
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			The duration field assumed to have been received in the 
+			response frame and what will be used in the duration field
+			 calculation for the response_to_response_Frame
+			
+			PDG uses this field to calculate what the duration field
+			 value should be in the response frame.
+			This is returned to the TXPCU
+			
+			Note that if PDG has protection in place to wrap around... 
+			I the actual transmit time is larger then the value programmed
+			 here, PDG HW will set the duration field in the response
+			 to response frame to zero.
+			
+			This field is used in 11ah mode as well
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_RX_DURATION_FIELD_OFFSET                            0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_RX_DURATION_FIELD_LSB                               16
+#define PCU_PPDU_SETUP_INIT_R2R_RX_DURATION_FIELD_MSB                               31
+#define PCU_PPDU_SETUP_INIT_R2R_RX_DURATION_FIELD_MASK                              0x00000000ffff0000
+
+
+/* Description		R2R_GROUP_ID
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			Specifies the Group ID to be used in the response to  response
+			 frame.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_GROUP_ID_OFFSET                                     0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_GROUP_ID_LSB                                        32
+#define PCU_PPDU_SETUP_INIT_R2R_GROUP_ID_MSB                                        37
+#define PCU_PPDU_SETUP_INIT_R2R_GROUP_ID_MASK                                       0x0000003f00000000
+
+
+/* Description		R2R_RESPONSE_FRAME_TYPE
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			Response_frame_type to be indicated in the PDG_RESPONSE 
+			TLV for the response to response frame.
+			
+			Coex related field
+			<enum 0 Non_11ah_ACK >  
+			<enum 1 Non_11ah_BA >  also used for M-BA
+			<enum 2 Non_11ah_CTS > 
+			<enum 3 AH_NDP_CTS> 
+			<enum 4 AH_NDP_ACK>
+			<enum 5 AH_NDP_BA>
+			<enum 6 AH_NDP_MOD_ACK>
+			<enum 7 AH_Normal_ACK>
+			<enum 8 AH_Normal_BA>
+			<enum 9  RTT_ACK>
+			<enum 10 CBF_RESPONSE>
+			<enum 11 MBA> This can be a multi STA BA or multi TID BA
+			
+			<enum 12 Ranging_NDP>
+			<enum 13 LMR_RESPONSE> NDP followed by LMR response for 
+			Rx ranging NDPA followed by NDP
+			
+			<legal 0-12>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_RESPONSE_FRAME_TYPE_OFFSET                          0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_RESPONSE_FRAME_TYPE_LSB                             38
+#define PCU_PPDU_SETUP_INIT_R2R_RESPONSE_FRAME_TYPE_MSB                             41
+#define PCU_PPDU_SETUP_INIT_R2R_RESPONSE_FRAME_TYPE_MASK                            0x000003c000000000
+
+
+/* Description		R2R_STA_PARTIAL_AID
+
+			Field only valid in case of Response_to_response set to 
+			SU_BA or MU_BA
+			
+			Specifies the partial AID of the response to response frame
+			 in case it is transmitted at VHT rates.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_STA_PARTIAL_AID_OFFSET                              0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_STA_PARTIAL_AID_LSB                                 42
+#define PCU_PPDU_SETUP_INIT_R2R_STA_PARTIAL_AID_MSB                                 52
+#define PCU_PPDU_SETUP_INIT_R2R_STA_PARTIAL_AID_MASK                                0x001ffc0000000000
+
+
+/* Description		USE_ADDRESS_FIELDS_FOR_PROTECTION
+
+			When set, the protection_frame_ad1/ad2 fields are to be 
+			used for RTS/CTS2S frames
+			
+			When set and not disabled through a TXPCU register bit, 
+			the protection_frame_ad2* fields are also copied to the 
+			tx_ad2* fields of the 'EXPECTED_RESPONSE' TLV (i.e. the 
+			expected response Rx AD1) to RXPCU for all frames.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_USE_ADDRESS_FIELDS_FOR_PROTECTION_OFFSET                0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_USE_ADDRESS_FIELDS_FOR_PROTECTION_LSB                   53
+#define PCU_PPDU_SETUP_INIT_USE_ADDRESS_FIELDS_FOR_PROTECTION_MSB                   53
+#define PCU_PPDU_SETUP_INIT_USE_ADDRESS_FIELDS_FOR_PROTECTION_MASK                  0x0020000000000000
+
+
+/* Description		R2R_SET_REQUIRED_RESPONSE_TIME
+
+			Field only valid in case of response to response
+			
+			When set, TXPCU shall copy the R2R_Hw_response_tx_duration
+			 field and pass it on to PDG in field required_response_time
+			 in 'PDG_RESPONSE.'
+			
+			This allows SW to force an R2R time e.g. in case of sync
+			 MLO, making sure that the R2R times on the medium for multiple
+			 links are aligned.
+			 
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_SET_REQUIRED_RESPONSE_TIME_OFFSET                   0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_SET_REQUIRED_RESPONSE_TIME_LSB                      54
+#define PCU_PPDU_SETUP_INIT_R2R_SET_REQUIRED_RESPONSE_TIME_MSB                      54
+#define PCU_PPDU_SETUP_INIT_R2R_SET_REQUIRED_RESPONSE_TIME_MASK                     0x0040000000000000
+
+
+/* Description		RESERVED_29A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESERVED_29A_OFFSET                                     0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_RESERVED_29A_LSB                                        55
+#define PCU_PPDU_SETUP_INIT_RESERVED_29A_MSB                                        57
+#define PCU_PPDU_SETUP_INIT_RESERVED_29A_MASK                                       0x0380000000000000
+
+
+/* Description		R2R_BW20_ACTIVE_CHANNEL
+
+			Field only valid for 20 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_0
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 20 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_ACTIVE_CHANNEL_OFFSET                          0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_ACTIVE_CHANNEL_LSB                             58
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_ACTIVE_CHANNEL_MSB                             60
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_ACTIVE_CHANNEL_MASK                            0x1c00000000000000
+
+
+/* Description		R2R_BW40_ACTIVE_CHANNEL
+
+			Field only valid for 40 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_1
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 40 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_ACTIVE_CHANNEL_OFFSET                          0x00000000000000b8
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_ACTIVE_CHANNEL_LSB                             61
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_ACTIVE_CHANNEL_MSB                             63
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_ACTIVE_CHANNEL_MASK                            0xe000000000000000
+
+
+/* Description		R2R_BW80_ACTIVE_CHANNEL
+
+			Field only valid for 80 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_2
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 80 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_ACTIVE_CHANNEL_OFFSET                          0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_ACTIVE_CHANNEL_LSB                             0
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_ACTIVE_CHANNEL_MSB                             2
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_ACTIVE_CHANNEL_MASK                            0x0000000000000007
+
+
+/* Description		R2R_BW160_ACTIVE_CHANNEL
+
+			Field only valid for 160 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_3
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 160 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_ACTIVE_CHANNEL_OFFSET                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_ACTIVE_CHANNEL_LSB                            3
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_ACTIVE_CHANNEL_MSB                            5
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_ACTIVE_CHANNEL_MASK                           0x0000000000000038
+
+
+/* Description		R2R_BW240_ACTIVE_CHANNEL
+
+			Field only valid for 240 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_4
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 240 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_ACTIVE_CHANNEL_OFFSET                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_ACTIVE_CHANNEL_LSB                            6
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_ACTIVE_CHANNEL_MSB                            8
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_ACTIVE_CHANNEL_MASK                           0x00000000000001c0
+
+
+/* Description		R2R_BW320_ACTIVE_CHANNEL
+
+			Field only valid for 320 BW
+			
+			NOTE: This field is also known as R2R_active_channel_pattern_5
+			 in case punctured transmission is enabled.
+			
+			This field indicates the active frequency band when the 
+			initial trigger frame transmission was in 320 MHz
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_ACTIVE_CHANNEL_OFFSET                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_ACTIVE_CHANNEL_LSB                            9
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_ACTIVE_CHANNEL_MSB                            11
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_ACTIVE_CHANNEL_MASK                           0x0000000000000e00
+
+
+/* Description		R2R_BW20
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 20 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_0 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW20_OFFSET                                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_LSB                                            12
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_MSB                                            14
+#define PCU_PPDU_SETUP_INIT_R2R_BW20_MASK                                           0x0000000000007000
+
+
+/* Description		R2R_BW40
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 40 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_1 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW40_OFFSET                                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_LSB                                            15
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_MSB                                            17
+#define PCU_PPDU_SETUP_INIT_R2R_BW40_MASK                                           0x0000000000038000
+
+
+/* Description		R2R_BW80
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 80 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_2 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW80_OFFSET                                         0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_LSB                                            18
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_MSB                                            20
+#define PCU_PPDU_SETUP_INIT_R2R_BW80_MASK                                           0x00000000001c0000
+
+
+/* Description		R2R_BW160
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 160 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_3 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW160_OFFSET                                        0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_LSB                                           21
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_MSB                                           23
+#define PCU_PPDU_SETUP_INIT_R2R_BW160_MASK                                          0x0000000000e00000
+
+
+/* Description		R2R_BW240
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 240 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_4 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW240_OFFSET                                        0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_LSB                                           24
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_MSB                                           26
+#define PCU_PPDU_SETUP_INIT_R2R_BW240_MASK                                          0x0000000007000000
+
+
+/* Description		R2R_BW320
+
+			The BW for the response to response frame when the initial
+			 trigger frame transmission was in 320 MHz 
+			
+			NOTE: This field is also known as R2R_pattern_5 in case 
+			punctured transmission is enabled.
+			
+			<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 PCU_PPDU_SETUP_INIT_R2R_BW320_OFFSET                                        0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_LSB                                           27
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_MSB                                           29
+#define PCU_PPDU_SETUP_INIT_R2R_BW320_MASK                                          0x0000000038000000
+
+
+/* Description		RESERVED_30A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESERVED_30A_OFFSET                                     0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_RESERVED_30A_LSB                                        30
+#define PCU_PPDU_SETUP_INIT_RESERVED_30A_MSB                                        31
+#define PCU_PPDU_SETUP_INIT_RESERVED_30A_MASK                                       0x00000000c0000000
+
+
+/* Description		MU_RESPONSE_EXPECTED_BITMAP_31_0
+
+			Field only valid in case of MU transmission and a response
+			 from other or more then just user0 is expected.
+			
+			Note that this implies that for all legacy SU exchanges, 
+			or legacy MU-MIMO where only user 0 can get a response, 
+			this field does not need to be programmed by SW. All existing
+			 programming remains backwards compatible.
+			
+			Bit 0 represents user 0
+			Bit 1 represents user 1
+			...
+			When set, a response from this user is expected, and TXPCU
+			 shall generate the 'tx_fes_status_user_response' TLV for
+			 this user
+			
+			Note that the number of bits set in bitmap fields 0 - 36
+			 (including next field), shall always be equal or greater
+			 then the number indicated in field: Required_UL_MU_resp_user_count
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_31_0_OFFSET                 0x00000000000000c0
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_31_0_LSB                    32
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_31_0_MSB                    63
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_31_0_MASK                   0xffffffff00000000
+
+
+/* Description		MU_RESPONSE_EXPECTED_BITMAP_36_32
+
+			Field only valid in case of MU transmission and a response
+			 from other or more then just user0 is expected.
+			
+			Note that this implies that for all legacy SU exchanges, 
+			or legacy MU-MIMO where only user 0 can get a response, 
+			this field does not need to be programmed by SW. All existing
+			 programming remains backwards compatible.
+			
+			Bit 0 represents user 32
+			Bit 1 represents user 33
+			...
+			When set, a response from this user is expected, and TXPCU
+			 shall generate the 'tx_fes_status_user_response' TLV for
+			 this user
+			
+			Note that the number of bits set in bitmap fields 0 - 36
+			 (including previous field), shall always be equal or greater
+			 then the number indicated in field: Required_UL_MU_resp_user_count
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_36_32_OFFSET                0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_36_32_LSB                   0
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_36_32_MSB                   4
+#define PCU_PPDU_SETUP_INIT_MU_RESPONSE_EXPECTED_BITMAP_36_32_MASK                  0x000000000000001f
+
+
+/* Description		MU_EXPECTED_RESPONSE_CBF_COUNT
+
+			Field only valid when Response_type == MU_CBF_expected
+			
+			The number of STAs that are expected to send a CBF back
+			
+			Note that the actual amount could be smaller....
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_CBF_COUNT_OFFSET                   0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_CBF_COUNT_LSB                      5
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_CBF_COUNT_MSB                      10
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_CBF_COUNT_MASK                     0x00000000000007e0
+
+
+/* Description		MU_EXPECTED_RESPONSE_STA_COUNT
+
+			SW shall program this field if the number of STAs that are
+			 expected to send something (ACK, DATA, BA, CBF, etc...) 
+			back is 2 or larger..
+			
+			The number of STAs that are expected to send a response 
+			back.
+			
+			Note that the actual amount could be smaller....
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_STA_COUNT_OFFSET                   0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_STA_COUNT_LSB                      11
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_STA_COUNT_MSB                      16
+#define PCU_PPDU_SETUP_INIT_MU_EXPECTED_RESPONSE_STA_COUNT_MASK                     0x000000000001f800
+
+
+/* Description		TRANSMIT_INCLUDES_MULTIDESTINATION
+
+			Used by TXPCU
+			
+			When set, the MD (Multi Destination) feature is used for
+			 this transmission. Either for real multi destination STA
+			 transmissions or Multi TID transmissions.
+			
+			Used by TXPCU to know when it can start pre-fetching data
+			 in order to do BW constrained frame drops.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_TRANSMIT_INCLUDES_MULTIDESTINATION_OFFSET               0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_TRANSMIT_INCLUDES_MULTIDESTINATION_LSB                  17
+#define PCU_PPDU_SETUP_INIT_TRANSMIT_INCLUDES_MULTIDESTINATION_MSB                  17
+#define PCU_PPDU_SETUP_INIT_TRANSMIT_INCLUDES_MULTIDESTINATION_MASK                 0x0000000000020000
+
+
+/* Description		INSERT_PREV_TX_START_TIMING_INFO
+
+			When set, TXPCU will insert the value in TXPCU register "prev_phy_tx_start_transmit_time" 
+			in the transmit frame at the byte location indicated by 
+			field tx_start_transmit_time_byte_offset
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_PREV_TX_START_TIMING_INFO_OFFSET                 0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_INSERT_PREV_TX_START_TIMING_INFO_LSB                    18
+#define PCU_PPDU_SETUP_INIT_INSERT_PREV_TX_START_TIMING_INFO_MSB                    18
+#define PCU_PPDU_SETUP_INIT_INSERT_PREV_TX_START_TIMING_INFO_MASK                   0x0000000000040000
+
+
+/* Description		INSERT_CURRENT_TX_START_TIMING_INFO
+
+			When set, TXPCU will insert the value in TXPCU register "current_phy_tx_start_transmit_time" 
+			in the transmit frame at the byte location indicated by 
+			field tx_start_transmit_time_byte_offset
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_INSERT_CURRENT_TX_START_TIMING_INFO_OFFSET              0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_INSERT_CURRENT_TX_START_TIMING_INFO_LSB                 19
+#define PCU_PPDU_SETUP_INIT_INSERT_CURRENT_TX_START_TIMING_INFO_MSB                 19
+#define PCU_PPDU_SETUP_INIT_INSERT_CURRENT_TX_START_TIMING_INFO_MASK                0x0000000000080000
+
+
+/* Description		TX_START_TRANSMIT_TIME_BYTE_OFFSET
+
+			Field only valid when insert_prev_tx_start_timing_info or
+			 insert_current_tx_start_timing_info is set.
+			Start byte offset where the 'start_time' needs to be overwritten
+			 in the frame
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_TX_START_TRANSMIT_TIME_BYTE_OFFSET_OFFSET               0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_TX_START_TRANSMIT_TIME_BYTE_OFFSET_LSB                  20
+#define PCU_PPDU_SETUP_INIT_TX_START_TRANSMIT_TIME_BYTE_OFFSET_MSB                  31
+#define PCU_PPDU_SETUP_INIT_TX_START_TRANSMIT_TIME_BYTE_OFFSET_MASK                 0x00000000fff00000
+
+
+/* Description		PROTECTION_FRAME_AD1_31_0
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The Least Significant 4 bytes of the Protection Frame MAC
+			 Address AD1
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_31_0_OFFSET                        0x00000000000000c8
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_31_0_LSB                           32
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_31_0_MSB                           63
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_31_0_MASK                          0xffffffff00000000
+
+
+/* Description		PROTECTION_FRAME_AD1_47_32
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The 2 most significant bytes of the Protection Frame MAC
+			 Address AD1
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_47_32_OFFSET                       0x00000000000000d0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_47_32_LSB                          0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_47_32_MSB                          15
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD1_47_32_MASK                         0x000000000000ffff
+
+
+/* Description		PROTECTION_FRAME_AD2_15_0
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The Least Significant 2 bytes of the MAC Address AD2
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_15_0_OFFSET                        0x00000000000000d0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_15_0_LSB                           16
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_15_0_MSB                           31
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_15_0_MASK                          0x00000000ffff0000
+
+
+/* Description		PROTECTION_FRAME_AD2_47_16
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The 4 most significant bytes of the MAC Address AD2
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_47_16_OFFSET                       0x00000000000000d0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_47_16_LSB                          32
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_47_16_MSB                          63
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD2_47_16_MASK                         0xffffffff00000000
+
+
+/* Description		DYNAMIC_MEDIUM_PROT_THRESHOLD
+
+			Threshold to enable the dynamic medium protection feature
+			 in terms of PPDU duration in us or PSDU length in bytes
+			
+			
+			This is set to zero to disable the dynamic medium protection
+			 feature.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_THRESHOLD_OFFSET                    0x00000000000000d8
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_THRESHOLD_LSB                       0
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_THRESHOLD_MSB                       23
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_THRESHOLD_MASK                      0x0000000000ffffff
+
+
+/* Description		DYNAMIC_MEDIUM_PROT_TYPE
+
+			<enum 0 dyn_medium_prot_byte> dynamic_medium_prot_threshold
+			 indicates PSDU length in bytes.
+			<enum 1 dyn_medium_prot_us>
+			dynamic_medium_prot_threshold indicates PPDU duration in
+			 us.
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_TYPE_OFFSET                         0x00000000000000d8
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_TYPE_LSB                            24
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_TYPE_MSB                            24
+#define PCU_PPDU_SETUP_INIT_DYNAMIC_MEDIUM_PROT_TYPE_MASK                           0x0000000001000000
+
+
+/* Description		RESERVED_54A
+
+			<legal 0>
+*/
+
+#define PCU_PPDU_SETUP_INIT_RESERVED_54A_OFFSET                                     0x00000000000000d8
+#define PCU_PPDU_SETUP_INIT_RESERVED_54A_LSB                                        25
+#define PCU_PPDU_SETUP_INIT_RESERVED_54A_MSB                                        31
+#define PCU_PPDU_SETUP_INIT_RESERVED_54A_MASK                                       0x00000000fe000000
+
+
+/* Description		PROTECTION_FRAME_AD3_31_0
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The least significant 4 bytes of the Protection Frame MAC
+			 Address AD3
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_31_0_OFFSET                        0x00000000000000d8
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_31_0_LSB                           32
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_31_0_MSB                           63
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_31_0_MASK                          0xffffffff00000000
+
+
+/* Description		PROTECTION_FRAME_AD3_47_32
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The 2 most significant bytes of the Protection Frame MAC
+			 Address AD3
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_47_32_OFFSET                       0x00000000000000e0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_47_32_LSB                          0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_47_32_MSB                          15
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD3_47_32_MASK                         0x000000000000ffff
+
+
+/* Description		PROTECTION_FRAME_AD4_15_0
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The least significant 2 bytes of the Protection Frame MAC
+			 Address AD4
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_15_0_OFFSET                        0x00000000000000e0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_15_0_LSB                           16
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_15_0_MSB                           31
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_15_0_MASK                          0x00000000ffff0000
+
+
+/* Description		PROTECTION_FRAME_AD4_47_16
+
+			Field only valid when use_address_fields_for_protection 
+			is set
+			
+			The 4 most significant bytes of the Protection Frame MAC
+			 Address AD4
+			<legal all>
+*/
+
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_47_16_OFFSET                       0x00000000000000e0
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_47_16_LSB                          32
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_47_16_MSB                          63
+#define PCU_PPDU_SETUP_INIT_PROTECTION_FRAME_AD4_47_16_MASK                         0xffffffff00000000
+
+
+
+#endif   // PCU_PPDU_SETUP_INIT
diff --git a/hw/qca5332/pdg_response.h b/hw/qca5332/pdg_response.h
new file mode 100644
index 0000000..f46575b
--- /dev/null
+++ b/hw/qca5332/pdg_response.h
@@ -0,0 +1,1408 @@
+
+/* 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 _PDG_RESPONSE_H_
+#define _PDG_RESPONSE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "pdg_response_rate_setting.h"
+#define NUM_OF_DWORDS_PDG_RESPONSE 12
+
+#define NUM_OF_QWORDS_PDG_RESPONSE 6
+
+
+struct pdg_response {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   pdg_response_rate_setting                                 hw_response_rate_info;
+             uint32_t hw_response_tx_duration                                 : 16, // [15:0]
+                      rx_duration_field                                       : 16; // [31:16]
+             uint32_t punctured_response_transmission                         :  1, // [0:0]
+                      cca_subband_channel_bonding_mask                        : 16, // [16:1]
+                      scrambler_seed_override                                 :  2, // [18:17]
+                      response_density_valid                                  :  1, // [19:19]
+                      response_density                                        :  5, // [24:20]
+                      more_data                                               :  1, // [25:25]
+                      duration_indication                                     :  1, // [26:26]
+                      relayed_frame                                           :  1, // [27:27]
+                      address_indicator                                       :  1, // [28:28]
+                      bandwidth                                               :  3; // [31:29]
+             uint32_t ack_id                                                  : 16, // [15:0]
+                      block_ack_bitmap                                        : 16; // [31:16]
+             uint32_t response_frame_type                                     :  4, // [3:0]
+                      ack_id_ext                                              : 10, // [13:4]
+                      ftm_en                                                  :  1, // [14:14]
+                      group_id                                                :  6, // [20:15]
+                      sta_partial_aid                                         : 11; // [31:21]
+             uint32_t ndp_ba_start_seq_ctrl                                   : 12, // [11:0]
+                      active_channel                                          :  3, // [14:12]
+                      txop_duration_all_ones                                  :  1, // [15:15]
+                      frame_length                                            : 16; // [31:16]
+#else
+             struct   pdg_response_rate_setting                                 hw_response_rate_info;
+             uint32_t rx_duration_field                                       : 16, // [31:16]
+                      hw_response_tx_duration                                 : 16; // [15:0]
+             uint32_t bandwidth                                               :  3, // [31:29]
+                      address_indicator                                       :  1, // [28:28]
+                      relayed_frame                                           :  1, // [27:27]
+                      duration_indication                                     :  1, // [26:26]
+                      more_data                                               :  1, // [25:25]
+                      response_density                                        :  5, // [24:20]
+                      response_density_valid                                  :  1, // [19:19]
+                      scrambler_seed_override                                 :  2, // [18:17]
+                      cca_subband_channel_bonding_mask                        : 16, // [16:1]
+                      punctured_response_transmission                         :  1; // [0:0]
+             uint32_t block_ack_bitmap                                        : 16, // [31:16]
+                      ack_id                                                  : 16; // [15:0]
+             uint32_t sta_partial_aid                                         : 11, // [31:21]
+                      group_id                                                :  6, // [20:15]
+                      ftm_en                                                  :  1, // [14:14]
+                      ack_id_ext                                              : 10, // [13:4]
+                      response_frame_type                                     :  4; // [3:0]
+             uint32_t frame_length                                            : 16, // [31:16]
+                      txop_duration_all_ones                                  :  1, // [15:15]
+                      active_channel                                          :  3, // [14:12]
+                      ndp_ba_start_seq_ctrl                                   : 12; // [11:0]
+#endif
+};
+
+
+/* Description		HW_RESPONSE_RATE_INFO
+
+			All transmit rate related parameters
+*/
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_OFFSET                       0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_LSB                          0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MSB                          0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MASK                         0x0000000000000001
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_OFFSET            0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_LSB               1
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MSB               24
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MASK              0x0000000001fffffe
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_OFFSET                          0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_LSB                             25
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MSB                             28
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MASK                            0x000000001e000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_OFFSET                         0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_LSB                            29
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MSB                            29
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MASK                           0x0000000020000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_OFFSET                              0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_LSB                                 30
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MSB                                 30
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MASK                                0x0000000040000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_OFFSET                              0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_LSB                                 31
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MSB                                 31
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MASK                                0x0000000080000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_OFFSET                        0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_LSB                           32
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MSB                           39
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MASK                          0x000000ff00000000
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_OFFSET                    0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_LSB                       40
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MSB                       47
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MASK                      0x0000ff0000000000
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_OFFSET                           0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_LSB                              48
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MSB                              50
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MASK                             0x0007000000000000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_OFFSET                 0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_LSB                    51
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MSB                    58
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MASK                   0x07f8000000000000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_OFFSET                            0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_LSB                               59
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MSB                               61
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MASK                              0x3800000000000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_OFFSET                 0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_LSB                    62
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MSB                    62
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MASK                   0x4000000000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_OFFSET                0x0000000000000000
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_LSB                   63
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MSB                   63
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MASK                  0x8000000000000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_OFFSET                      0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_LSB                         0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MSB                         3
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MASK                        0x000000000000000f
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_OFFSET                               0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_LSB                                  4
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MSB                                  6
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MASK                                 0x0000000000000070
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_OFFSET                        0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_LSB                           7
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MSB                           7
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MASK                          0x0000000000000080
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_OFFSET                            0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_LSB                               8
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MSB                               15
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MASK                              0x000000000000ff00
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_OFFSET                        0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_LSB                           16
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MSB                           23
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MASK                          0x0000000000ff0000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_OFFSET                     0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_LSB                        24
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MSB                        31
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MASK                       0x00000000ff000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_OFFSET                       0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_LSB                          32
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MSB                          39
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MASK                         0x000000ff00000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_OFFSET                               0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_LSB                                  40
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MSB                                  41
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MASK                                 0x0000030000000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_OFFSET                          0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_LSB                             42
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MSB                             45
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MASK                            0x00003c0000000000
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_OFFSET                       0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_LSB                          46
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MSB                          47
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MASK                         0x0000c00000000000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_OFFSET                          0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_LSB                             48
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MSB                             55
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MASK                            0x00ff000000000000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_OFFSET                      0x0000000000000008
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_LSB                         56
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MSB                         63
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MASK                        0xff00000000000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_OFFSET                       0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_LSB                          0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MSB                          0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MASK                         0x0000000000000001
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_OFFSET              0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_LSB                 1
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MSB                 6
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MASK                0x000000000000007e
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_OFFSET             0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_LSB                7
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MSB                10
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MASK               0x0000000000000780
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_OFFSET               0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_LSB                  11
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MSB                  12
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MASK                 0x0000000000001800
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_OFFSET                       0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_LSB                          13
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MSB                          13
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MASK                         0x0000000000002000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_OFFSET        0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_LSB           14
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MSB           14
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MASK          0x0000000000004000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_OFFSET               0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_LSB                  15
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MSB                  15
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MASK                 0x0000000000008000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_OFFSET      0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_LSB         16
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MSB         17
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MASK        0x0000000000030000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_OFFSET                    0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_LSB                       18
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MSB                       20
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MASK                      0x00000000001c0000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_OFFSET                0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_LSB                   21
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MSB                   21
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MASK                  0x0000000000200000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_OFFSET               0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_LSB                  22
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MSB                  23
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MASK                 0x0000000000c00000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_OFFSET              0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_LSB                 24
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MSB                 24
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MASK                0x0000000001000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_OFFSET           0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_LSB              25
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MSB              25
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MASK             0x0000000002000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_OFFSET                0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_LSB                   26
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MSB                   26
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MASK                  0x0000000004000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_OFFSET                       0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_LSB                          27
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MSB                          31
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MASK                         0x00000000f8000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_OFFSET        0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_LSB           32
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MSB           35
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MASK          0x0000000f00000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_OFFSET               0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_LSB                  36
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MSB                  39
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MASK                 0x000000f000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_OFFSET                0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_LSB                   40
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MSB                   41
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MASK                  0x0000030000000000
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_OFFSET                       0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_LSB                          42
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MSB                          42
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MASK                         0x0000040000000000
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_OFFSET                     0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_LSB                        43
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MSB                        45
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MASK                       0x0000380000000000
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_OFFSET                   0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_LSB                      46
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MSB                      50
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MASK                     0x0007c00000000000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET     0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_LSB        51
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MSB        51
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MASK       0x0008000000000000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_OFFSET                       0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_LSB                          52
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MSB                          57
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MASK                         0x03f0000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET   0x0000000000000010
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB      58
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB      63
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK     0xfc00000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB    13
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB    15
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK   0x000000000000e000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_OFFSET            0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_LSB               16
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MSB               27
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MASK              0x000000000fff0000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_OFFSET        0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_LSB           28
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MSB           31
+#define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MASK          0x00000000f0000000
+
+
+/* Description		HW_RESPONSE_TX_DURATION
+
+			The amount of time the transmission of the HW response will
+			 take (in us)
+			
+			Used for coex.....
+			
+			This field also represents the 'alt_hw_response_tx_duration'. 
+			Note that this implies that no different duration can be
+			 programmed for the default and alt setting. SW should program
+			 the worst case value in the RXPCU table in case they are
+			 different.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_OFFSET                                 0x0000000000000018
+#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_LSB                                    32
+#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MSB                                    47
+#define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MASK                                   0x0000ffff00000000
+
+
+/* Description		RX_DURATION_FIELD
+
+			The duration field in the received frame.
+			PDG uses this field to calculate what the duration field
+			 value should be in the response frame.
+			This is returned to the TX PCU
+			
+			This field is used in 11ah mode as well
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RX_DURATION_FIELD_OFFSET                                       0x0000000000000018
+#define PDG_RESPONSE_RX_DURATION_FIELD_LSB                                          48
+#define PDG_RESPONSE_RX_DURATION_FIELD_MSB                                          63
+#define PDG_RESPONSE_RX_DURATION_FIELD_MASK                                         0xffff000000000000
+
+
+/* Description		PUNCTURED_RESPONSE_TRANSMISSION
+
+			When set, this response frame will be transmitted using 
+			a puncture transmit pattern that is indicated in the cca_subband_channel_bonding_mask
+			 field.
+			
+			Typically used in the Response to response transmissions.
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_OFFSET                         0x0000000000000020
+#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_LSB                            0
+#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MSB                            0
+#define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MASK                           0x0000000000000001
+
+
+/* Description		CCA_SUBBAND_CHANNEL_BONDING_MASK
+
+			Field only valid when 'Punctured_response_transmission' 
+			is set
+			
+			Indicates which 20 Mhz channels will be used for the transmission.
+			
+			
+			Bit 0: primary 20 Mhz
+			Bit 1: secondary 20 MHz.
+			Etc.
+			
+			<legal 1-65535>
+*/
+
+#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_OFFSET                        0x0000000000000020
+#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_LSB                           1
+#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MSB                           16
+#define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MASK                          0x000000000001fffe
+
+
+/* Description		SCRAMBLER_SEED_OVERRIDE
+
+			Used in dynamic BW RTS-CTS, BAR -BA, etc. kind of exchanges.
+			
+			
+			0: PDG will use all 7 bits of the scrambler seed.
+			1: PDG will override bits [6:5] of the  scrambler_seed  
+			with BW information. 
+			2: PDG will override bits [6:5] and bit [3] of the  scrambler_seed
+			  with BW information for .11be dynamic BW procedure.
+			
+			<legal 0-2>
+*/
+
+#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_OFFSET                                 0x0000000000000020
+#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_LSB                                    17
+#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MSB                                    18
+#define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MASK                                   0x0000000000060000
+
+
+/* Description		RESPONSE_DENSITY_VALID
+
+			When set, field Response_density has valid info. TXPCU sets
+			 this for multi segment CBF response generation.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_OFFSET                                  0x0000000000000020
+#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_LSB                                     19
+#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MSB                                     19
+#define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MASK                                    0x0000000000080000
+
+
+/* Description		RESPONSE_DENSITY
+
+			Field only valid when Response_density_valid is set.
+			When Response_density_valid is NOT set, this field is set
+			 to 0
+			
+			The MPDU density is required for the response frame (in 
+			us). PDG will translate this value into minimum number of
+			 words per MPDU and give this back to TXPCU in TLV PCU_PPDU_SETUP_USER
+			 field min_mpdu_spacing
+			
+			TXPCU gets this value from a register.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RESPONSE_DENSITY_OFFSET                                        0x0000000000000020
+#define PDG_RESPONSE_RESPONSE_DENSITY_LSB                                           20
+#define PDG_RESPONSE_RESPONSE_DENSITY_MSB                                           24
+#define PDG_RESPONSE_RESPONSE_DENSITY_MASK                                          0x0000000001f00000
+
+
+/* Description		MORE_DATA
+
+			This setting is used for 
+			NDP ACK response frames
+			NDP Modified ACK response frames 
+			The value of this field comes from a register programming. 
+			The register resides in TxPCU and is programmed by SW within
+			 SIFS response time when responding with NDP ACK or NDP 
+			Modified ACK. 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_MORE_DATA_OFFSET                                               0x0000000000000020
+#define PDG_RESPONSE_MORE_DATA_LSB                                                  25
+#define PDG_RESPONSE_MORE_DATA_MSB                                                  25
+#define PDG_RESPONSE_MORE_DATA_MASK                                                 0x0000000002000000
+
+
+/* Description		DURATION_INDICATION
+
+			This setting is used for 
+			NDP ACK response frames 
+			NDP Modified ACK response frames 
+			The value of this field comes from a register programming. 
+			The register resides in TxPCU and is programmed by SW within
+			 SIFS response time when responding with NDP ACK or NDP 
+			Modified ACK.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_DURATION_INDICATION_OFFSET                                     0x0000000000000020
+#define PDG_RESPONSE_DURATION_INDICATION_LSB                                        26
+#define PDG_RESPONSE_DURATION_INDICATION_MSB                                        26
+#define PDG_RESPONSE_DURATION_INDICATION_MASK                                       0x0000000004000000
+
+
+/* Description		RELAYED_FRAME
+
+			This setting is used to fill the field in the SIG preamble
+			 for
+			NDP ACK response frame
+			This feature is not supported and TxPCU should program this
+			 field to Zero. PDG will ignore this field. 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RELAYED_FRAME_OFFSET                                           0x0000000000000020
+#define PDG_RESPONSE_RELAYED_FRAME_LSB                                              27
+#define PDG_RESPONSE_RELAYED_FRAME_MSB                                              27
+#define PDG_RESPONSE_RELAYED_FRAME_MASK                                             0x0000000008000000
+
+
+/* Description		ADDRESS_INDICATOR
+
+			This bit is used to fill the address_indicator field in 
+			the SIG preamble of NDP CTS response frame. 
+			
+			This feature is not supported and TxPCU should program this
+			 field to Zero. PDG will use this field to populate the 
+			NDP response frame
+			<legal all>
+*/
+
+#define PDG_RESPONSE_ADDRESS_INDICATOR_OFFSET                                       0x0000000000000020
+#define PDG_RESPONSE_ADDRESS_INDICATOR_LSB                                          28
+#define PDG_RESPONSE_ADDRESS_INDICATOR_MSB                                          28
+#define PDG_RESPONSE_ADDRESS_INDICATOR_MASK                                         0x0000000010000000
+
+
+/* Description		BANDWIDTH
+
+			Packet 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 PDG_RESPONSE_BANDWIDTH_OFFSET                                               0x0000000000000020
+#define PDG_RESPONSE_BANDWIDTH_LSB                                                  29
+#define PDG_RESPONSE_BANDWIDTH_MSB                                                  31
+#define PDG_RESPONSE_BANDWIDTH_MASK                                                 0x00000000e0000000
+
+
+/* Description		ACK_ID
+
+			ACK_ID in NDP_ACK frames, NDP Modified ACK frames 
+			
+			For BW > 1MHz 
+			      [15:0] = ack_id 
+			
+			For BW = 1MHz 
+			
+			     [8:0] = ack_id 
+			     [15:9] = Reserved 
+			For NDP BA
+			If BW=1MHz
+			     [1:0] = Block ACK ID
+			     [15:2] = Reserved 
+			
+			If BW>1MHz 
+			     [5:0] = Block ACK ID
+			     [15:2] = Reserved
+			<legal all>
+*/
+
+#define PDG_RESPONSE_ACK_ID_OFFSET                                                  0x0000000000000020
+#define PDG_RESPONSE_ACK_ID_LSB                                                     32
+#define PDG_RESPONSE_ACK_ID_MSB                                                     47
+#define PDG_RESPONSE_ACK_ID_MASK                                                    0x0000ffff00000000
+
+
+/* Description		BLOCK_ACK_BITMAP
+
+			Block Ack bitmap field for generating the NDP BA frames 
+			in 1MHz and >= 2MHz 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_BLOCK_ACK_BITMAP_OFFSET                                        0x0000000000000020
+#define PDG_RESPONSE_BLOCK_ACK_BITMAP_LSB                                           48
+#define PDG_RESPONSE_BLOCK_ACK_BITMAP_MSB                                           63
+#define PDG_RESPONSE_BLOCK_ACK_BITMAP_MASK                                          0xffff000000000000
+
+
+/* Description		RESPONSE_FRAME_TYPE
+
+			Coex related field
+			<enum 0 Non_11ah_ACK >  
+			<enum 1 Non_11ah_BA >  also used for M-BA
+			<enum 2 Non_11ah_CTS > 
+			<enum 3 AH_NDP_CTS> 
+			<enum 4 AH_NDP_ACK>
+			<enum 5 AH_NDP_BA>
+			<enum 6 AH_NDP_MOD_ACK>
+			<enum 7 AH_Normal_ACK>
+			<enum 8 AH_Normal_BA>
+			<enum 9  RTT_ACK>
+			<enum 10 CBF_RESPONSE>
+			<enum 11 MBA> This can be a multi STA BA or multi TID BA
+			
+			<enum 12 Ranging_NDP>
+			<enum 13 LMR_RESPONSE> Ranging NDP response followed by 
+			LMR response for Rx ranging NDPA followed by NDP
+			
+			<legal 0-13>
+*/
+
+#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_OFFSET                                     0x0000000000000028
+#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_LSB                                        0
+#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MSB                                        3
+#define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MASK                                       0x000000000000000f
+
+
+/* Description		ACK_ID_EXT
+
+			This is populated by TxPCU from the RX_RESPONSE_REQUIRED_INFO.ack_id_ext. 
+			
+*/
+
+#define PDG_RESPONSE_ACK_ID_EXT_OFFSET                                              0x0000000000000028
+#define PDG_RESPONSE_ACK_ID_EXT_LSB                                                 4
+#define PDG_RESPONSE_ACK_ID_EXT_MSB                                                 13
+#define PDG_RESPONSE_ACK_ID_EXT_MASK                                                0x0000000000003ff0
+
+
+/* Description		FTM_EN
+
+			This field is set to 1 if the response packet is either 
+			an FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az).
+			
+			
+			0: non-FTM frame
+			1: FTM or HE-Randing NDP Frame
+			<legal all>
+*/
+
+#define PDG_RESPONSE_FTM_EN_OFFSET                                                  0x0000000000000028
+#define PDG_RESPONSE_FTM_EN_LSB                                                     14
+#define PDG_RESPONSE_FTM_EN_MSB                                                     14
+#define PDG_RESPONSE_FTM_EN_MASK                                                    0x0000000000004000
+
+
+/* Description		GROUP_ID
+
+			Specifies the Group ID of response frames transmitted at
+			 VHT rates for MU transmissions. This filed applies to both
+			 non-11ah and 11ah modes.
+*/
+
+#define PDG_RESPONSE_GROUP_ID_OFFSET                                                0x0000000000000028
+#define PDG_RESPONSE_GROUP_ID_LSB                                                   15
+#define PDG_RESPONSE_GROUP_ID_MSB                                                   20
+#define PDG_RESPONSE_GROUP_ID_MASK                                                  0x00000000001f8000
+
+
+/* Description		STA_PARTIAL_AID
+
+			In 11AH mode of Operation:
+			
+			This field is used to populate the ID field in the SIG PPDUs
+			 of BW>1MHz and non-NDP frames.  For example, the use case
+			 would be in a Speed Frame Exchange, we may be generating
+			 the SIG PPDU in response and this field is needed to populate
+			 the ID field in the SIGA preamble . This value is based
+			 on the Table provided by 9.17b section of the Draft P802.11ah_D1.1
+			 Specification
+			
+			In 11AH mode of Operation: 
+			
+			This field is also used to populate the field of RA/Parial_BSSID
+			 in the NDP CTS response frames In non-11AH mode:
+			
+			In non-11AH mode of Operation:
+			
+			Specifies the partial AID of response frames transmitted
+			 at VHT rates.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_STA_PARTIAL_AID_OFFSET                                         0x0000000000000028
+#define PDG_RESPONSE_STA_PARTIAL_AID_LSB                                            21
+#define PDG_RESPONSE_STA_PARTIAL_AID_MSB                                            31
+#define PDG_RESPONSE_STA_PARTIAL_AID_MASK                                           0x00000000ffe00000
+
+
+/* Description		NDP_BA_START_SEQ_CTRL
+
+			Starting Sequence Control  - Sequence number of the first
+			 MPDU in the frame soliciting the Block Ack. 
+*/
+
+#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_OFFSET                                   0x0000000000000028
+#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_LSB                                      32
+#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MSB                                      43
+#define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MASK                                     0x00000fff00000000
+
+
+/* Description		ACTIVE_CHANNEL
+
+			This field indicates the active frequency band when the 
+			packet bandwidth is less than the channel bandwidth. For
+			 non 11ax packets this is same as the primary channel
+			<legal all>
+*/
+
+#define PDG_RESPONSE_ACTIVE_CHANNEL_OFFSET                                          0x0000000000000028
+#define PDG_RESPONSE_ACTIVE_CHANNEL_LSB                                             44
+#define PDG_RESPONSE_ACTIVE_CHANNEL_MSB                                             46
+#define PDG_RESPONSE_ACTIVE_CHANNEL_MASK                                            0x0000700000000000
+
+
+/* Description		TXOP_DURATION_ALL_ONES
+
+			When set, either the TXOP_DURATION of the received frame
+			 was set to all 1s or there is a BSS color collision. The
+			 TXOP_DURATION of the transmit response should be forced
+			 to all 1s.
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_OFFSET                                  0x0000000000000028
+#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_LSB                                     47
+#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MSB                                     47
+#define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MASK                                    0x0000800000000000
+
+
+/* Description		FRAME_LENGTH
+
+			The response frame length in bytes
+			(This includes the FCS field)
+			<legal all>
+*/
+
+#define PDG_RESPONSE_FRAME_LENGTH_OFFSET                                            0x0000000000000028
+#define PDG_RESPONSE_FRAME_LENGTH_LSB                                               48
+#define PDG_RESPONSE_FRAME_LENGTH_MSB                                               63
+#define PDG_RESPONSE_FRAME_LENGTH_MASK                                              0xffff000000000000
+
+
+
+#endif   // PDG_RESPONSE
diff --git a/hw/qca5332/pdg_response_rate_setting.h b/hw/qca5332/pdg_response_rate_setting.h
new file mode 100644
index 0000000..20c044b
--- /dev/null
+++ b/hw/qca5332/pdg_response_rate_setting.h
@@ -0,0 +1,1042 @@
+
+/* 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 _PDG_RESPONSE_RATE_SETTING_H_
+#define _PDG_RESPONSE_RATE_SETTING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "mlo_sta_id_details.h"
+#define NUM_OF_DWORDS_PDG_RESPONSE_RATE_SETTING 7
+
+
+struct pdg_response_rate_setting {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reserved_0a                                             :  1, // [0:0]
+                      tx_antenna_sector_ctrl                                  : 24, // [24:1]
+                      pkt_type                                                :  4, // [28:25]
+                      smoothing                                               :  1, // [29:29]
+                      ldpc                                                    :  1, // [30:30]
+                      stbc                                                    :  1; // [31:31]
+             uint32_t alt_tx_pwr                                              :  8, // [7:0]
+                      alt_min_tx_pwr                                          :  8, // [15:8]
+                      alt_nss                                                 :  3, // [18:16]
+                      alt_tx_chain_mask                                       :  8, // [26:19]
+                      alt_bw                                                  :  3, // [29:27]
+                      stf_ltf_3db_boost                                       :  1, // [30:30]
+                      force_extra_symbol                                      :  1; // [31:31]
+             uint32_t alt_rate_mcs                                            :  4, // [3:0]
+                      nss                                                     :  3, // [6:4]
+                      dpd_enable                                              :  1, // [7:7]
+                      tx_pwr                                                  :  8, // [15:8]
+                      min_tx_pwr                                              :  8, // [23:16]
+                      tx_chain_mask                                           :  8; // [31:24]
+             uint32_t reserved_3a                                             :  8, // [7:0]
+                      sgi                                                     :  2, // [9:8]
+                      rate_mcs                                                :  4, // [13:10]
+                      reserved_3b                                             :  2, // [15:14]
+                      tx_pwr_1                                                :  8, // [23:16]
+                      alt_tx_pwr_1                                            :  8; // [31:24]
+             uint32_t aggregation                                             :  1, // [0:0]
+                      dot11ax_bss_color_id                                    :  6, // [6:1]
+                      dot11ax_spatial_reuse                                   :  4, // [10:7]
+                      dot11ax_cp_ltf_size                                     :  2, // [12:11]
+                      dot11ax_dcm                                             :  1, // [13:13]
+                      dot11ax_doppler_indication                              :  1, // [14:14]
+                      dot11ax_su_extended                                     :  1, // [15:15]
+                      dot11ax_min_packet_extension                            :  2, // [17:16]
+                      dot11ax_pe_nss                                          :  3, // [20:18]
+                      dot11ax_pe_content                                      :  1, // [21:21]
+                      dot11ax_pe_ltf_size                                     :  2, // [23:22]
+                      dot11ax_chain_csd_en                                    :  1, // [24:24]
+                      dot11ax_pe_chain_csd_en                                 :  1, // [25:25]
+                      dot11ax_dl_ul_flag                                      :  1, // [26:26]
+                      reserved_4a                                             :  5; // [31:27]
+             uint32_t dot11ax_ext_ru_start_index                              :  4, // [3:0]
+                      dot11ax_ext_ru_size                                     :  4, // [7:4]
+                      eht_duplicate_mode                                      :  2, // [9:8]
+                      he_sigb_dcm                                             :  1, // [10:10]
+                      he_sigb_0_mcs                                           :  3, // [13:11]
+                      num_he_sigb_sym                                         :  5, // [18:14]
+                      required_response_time_source                           :  1, // [19:19]
+                      reserved_5a                                             :  6, // [25:20]
+                      u_sig_puncture_pattern_encoding                         :  6; // [31:26]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint16_t required_response_time                                  : 12, // [27:16]
+                      dot11be_params_placeholder                              :  4; // [31:28]
+#else
+             uint32_t stbc                                                    :  1, // [31:31]
+                      ldpc                                                    :  1, // [30:30]
+                      smoothing                                               :  1, // [29:29]
+                      pkt_type                                                :  4, // [28:25]
+                      tx_antenna_sector_ctrl                                  : 24, // [24:1]
+                      reserved_0a                                             :  1; // [0:0]
+             uint32_t force_extra_symbol                                      :  1, // [31:31]
+                      stf_ltf_3db_boost                                       :  1, // [30:30]
+                      alt_bw                                                  :  3, // [29:27]
+                      alt_tx_chain_mask                                       :  8, // [26:19]
+                      alt_nss                                                 :  3, // [18:16]
+                      alt_min_tx_pwr                                          :  8, // [15:8]
+                      alt_tx_pwr                                              :  8; // [7:0]
+             uint32_t tx_chain_mask                                           :  8, // [31:24]
+                      min_tx_pwr                                              :  8, // [23:16]
+                      tx_pwr                                                  :  8, // [15:8]
+                      dpd_enable                                              :  1, // [7:7]
+                      nss                                                     :  3, // [6:4]
+                      alt_rate_mcs                                            :  4; // [3:0]
+             uint32_t alt_tx_pwr_1                                            :  8, // [31:24]
+                      tx_pwr_1                                                :  8, // [23:16]
+                      reserved_3b                                             :  2, // [15:14]
+                      rate_mcs                                                :  4, // [13:10]
+                      sgi                                                     :  2, // [9:8]
+                      reserved_3a                                             :  8; // [7:0]
+             uint32_t reserved_4a                                             :  5, // [31:27]
+                      dot11ax_dl_ul_flag                                      :  1, // [26:26]
+                      dot11ax_pe_chain_csd_en                                 :  1, // [25:25]
+                      dot11ax_chain_csd_en                                    :  1, // [24:24]
+                      dot11ax_pe_ltf_size                                     :  2, // [23:22]
+                      dot11ax_pe_content                                      :  1, // [21:21]
+                      dot11ax_pe_nss                                          :  3, // [20:18]
+                      dot11ax_min_packet_extension                            :  2, // [17:16]
+                      dot11ax_su_extended                                     :  1, // [15:15]
+                      dot11ax_doppler_indication                              :  1, // [14:14]
+                      dot11ax_dcm                                             :  1, // [13:13]
+                      dot11ax_cp_ltf_size                                     :  2, // [12:11]
+                      dot11ax_spatial_reuse                                   :  4, // [10:7]
+                      dot11ax_bss_color_id                                    :  6, // [6:1]
+                      aggregation                                             :  1; // [0:0]
+             uint32_t u_sig_puncture_pattern_encoding                         :  6, // [31:26]
+                      reserved_5a                                             :  6, // [25:20]
+                      required_response_time_source                           :  1, // [19:19]
+                      num_he_sigb_sym                                         :  5, // [18:14]
+                      he_sigb_0_mcs                                           :  3, // [13:11]
+                      he_sigb_dcm                                             :  1, // [10:10]
+                      eht_duplicate_mode                                      :  2, // [9:8]
+                      dot11ax_ext_ru_size                                     :  4, // [7:4]
+                      dot11ax_ext_ru_start_index                              :  4; // [3:0]
+             uint32_t dot11be_params_placeholder                              :  4, // [31:28]
+                      required_response_time                                  : 12; // [27:16]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+#endif
+};
+
+
+/* Description		RESERVED_0A
+
+			 
+			<legal 0> 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_OFFSET                                0x00000000
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MASK                                  0x00000001
+
+
+/* Description		TX_ANTENNA_SECTOR_CTRL
+
+			Sectored transmit antenna
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_OFFSET                     0x00000000
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_LSB                        1
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MSB                        24
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MASK                       0x01fffffe
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_OFFSET                                   0x00000000
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_LSB                                      25
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MSB                                      28
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MASK                                     0x1e000000
+
+
+/* Description		SMOOTHING
+
+			This field is used by PDG to populate the SMOOTHING filed
+			 in the SIG Preamble of the PPDU
+			<legal 0-1>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_OFFSET                                  0x00000000
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_LSB                                     29
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MSB                                     29
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MASK                                    0x20000000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_LDPC_OFFSET                                       0x00000000
+#define PDG_RESPONSE_RATE_SETTING_LDPC_LSB                                          30
+#define PDG_RESPONSE_RATE_SETTING_LDPC_MSB                                          30
+#define PDG_RESPONSE_RATE_SETTING_LDPC_MASK                                         0x40000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_STBC_OFFSET                                       0x00000000
+#define PDG_RESPONSE_RATE_SETTING_STBC_LSB                                          31
+#define PDG_RESPONSE_RATE_SETTING_STBC_MSB                                          31
+#define PDG_RESPONSE_RATE_SETTING_STBC_MASK                                         0x80000000
+
+
+/* Description		ALT_TX_PWR
+
+			Coex related AlternativeTransmit parameter 
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_OFFSET                                 0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_LSB                                    0
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MASK                                   0x000000ff
+
+
+/* Description		ALT_MIN_TX_PWR
+
+			Coex related Alternative Transmit parameter 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_OFFSET                             0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_LSB                                8
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MSB                                15
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MASK                               0x0000ff00
+
+
+/* Description		ALT_NSS
+
+			Coex related Alternative Transmit parameter
+			
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_OFFSET                                    0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_LSB                                       16
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MSB                                       18
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MASK                                      0x00070000
+
+
+/* Description		ALT_TX_CHAIN_MASK
+
+			Coex related Alternative Transmit parameter
+			
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_OFFSET                          0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_LSB                             19
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MSB                             26
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MASK                            0x07f80000
+
+
+/* Description		ALT_BW
+
+			Coex related Alternative Transmit parameter
+			
+			The BW of the upcoming transmission.
+			
+			<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 PDG_RESPONSE_RATE_SETTING_ALT_BW_OFFSET                                     0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_LSB                                        27
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_MSB                                        29
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_MASK                                       0x38000000
+
+
+/* Description		STF_LTF_3DB_BOOST
+
+			Boost the STF and LTF power by 3dB in 11a/n/ac packets. 
+			This includes both the legacy preambles and the HT/VHT preambles.0: 
+			disable power boost1: enable power boost
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_OFFSET                          0x00000004
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_LSB                             30
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MSB                             30
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MASK                            0x40000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_OFFSET                         0x00000004
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_LSB                            31
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MSB                            31
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MASK                           0x80000000
+
+
+/* Description		ALT_RATE_MCS
+
+			Coex related Alternative Transmit parameter
+			
+			For details, refer to  MCS_TYPE 
+			Note: This is "rate" in case of 11a/11b
+			description
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_OFFSET                               0x00000008
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_LSB                                  0
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MSB                                  3
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MASK                                 0x0000000f
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_NSS_OFFSET                                        0x00000008
+#define PDG_RESPONSE_RATE_SETTING_NSS_LSB                                           4
+#define PDG_RESPONSE_RATE_SETTING_NSS_MSB                                           6
+#define PDG_RESPONSE_RATE_SETTING_NSS_MASK                                          0x00000070
+
+
+/* Description		DPD_ENABLE
+
+			DPD enable control
+			
+			This is needed on a per packet basis
+			<enum 0     dpd_off> DPD profile not applied to current 
+			packet
+			<enum 1     dpd_on> DPD profile applied to current packet
+			 if available
+			<legal 0-1>
+			
+			This field is not applicable in11ah mode of operation and
+			 is ignored by the HW 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_OFFSET                                 0x00000008
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_LSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MASK                                   0x00000080
+
+
+/* Description		TX_PWR
+
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_OFFSET                                     0x00000008
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_LSB                                        8
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_MSB                                        15
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_MASK                                       0x0000ff00
+
+
+/* Description		MIN_TX_PWR
+
+			Coex related field: 
+			
+			Minimum allowed Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_OFFSET                                 0x00000008
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_LSB                                    16
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MSB                                    23
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MASK                                   0x00ff0000
+
+
+/* Description		TX_CHAIN_MASK
+
+			Chain mask to support up to 8 antennas.  
+			<legal 1-255>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_OFFSET                              0x00000008
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_LSB                                 24
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MSB                                 31
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MASK                                0xff000000
+
+
+/* Description		RESERVED_3A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_OFFSET                                0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MSB                                   7
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MASK                                  0x000000ff
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT or VHT.For 11ax see
+			 field Dot11ax_CP_LTF_size
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types. 
+			
+			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
+			
+			
+			<legal 0 - 3>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_SGI_OFFSET                                        0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_SGI_LSB                                           8
+#define PDG_RESPONSE_RATE_SETTING_SGI_MSB                                           9
+#define PDG_RESPONSE_RATE_SETTING_SGI_MASK                                          0x00000300
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_OFFSET                                   0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_LSB                                      10
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MSB                                      13
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MASK                                     0x00003c00
+
+
+/* Description		RESERVED_3B
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_OFFSET                                0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_LSB                                   14
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MSB                                   15
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MASK                                  0x0000c000
+
+
+/* Description		TX_PWR_1
+
+			Default (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_OFFSET                                   0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_LSB                                      16
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MSB                                      23
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MASK                                     0x00ff0000
+
+
+/* Description		ALT_TX_PWR_1
+
+			Alternate (desired) transmit parameter for the second chain
+			
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			
+			Note that there is no Min value for this
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_OFFSET                               0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_LSB                                  24
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MSB                                  31
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MASK                                 0xff000000
+
+
+/* Description		AGGREGATION
+
+			Field only valid in case of pkt_type == 11n
+			
+			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
+			 this setting if the CBF response only contains a single
+			 segment
+			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will 
+			select this setting if the CBF response will contain two
+			 or more segments
+			<legal 0-1>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MASK                                  0x00000001
+
+
+/* Description		DOT11AX_BSS_COLOR_ID
+
+			BSS color of the nextwork to which this STA belongs. 
+			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
+			
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_OFFSET                       0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_LSB                          1
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MSB                          6
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MASK                         0x0000007e
+
+
+/* Description		DOT11AX_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			
+			Spatial re-use
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_OFFSET                      0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_LSB                         7
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MSB                         10
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MASK                        0x00000780
+
+
+/* Description		DOT11AX_CP_LTF_SIZE
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_LSB                           11
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MSB                           12
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MASK                          0x00001800
+
+
+/* Description		DOT11AX_DCM
+
+			field is only valid for pkt_type == 11ax
+			
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_LSB                                   13
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MSB                                   13
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MASK                                  0x00002000
+
+
+/* Description		DOT11AX_DOPPLER_INDICATION
+
+			field is only valid for pkt_type == 11ax
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_OFFSET                 0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_LSB                    14
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MSB                    14
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MASK                   0x00004000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			When set, the 11ax or 11be frame is of the extended range
+			 format
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_LSB                           15
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MSB                           15
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MASK                          0x00008000
+
+
+/* Description		DOT11AX_MIN_PACKET_EXTENSION
+
+			field is only valid for pkt_type == 11ax OR pkt_type == 
+			11be
+			
+			The min packet extension duration for this user.
+			0: no extension
+			1: 8us
+			2: 16 us
+			3: 20 us (only for .11be)
+			<legal 0-3>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_OFFSET               0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_LSB                  16
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MSB                  17
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MASK                 0x00030000
+
+
+/* Description		DOT11AX_PE_NSS
+
+			Number of active spatial streams during packet extension.
+			
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_OFFSET                             0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_LSB                                18
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MSB                                20
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MASK                               0x001c0000
+
+
+/* Description		DOT11AX_PE_CONTENT
+
+			Content of packet extension. Valid for all 11ax packets 
+			having packet extension
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_OFFSET                         0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_LSB                            21
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MSB                            21
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MASK                           0x00200000
+
+
+/* Description		DOT11AX_PE_LTF_SIZE
+
+			LTF size to be used during packet extention. . This field
+			 is valid for both FTM and non-FTM packets.
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_LSB                           22
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MSB                           23
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MASK                          0x00c00000
+
+
+/* Description		DOT11AX_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_OFFSET                       0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_LSB                          24
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MSB                          24
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MASK                         0x01000000
+
+
+/* Description		DOT11AX_PE_CHAIN_CSD_EN
+
+			This field denotes whether to apply CSD on the packet extension
+			 portion of the packet. This field is valid for all 11ax
+			 packets.
+			0: disable per-chain csd
+			1: enable per-chain csd
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_OFFSET                    0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_LSB                       25
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MSB                       25
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MASK                      0x02000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			field is only valid for pkt_type == 11ax 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_OFFSET                         0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_LSB                            26
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MSB                            26
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MASK                           0x04000000
+
+
+/* Description		RESERVED_4A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_LSB                                   27
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MSB                                   31
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MASK                                  0xf8000000
+
+
+/* Description		DOT11AX_EXT_RU_START_INDEX
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1
+			
+			RU Number to which User is assigned
+			
+			The RU numbering bitwidth  is only enough to cover the 20MHz
+			 BW that extended range allows
+			<legal 0-8>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_OFFSET                 0x00000014
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_LSB                    0
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MSB                    3
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MASK                   0x0000000f
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
+			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
+			
+			The size of the RU for this user.
+			
+			In case of EHT duplicate transmissions, this field indicates
+			 the width of the actual content before duplication, e.g. 
+			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
+			 fields indicating 160 MHz and this field set to e-num 4
+			 (RU_484).
+			
+			<enum 0 RU_26> 
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> DO NOT USE
+			<enum 11 RU_78> DO NOT USE
+			<enum 12 RU_132> DO NOT USE
+			<legal 0-12>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_OFFSET                        0x00000014
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_LSB                           4
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MSB                           7
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MASK                          0x000000f0
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_OFFSET                         0x00000014
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_LSB                            8
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MSB                            9
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MASK                           0x00000300
+
+
+/* Description		HE_SIGB_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to EHT-SIG
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_OFFSET                                0x00000014
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_LSB                                   10
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MSB                                   10
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MASK                                  0x00000400
+
+
+/* Description		HE_SIGB_0_MCS
+
+			Indicates the MCS of EHT-SIG
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_OFFSET                              0x00000014
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_LSB                                 11
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MSB                                 13
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MASK                                0x00003800
+
+
+/* Description		NUM_HE_SIGB_SYM
+
+			Indicates the number of EHT-SIG symbols
+			
+			This field is 0-based with 0 indicating that 1 eht_sig symbol
+			 needs to be transmitted.
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_OFFSET                            0x00000014
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_LSB                               14
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MSB                               18
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MASK                              0x0007c000
+
+
+/* Description		REQUIRED_RESPONSE_TIME_SOURCE
+
+			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
+			 HT Control for sync MLO response
+			<enum 1 reqd_resp_time_src_is_FW>
+			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
+			 to response
+			<legal all>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET              0x00000014
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_LSB                 19
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MSB                 19
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MASK                0x00080000
+
+
+/* Description		RESERVED_5A
+
+			 <legal 0> 
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_OFFSET                                0x00000014
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_LSB                                   20
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MSB                                   25
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MASK                                  0x03f00000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 
+			to pass on to PDG
+			<legal 0-29>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET            0x00000014
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB               26
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB               31
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK              0xfc000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
+			 on to PDG
+			
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET      0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB         0
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB         9
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK        0x000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET   0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB      10
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB      10
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK     0x00000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB   11
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB   11
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK  0x00000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB   12
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB   12
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK  0x00001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET          0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB             13
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB             15
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK            0x0000e000
+
+
+/* Description		REQUIRED_RESPONSE_TIME
+
+			When non-zero, indicates that PDG shall pad the response
+			 transmission to the indicated duration (in us)
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_OFFSET                     0x00000018
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_LSB                        16
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MSB                        27
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MASK                       0x0fff0000
+
+
+/* Description		DOT11BE_PARAMS_PLACEHOLDER
+
+			4 bytes for use as placeholders for 'Dot11be_*' parameters
+			
+*/
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_OFFSET                 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_LSB                    28
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MSB                    31
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MASK                   0xf0000000
+
+
+
+#endif   // PDG_RESPONSE_RATE_SETTING
diff --git a/hw/qca5332/pdg_tx_req.h b/hw/qca5332/pdg_tx_req.h
new file mode 100644
index 0000000..49e7c63
--- /dev/null
+++ b/hw/qca5332/pdg_tx_req.h
@@ -0,0 +1,237 @@
+
+/* 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 _PDG_TX_REQ_H_
+#define _PDG_TX_REQ_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PDG_TX_REQ 2
+
+#define NUM_OF_QWORDS_PDG_TX_REQ 1
+
+
+struct pdg_tx_req {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tx_reason                                               :  2, // [1:0]
+                      use_puncture_pattern                                    :  2, // [3:2]
+                      req_bw                                                  :  3, // [6:4]
+                      puncture_pattern_number                                 :  6, // [12:7]
+                      reserved_0b                                             :  1, // [13:13]
+                      req_paprd                                               :  1, // [14:14]
+                      duration_field_boundary_valid                           :  1, // [15:15]
+                      duration_field_boundary                                 : 16; // [31:16]
+             uint32_t puncture_subband_mask                                   : 16, // [15:0]
+                      reserved_0c                                             : 16; // [31:16]
+#else
+             uint32_t duration_field_boundary                                 : 16, // [31:16]
+                      duration_field_boundary_valid                           :  1, // [15:15]
+                      req_paprd                                               :  1, // [14:14]
+                      reserved_0b                                             :  1, // [13:13]
+                      puncture_pattern_number                                 :  6, // [12:7]
+                      req_bw                                                  :  3, // [6:4]
+                      use_puncture_pattern                                    :  2, // [3:2]
+                      tx_reason                                               :  2; // [1:0]
+             uint32_t reserved_0c                                             : 16, // [31:16]
+                      puncture_subband_mask                                   : 16; // [15:0]
+#endif
+};
+
+
+/* Description		TX_REASON
+
+			<enum 0     tx_fes_protection_frame>  RTS, CTS2Self or 11h
+			 protection type transmission preceding the regular PPDU
+			 portion of the coming FES. 
+			<enum 1     tx_fes_after_protection >  Regular PPDU transmission
+			 that follows the transmission of medium protection frames:.
+			
+			<enum 2     tx_fes_only>  Regular PPDU transmission without
+			 preceding medium protection frame exchanges. 
+			
+			Note: Response frame transmissions are initiated with the
+			 PDG_RESPONSE TLV
+			
+			<legal 0-2>
+*/
+
+#define PDG_TX_REQ_TX_REASON_OFFSET                                                 0x0000000000000000
+#define PDG_TX_REQ_TX_REASON_LSB                                                    0
+#define PDG_TX_REQ_TX_REASON_MSB                                                    1
+#define PDG_TX_REQ_TX_REASON_MASK                                                   0x0000000000000003
+
+
+/* Description		USE_PUNCTURE_PATTERN
+
+			When set, the transmission is based on puncture pattern 
+			selection
+			<enum 0 NO_PUNCTURE> No puncturing
+			<enum 1 PUNCTURE_FROM_TX_SETUP> Scheme 1 puncturing using
+			 'TX_PUNCTURE_SETUP' settings
+			<enum 2 PUNCTURE_RESPONSE_FROM_RX> DO NOT USE
+			<enum 3 PUNCTURE_FROM_ALL_ALLOWED_MODES> New scheme 2 puncturing
+			 in Beryllium based on the field puncture_subband_mask selected
+			 from up to 37 allowed modes in TXPCU registers
+			<legal 0-3>
+*/
+
+#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_OFFSET                                      0x0000000000000000
+#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_LSB                                         2
+#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_MSB                                         3
+#define PDG_TX_REQ_USE_PUNCTURE_PATTERN_MASK                                        0x000000000000000c
+
+
+/* Description		REQ_BW
+
+			Field not valid when use_puncture_pattern is set to PUNCTURE_FROM_TX_SETUP
+			
+			
+			The BW of the upcoming transmission.
+			Note: Coex might have changed this from the original request.
+			
+			
+			<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 PDG_TX_REQ_REQ_BW_OFFSET                                                    0x0000000000000000
+#define PDG_TX_REQ_REQ_BW_LSB                                                       4
+#define PDG_TX_REQ_REQ_BW_MSB                                                       6
+#define PDG_TX_REQ_REQ_BW_MASK                                                      0x0000000000000070
+
+
+/* Description		PUNCTURE_PATTERN_NUMBER
+
+			Field only valid when "use_puncture_pattern" is set.
+			
+			The pattern number in case punctured transmission is enabled
+			
+			<legal all>
+*/
+
+#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_OFFSET                                   0x0000000000000000
+#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_LSB                                      7
+#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_MSB                                      12
+#define PDG_TX_REQ_PUNCTURE_PATTERN_NUMBER_MASK                                     0x0000000000001f80
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define PDG_TX_REQ_RESERVED_0B_OFFSET                                               0x0000000000000000
+#define PDG_TX_REQ_RESERVED_0B_LSB                                                  13
+#define PDG_TX_REQ_RESERVED_0B_MSB                                                  13
+#define PDG_TX_REQ_RESERVED_0B_MASK                                                 0x0000000000002000
+
+
+/* Description		REQ_PAPRD
+
+			Indicate this is a 'PAPRD' packet request. Exist in NS, 
+			Helium?
+			This is a calibration related request.
+			Field copied over from the scheduling command TLV.
+			
+			TODO: check the usage
+			 <legal 0>
+*/
+
+#define PDG_TX_REQ_REQ_PAPRD_OFFSET                                                 0x0000000000000000
+#define PDG_TX_REQ_REQ_PAPRD_LSB                                                    14
+#define PDG_TX_REQ_REQ_PAPRD_MSB                                                    14
+#define PDG_TX_REQ_REQ_PAPRD_MASK                                                   0x0000000000004000
+
+
+/* Description		DURATION_FIELD_BOUNDARY_VALID
+
+			When set, PDG should take the 'duration_field_boundary' 
+			value into account when it is calculating the TX and RX 
+			boundaries for the upcoming transmission. Both RX and TX
+			 should not go beyond this time duration provided.
+			
+			<legal all>
+*/
+
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_OFFSET                             0x0000000000000000
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_LSB                                15
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_MSB                                15
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_VALID_MASK                               0x0000000000008000
+
+
+/* Description		DURATION_FIELD_BOUNDARY
+
+			Field only valid when 'Duration_field_boundary_valid' is
+			 set
+			
+			Amount of time to both TX and RX boundaries that PDG should
+			 take into account for the upcoming transmission.
+			<legal all>
+*/
+
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_OFFSET                                   0x0000000000000000
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_LSB                                      16
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_MSB                                      31
+#define PDG_TX_REQ_DURATION_FIELD_BOUNDARY_MASK                                     0x00000000ffff0000
+
+
+/* Description		PUNCTURE_SUBBAND_MASK
+
+			Field only valid when use_puncture_pattern is set to PUNCTURE_FROM_ALL_ALLOWED_MODES
+			
+			
+			This mask indicates which 20 Mhz channels are actively used
+			 in this transmission.
+			
+			Bit 0: primary 20 Mhz
+			Bit 1: secondary 20 MHz
+			Etc.
+			<legal all>
+*/
+
+#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_OFFSET                                     0x0000000000000000
+#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_LSB                                        32
+#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_MSB                                        47
+#define PDG_TX_REQ_PUNCTURE_SUBBAND_MASK_MASK                                       0x0000ffff00000000
+
+
+/* Description		RESERVED_0C
+
+			Reserved for future power bits: Generator should set to 
+			0, consumer shall ignore <legal 0>
+*/
+
+#define PDG_TX_REQ_RESERVED_0C_OFFSET                                               0x0000000000000000
+#define PDG_TX_REQ_RESERVED_0C_LSB                                                  48
+#define PDG_TX_REQ_RESERVED_0C_MSB                                                  63
+#define PDG_TX_REQ_RESERVED_0C_MASK                                                 0xffff000000000000
+
+
+
+#endif   // PDG_TX_REQ
diff --git a/hw/qca5332/phyrx_abort_request_info.h b/hw/qca5332/phyrx_abort_request_info.h
new file mode 100644
index 0000000..908352a
--- /dev/null
+++ b/hw/qca5332/phyrx_abort_request_info.h
@@ -0,0 +1,223 @@
+
+/* 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 _PHYRX_ABORT_REQUEST_INFO_H_
+#define _PHYRX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_ABORT_REQUEST_INFO 1
+
+
+struct phyrx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phyrx_abort_reason                                      :  8, // [7:0]
+                      phy_enters_nap_state                                    :  1, // [8:8]
+                      phy_enters_defer_state                                  :  1, // [9:9]
+                      reserved_0                                              :  6, // [15:10]
+                      receive_duration                                        : 16; // [31:16]
+#else
+             uint32_t receive_duration                                        : 16, // [31:16]
+                      reserved_0                                              :  6, // [15:10]
+                      phy_enters_defer_state                                  :  1, // [9:9]
+                      phy_enters_nap_state                                    :  1, // [8:8]
+                      phyrx_abort_reason                                      :  8; // [7:0]
+#endif
+};
+
+
+/* Description		PHYRX_ABORT_REASON
+
+			<enum 0 phyrx_err_phy_off> Reception aborted due to receiving
+			 a PHY_OFF TLV
+			<enum 1 phyrx_err_synth_off> 
+			<enum 2 phyrx_err_ofdma_timing> 
+			<enum 3 phyrx_err_ofdma_signal_parity> 
+			<enum 4 phyrx_err_ofdma_rate_illegal> 
+			<enum 5 phyrx_err_ofdma_length_illegal> 
+			<enum 6 phyrx_err_ofdma_restart> 
+			<enum 7 phyrx_err_ofdma_service> 
+			<enum 8 phyrx_err_ppdu_ofdma_power_drop> 
+			
+			<enum 9 phyrx_err_cck_blokker> 
+			<enum 10 phyrx_err_cck_timing> 
+			<enum 11 phyrx_err_cck_header_crc> 
+			<enum 12 phyrx_err_cck_rate_illegal> 
+			<enum 13 phyrx_err_cck_length_illegal> 
+			<enum 14 phyrx_err_cck_restart> 
+			<enum 15 phyrx_err_cck_service> 
+			<enum 16 phyrx_err_cck_power_drop> 
+			
+			<enum 17 phyrx_err_ht_crc_err> 
+			<enum 18 phyrx_err_ht_length_illegal> 
+			<enum 19 phyrx_err_ht_rate_illegal> 
+			<enum 20 phyrx_err_ht_zlf> 
+			<enum 21 phyrx_err_false_radar_ext> 
+			<enum 22 phyrx_err_green_field>
+			<enum 60 phyrx_err_ht_nsym_lt_zero>
+			
+			<enum 23 phyrx_err_bw_gt_dyn_bw> 
+			<enum 24 phyrx_err_leg_ht_mismatch> 
+			<enum 25 phyrx_err_vht_crc_error> 
+			<enum 26 phyrx_err_vht_siga_unsupported> 
+			<enum 27 phyrx_err_vht_lsig_len_invalid> 
+			<enum 28 phyrx_err_vht_ndp_or_zlf> 
+			<enum 29 phyrx_err_vht_nsym_lt_zero> 
+			<enum 30 phyrx_err_vht_rx_extra_symbol_mismatch> 
+			<enum 31 phyrx_err_vht_rx_skip_group_id0> 
+			<enum 32 phyrx_err_vht_rx_skip_group_id1to62> 
+			<enum 33 phyrx_err_vht_rx_skip_group_id63> 
+			<enum 34 phyrx_err_ofdm_ldpc_decoder_disabled> 
+			<enum 35 phyrx_err_defer_nap>
+			
+			<enum 61 phyrx_err_vht_lsig_rate_mismatch>
+			<enum 62 phyrx_err_vht_paid_gid_mismatch>
+			<enum 63 phyrx_err_vht_unsupported_bw>
+			<enum 64 phyrx_err_vht_gi_disam_mismatch>
+			
+			<enum 36 phyrx_err_fdomain_timeout> 
+			<enum 37 phyrx_err_lsig_rel_check> 
+			<enum 38 phyrx_err_bt_collision> 
+			<enum 39 phyrx_err_unsupported_mu_feedback> 
+			<enum 40 phyrx_err_ppdu_tx_interrupt_rx> 
+			<enum 41 phyrx_err_unsupported_cbf> 
+			
+			<enum 42 phyrx_err_other>  Should not really be used. If
+			 needed, ask for documentation update 
+			
+			<enum 43 phyrx_err_he_siga_unsupported > <enum 44 phyrx_err_he_crc_error
+			 > <enum 45 phyrx_err_he_sigb_unsupported > <enum 46 phyrx_err_he_mu_mode_unsupported
+			 > <enum 47 phyrx_err_he_ndp_or_zlf > <enum 48 phyrx_err_he_nsym_lt_zero
+			 > <enum 49 phyrx_err_he_ru_params_unsupported > <enum 50
+			 phyrx_err_he_num_users_unsupported ><enum 51 phyrx_err_he_sounding_params_unsupported
+			 >
+			<enum 54 phyrx_err_he_sigb_crc_error>
+			<enum 55 phyrx_err_he_ext_su_unsupported>
+			<enum 56 phyrx_err_he_trig_unsupported>
+			<enum 57 phyrx_err_he_lsig_len_invalid>
+			<enum 58 phyrx_err_he_lsig_rate_mismatch>
+			<enum 59 phyrx_err_ofdma_signal_reliability>
+			
+			<enum 77 phyrx_err_wur_detection>
+			
+			<enum 72 phyrx_err_u_sig_crc_error>
+			<enum 73 phyrx_err_u_sig_unsupported_mode>
+			<enum 74 phyrx_err_u_sig_rsvd_err>
+			<enum 75 phyrx_err_u_sig_mcs_error>
+			<enum 76 phyrx_err_u_sig_bw_error>
+			<enum 79 phyrx_err_u_sig_320_channel_mismatch>
+			<enum 71 phyrx_err_eht_sig_crc_error>
+			<enum 78 phyrx_err_eht_sig_unsupported_mode>
+			
+			<enum 80 phyrx_err_ehtplus_er_detection>
+			
+			<enum 52 phyrx_err_MU_UL_no_power_detected> 
+			<enum 53 phyrx_err_MU_UL_not_for_me>
+			
+			<enum 65 phyrx_err_rx_wdg_timeout>
+			<enum 66 phyrx_err_sizing_evt_unexpected>
+			<enum 67 phyrx_err_spectralscan>
+			<enum 68 phyrx_err_radar_misdetected_as_ofdm>
+			<enum 69 phyrx_err_rx_stuck>
+			<enum 70 phyrx_err_invalid_11b_state>
+			
+			<legal 0 - 80>
+*/
+
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_OFFSET                          0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_LSB                             0
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MSB                             7
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MASK                            0x000000ff
+
+
+/* Description		PHY_ENTERS_NAP_STATE
+
+			When set, PHY enters PHY NAP state after sending this abort
+			
+			
+			Note that nap and defer state are mutually exclusive.
+			
+			Field put pro-actively in place....usage still to be agreed
+			 upon.
+			<legal all>
+*/
+
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_OFFSET                        0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_LSB                           8
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MSB                           8
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MASK                          0x00000100
+
+
+/* Description		PHY_ENTERS_DEFER_STATE
+
+			When set, PHY enters PHY defer state after sending this 
+			abort
+			
+			Note that nap and defer state are mutually exclusive.
+			
+			Field put pro-actively in place....usage still to be agreed
+			 upon.
+			<legal all>
+*/
+
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_OFFSET                      0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_LSB                         9
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MSB                         9
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MASK                        0x00000200
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET                                  0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_LSB                                     10
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MSB                                     15
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MASK                                    0x0000fc00
+
+
+/* Description		RECEIVE_DURATION
+
+			The remaining receive duration of this PPDU in the medium
+			 (in us). When PHY does not know this duration when this
+			 TLV is generated, the field will be set to 0.
+			The timing reference point is the reception by the MAC of
+			 this TLV. The value shall be accurate to within 2us.
+			
+			In case Phy_enters_nap_state and/or Phy_enters_defer_state
+			 is set, there is a possibility that MAC PMM can also decide
+			 to go into a low(er) power state. 
+			<legal all>
+*/
+
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_OFFSET                            0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_LSB                               16
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MSB                               31
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MASK                              0xffff0000
+
+
+
+#endif   // PHYRX_ABORT_REQUEST_INFO
diff --git a/hw/qca5332/phyrx_common_user_info.h b/hw/qca5332/phyrx_common_user_info.h
new file mode 100644
index 0000000..491a56b
--- /dev/null
+++ b/hw/qca5332/phyrx_common_user_info.h
@@ -0,0 +1,412 @@
+
+/* 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 _PHYRX_COMMON_USER_INFO_H_
+#define _PHYRX_COMMON_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_COMMON_USER_INFO 4
+
+#define NUM_OF_QWORDS_PHYRX_COMMON_USER_INFO 2
+
+
+struct phyrx_common_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t receive_duration                                        : 16, // [15:0]
+                      reserved_0a                                             : 16; // [31:16]
+             uint32_t u_sig_puncture_pattern_encoding                         :  6, // [5:0]
+                      reserved_1a                                             : 26; // [31:6]
+             uint32_t eht_ppdu_type                                           :  2, // [1:0]
+                      bss_color_id                                            :  6, // [7:2]
+                      dl_ul_flag                                              :  1, // [8:8]
+                      txop_duration                                           :  7, // [15:9]
+                      cp_setting                                              :  2, // [17:16]
+                      ltf_size                                                :  2, // [19:18]
+                      spatial_reuse                                           :  4, // [23:20]
+                      rx_ndp                                                  :  1, // [24:24]
+                      dot11be_su_extended                                     :  1, // [25:25]
+                      reserved_2a                                             :  6; // [31:26]
+             uint32_t eht_duplicate                                           :  2, // [1:0]
+                      eht_sig_cmn_field_type                                  :  2, // [3:2]
+                      doppler_indication                                      :  1, // [4:4]
+                      sta_id                                                  : 11, // [15:5]
+                      puncture_bitmap                                         : 16; // [31:16]
+#else
+             uint32_t reserved_0a                                             : 16, // [31:16]
+                      receive_duration                                        : 16; // [15:0]
+             uint32_t reserved_1a                                             : 26, // [31:6]
+                      u_sig_puncture_pattern_encoding                         :  6; // [5:0]
+             uint32_t reserved_2a                                             :  6, // [31:26]
+                      dot11be_su_extended                                     :  1, // [25:25]
+                      rx_ndp                                                  :  1, // [24:24]
+                      spatial_reuse                                           :  4, // [23:20]
+                      ltf_size                                                :  2, // [19:18]
+                      cp_setting                                              :  2, // [17:16]
+                      txop_duration                                           :  7, // [15:9]
+                      dl_ul_flag                                              :  1, // [8:8]
+                      bss_color_id                                            :  6, // [7:2]
+                      eht_ppdu_type                                           :  2; // [1:0]
+             uint32_t puncture_bitmap                                         : 16, // [31:16]
+                      sta_id                                                  : 11, // [15:5]
+                      doppler_indication                                      :  1, // [4:4]
+                      eht_sig_cmn_field_type                                  :  2, // [3:2]
+                      eht_duplicate                                           :  2; // [1:0]
+#endif
+};
+
+
+/* Description		RECEIVE_DURATION
+
+			The remaining receive duration of this PPDU in the medium
+			 (in us). 
+			The timing reference point is the assertion of 'rx_frame' 
+			by PHY for the PPDU reception. The value shall be accurate
+			 to within 2us.
+			RXPCU shall subtract the time elapsed between 'rx_frame' 
+			assertion and reception of this TLV to find the actual remaining
+			 receive duration.
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_OFFSET                              0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_LSB                                 0
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MSB                                 15
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MASK                                0x000000000000ffff
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_OFFSET                                   0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_LSB                                      16
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MSB                                      31
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MASK                                     0x00000000ffff0000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			The 6-bit value used in U-SIG and/or EHT-SIG Common field
+			 for the puncture pattern
+			<legal 0-29>
+*/
+
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET               0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                  32
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                  37
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                 0x0000003f00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_OFFSET                                   0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_LSB                                      38
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MSB                                      63
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MASK                                     0xffffffc000000000
+
+
+/* Description		EHT_PPDU_TYPE
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			<enum 0 EHT_PPDU_rsvd> DO NOT USE
+			<enum 1 EHT_PPDU_TB>
+			<enum 2 EHT_PPDU_MU> Need to look at both EHT-SIG content
+			 channels
+			<enum 3 EHT_PPDU_SU> Need to look at only one EHT-SIG content
+			 channel
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_LSB                                    0
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MSB                                    1
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MASK                                   0x0000000000000003
+
+
+/* Description		BSS_COLOR_ID
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			BSS color ID
+			
+			Field used by MAC HW
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_OFFSET                                  0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_LSB                                     2
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MSB                                     7
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MASK                                    0x00000000000000fc
+
+
+/* Description		DL_UL_FLAG
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			Differentiates between DL and UL transmission
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_OFFSET                                    0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_LSB                                       8
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MSB                                       8
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MASK                                      0x0000000000000100
+
+
+/* Description		TXOP_DURATION
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			Indicates the remaining time in the current TXOP
+			
+			Field used by MAC HW
+			 <legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_LSB                                    9
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MSB                                    15
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MASK                                   0x000000000000fe00
+
+
+/* Description		CP_SETTING
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			<enum 0     gi_0_8_us > Legacy normal GI
+			<enum 1     gi_0_4_us > Legacy short GI
+			<enum 2     gi_1_6_us > HE related GI
+			<enum 3     gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_OFFSET                                    0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_LSB                                       16
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_MSB                                       17
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_MASK                                      0x0000000000030000
+
+
+/* Description		LTF_SIZE
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			Ltf size
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_OFFSET                                      0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_LSB                                         18
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MSB                                         19
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MASK                                        0x00000000000c0000
+
+
+/* Description		SPATIAL_REUSE
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			TODO: Placeholder
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_LSB                                    20
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MSB                                    23
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MASK                                   0x0000000000f00000
+
+
+/* Description		RX_NDP
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			On RX side, looked at by MAC HW
+			
+			When set, PHY has received an (expected) NDP frame
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_RX_NDP_OFFSET                                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_RX_NDP_LSB                                           24
+#define PHYRX_COMMON_USER_INFO_RX_NDP_MSB                                           24
+#define PHYRX_COMMON_USER_INFO_RX_NDP_MASK                                          0x0000000001000000
+
+
+/* Description		DOT11BE_SU_EXTENDED
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			On RX side, evaluated by MAC HW
+			
+			This is the only way for MAC RX to know that this was a 
+			U_SIG_EHT_SU received in extended range format.
+			
+			When set, the 11be frame is of the extended range format.
+			
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_OFFSET                           0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_LSB                              25
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MSB                              25
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MASK                             0x0000000002000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_LSB                                      26
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MSB                                      31
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MASK                                     0x00000000fc000000
+
+
+/* Description		EHT_DUPLICATE
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_LSB                                    32
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MSB                                    33
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MASK                                   0x0000000300000000
+
+
+/* Description		EHT_SIG_CMN_FIELD_TYPE
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			Indicates the type of EHT-SIG Common field
+			
+			<enum 0 EHT_SIG_CMN_NO_PUNC> Non-OFDMA, EHT-SIG Common field
+			 does not contain puncturing information
+			<enum 1 EHT_SIG_CMN_PUNC> Non-OFDMA, EHT-SIG Common field
+			 contains puncturing information
+			<enum 2 EHT_SIG_OFDMA>
+			OFDMA, EHT-SIG Common field contains RU structure
+			<legal 0-2>
+*/
+
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_OFFSET                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_LSB                           34
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MSB                           35
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MASK                          0x0000000c00000000
+
+
+/* Description		DOPPLER_INDICATION
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV.
+			
+			
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_OFFSET                            0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_LSB                               36
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MSB                               36
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MASK                              0x0000001000000000
+
+
+/* Description		STA_ID
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV
+			 and EHT_PPDU_type is EHT_PPDU_MU (MU-MIMO or OFDMA).
+			
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define PHYRX_COMMON_USER_INFO_STA_ID_OFFSET                                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_STA_ID_LSB                                           37
+#define PHYRX_COMMON_USER_INFO_STA_ID_MSB                                           47
+#define PHYRX_COMMON_USER_INFO_STA_ID_MASK                                          0x0000ffe000000000
+
+
+/* Description		PUNCTURE_BITMAP
+
+			Field only valid if PHY has sent 'PHYRX_GENERIC_U_SIG' TLV
+			 and EHT_SIG_CMN_field_type is EHT_SIG_CMN_PUNC.
+			
+			Indicates which 20 MHz sub-bands will be modulated vs punctured
+			 (bits [15:0]) in CCA order (primary/secondary)
+			
+			Bit 0: primary 20MHz sub-band
+			Bit 1: secondary 20 MHz sub-band
+			Bit 2: first 20 MHz sub-band in secondary 40 MHz
+			Bit 3: second 20 MHz sub-band in secondary 40 MHz
+			... 
+			Bit 15: last 20MHz sub-band in secondary 160 MHz
+			A value of 0 means the band is punctured
+			A value of 1 means the band is modulated
+			
+			If the PPDU BW is less than 320 MHz, the MSB bits are reserved
+			 and set to 0.
+*/
+
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_OFFSET                               0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_LSB                                  48
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MSB                                  63
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MASK                                 0xffff000000000000
+
+
+
+#endif   // PHYRX_COMMON_USER_INFO
diff --git a/hw/qca5332/phyrx_he_sig_a_mu_dl.h b/hw/qca5332/phyrx_he_sig_a_mu_dl.h
new file mode 100644
index 0000000..414056e
--- /dev/null
+++ b/hw/qca5332/phyrx_he_sig_a_mu_dl.h
@@ -0,0 +1,400 @@
+
+/* 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 _PHYRX_HE_SIG_A_MU_DL_H_
+#define _PHYRX_HE_SIG_A_MU_DL_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_mu_dl_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_MU_DL 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_MU_DL 1
+
+
+struct phyrx_he_sig_a_mu_dl {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_mu_dl_info                                       phyrx_he_sig_a_mu_dl_info_details;
+#else
+             struct   he_sig_a_mu_dl_info                                       phyrx_he_sig_a_mu_dl_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			NOTE: This is unsupported for "HE MU" format (including "MU_SU") 
+			Tx in Napier and Hastings80.
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET    0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_LSB       0
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MSB       0
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MASK      0x0000000000000001
+
+
+/* Description		MCS_OF_SIG_B
+
+			Indicates the MCS of HE-SIG-B
+			<legal 0-5>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_LSB     1
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MSB     3
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MASK    0x000000000000000e
+
+
+/* Description		DCM_OF_SIG_B
+
+			Indicates whether dual sub-carrier modulation is applied
+			 to HE-SIG-B 
+			
+			0: No DCM for HE_SIG_B
+			1: DCM for HE_SIG_B
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_LSB     4
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MSB     4
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MASK    0x0000000000000010
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_LSB     5
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MSB     10
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MASK    0x00000000000007e0
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_LSB    11
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MSB    14
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MASK   0x0000000000007800
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_MU_DL_BW80> 80 MHz non-preamble puncturing
+			 mode
+			<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz and 80+80 MHz non-preamble
+			 puncturing mode
+			<enum 4 HE_SIG_A_MU_DL_BW80_SEC_20_PUNC> for preamble puncturing
+			 in 80 MHz, where in the preamble only the secondary 20 
+			MHz is punctured
+			<enum 5 HE_SIG_A_MU_DL_BW80_20_PUNC_IN_SEC_40> for preamble
+			 puncturing in 80 MHz, where in the preamble only one of
+			 the two 20 MHz sub-channels in secondary 40 MHz is punctured.
+			
+			<enum 6 HE_SIG_A_MU_DL_BW160_SEC_20_PUNC> for preamble puncturing
+			 in 160 MHz or 80+80 MHz, where in the primary 80 MHz of
+			 the preamble only the secondary 20 MHz is punctured.
+			<enum 7 HE_SIG_A_MU_DL_BW160_SEC_40_80_PUNC> for preamble
+			 puncturing in 160 MHz or 80+80 MHz, where in the primary
+			 80 MHz of the preamble the primary 40 MHz is present.
+			
+			On RX side, Field Used by MAC HW
+			<legal 0-7>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_LSB      15
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MSB      17
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MASK     0x0000000000038000
+
+
+/* Description		NUM_SIG_B_SYMBOLS
+
+			Number of symbols
+			
+			For OFDMA, the actual number of symbols is 1 larger then
+			 indicated in this field.
+			
+			For MU-MIMO this is equal to the number of users - 1: the
+			 following encoding is used:
+			1 => 2 users
+			2 => 3 users
+			Etc.
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_LSB 18
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MSB 21
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MASK 0x00000000003c0000
+
+
+/* Description		COMP_MODE_SIG_B
+
+			Indicates the compression mode of HE-SIG-B
+			
+			0: Regular [uncomp mode]
+			1: compressed mode (full-BW MU-MIMO only) 
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_LSB  22
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MSB  22
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MASK 0x0000000000400000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 MU_FourX_LTF_0_8CP> 4xLTF + 0.8 us CP
+			<enum 1 MU_TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 MU_TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			<enum 3 MU_FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP 
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_LSB      23
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MSB      24
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MASK     0x0000000001800000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_LSB 25
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MSB 25
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000000002000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_LSB      26
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MSB      31
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MASK     0x00000000fc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_LSB    32
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MSB    38
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MASK   0x0000007f00000000
+
+
+/* Description		RESERVED_1A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_LSB      39
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MSB      39
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MASK     0x0000008000000000
+
+
+/* Description		NUM_LTF_SYMBOLS
+
+			Indicates the number of HE-LTF symbols
+			
+			0: 1 LTF
+			1: 2 LTFs
+			2: 4 LTFs
+			3: 6 LTFs
+			4: 8 LTFs
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_LSB  40
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MSB  42
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MASK 0x0000070000000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 43
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 43
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000080000000000
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_LSB             44
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MSB             44
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MASK            0x0000100000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 45
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 46
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000600000000000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 47
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 47
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000800000000000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_LSB              48
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MSB              51
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MASK             0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_LSB             52
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MSB             57
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MASK            0x03f0000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_LSB      58
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MSB      62
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MASK     0x7c00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // PHYRX_HE_SIG_A_MU_DL
diff --git a/hw/qca5332/phyrx_he_sig_a_su.h b/hw/qca5332/phyrx_he_sig_a_su.h
new file mode 100644
index 0000000..5273ba3
--- /dev/null
+++ b/hw/qca5332/phyrx_he_sig_a_su.h
@@ -0,0 +1,506 @@
+
+/* 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 _PHYRX_HE_SIG_A_SU_H_
+#define _PHYRX_HE_SIG_A_SU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_su_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_SU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_SU 1
+
+
+struct phyrx_he_sig_a_su {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_su_info                                          phyrx_he_sig_a_su_info_details;
+#else
+             struct   he_sig_a_su_info                                          phyrx_he_sig_a_su_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_HE_SIG_A_SU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		FORMAT_INDICATION
+
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB      0
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB      0
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK     0x0000000000000001
+
+
+/* Description		BEAM_CHANGE
+
+			Indicates whether spatial mapping is changed between legacy
+			 and HE portion of preamble. If not, channel estimation 
+			can include legacy preamble to improve accuracy
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB            1
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB            1
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK           0x0000000000000002
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB             2
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB             2
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK            0x0000000000000004
+
+
+/* Description		TRANSMIT_MCS
+
+			Indicates the data MCS
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB           3
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB           6
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK          0x0000000000000078
+
+
+/* Description		DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET                 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB                    7
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB                    7
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK                   0x0000000000000080
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID 
+			
+			Field Used by MAC HW
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB           8
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB           13
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK          0x0000000000003f00
+
+
+/* Description		RESERVED_0A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB            14
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB            14
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK           0x0000000000004000
+
+
+/* Description		SPATIAL_REUSE
+
+			Spatial reuse
+			
+			For 20MHz one SR field corresponding to entire 20MHz (other
+			 3 fields indicate identical values)
+			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
+			 identical values)
+			For 80MHz four SR fields for each 20MHz
+			For 160MHz four SR fields for each 40MHz
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB          15
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB          18
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK         0x0000000000078000
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU.
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                                 
+			<enum 0 HE_SIG_A_BW20> 20 Mhz 
+			<enum 1 HE_SIG_A_BW40> 40 Mhz 
+			<enum 2 HE_SIG_A_BW80> 80 Mhz 
+			<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
+			
+			For HE Extended Range SU PPDU
+			Set to 0 for 242-tone RU                                
+			                                                        
+			                  Set to 1 for right 106-tone RU within 
+			the primary 20 MHz  
+			
+			On RX side, Field Used by MAC HW
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB            19
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB            20
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK           0x0000000000180000
+
+
+/* Description		CP_LTF_SIZE
+
+			Indicates the CP and HE-LTF type 
+			
+			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
+			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
+			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
+			
+			<enum 3 FourX_LTF_0_8CP_3_2CP>
+			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 
+			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 
+			In this scenario, Neither DCM nor STBC is applied to HE 
+			data field.
+			
+			NOTE:
+			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 
+			0      = 1xLTF + 0.4 usec
+			1      = 2xLTF + 0.4 usec
+			2~3 = Reserved
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB            21
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB            22
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK           0x0000000000600000
+
+
+/* Description		NSTS
+
+			Indicates number of streams used for the SU transmission
+			
+			
+			For HE SU PPDU                                          
+			                                                        
+			                                                        
+			                      Set to n for n+1 space time stream, 
+			where n = 0, 1, 2,.....,7.                              
+			                                                        
+			                                                        
+			            
+			
+			For HE Extended Range PPDU                              
+			                                                        
+			                                                        
+			                            Set to 0 for 1 space time stream. 
+			 Value 1 is TBD                                         
+			                                                        
+			                                                        
+			                                                        
+			   Values 2 - 7 are reserved
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB                   23
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB                   25
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK                  0x0000000003800000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB            26
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB            31
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK           0x00000000fc000000
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field Used by MAC HW
+			 <legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB          32
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB          38
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK         0x0000007f00000000
+
+
+/* Description		CODING
+
+			Distinguishes between BCC and LDPC coding. 
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB                 39
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB                 39
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK                0x0000008000000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			If LDPC, 
+			  0: LDPC extra symbol not present
+			  1: LDPC extra symbol present
+			Else 
+			  Set to 1
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB      40
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB      40
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK     0x0000010000000000
+
+
+/* Description		STBC
+
+			Indicates whether STBC is applied
+			0: No STBC
+			1: STBC
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB                   41
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB                   41
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK                  0x0000020000000000
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB                   42
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB                   42
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK                  0x0000040000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with these two bits indicating the "a-factor" 
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			Common trigger info
+			
+			the packet extension duration of the trigger-based PPDU 
+			response with this bit indicating the PE-Disambiguity 
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
+
+
+/* Description		RESERVED_1A
+
+			Note: per standard, set to 1
+			<legal 1>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB            46
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB            46
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK           0x0000400000000000
+
+
+/* Description		DOPPLER_INDICATION
+
+			0: No Doppler support
+			1: Doppler support
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB     47
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB     47
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK    0x0000800000000000
+
+
+/* Description		CRC
+
+			CRC for HE-SIG-A contents.
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET                 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB                    48
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB                    51
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK                   0x000f000000000000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB                   52
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB                   57
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK                  0x03f0000000000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know that this was an HE_SIG_A_SU received in
+			 'extended' format
+			
+			When set, the 11ax frame is of the extended range format
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB    58
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB    58
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK   0x0400000000000000
+
+
+/* Description		DOT11AX_EXT_RU_SIZE
+
+			TX side:
+			Set to 0
+			
+			RX side:
+			Field only contains valid info when dot11ax_su_extended 
+			is set.
+			
+			On RX side, evaluated by MAC HW. This is the only way for
+			 MAC RX to know what the number of based RUs was in this
+			 extended range reception. It is used by the MAC to determine
+			 the RU size for the response...
+			
+			<enum 0 EXT_RU_26> 
+			<enum 1 EXT_RU_52>
+			<enum 2 EXT_RU_106>
+			<enum 3 EXT_RU_242><legal 0-3>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB    59
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB    61
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK   0x3800000000000000
+
+
+/* Description		RX_NDP
+
+			TX side:
+			Set to 0
+			
+			RX side:Valid on RX side only, and looked at by MAC HW
+			
+			When set, PHY has received (expected) NDP frame
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB                 62
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB                 62
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK                0x4000000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // PHYRX_HE_SIG_A_SU
diff --git a/hw/qca5332/phyrx_he_sig_b1_mu.h b/hw/qca5332/phyrx_he_sig_b1_mu.h
new file mode 100644
index 0000000..ba36fea
--- /dev/null
+++ b/hw/qca5332/phyrx_he_sig_b1_mu.h
@@ -0,0 +1,110 @@
+
+/* 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 _PHYRX_HE_SIG_B1_MU_H_
+#define _PHYRX_HE_SIG_B1_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b1_mu_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B1_MU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B1_MU 1
+
+
+struct phyrx_he_sig_b1_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b1_mu_info                                         phyrx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   he_sig_b1_mu_info                                         phyrx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHYRX_HE_SIG_B1_MU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RU_ALLOCATION
+
+			RU allocation for the user(s) following this common portion
+			 of the SIG
+			
+			For details, refer to  RU_TYPE description
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_LSB        0
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MSB        7
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MASK       0x00000000000000ff
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_LSB           8
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MSB           30
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MASK          0x000000007fffff00
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing the HE-SIG-B common info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_OFFSET                                     0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_LSB                                        32
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MSB                                        63
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MASK                                       0xffffffff00000000
+
+
+
+#endif   // PHYRX_HE_SIG_B1_MU
diff --git a/hw/qca5332/phyrx_he_sig_b2_mu.h b/hw/qca5332/phyrx_he_sig_b2_mu.h
new file mode 100644
index 0000000..40152f7
--- /dev/null
+++ b/hw/qca5332/phyrx_he_sig_b2_mu.h
@@ -0,0 +1,212 @@
+
+/* 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 _PHYRX_HE_SIG_B2_MU_H_
+#define _PHYRX_HE_SIG_B2_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_mu_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_MU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_MU 1
+
+
+struct phyrx_he_sig_b2_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_mu_info                                         phyrx_he_sig_b2_mu_info_details;
+#else
+             struct   he_sig_b2_mu_info                                         phyrx_he_sig_b2_mu_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_HE_SIG_B2_MU_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET            0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB               0
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB               10
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK              0x00000000000007ff
+
+
+/* Description		STA_SPATIAL_CONFIG
+
+			Number of assigned spatial streams and their corresponding
+			 index. 
+			Total number of spatial streams assigned for the MU-MIMO
+			 allocation is also signaled. 
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB   11
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB   14
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK  0x0000000000007800
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB              15
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB              18
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK             0x0000000000078000
+
+
+/* Description		RESERVED_SET_TO_1
+
+			<legal 1>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB    19
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB    19
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK   0x0000000000080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB           20
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB           20
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK          0x0000000000100000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB          21
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB          27
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK         0x000000000fe00000
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			Needed by RXPCU. Provided by PHY so that RXPCU does not 
+			need to have the RU number decoding logic.
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB                 28
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB                 30
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK                0x0000000070000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB           32
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB           39
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK          0x000000ff00000000
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB              40
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB              47
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK             0x0000ff0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB          48
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB          63
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK         0xffff000000000000
+
+
+
+#endif   // PHYRX_HE_SIG_B2_MU
diff --git a/hw/qca5332/phyrx_he_sig_b2_ofdma.h b/hw/qca5332/phyrx_he_sig_b2_ofdma.h
new file mode 100644
index 0000000..f1a6c5a
--- /dev/null
+++ b/hw/qca5332/phyrx_he_sig_b2_ofdma.h
@@ -0,0 +1,214 @@
+
+/* 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 _PHYRX_HE_SIG_B2_OFDMA_H_
+#define _PHYRX_HE_SIG_B2_OFDMA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_ofdma_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_OFDMA 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_OFDMA 1
+
+
+struct phyrx_he_sig_b2_ofdma {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_ofdma_info                                      phyrx_he_sig_b2_ofdma_info_details;
+#else
+             struct   he_sig_b2_ofdma_info                                      phyrx_he_sig_b2_ofdma_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		STA_ID
+
+			Identifies the STA that is addressed. Details of STA ID 
+			are TBD
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET      0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_LSB         0
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MSB         10
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MASK        0x00000000000007ff
+
+
+/* Description		NSTS
+
+			MAC RX side usage only:
+			
+			Number of spatial streams for this user
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_LSB           11
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MSB           13
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MASK          0x0000000000003800
+
+
+/* Description		TXBF
+
+			Indicates whether beamforming is applied
+			0: No beamforming
+			1: beamforming
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_LSB           14
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MSB           14
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MASK          0x0000000000004000
+
+
+/* Description		STA_MCS
+
+			Indicates the data MCS
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_LSB        15
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MSB        18
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MASK       0x0000000000078000
+
+
+/* Description		STA_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_LSB        19
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MSB        19
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MASK       0x0000000000080000
+
+
+/* Description		STA_CODING
+
+			Distinguishes between BCC/LDPC
+			
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_LSB     20
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MSB     20
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MASK    0x0000000000100000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_LSB     21
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MSB     30
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MASK    0x000000007fe00000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the CRC check of the
+			 codeblock containing this HE-SIG-B user info has passed, 
+			else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+/* Description		USER_ORDER
+
+			RX side: Set to 0
+			TX side: Ordering index of the User field
+			Gaps between the ordering indices of User fields indicate
+			 that the microcode shall generate "unallocated RU" User
+			 fields (STAID=2046) to fill the gaps.
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_LSB     32
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MSB     39
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MASK    0x000000ff00000000
+
+
+/* Description		CC_MASK
+
+			RX side: Set to 0
+			TX side: Indicates what content channel this User field 
+			can go to
+			Bit 0: content channel 0
+			Bit 1: content channel 1
+			The other bits are unused, but could repeat the above pattern
+			 for compatibility with 'EHT_SIG_USR_OFDMA_INFO.'
+			<legal all>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_LSB        40
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MSB        47
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MASK       0x0000ff0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_LSB    48
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MSB    63
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MASK   0xffff000000000000
+
+
+
+#endif   // PHYRX_HE_SIG_B2_OFDMA
diff --git a/hw/qca5332/phyrx_ht_sig.h b/hw/qca5332/phyrx_ht_sig.h
new file mode 100644
index 0000000..0061664
--- /dev/null
+++ b/hw/qca5332/phyrx_ht_sig.h
@@ -0,0 +1,280 @@
+
+/* 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 _PHYRX_HT_SIG_H_
+#define _PHYRX_HT_SIG_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "ht_sig_info.h"
+#define NUM_OF_DWORDS_PHYRX_HT_SIG 2
+
+#define NUM_OF_QWORDS_PHYRX_HT_SIG 1
+
+
+struct phyrx_ht_sig {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   ht_sig_info                                               phyrx_ht_sig_info_details;
+#else
+             struct   ht_sig_info                                               phyrx_ht_sig_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_HT_SIG_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_LSB                              0
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MSB                              6
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MASK                             0x000000000000007f
+
+
+/* Description		CBW
+
+			Packet bandwidth:
+			<enum 0     ht_20_mhz>
+			<enum 1     ht_40_mhz>
+			<legal 0-1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_LSB                              7
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MSB                              7
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MASK                             0x0000000000000080
+
+
+/* Description		LENGTH
+
+			This is the MPDU or A-MPDU length in octets of the PPDU
+			<legal all>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET                        0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_LSB                           8
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MSB                           23
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MASK                          0x0000000000ffff00
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB                       24
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MSB                       31
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK                      0x00000000ff000000
+
+
+/* Description		SMOOTHING
+
+			Field indicates if smoothing is needed
+			E_num 0     do_smoothing Unsupported setting: indicates 
+			smoothing is often used for beamforming 
+			<enum 1     no_smoothing> Indicates no smoothing is used
+			
+			<legal 1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET                     0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB                        32
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MSB                        32
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK                       0x0000000100000000
+
+
+/* Description		NOT_SOUNDING
+
+			E_num 0     sounding Unsupported setting: indicates sounding
+			 is used
+			<enum 1     no_sounding>  Indicates no sounding is used
+			<legal 1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET                  0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB                     33
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MSB                     33
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK                    0x0000000200000000
+
+
+/* Description		HT_RESERVED
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY 
+			<legal 1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB                      34
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MSB                      34
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK                     0x0000000400000000
+
+
+/* Description		AGGREGATION
+
+			<enum 0     mpdu> Indicates MPDU format
+			<enum 1     a_mpdu> Indicates A-MPDU format
+			<legal 0-1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB                      35
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MSB                      35
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK                     0x0000000800000000
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_OFFSET                          0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_LSB                             36
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MSB                             37
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MASK                            0x0000003000000000
+
+
+/* Description		FEC_CODING
+
+			<enum 0     ht_bcc>  Indicates BCC coding
+			<enum 1     ht_ldpc>  Indicates LDPC coding
+			<legal 0-1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB                       38
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MSB                       38
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK                      0x0000004000000000
+
+
+/* Description		SHORT_GI
+
+			<enum 0     ht_normal_gi>  Indicates normal guard interval
+			
+			<enum 1     ht_short_gi>  Indicates short guard interval
+			
+			<legal 0-1>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET                      0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB                         39
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MSB                         39
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK                        0x0000008000000000
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET                0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB                   40
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MSB                   41
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK                  0x0000030000000000
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_LSB                              42
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MSB                              49
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MASK                             0x0003fc0000000000
+
+
+/* Description		SIGNAL_TAIL
+
+			The 6 bits of tail is always set to 0 is used to flush the
+			 BCC encoder and decoder.  <legal 0>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB                      50
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MSB                      55
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK                     0x00fc000000000000
+
+
+/* Description		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 PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB                       56
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MSB                       62
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK                      0x7f00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the HT-SIG CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET     0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB        63
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB        63
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK       0x8000000000000000
+
+
+
+#endif   // PHYRX_HT_SIG
diff --git a/hw/qca5332/phyrx_l_sig_a.h b/hw/qca5332/phyrx_l_sig_a.h
new file mode 100644
index 0000000..35594f2
--- /dev/null
+++ b/hw/qca5332/phyrx_l_sig_a.h
@@ -0,0 +1,217 @@
+
+/* 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 _PHYRX_L_SIG_A_H_
+#define _PHYRX_L_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_a_info.h"
+#define NUM_OF_DWORDS_PHYRX_L_SIG_A 2
+
+#define NUM_OF_QWORDS_PHYRX_L_SIG_A 1
+
+
+struct phyrx_l_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_a_info                                              phyrx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   l_sig_a_info                                              phyrx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHYRX_L_SIG_A_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RATE
+
+			This format is originally defined for OFDM as a 4 bit field
+			 but the 5th bit was added to indicate 11b formatted frames. 
+			 In the standard bit [4] is specified as reserved.  For 
+			11b frames this L-SIG is transformed in the PHY into the
+			 11b preamble format.  The following are the rates:
+			<enum 8     ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
+			<enum 9     ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
+			<enum 10     ofdm_12_mbps> QPSK 1/2 (12 Mbps)
+			<enum 11     ofdm_6_mbps> BPSK 1/2 (6 Mbps)
+			<enum 12     ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
+			<enum 13     ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
+			<enum 14     ofdm_18_mbps> QPSK 1/2 (18 Mbps)
+			<enum 15     ofdm_9_mbps> BPSK 3/4 (9 Mbps)
+			<legal 8-15>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_LSB                           0
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MSB                           3
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+/* Description		LSIG_RESERVED
+
+			Reserved: Should be set to 0 by the MAC and ignored by the
+			 PHY
+			<legal 0>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET               0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB                  4
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MSB                  4
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK                 0x0000000000000010
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU. 
+			 Note that when using mixed mode .11n preamble or .11ac/.11ax/.11ba/.11be
+			 this length provides the spoofed length for the PPDU.  
+			This length provides part of the information (viz. PPDU 
+			duration) to derive the actually PSDU length.  For legacy
+			 OFDM and 11B frames the maximum length is 4095.
+			<legal all>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_LSB                         5
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MSB                         16
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MASK                        0x000000000001ffe0
+
+
+/* Description		PARITY
+
+			11a/n/ac TX: This field provides even parity over the first
+			 18 bits of the signal field which means that the sum of
+			 1s in the signal field will always be even on transmission. 
+			The value of the field is computed by the MAC.
+			11a/n/ac RX: this field contains the received parity field
+			 from the L-SIG symbol for the current packet.
+			<legal 0-1>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_LSB                         17
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MSB                         17
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MASK                        0x0000000000020000
+
+
+/* Description		TAIL
+
+			The 6 bits of tail is always set to 0 is used to flush the
+			 BCC encoder and decoder.  <legal 0>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_LSB                           18
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MSB                           23
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MASK                          0x0000000000fc0000
+
+
+/* Description		PKT_TYPE
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB                       24
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MSB                       27
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK                      0x000000000f000000
+
+
+/* Description		CAPTURED_IMPLICIT_SOUNDING
+
+			Only used on the RX side.  
+			Note: This is not really part of L-SIG
+			
+			This indicates that the PHY has captured implicit sounding.
+			
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET  0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB     28
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MSB     28
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK    0x0000000010000000
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_LSB                       29
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MSB                       30
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MASK                      0x0000000060000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the L-SIG integrity 
+			check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define PHYRX_L_SIG_A_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define PHYRX_L_SIG_A_TLV64_PADDING_LSB                                             32
+#define PHYRX_L_SIG_A_TLV64_PADDING_MSB                                             63
+#define PHYRX_L_SIG_A_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // PHYRX_L_SIG_A
diff --git a/hw/qca5332/phyrx_l_sig_b.h b/hw/qca5332/phyrx_l_sig_b.h
new file mode 100644
index 0000000..f3cf787
--- /dev/null
+++ b/hw/qca5332/phyrx_l_sig_b.h
@@ -0,0 +1,125 @@
+
+/* 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 _PHYRX_L_SIG_B_H_
+#define _PHYRX_L_SIG_B_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_b_info.h"
+#define NUM_OF_DWORDS_PHYRX_L_SIG_B 2
+
+#define NUM_OF_QWORDS_PHYRX_L_SIG_B 1
+
+
+struct phyrx_l_sig_b {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_b_info                                              phyrx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   l_sig_b_info                                              phyrx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHYRX_L_SIG_B_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		RATE
+
+			<enum 1    dsss_1_mpbs_long> DSSS 1 Mbps long
+			<enum 2    dsss_2_mbps_long> DSSS 2 Mbps long
+			<enum 3    cck_5_5_mbps_long> CCK 5.5 Mbps long
+			<enum 4    cck_11_mbps_long> CCK 11 Mbps long
+			<enum 5    dsss_2_mbps_short> DSSS 2 Mbps short
+			<enum 6    cck_5_5_mbps_short> CCK 5.5 Mbps short
+			<enum 7    cck_11_mbps_short> CCK 11 Mbps short
+			<legal 1-7>
+*/
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_LSB                           0
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MSB                           3
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+/* Description		LENGTH
+
+			The length indicates the number of octets in this MPDU.
+			<legal all>
+*/
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_LSB                         4
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MSB                         15
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MASK                        0x000000000000fff0
+
+
+/* Description		RESERVED
+
+			Reserved: Should be set to 0 by the transmitting MAC and
+			 ignored by the PHY <legal 0>
+*/
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_LSB                       16
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MSB                       30
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MASK                      0x000000007fff0000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the .11b PHY header 
+			CRC check has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define PHYRX_L_SIG_B_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define PHYRX_L_SIG_B_TLV64_PADDING_LSB                                             32
+#define PHYRX_L_SIG_B_TLV64_PADDING_MSB                                             63
+#define PHYRX_L_SIG_B_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // PHYRX_L_SIG_B
diff --git a/hw/qca5332/phyrx_location.h b/hw/qca5332/phyrx_location.h
new file mode 100644
index 0000000..0a24e3d
--- /dev/null
+++ b/hw/qca5332/phyrx_location.h
@@ -0,0 +1,920 @@
+
+/* 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 _PHYRX_LOCATION_H_
+#define _PHYRX_LOCATION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_location_info.h"
+#define NUM_OF_DWORDS_PHYRX_LOCATION 28
+
+#define NUM_OF_QWORDS_PHYRX_LOCATION 14
+
+
+struct phyrx_location {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_location_info                                          rx_location_info_details;
+#else
+             struct   rx_location_info                                          rx_location_info_details;
+#endif
+};
+
+
+/* Description		RX_LOCATION_INFO_DETAILS
+
+			Overview of location related info 
+*/
+
+
+/* Description		RX_LOCATION_INFO_VALID
+
+			<enum 0 rx_location_info_is_not_valid>
+			<enum 1 rx_location_info_is_valid>
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_OFFSET       0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_LSB          0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MSB          0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MASK         0x0000000000000001
+
+
+/* Description		RTT_HW_IFFT_MODE
+
+			Indicator showing if HW IFFT mode or SW IFFT mode
+			
+			<enum 0 location_sw_ifft_mode>
+			<enum 1 location_hw_ifft_mode>
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_OFFSET             0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_LSB                1
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MSB                1
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MASK               0x0000000000000002
+
+
+/* Description		RTT_11AZ_MODE
+
+			Indicator showing RTT5/.11mc or .11az mode for debug
+			
+			<enum 0 location_rtt5_mode> legacy RTT5/.11mc mode
+			<enum 1 location_11az_ISTA> .11az ISTA location info. sent
+			 on Rx path after receiving R2I LMR
+			<enum 2 location_RSVD>
+			<enum 3 location_11az_RSTA> .11az RSTA location info. sent
+			 on Tx path after transmitting R2I LMR
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_OFFSET                0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_LSB                   2
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MSB                   3
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MASK                  0x000000000000000c
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_OFFSET                   0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_LSB                      4
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MSB                      7
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MASK                     0x00000000000000f0
+
+
+/* Description		RTT_NUM_FAC
+
+			Number of valid first arrival correction (FAC) values (in
+			 fields rtt_fac_0 - rtt_fac_31)
+			<legal 0-32>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_OFFSET                  0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_LSB                     8
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MSB                     15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MASK                    0x000000000000ff00
+
+
+/* Description		RTT_RX_CHAIN_MASK
+
+			Rx chain mask, each bit is a Rx chain
+			0: the Rx chain is not used
+			1: the Rx chain is used
+			
+			Up to 4 Rx chains are supported.
+			
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_OFFSET            0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_LSB               16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MSB               23
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MASK              0x0000000000ff0000
+
+
+/* Description		RTT_NUM_STREAMS
+
+			Number of streams used
+			
+			Up to 8 streams are supported.
+			
+			<legal 0-8>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_OFFSET              0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_LSB                 24
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MSB                 31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MASK                0x00000000ff000000
+
+
+/* Description		RTT_FIRST_SELECTED_CHAIN
+
+			For legacy RTT5/.11mc mode, this field shows the first selected
+			 Rx chain that is used for FAC calculations, when forced
+			 by a virtual register.
+			
+			<enum 0 location_selected_chain_is_0>
+			<enum 1 location_selected_chain_is_1>
+			<enum 2 location_selected_chain_is_2>
+			<enum 3 location_selected_chain_is_3>
+			<legal 0-3>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_OFFSET     0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_LSB        32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MSB        39
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MASK       0x000000ff00000000
+
+
+/* Description		RTT_SECOND_SELECTED_CHAIN
+
+			For legacy RTT5/.11mc mode, this field shows the second 
+			selected Rx chain that is used for FAC calculations, when
+			 forced by a virtual register.
+			
+			<enum 0 location_selected_chain_is_0>
+			<enum 1 location_selected_chain_is_1>
+			<enum 2 location_selected_chain_is_2>
+			<enum 3 location_selected_chain_is_3>
+			<legal 0-3>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_OFFSET    0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_LSB       40
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MSB       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MASK      0x0000ff0000000000
+
+
+/* Description		RTT_CFR_STATUS
+
+			Status of channel frequency response dump
+			
+			<enum 0 location_CFR_dump_not_valid>
+			<enum 1 location_CFR_dump_valid>
+			<legal 0-1>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_OFFSET               0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_LSB                  48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MSB                  55
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MASK                 0x00ff000000000000
+
+
+/* Description		RTT_CIR_STATUS
+
+			Status of channel impulse response dump
+			
+			<enum 0 location_CIR_dump_not_valid>
+			<enum 1 location_CIR_dump_valid>
+			<legal 0-1>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_OFFSET               0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_LSB                  56
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MSB                  63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MASK                 0xff00000000000000
+
+
+/* Description		RTT_CHE_BUFFER_POINTER_LOW32
+
+			The low 32 bits of the 40 bits pointer pointed to the external
+			 RTT channel information buffer
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_LSB    0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MSB    31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MASK   0x00000000ffffffff
+
+
+/* Description		RTT_CHE_BUFFER_POINTER_HIGH8
+
+			The high 8 bits of the 40 bits pointer pointed to the external
+			 RTT channel information buffer
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_LSB    32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MSB    39
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MASK   0x000000ff00000000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_OFFSET                   0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_LSB                      40
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MASK                     0x0000ff0000000000
+
+
+/* Description		RTT_PKT_BW_VHT
+
+			Indicate the bandwidth of (V)HT/HE-LTF
+			
+			<enum 0 location_pkt_bw_20MHz>
+			<enum 1 location_pkt_bw_40MHz>
+			<enum 2 location_pkt_bw_80MHz>
+			<enum 3 location_pkt_bw_160MHz>
+			<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 240 MHz.
+			<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 320 MHz.
+			<legal 0-5>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_OFFSET               0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_LSB                  48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MSB                  51
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MASK                 0x000f000000000000
+
+
+/* Description		RTT_PKT_BW_LEG
+
+			Indicate the bandwidth of L-LTF
+			
+			<enum 0 location_pkt_bw_20MHz>
+			<enum 1 location_pkt_bw_40MHz>
+			<enum 2 location_pkt_bw_80MHz>
+			<enum 3 location_pkt_bw_160MHz>
+			<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 240 MHz.
+			<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 320 MHz.
+			<legal 0-5>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_OFFSET               0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_LSB                  52
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MSB                  55
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MASK                 0x00f0000000000000
+
+
+/* Description		RTT_MCS_RATE
+
+			Bits 0~4 indicate MCS rate, if Legacy, 
+			0: 48 Mbps,
+			1: 24 Mbps,
+			2: 12 Mbps,
+			3: 6 Mbps,
+			4: 54 Mbps,
+			5: 36 Mbps,
+			6: 18 Mbps,
+			7: 9 Mbps,
+			8-15: reserved
+			
+			if HT, 0-7: MCS0-MCS7, 8-15: reserved,
+			if VHT, 0-9: MCS0-MCS9, 10-15: reserved,
+			if HE or EHT, 0-11: MCS0-MCS11, 12-13: 4096QAM, 14-15: reserved
+			
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_OFFSET                 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_LSB                    56
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MSB                    63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MASK                   0xff00000000000000
+
+
+/* Description		RTT_CFO_MEASUREMENT
+
+			CFO measurement. Needed for passive locationing
+			
+			14 bits, signed 1.13. 13 bits fraction to provide a resolution
+			 of 153 Hz
+			
+			In units of cycles/800 ns
+			<legal 0-16383>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_OFFSET          0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_LSB             0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MSB             15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MASK            0x000000000000ffff
+
+
+/* Description		RTT_PREAMBLE_TYPE
+
+			Indicate preamble type
+			
+			<enum 0 location_preamble_type_legacy>
+			<enum 1 location_preamble_type_ht>
+			<enum 2 location_preamble_type_vht>
+			<enum 3 location_preamble_type_he_su_4xltf>
+			<enum 4 location_preamble_type_he_su_2xltf>
+			<enum 5 location_preamble_type_he_su_1xltf>
+			<enum 6 location_preamble_type_he_trigger_based_ul_4xltf>
+			
+			<enum 7 location_preamble_type_he_trigger_based_ul_2xltf>
+			
+			<enum 8 location_preamble_type_he_trigger_based_ul_1xltf>
+			
+			<enum 9 location_preamble_type_he_mu_4xltf>
+			<enum 10 location_preamble_type_he_mu_2xltf>
+			<enum 11 location_preamble_type_he_mu_1xltf>
+			<enum 12 location_preamble_type_he_extended_range_su_4xltf>
+			
+			<enum 13 location_preamble_type_he_extended_range_su_2xltf>
+			
+			<enum 14 location_preamble_type_he_extended_range_su_1xltf>
+			
+			<legal 0-14>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_OFFSET            0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_LSB               16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MSB               23
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MASK              0x0000000000ff0000
+
+
+/* Description		RTT_GI_TYPE
+
+			Indicate GI (guard interval) type
+			
+			<enum 0 location_gi_0_8_us > HE related GI. Can also be 
+			used for HE
+			<enum 1 location_gi_0_4_us > HE related GI. Can also be 
+			used for HE
+			<enum 2 location_gi_1_6_us > HE related GI
+			<enum 3 location_gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_OFFSET                  0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_LSB                     24
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MSB                     31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MASK                    0x00000000ff000000
+
+
+/* Description		RX_START_TS
+
+			RX packet start timestamp lower 32 bits
+			
+			It reports the time the first L-STF ADC sample arrived at
+			 RX antenna.
+			
+			The clock unit is 960MHz.
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_OFFSET                  0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_LSB                     32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MSB                     63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MASK                    0xffffffff00000000
+
+
+/* Description		RX_START_TS_UPPER
+
+			RX packet start timestamp upper 32 bits
+			
+			It reports the time the first L-STF ADC sample arrived at
+			 RX antenna.
+			
+			The clock unit is 960MHz.
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_OFFSET            0x0000000000000018
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_LSB               0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MSB               31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MASK              0x00000000ffffffff
+
+
+/* Description		RX_END_TS
+
+			RX packet end timestamp lower 32 bits
+			
+			It reports the time the last symbol's last ADC sample arrived
+			 at RX antenna.
+			
+			The clock unit is 960MHz. Only 32 bits are reported.
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_OFFSET                    0x0000000000000018
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MASK                      0xffffffff00000000
+
+
+/* Description		GAIN_CHAIN0
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain0
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_LSB                     0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MSB                     15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MASK                    0x000000000000ffff
+
+
+/* Description		GAIN_CHAIN1
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain1
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_LSB                     16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MSB                     31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MASK                    0x00000000ffff0000
+
+
+/* Description		GAIN_CHAIN2
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain2
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_LSB                     32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MSB                     47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MASK                    0x0000ffff00000000
+
+
+/* Description		GAIN_CHAIN3
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain3
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_LSB                     48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MSB                     63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MASK                    0xffff000000000000
+
+
+/* Description		GAIN_REPORT_STATUS
+
+			Number of valid gain reports (in fields gain_chain0 - gain_chain_3)
+			
+			<legal 0-4>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_OFFSET           0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_LSB              0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MSB              7
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MASK             0x00000000000000ff
+
+
+/* Description		RTT_TIMING_BACKOFF_SEL
+
+			Indicate which timing backoff value is used
+			
+			<enum 0 timing_backoff_low_rssi>
+			<enum 1 timing_backoff_mid_rssi>
+			<enum 2 timing_backoff_high_rssi>
+			<enum 3 reserved>
+			<legal 0-3>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_OFFSET       0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_LSB          8
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MSB          15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MASK         0x000000000000ff00
+
+
+/* Description		RTT_FAC_COMBINED
+
+			Final adjusted and combined first arrival correction value
+			
+			<legal all>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_OFFSET             0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_LSB                16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MSB                31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MASK               0x00000000ffff0000
+
+
+/* Description		RTT_FAC_0
+
+			The fields 'rtt_fac_0' - 'rtt_fac_31' show the RTT first
+			 arrival correction (FAC) value computed from the LTFs on
+			 the selected Rx chains.
+			
+			16 bits, signed 11.5. 11 integer bits to cover -3.2us to
+			 3.2us, and 5 fraction bits to cover 160 MHz with 32x FAC
+			 interpolation.
+			
+			The clock unit is 320MHz.
+			
+			For .11az/MIMO, the FACs will be stored in spatial stream
+			 order with multiple chains reported together for each stream. [ss0-ch0, 
+			ss0-ch1, ..., ss1-ch0, ss1-ch1, ...]
+			
+			For legacy RTT5/.11mc, the FACs will be stored in preamble
+			 order with multiple chains reported together for each LTF. [legacy-ch0, 
+			legacy-ch1, ..., (v)ht/he-ch0, (v)ht/he-ch1, ...]
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_OFFSET                    0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MASK                      0x0000ffff00000000
+
+
+/* Description		RTT_FAC_1
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_OFFSET                    0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MASK                      0xffff000000000000
+
+
+/* Description		RTT_FAC_2
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_LSB                       0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MSB                       15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MASK                      0x000000000000ffff
+
+
+/* Description		RTT_FAC_3
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_LSB                       16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MSB                       31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MASK                      0x00000000ffff0000
+
+
+/* Description		RTT_FAC_4
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MASK                      0x0000ffff00000000
+
+
+/* Description		RTT_FAC_5
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MASK                      0xffff000000000000
+
+
+/* Description		RTT_FAC_6
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_LSB                       0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MSB                       15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MASK                      0x000000000000ffff
+
+
+/* Description		RTT_FAC_7
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_LSB                       16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MSB                       31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MASK                      0x00000000ffff0000
+
+
+/* Description		RTT_FAC_8
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MASK                      0x0000ffff00000000
+
+
+/* Description		RTT_FAC_9
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MASK                      0xffff000000000000
+
+
+/* Description		RTT_FAC_10
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_11
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MASK                     0x00000000ffff0000
+
+
+/* Description		RTT_FAC_12
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MASK                     0x0000ffff00000000
+
+
+/* Description		RTT_FAC_13
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MASK                     0xffff000000000000
+
+
+/* Description		RTT_FAC_14
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_15
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MASK                     0x00000000ffff0000
+
+
+/* Description		RTT_FAC_16
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MASK                     0x0000ffff00000000
+
+
+/* Description		RTT_FAC_17
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MASK                     0xffff000000000000
+
+
+/* Description		RTT_FAC_18
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_19
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MASK                     0x00000000ffff0000
+
+
+/* Description		RTT_FAC_20
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MASK                     0x0000ffff00000000
+
+
+/* Description		RTT_FAC_21
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MASK                     0xffff000000000000
+
+
+/* Description		RTT_FAC_22
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_23
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MASK                     0x00000000ffff0000
+
+
+/* Description		RTT_FAC_24
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MASK                     0x0000ffff00000000
+
+
+/* Description		RTT_FAC_25
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MASK                     0xffff000000000000
+
+
+/* Description		RTT_FAC_26
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_27
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MASK                     0x00000000ffff0000
+
+
+/* Description		RTT_FAC_28
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MASK                     0x0000ffff00000000
+
+
+/* Description		RTT_FAC_29
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MASK                     0xffff000000000000
+
+
+/* Description		RTT_FAC_30
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_OFFSET                   0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MASK                     0x000000000000ffff
+
+
+/* Description		RTT_FAC_31
+
+			See 'rtt_fac_0' description
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_OFFSET                   0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MASK                     0x00000000ffff0000
+
+
+/* Description		RESERVED_27A
+
+			<legal 0>
+*/
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_OFFSET                 0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_LSB                    32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MSB                    63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MASK                   0xffffffff00000000
+
+
+
+#endif   // PHYRX_LOCATION
diff --git a/hw/qca5332/phyrx_other_receive_info_ru_details.h b/hw/qca5332/phyrx_other_receive_info_ru_details.h
new file mode 100644
index 0000000..7c26d0d
--- /dev/null
+++ b/hw/qca5332/phyrx_other_receive_info_ru_details.h
@@ -0,0 +1,107 @@
+
+/* 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 _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
+#define _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 4
+
+#define NUM_OF_QWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 2
+
+
+struct phyrx_other_receive_info_ru_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_details_channel_0                                    : 32; // [31:0]
+             uint32_t ru_details_channel_1                                    : 32; // [31:0]
+             uint32_t spare                                                   : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t ru_details_channel_0                                    : 32; // [31:0]
+             uint32_t ru_details_channel_1                                    : 32; // [31:0]
+             uint32_t spare                                                   : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RU_DETAILS_CHANNEL_0
+
+			Ru_allocation from content channel 0
+			[7:0] for 20/40 MHz
+			[15:0] for 80 MHz
+			[31:0] for 160 MHz
+			<legal all>
+*/
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_OFFSET             0x0000000000000000
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_LSB                0
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MSB                31
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MASK               0x00000000ffffffff
+
+
+/* Description		RU_DETAILS_CHANNEL_1
+
+			Ru_allocation from content channel 1
+			[7:0] for 40 MHz
+			[15:0] for 80 MHz
+			[31:0] for 160 MHz
+			<legal all>
+*/
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_OFFSET             0x0000000000000000
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_LSB                32
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MSB                63
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MASK               0xffffffff00000000
+
+
+/* Description		SPARE
+
+			Extra spare bits added to convey additional information
+			<legal all>
+*/
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_OFFSET                            0x0000000000000008
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_LSB                               0
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MSB                               31
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MASK                              0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_OFFSET                    0x0000000000000008
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_LSB                       32
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MSB                       63
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MASK                      0xffffffff00000000
+
+
+
+#endif   // PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS
diff --git a/hw/qca5332/phyrx_pkt_end.h b/hw/qca5332/phyrx_pkt_end.h
new file mode 100644
index 0000000..4f5fcf7
--- /dev/null
+++ b/hw/qca5332/phyrx_pkt_end.h
@@ -0,0 +1,1144 @@
+
+/* 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 _PHYRX_PKT_END_H_
+#define _PHYRX_PKT_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phyrx_pkt_end_info.h"
+#define NUM_OF_DWORDS_PHYRX_PKT_END 24
+
+#define NUM_OF_QWORDS_PHYRX_PKT_END 12
+
+
+struct phyrx_pkt_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   phyrx_pkt_end_info                                        rx_pkt_end_details;
+#else
+             struct   phyrx_pkt_end_info                                        rx_pkt_end_details;
+#endif
+};
+
+
+/* Description		RX_PKT_END_DETAILS
+
+			Overview of the final receive related parameters from the
+			 PHY RX
+*/
+
+
+/* Description		PHY_INTERNAL_NAP
+
+			When set, PHY RX entered an internal NAP state, as PHY determined
+			 that this reception was not destined to this device
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_OFFSET                    0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_LSB                       0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_MSB                       0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_MASK                      0x0000000000000001
+
+
+/* Description		LOCATION_INFO_VALID
+
+			Indicates that the RX_LOCATION_INFO structure later on in
+			 the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_OFFSET                 0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_LSB                    1
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_MSB                    1
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_MASK                   0x0000000000000002
+
+
+/* Description		TIMING_INFO_VALID
+
+			Indicates that the RX_TIMING_OFFSET_INFO structure later
+			 on in the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_OFFSET                   0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_LSB                      2
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_MSB                      2
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_MASK                     0x0000000000000004
+
+
+/* Description		RSSI_INFO_VALID
+
+			Indicates that the RECEIVE_RSSI_INFO structure later on 
+			in the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_OFFSET                     0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_LSB                        3
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_MSB                        3
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_MASK                       0x0000000000000008
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_LSB                            4
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_MSB                            4
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_MASK                           0x0000000000000010
+
+
+/* Description		FRAMELESS_FRAME_RECEIVED
+
+			When set, PHY has received the 'frameless frame' . Can be
+			 used in the 'MU-RTS -CTS exchange where CTS reception can
+			 be problematic.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_OFFSET            0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_LSB               5
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_MSB               5
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_MASK              0x0000000000000020
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_LSB                            6
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_MSB                            7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_MASK                           0x00000000000000c0
+
+
+/* Description		RSSI_COMB
+
+			Combined rssi of all chains. Based on primary channel RSSI.
+			
+			
+			This can be used by SW for cases, e.g. Ack/BlockAck responses, 
+			where 'PHYRX_RSSI_LEGACY' is not available to SW.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_OFFSET                           0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_LSB                              8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_MSB                              15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_MASK                             0x000000000000ff00
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_LSB                            16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_MSB                            31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_MASK                           0x00000000ffff0000
+
+
+/* Description		PHY_TIMESTAMP_1_LOWER_32
+
+			TODO PHY: cleanup descriptionThe PHY timestamp in the AMPI
+			 of the first rising edge of rx_clear_pri after TX_PHY_DESC. . 
+			 This field should set to 0 by the PHY and should be updated
+			 by the AMPI before being forwarded to the rest of the MAC. 
+			This field indicates the lower 32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_OFFSET            0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_LSB               32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_MSB               63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_MASK              0xffffffff00000000
+
+
+/* Description		PHY_TIMESTAMP_1_UPPER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the first rising edge of
+			 rx_clear_pri after TX_PHY_DESC.  This field should set 
+			to 0 by the PHY and should be updated by the AMPI before
+			 being forwarded to the rest of the MAC. This field indicates
+			 the upper 32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_OFFSET            0x0000000000000008
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_LSB               0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_MSB               31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_MASK              0x00000000ffffffff
+
+
+/* Description		PHY_TIMESTAMP_2_LOWER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the rising edge of rx_clear_pri
+			 after RX_RSSI_LEGACY.  This field should set to 0 by the
+			 PHY and should be updated by the AMPI before being forwarded
+			 to the rest of the MAC. This field indicates the lower 
+			32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_OFFSET            0x0000000000000008
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_LSB               32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_MSB               63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_MASK              0xffffffff00000000
+
+
+/* Description		PHY_TIMESTAMP_2_UPPER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the rising edge of rx_clear_pri
+			 after RX_RSSI_LEGACY.  This field should set to 0 by the
+			 PHY and should be updated by the AMPI before being forwarded
+			 to the rest of the MAC. This field indicates the upper 
+			32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_OFFSET            0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_LSB               0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_MSB               31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_MASK              0x00000000ffffffff
+
+
+/* Description		RX_TIMING_OFFSET_INFO_DETAILS
+
+			Overview of timing offset related info
+*/
+
+
+/* Description		RESIDUAL_PHASE_OFFSET
+
+			Cumulative reference frequency error at end of RX packet, 
+			expressed as the phase offset measured over 0.8us.  
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_OFFSET 0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MSB 43
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MASK 0x00000fff00000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_LSB 44
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MASK 0xfffff00000000000
+
+
+/* Description		POST_RSSI_INFO_DETAILS
+
+			Overview of the post-RSSI values. 
+*/
+
+
+/* Description		RSSI_PRI20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK 0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK 0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK 0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK 0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK 0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK 0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK 0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK 0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK 0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK 0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK 0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK 0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK 0xff00000000000000
+
+
+/* Description		PHY_SW_STATUS_31_0
+
+			Some PHY micro code status that can be put in here. Details
+			 of definition within SW specification
+			This field can be used for debugging, FW - SW message exchange, 
+			etc.
+			It could for example be a pointer to a DDR memory location
+			 where PHY FW put some debug info.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_OFFSET                  0x0000000000000058
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_LSB                     0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_MSB                     31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_MASK                    0x00000000ffffffff
+
+
+/* Description		PHY_SW_STATUS_63_32
+
+			Some PHY micro code status that can be put in here. Details
+			 of definition within SW specification
+			This field can be used for debugging, FW - SW message exchange, 
+			etc.
+			It could for example be a pointer to a DDR memory location
+			 where PHY FW put some debug info.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_OFFSET                 0x0000000000000058
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_LSB                    32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_MSB                    63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_MASK                   0xffffffff00000000
+
+
+
+#endif   // PHYRX_PKT_END
diff --git a/hw/qca5332/phyrx_pkt_end_info.h b/hw/qca5332/phyrx_pkt_end_info.h
new file mode 100644
index 0000000..ebcdf46
--- /dev/null
+++ b/hw/qca5332/phyrx_pkt_end_info.h
@@ -0,0 +1,1168 @@
+
+/* 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 _PHYRX_PKT_END_INFO_H_
+#define _PHYRX_PKT_END_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_rssi_info.h"
+#include "rx_timing_offset_info.h"
+#define NUM_OF_DWORDS_PHYRX_PKT_END_INFO 24
+
+
+struct phyrx_pkt_end_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_internal_nap                                        :  1, // [0:0]
+                      location_info_valid                                     :  1, // [1:1]
+                      timing_info_valid                                       :  1, // [2:2]
+                      rssi_info_valid                                         :  1, // [3:3]
+                      reserved_0a                                             :  1, // [4:4]
+                      frameless_frame_received                                :  1, // [5:5]
+                      reserved_0b                                             :  2, // [7:6]
+                      rssi_comb                                               :  8, // [15:8]
+                      reserved_0c                                             : 16; // [31:16]
+             uint32_t phy_timestamp_1_lower_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_1_upper_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_2_lower_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_2_upper_32                                : 32; // [31:0]
+             struct   rx_timing_offset_info                                     rx_timing_offset_info_details;
+             struct   receive_rssi_info                                         post_rssi_info_details;
+             uint32_t phy_sw_status_31_0                                      : 32; // [31:0]
+             uint32_t phy_sw_status_63_32                                     : 32; // [31:0]
+#else
+             uint32_t reserved_0c                                             : 16, // [31:16]
+                      rssi_comb                                               :  8, // [15:8]
+                      reserved_0b                                             :  2, // [7:6]
+                      frameless_frame_received                                :  1, // [5:5]
+                      reserved_0a                                             :  1, // [4:4]
+                      rssi_info_valid                                         :  1, // [3:3]
+                      timing_info_valid                                       :  1, // [2:2]
+                      location_info_valid                                     :  1, // [1:1]
+                      phy_internal_nap                                        :  1; // [0:0]
+             uint32_t phy_timestamp_1_lower_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_1_upper_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_2_lower_32                                : 32; // [31:0]
+             uint32_t phy_timestamp_2_upper_32                                : 32; // [31:0]
+             struct   rx_timing_offset_info                                     rx_timing_offset_info_details;
+             struct   receive_rssi_info                                         post_rssi_info_details;
+             uint32_t phy_sw_status_31_0                                      : 32; // [31:0]
+             uint32_t phy_sw_status_63_32                                     : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHY_INTERNAL_NAP
+
+			When set, PHY RX entered an internal NAP state, as PHY determined
+			 that this reception was not destined to this device
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_OFFSET                                  0x00000000
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_LSB                                     0
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_MSB                                     0
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_MASK                                    0x00000001
+
+
+/* Description		LOCATION_INFO_VALID
+
+			Indicates that the RX_LOCATION_INFO structure later on in
+			 the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_OFFSET                               0x00000000
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_LSB                                  1
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_MSB                                  1
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_MASK                                 0x00000002
+
+
+/* Description		TIMING_INFO_VALID
+
+			Indicates that the RX_TIMING_OFFSET_INFO structure later
+			 on in the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_OFFSET                                 0x00000000
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_LSB                                    2
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_MSB                                    2
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_MASK                                   0x00000004
+
+
+/* Description		RSSI_INFO_VALID
+
+			Indicates that the RECEIVE_RSSI_INFO structure later on 
+			in the TLV contains valid info
+*/
+
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_OFFSET                                   0x00000000
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_LSB                                      3
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_MSB                                      3
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_MASK                                     0x00000008
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_INFO_RESERVED_0A_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0A_LSB                                          4
+#define PHYRX_PKT_END_INFO_RESERVED_0A_MSB                                          4
+#define PHYRX_PKT_END_INFO_RESERVED_0A_MASK                                         0x00000010
+
+
+/* Description		FRAMELESS_FRAME_RECEIVED
+
+			When set, PHY has received the 'frameless frame' . Can be
+			 used in the 'MU-RTS -CTS exchange where CTS reception can
+			 be problematic.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_OFFSET                          0x00000000
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_LSB                             5
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_MSB                             5
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_MASK                            0x00000020
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_INFO_RESERVED_0B_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0B_LSB                                          6
+#define PHYRX_PKT_END_INFO_RESERVED_0B_MSB                                          7
+#define PHYRX_PKT_END_INFO_RESERVED_0B_MASK                                         0x000000c0
+
+
+/* Description		RSSI_COMB
+
+			Combined rssi of all chains. Based on primary channel RSSI.
+			
+			
+			This can be used by SW for cases, e.g. Ack/BlockAck responses, 
+			where 'PHYRX_RSSI_LEGACY' is not available to SW.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_INFO_RSSI_COMB_OFFSET                                         0x00000000
+#define PHYRX_PKT_END_INFO_RSSI_COMB_LSB                                            8
+#define PHYRX_PKT_END_INFO_RSSI_COMB_MSB                                            15
+#define PHYRX_PKT_END_INFO_RSSI_COMB_MASK                                           0x0000ff00
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_INFO_RESERVED_0C_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0C_LSB                                          16
+#define PHYRX_PKT_END_INFO_RESERVED_0C_MSB                                          31
+#define PHYRX_PKT_END_INFO_RESERVED_0C_MASK                                         0xffff0000
+
+
+/* Description		PHY_TIMESTAMP_1_LOWER_32
+
+			TODO PHY: cleanup descriptionThe PHY timestamp in the AMPI
+			 of the first rising edge of rx_clear_pri after TX_PHY_DESC. . 
+			 This field should set to 0 by the PHY and should be updated
+			 by the AMPI before being forwarded to the rest of the MAC. 
+			This field indicates the lower 32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_OFFSET                          0x00000004
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_MASK                            0xffffffff
+
+
+/* Description		PHY_TIMESTAMP_1_UPPER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the first rising edge of
+			 rx_clear_pri after TX_PHY_DESC.  This field should set 
+			to 0 by the PHY and should be updated by the AMPI before
+			 being forwarded to the rest of the MAC. This field indicates
+			 the upper 32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_OFFSET                          0x00000008
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_MASK                            0xffffffff
+
+
+/* Description		PHY_TIMESTAMP_2_LOWER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the rising edge of rx_clear_pri
+			 after RX_RSSI_LEGACY.  This field should set to 0 by the
+			 PHY and should be updated by the AMPI before being forwarded
+			 to the rest of the MAC. This field indicates the lower 
+			32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_OFFSET                          0x0000000c
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_MASK                            0xffffffff
+
+
+/* Description		PHY_TIMESTAMP_2_UPPER_32
+
+			TODO PHY: cleanup description 
+			The PHY timestamp in the AMPI of the rising edge of rx_clear_pri
+			 after RX_RSSI_LEGACY.  This field should set to 0 by the
+			 PHY and should be updated by the AMPI before being forwarded
+			 to the rest of the MAC. This field indicates the upper 
+			32 bits of the timestamp
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_OFFSET                          0x00000010
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_MASK                            0xffffffff
+
+
+/* Description		RX_TIMING_OFFSET_INFO_DETAILS
+
+			Overview of timing offset related info
+*/
+
+
+/* Description		RESIDUAL_PHASE_OFFSET
+
+			Cumulative reference frequency error at end of RX packet, 
+			expressed as the phase offset measured over 0.8us.  
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_OFFSET 0x00000014
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_LSB  0
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MSB  11
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MASK 0x00000fff
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_OFFSET            0x00000014
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_LSB               12
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MSB               31
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MASK              0xfffff000
+
+
+/* Description		POST_RSSI_INFO_DETAILS
+
+			Overview of the post-RSSI values. 
+*/
+
+
+/* Description		RSSI_PRI20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET          0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK            0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET          0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK            0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET    0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK      0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET   0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK     0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET    0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK      0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET   0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK     0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK         0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK         0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET          0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK            0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET          0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK            0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET    0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK      0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET   0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK     0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET    0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK      0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET   0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK     0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK         0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK         0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET          0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK            0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET          0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK            0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET    0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK      0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET   0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK     0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET    0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK      0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET   0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK     0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK         0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK         0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET          0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK            0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET          0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK            0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET    0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK      0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET   0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK     0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET    0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK      0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET   0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK     0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK         0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK         0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK         0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK         0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK         0xff000000
+
+
+/* Description		PHY_SW_STATUS_31_0
+
+			Some PHY micro code status that can be put in here. Details
+			 of definition within SW specification
+			This field can be used for debugging, FW - SW message exchange, 
+			etc.
+			It could for example be a pointer to a DDR memory location
+			 where PHY FW put some debug info.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_OFFSET                                0x00000058
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_LSB                                   0
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_MSB                                   31
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_MASK                                  0xffffffff
+
+
+/* Description		PHY_SW_STATUS_63_32
+
+			Some PHY micro code status that can be put in here. Details
+			 of definition within SW specification
+			This field can be used for debugging, FW - SW message exchange, 
+			etc.
+			It could for example be a pointer to a DDR memory location
+			 where PHY FW put some debug info.
+			<legal all>
+*/
+
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_OFFSET                               0x0000005c
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_LSB                                  0
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_MSB                                  31
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_MASK                                 0xffffffff
+
+
+
+#endif   // PHYRX_PKT_END_INFO
diff --git a/hw/qca5332/phyrx_rssi_legacy.h b/hw/qca5332/phyrx_rssi_legacy.h
new file mode 100644
index 0000000..f84ef32
--- /dev/null
+++ b/hw/qca5332/phyrx_rssi_legacy.h
@@ -0,0 +1,2256 @@
+
+/* 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 _PHYRX_RSSI_LEGACY_H_
+#define _PHYRX_RSSI_LEGACY_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_rssi_info.h"
+#define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 42
+
+#define NUM_OF_QWORDS_PHYRX_RSSI_LEGACY 21
+
+
+struct phyrx_rssi_legacy {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reception_type                                          :  4, // [3:0]
+                      rx_chain_mask_type                                      :  1, // [4:4]
+                      receive_bandwidth                                       :  3, // [7:5]
+                      rx_chain_mask                                           :  8, // [15:8]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t preamble_time_to_rxframe                                :  8, // [7:0]
+                      standalone_snifer_mode                                  :  1, // [8:8]
+                      reserved_5a                                             : 23; // [31:9]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             struct   receive_rssi_info                                         pre_rssi_info_details;
+             struct   receive_rssi_info                                         preamble_rssi_info_details;
+             uint32_t pre_rssi_comb                                           :  8, // [7:0]
+                      rssi_comb                                               :  8, // [15:8]
+                      normalized_pre_rssi_comb                                :  8, // [23:16]
+                      normalized_rssi_comb                                    :  8; // [31:24]
+             uint32_t rssi_comb_ppdu                                          :  8, // [7:0]
+                      rssi_db_to_dbm_offset                                   :  8, // [15:8]
+                      rssi_for_spatial_reuse                                  :  8, // [23:16]
+                      rssi_for_trigger_resp                                   :  8; // [31:24]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      rx_chain_mask                                           :  8, // [15:8]
+                      receive_bandwidth                                       :  3, // [7:5]
+                      rx_chain_mask_type                                      :  1, // [4:4]
+                      reception_type                                          :  4; // [3:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 23, // [31:9]
+                      standalone_snifer_mode                                  :  1, // [8:8]
+                      preamble_time_to_rxframe                                :  8; // [7:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             struct   receive_rssi_info                                         pre_rssi_info_details;
+             struct   receive_rssi_info                                         preamble_rssi_info_details;
+             uint32_t normalized_rssi_comb                                    :  8, // [31:24]
+                      normalized_pre_rssi_comb                                :  8, // [23:16]
+                      rssi_comb                                               :  8, // [15:8]
+                      pre_rssi_comb                                           :  8; // [7:0]
+             uint32_t rssi_for_trigger_resp                                   :  8, // [31:24]
+                      rssi_for_spatial_reuse                                  :  8, // [23:16]
+                      rssi_db_to_dbm_offset                                   :  8, // [15:8]
+                      rssi_comb_ppdu                                          :  8; // [7:0]
+#endif
+};
+
+
+/* Description		RECEPTION_TYPE
+
+			This field helps MAC SW determine which field in this (and
+			 following TLVs) will contain valid information. For example
+			 some RSSI info not valid in case of uplink_ofdma.. 
+			
+			In case of UL MU OFDMA or UL MU-MIMO reception pre-announced
+			 by MAC during trigger Tx, e-nums 0 or 1 should be used.
+			
+			
+			In case of UL MU OFDMA+MIMO reception, or in case of UL 
+			MU reception when PHY has not been pre-informed, e-num 2
+			 should be used.
+			If this happens, the UL MU frame in the medium is by definition
+			 not for this device.
+			As reference, see doc:
+			Lithium_mac_phy_interface_hld.docx
+			Chapter: 7.15.1: 11ax UL MU Reception TLV sequences when
+			 this device is not targeted.
+			
+			<enum 0 reception_is_uplink_ofdma>
+			<enum 1 reception_is_uplink_mimo>
+			<enum 2 reception_is_other>
+			<enum 3 reception_is_frameless> PHY RX has been instructed
+			 in advance that the upcoming reception is frameless. This
+			 implieas that in advance it is known that all frames will
+			 collide in the medium, and nothing can be properly decoded... 
+			This can happen during the CTS reception in response to 
+			the triggered MU-RTS transmission.
+			MAC takes no action when seeing this e_num. For the frameless
+			 reception the indication in pkt_end is the final one evaluated
+			 by the MAC
+			
+			For the relationship between pkt_type and this field, see
+			 the table at the end of this TLV description.
+			<legal 0-3>
+*/
+
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_OFFSET                                     0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_LSB                                        0
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_MSB                                        3
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_MASK                                       0x000000000000000f
+
+
+/* Description		RX_CHAIN_MASK_TYPE
+
+			Indicates if the field rx_chain_mask represents the mask
+			 at start of reception (on which the Rssi_comb value is 
+			based), or the setting used during the remainder of the 
+			reception
+			
+			1'b0: rxtd.listen_pri80_mask 
+			1'b1: Final receive mask
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_OFFSET                                 0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_LSB                                    4
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_MSB                                    4
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_MASK                                   0x0000000000000010
+
+
+/* Description		RECEIVE_BANDWIDTH
+
+			Full receive 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 PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_OFFSET                                  0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_LSB                                     5
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_MSB                                     7
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_MASK                                    0x00000000000000e0
+
+
+/* Description		RX_CHAIN_MASK
+
+			The chain mask at the start of the reception of this frame.
+			
+			
+			each bit is one antenna
+			0: the chain is NOT used
+			1: the chain is used
+			
+			Supports up to 8 chains
+			
+			Used in 11ax TPC calculations for UL OFDMA/MIMO and has 
+			to be in sync with the rssi_comb value as this is also used
+			 by the MAC for the TPC calculations.
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_OFFSET                                      0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_LSB                                         8
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_MSB                                         15
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_MASK                                        0x000000000000ff00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_OFFSET                                        0x0000000000000000
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_LSB                                           16
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_MSB                                           31
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_MASK                                          0x00000000ffff0000
+
+
+/* Description		SW_PHY_META_DATA
+
+			32 bit Meta data that SW can program in a 32 bit PHY register
+			 and PHY will insert the value in every RX_RSSI_LEGACY TLV
+			 that it generates. 
+			SW uses this field to embed among other things some SW channel
+			 info.
+*/
+
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_OFFSET                                   0x0000000000000000
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_LSB                                      32
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_MSB                                      63
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_MASK                                     0xffffffff00000000
+
+
+/* Description		PPDU_START_TIMESTAMP_31_0
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, lower 32 bits
+			
+			Note that PHY will detect the start later, and will have
+			 to derive out of the preamble info when the frame actually
+			 appeared on the medium.
+*/
+
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_OFFSET                          0x0000000000000008
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_LSB                             0
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_MSB                             31
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_MASK                            0x00000000ffffffff
+
+
+/* Description		PPDU_START_TIMESTAMP_63_32
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, upper 32 bits
+			
+			Note that PHY will detect the start later, and will have
+			 to derive out of the preamble info when the frame actually
+			 appeared on the medium.
+*/
+
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_OFFSET                         0x0000000000000008
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_LSB                            32
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_MSB                            63
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_MASK                           0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			NOTE: DO not assign a field... Internally used in RXPCU 
+			to store 'RX_PPDU_START::Rxframe_assert_timestamp.'
+			<legal 0>
+*/
+
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_LSB                                           0
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_MSB                                           31
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_MASK                                          0x00000000ffffffff
+
+
+/* Description		PREAMBLE_TIME_TO_RXFRAME
+
+			The time taken (in us) from the frame starting on the medium
+			 and PHY raising 'rx_frame'
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_OFFSET                           0x0000000000000010
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_LSB                              32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_MSB                              39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_MASK                             0x000000ff00000000
+
+
+/* Description		STANDALONE_SNIFER_MODE
+
+			When set to 1, PHY has been configured to operate in the
+			 stand alone sniffer mode.
+			When 0, PHY is operating in the "normal" mission mode.
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_OFFSET                             0x0000000000000010
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_LSB                                40
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_MSB                                40
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_MASK                               0x0000010000000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_OFFSET                                        0x0000000000000010
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_LSB                                           41
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_MSB                                           63
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_MASK                                          0xfffffe0000000000
+
+
+/* Description		RESERVED_6A
+
+			NOTE: DO not assign a field... Internally used in RXPCU 
+			to construct 'RX_PPDU_START.'
+			<legal 0>
+*/
+
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_OFFSET                                        0x0000000000000018
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_LSB                                           0
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_MSB                                           31
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_MASK                                          0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			NOTE: DO not assign a field... Internally used in RXPCU 
+			to construct 'RX_PPDU_START.'
+			<legal 0>
+*/
+
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_OFFSET                                        0x0000000000000018
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_LSB                                           32
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_MSB                                           63
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_MASK                                          0xffffffff00000000
+
+
+/* Description		PRE_RSSI_INFO_DETAILS
+
+			This field is not valid when reception_is_uplink_ofdma
+			
+			Overview of the pre-RSSI values. That is RSSI values measured
+			 on the medium before this reception started.
+*/
+
+
+/* Description		RSSI_PRI20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET            0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK              0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET            0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK              0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET      0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK        0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET     0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK       0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET      0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK        0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK   0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK   0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET     0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK       0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK           0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK           0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK           0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK           0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK           0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK           0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK           0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK           0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET            0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK              0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET            0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK              0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET      0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK        0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET     0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK       0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET      0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK        0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK   0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK   0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET     0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK       0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK           0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK           0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK           0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK           0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK           0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK           0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK           0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK           0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET            0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK              0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET            0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK              0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET      0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK        0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET     0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK       0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET      0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK        0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK   0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK   0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET     0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK       0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK           0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK           0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK           0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK           0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK           0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK           0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK           0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK           0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET            0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK              0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET            0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK              0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET      0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK        0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET     0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK       0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET      0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK        0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK   0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK   0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET     0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK       0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK           0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK           0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK           0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK           0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK           0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK           0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK           0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK           0xff00000000000000
+
+
+/* Description		PREAMBLE_RSSI_INFO_DETAILS
+
+			This field is not valid when reception_is_uplink_ofdma
+			
+			Overview of the RSSI values measured during the pre-amble
+			 phase of this reception
+*/
+
+
+/* Description		RSSI_PRI20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET       0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK         0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET       0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK         0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK   0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK  0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK   0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK  0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK      0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK      0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK      0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK      0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK      0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK      0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK      0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK      0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET       0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK         0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET       0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK         0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK   0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK  0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK   0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK  0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK      0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK      0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK      0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK      0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK      0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK      0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK      0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK      0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET       0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK         0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET       0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK         0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK   0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK  0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK   0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK  0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK      0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK      0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK      0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK      0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK      0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK      0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK      0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK      0xff00000000000000
+
+
+/* Description		RSSI_PRI20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET       0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK         0x00000000000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET       0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK         0x000000000000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK   0x0000000000ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK  0x00000000ff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK   0x000000ff00000000
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff0000000000
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff000000000000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK  0xff00000000000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK      0x00000000000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK      0x000000000000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK      0x0000000000ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK      0x00000000ff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK      0x000000ff00000000
+
+
+/* Description		RSSI_EXT160_5_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK      0x0000ff0000000000
+
+
+/* Description		RSSI_EXT160_6_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK      0x00ff000000000000
+
+
+/* Description		RSSI_EXT160_7_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK      0xff00000000000000
+
+
+/* Description		PRE_RSSI_COMB
+
+			Combined pre_rssi of all chains. Based on primary channel
+			 RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_OFFSET                                      0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_LSB                                         0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_MSB                                         7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_MASK                                        0x00000000000000ff
+
+
+/* Description		RSSI_COMB
+
+			Combined rssi of all chains. Based on primary channel RSSI.
+			
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_OFFSET                                          0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_LSB                                             8
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_MSB                                             15
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_MASK                                            0x000000000000ff00
+
+
+/* Description		NORMALIZED_PRE_RSSI_COMB
+
+			Combined pre_rssi of all chains, but "normalized" back to
+			 a single chain. This avoids PDG from having to evaluate
+			 this in combination with receive chain mask and perform
+			 all kinds of pre-processing algorithms.
+			
+			Based on primary channel RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_OFFSET                           0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_LSB                              16
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_MSB                              23
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_MASK                             0x0000000000ff0000
+
+
+/* Description		NORMALIZED_RSSI_COMB
+
+			Combined rssi of all chains, but "normalized" back to a 
+			single chain. This avoids PDG from having to evaluate this
+			 in combination with receive chain mask and perform all 
+			kinds of pre-processing algorithms.
+			
+			Based on primary channel RSSI.
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_OFFSET                               0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_LSB                                  24
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_MSB                                  31
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_MASK                                 0x00000000ff000000
+
+
+/* Description		RSSI_COMB_PPDU
+
+			Combined rssi of all chains, based on active RUs/subchannels, 
+			a.k.a. rssi_pkt_bw_mac
+			
+			RSSI is reported as 8b signed values. Nominally value is
+			 in dB units above or below the noisefloor(minCCApwr). 
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			When packet BW is 20 MHz,
+			rssi_comb_ppdu = rssi_comb.
+			
+			When packet BW > 20 MHz,
+			rssi_comb < rssi_comb_ppdu because rssi_comb only includes
+			 power of primary 20 MHz while rssi_comb_ppdu includes power
+			 of active RUs/subchannels.
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_OFFSET                                     0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_LSB                                        32
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_MSB                                        39
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_MASK                                       0x000000ff00000000
+
+
+/* Description		RSSI_DB_TO_DBM_OFFSET
+
+			Offset between 'dB' and 'dBm' values. SW can use this value
+			 to convert RSSI 'dBm' values back to 'dB,' and report both
+			 the values.
+			
+			When rssi_db_to_dbm_offset = 0,
+			all rssi_xxx fields are defined in dB.
+			
+			When rssi_db_to_dbm_offset is a large negative value, all
+			 rssi_xxx fields are defined in dBm.
+			
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_OFFSET                              0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_LSB                                 40
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_MSB                                 47
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_MASK                                0x0000ff0000000000
+
+
+/* Description		RSSI_FOR_SPATIAL_REUSE
+
+			RSSI to be used by HWSCH for transmit (power) selection 
+			during an SR opportunity, reported as an 8-bit signed value
+			
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			As per 802.11ax draft 3.3 subsubclauses 27.10.2.2/3, for
+			 OBSS PD spatial reuse, the received signal strength level
+			 should be measured from the L-STF or L-LTF (but not L-SIG), 
+			just as measured to indicate CCA.
+			
+			Also, as per 802.11ax draft 3.3, for OBSS PD spatial reuse, 
+			MAC should compare this value with its programmed OBSS_PDlevel
+			 scaled from 20 MHz to the Rx PPDU bandwidth. Since MAC 
+			does not do this scaling, PHY is instead expected to normalize
+			 the reported RSSI to 20 MHz.
+			
+			Also as per 802.11ax draft 3.3 subsubclause 27.10.3.2, for
+			 SRP spatial reuse, the received power level should be measured
+			 from the L-STF or L-LTF (but not L-SIG) and normalized 
+			to 20 MHz.
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_OFFSET                             0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_LSB                                48
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_MSB                                55
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_MASK                               0x00ff000000000000
+
+
+/* Description		RSSI_FOR_TRIGGER_RESP
+
+			RSSI to be used by PDG for transmit (power) selection during
+			 trigger response, reported as an 8-bit signed value
+			
+			The resolution can be: 
+			1dB or 0.5dB. This is statically configured within the PHY
+			 and MAC
+			
+			In case of 1dB, the Range is:
+			 -128dB to 127dB
+			
+			In case of 0.5dB, the Range is:
+			 -64dB to 63.5dB
+			
+			As per 802.11ax draft 3.3 subsubclauses 28.3.14.2, for trigger
+			 response, the received power should be measured from the
+			 non-HE portion of the preamble of the PPDU containing the
+			 trigger, normalized to 20 MHz, averaged over the antennas
+			 over which the average pathloss is being computed.
+			<legal all>
+*/
+
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_OFFSET                              0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_LSB                                 56
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_MSB                                 63
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_MASK                                0xff00000000000000
+
+
+
+#endif   // PHYRX_RSSI_LEGACY
diff --git a/hw/qca5332/phyrx_vht_sig_a.h b/hw/qca5332/phyrx_vht_sig_a.h
new file mode 100644
index 0000000..c0a02cb
--- /dev/null
+++ b/hw/qca5332/phyrx_vht_sig_a.h
@@ -0,0 +1,370 @@
+
+/* 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 _PHYRX_VHT_SIG_A_H_
+#define _PHYRX_VHT_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_a_info.h"
+#define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2
+
+#define NUM_OF_QWORDS_PHYRX_VHT_SIG_A 1
+
+
+struct phyrx_vht_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_a_info                                            phyrx_vht_sig_a_info_details;
+#else
+             struct   vht_sig_a_info                                            phyrx_vht_sig_a_info_details;
+#endif
+};
+
+
+/* Description		PHYRX_VHT_SIG_A_INFO_DETAILS
+
+			See detailed description of the STRUCT
+*/
+
+
+/* Description		BANDWIDTH
+
+			Packet bandwidth
+			
+			<enum 0    20_MHZ_11AC>
+			<enum 1    40_MHZ_11AC>
+			<enum 2    80_MHZ_11AC>
+			<enum 3    160_MHZ_11AC>
+			
+			<legal 0-3>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET               0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB                  0
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MSB                  1
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK                 0x0000000000000003
+
+
+/* Description		VHTA_RESERVED_0
+
+			Reserved.  Set to 1 by MAC, PHY should ignore
+			<legal 1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET         0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB            2
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MSB            2
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK           0x0000000000000004
+
+
+/* Description		STBC
+
+			Space time block coding:
+			<enum 0     stbc_disabled>  Indicates STBC is disabled
+			<enum 1     stbc_enabled>  Indicates STBC is enabled on 
+			all streams
+			<legal 0-1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET                    0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB                       3
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MSB                       3
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK                      0x0000000000000008
+
+
+/* Description		GROUP_ID
+
+			In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 
+			to an AP or to a mesh STA, the Group ID field is set to 
+			0, otherwise it is set to 63.  In an NDP PPDU the Group 
+			ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
+			 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
+			 ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group 
+			ID).  <legal all>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET                0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB                   4
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MSB                   9
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK                  0x00000000000003f0
+
+
+/* Description		N_STS
+
+			For MU: 
+			3 bits/user with maximum of 4 users (user u uses
+			vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 
+			3) 
+			Set to 0 for 0 space time streams
+			Set to 1 for 1 space time stream
+			Set to 2 for 2 space time streams
+			Set to 3 for 3 space time streams
+			Set to 4 for 4 space time streams (not supported in Wifi
+			 3.0)
+			Values 5-7 are reserved
+			In this field, references to user "u" should be interpreted
+			 as MU user "u". As described in the previous chapter in
+			 this document (see chapter on User number), the MU user
+			 value for a given client is defined for each MU group that
+			 the client participates in. The MU user number is not related
+			 to the internal user number that is used within the BFer. 
+			
+			
+			
+			For SU:
+			vht_sig_a[0][12:10]
+			Set to 0 for 1 space time stream
+			Set to 1 for 2 space time streams
+			Set to 2 for 3 space time streams
+			Set to 3 for 4 space time streams 
+			Set to 4 for 5 space time streams 
+			Set to 5 for 6 space time streams
+			Set to 6 for 7 space time streams
+			Set to 7 for 8 space time streams
+			
+			vht_sig_a[0][21:13]
+			Partial AID: 
+			Set to the value of the TXVECTOR parameter PARTIAL_AID. 
+			Partial AID provides an abbreviated indication of the intended
+			 recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
+			 9.17a (Partial AID in VHT PPDUs)).
+			<legal all>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET                   0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB                      10
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MSB                      21
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK                     0x00000000003ffc00
+
+
+/* Description		TXOP_PS_NOT_ALLOWED
+
+			E_num 0     txop_ps_allowed  Not supported: If set to by
+			 VHT AP if it allows non-AP VHT STAs in TXOP power save 
+			mode to enter Doze state during a TXOP
+			<enum 1     no_txop_ps_allowed> Otherwise
+			<legal 1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB        22
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MSB        22
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK       0x0000000000400000
+
+
+/* Description		VHTA_RESERVED_0B
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY  <legal 1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET        0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB           23
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MSB           23
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK          0x0000000000800000
+
+
+/* Description		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 PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB                 24
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MSB                 31
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK                0x00000000ff000000
+
+
+/* Description		GI_SETTING
+
+			<enum 0     normal_gi>  Indicates short guard interval is
+			 not used in the data field
+			<enum 1     short_gi>  Indicates short guard interval is
+			 used in the data field
+			<enum 3     short_gi_ambiguity>  Indicates short guard interval
+			 is used in the data field and NSYM mod 10 = 9
+			NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
+			 and PSDU_LENGTH calculation).
+			<legal 0,1,3>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB                 32
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MSB                 33
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK                0x0000000300000000
+
+
+/* Description		SU_MU_CODING
+
+			For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
+			 MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
+			 B2 indicates the coding used for user 0; set to 0 for BCC
+			 and 1 for LDPC. If the MU[0] NSTS field is 0, then this
+			 field is reserved and set to 1
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET            0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB               34
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MSB               34
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK              0x0000000400000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), 
+			or at least one LDPC user's PPDU encoding process (if an
+			 MU PPDU), results in an extra OFDM symbol (or symbols) 
+			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
+			 (Encoding process for MU PPDUs). Set to 0 otherwise.
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET       0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB          35
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB          35
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK         0x0000000800000000
+
+
+/* Description		MCS
+
+			For SU:
+			Set to 0 for BPSK 1/2
+			Set to 1 for QPSK 1/2
+			Set to 2 for QPSK 3/4
+			Set to 3 for 16-QAM 1/2
+			Set to 4 for 16-QAM 3/4
+			Set to 5 for 64-QAM 2/3
+			Set to 6 for 64-QAM 3/4
+			Set to 7 for 64-QAM 5/6
+			Set to 8 for 256-QAM 3/4
+			Set to 9 for 256-QAM 5/6
+			For MU:
+			If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
+			 coding for user 1: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 
+			reserved and set to 1.
+			If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
+			 coding for user 2: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 
+			reserved and set to 1.
+			If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
+			 coding for user 3: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 
+			reserved and set to 1.
+			vht_sig_a[1][7] is reserved and set to 1
+			<legal 0-15>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET                     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB                        36
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MSB                        39
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK                       0x000000f000000000
+
+
+/* Description		BEAMFORMED
+
+			For SU:
+			Set to 1 if a Beamforming steering matrix is applied to 
+			the waveform in an SU transmission as described in IEEE802.11ac_D1.0
+			 Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
+			
+			For MU:
+			Reserved and set to 1
+			<legal 0-1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB                 40
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MSB                 40
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK                0x0000010000000000
+
+
+/* Description		VHTA_RESERVED_1
+
+			Reserved and set to 1.  <legal 1>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET         0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB            41
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MSB            41
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK           0x0000020000000000
+
+
+/* Description		CRC
+
+			CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
+			 (CRC calculation for HTSIG) with C7 in vht_sig_a[1][10], 
+			etc.  <legal all>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET                     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB                        42
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MSB                        49
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK                       0x0003fc0000000000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder. 
+			 Set to 0.  <legal 0>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET                    0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB                       50
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MSB                       55
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK                      0x00fc000000000000
+
+
+/* Description		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 PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB                 56
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MSB                 62
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK                0x7f00000000000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB  63
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB  63
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif   // PHYRX_VHT_SIG_A
diff --git a/hw/qca5332/phytx_abort_request_info.h b/hw/qca5332/phytx_abort_request_info.h
new file mode 100644
index 0000000..cdd6174
--- /dev/null
+++ b/hw/qca5332/phytx_abort_request_info.h
@@ -0,0 +1,251 @@
+
+/* 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 _PHYTX_ABORT_REQUEST_INFO_H_
+#define _PHYTX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_PHYTX_ABORT_REQUEST_INFO 1
+
+
+struct phytx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t phytx_abort_reason                                      :  8, // [7:0]
+                      user_number                                             :  6, // [13:8]
+                      reserved                                                :  2; // [15:14]
+#else
+             uint16_t reserved                                                :  2, // [15:14]
+                      user_number                                             :  6, // [13:8]
+                      phytx_abort_reason                                      :  8; // [7:0]
+#endif
+};
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Reason for early termination of TX packet by the PHY 
+			
+			<enum 0 no_phytx_error_reported>This value is the default
+			 value the MAC will fill in the status TLV (when not PHY
+			 abort was received).
+			
+			Note that when PHY generates the PHYTX_ABORT_REQUEST, this
+			 value shall never be used.
+			<enum 1 error_txtd_ifft_underrun>PHY ran out of transmit
+			 data due to transmit underrun - this field is user-specific
+			 (see user_number field)
+			<enum 2 error_tx_invalid_tlv>
+			<enum 3 error_tx_unexpected_tlv>
+			<enum 4 error_tx_pkt_end_error>
+			<enum 5 error_tx_bw_is_gt_dyn_bw>
+			<enum 6 error_txtd_pkt_start_error>
+			<enum 7 error_txfd_pre_phy_tlv_ooo>
+			<enum 8 error_txtd_mu_data_underrun>
+			<enum 9 error_tx_legacy_rate_illegal>
+			<enum 10 error_tx_fifo_error>
+			<enum 11 error_tx_ack_wd_error>
+			<enum 12 error_tx_tpc_miss>
+			<enum 13 error_mac_tx_abort>
+			<enum 14 error_tx_pcss_phy_desc_wdg_timeout>
+			<enum 15 error_unsupported_cbf>
+			<enum 16 error_cv_static_bandwidth_mismatch>
+			<enum 17 error_cv_dynamic_bandwidth_mismatch>
+			<enum 18 error_cv_unsupported_nss_total>
+			<enum 19 error_nss_bf_params_mismatch>
+			<enum 20 error_txbf_fail>
+			<enum 21 error_txbf_snd_fail>This used to be called 'error_illegal_nss.'
+			
+			<enum 22 error_otp_txbf>
+			<enum 23 error_tx_inv_chainmask>
+			<enum 24 error_cv_index_assign_overload>This error indicates
+			 that CV prefetch command indicated a CV index that is not
+			 available.
+			<enum 25 error_cv_index_delete>This error indicates that
+			 CV delete command indicated a CV index that did not contain
+			 any valid info
+			<enum 26 error_tx_he_rate_illegal>Error found with the HE
+			 transmission parameters
+			<enum 27 error_tx_pcss_wdg_timeout>
+			<enum 28 error_tx_tlv_tag_mismatch>
+			<enum 29 error_tx_cck_fifo_flush>
+			<enum 30 error_tx_no_mac_pkt_end>
+			<enum 31 error_tx_abort_for_mac_war>
+			<enum 32 error_tx_stuck>
+			<enum 33 error_tx_invalid_uplink_tlv>
+			<enum 34 error_txfd_txcck_illegal_tx_rate_error>
+			<enum 35 error_txfd_txcck_underrun_error>
+			<enum 36 error_txfd_mpi_req_grant_error>
+			<enum 37 error_txfd_control_tlv_fifo_ovfl_error>
+			<enum 38 error_txfd_tlv_fifo_overflow_error>
+			<enum 39 error_txfd_data_fifo_underflow_error>
+			<enum 40 error_txfd_data_fifo_overflow_error>
+			<enum 41 error_txfd_service_fifo_overflow_error>
+			<enum 42 error_txfd_he_sigb_fifo_overflow_error>
+			<enum 43 error_txfd_spurious_data_fifo_error>
+			<enum 44 error_txfd_he_siga_fifo_ovfl_error>
+			<enum 45 error_txfd_unknown_tlv_error>
+			<enum 46 error_txfd_mac_response_ordering_error>
+			<enum 47 error_txfd_unexpected_mac_pkt_end_error>
+			<enum 48 error_txfd_tlv_fifo_rd_hang_error>All FIFO read
+			 hang errors use this value.
+			<enum 49 error_txfd_tlv_fifo_no_rd_error>All FIFO no read
+			 errors use this value.
+			<enum 50 error_txfd_ordering_fifo_no_rd_error>
+			<enum 51 error_txfd_illegal_cf_tlv_error>
+			<enum 52 error_txfd_user_ru_hang_error>
+			<enum 53 error_txfd_stream_ru_hang_error>
+			<enum 54 error_txfd_num_pad_bits_error>
+			<enum 55 error_txfd_phy_abort_ack_wd_to_error>
+			<enum 56 error_txfd_pre_pkt_isr_not_done_before_phy_desc_error>
+			
+			<enum 57 error_txfd_bf_weights_not_ready_error>
+			<enum 58 error_txfd_req_timer_breach_error>
+			<enum 59 error_txfd_wd_to_error>
+			<enum 60 error_txfd_legacy_bf_weights_not_ready_error>
+			<enum 61 error_txfd_axi_slave_to_error>
+			<enum 62 error_txfd_hw_acc_error>
+			<enum 63 error_txfd_txb_req_fifo_underrun_error>
+			<enum 64 error_txfd_unknown_ru_alloc_error>
+			<enum 65 error_txfd_more_user_desc_per_user_tlvs_error>
+			<enum 66 error_txfd_ldpc_param_calc_to_error>
+			<enum 69 error_txfd_cbf_start_before_expect_cbf_clear_error>
+			
+			<enum 70 error_txfd_out_of_range_cbf_user_id_error>
+			<enum 71 error_txfd_less_cbf_data_error>
+			<enum 72 error_txfd_more_cbf_data_error>
+			<enum 73 error_txfd_cbf_done_not_received_error>
+			<enum 74 error_txfd_mpi_cbf_valid_to_error>
+			<enum 75 error_txfd_cbf_start_missing_error>
+			<enum 76 error_txfd_mimo_ctrl_error>
+			<enum 77 error_txfd_cbf_buffer_ovfl_error>
+			<enum 78 error_txfd_dma0_hang_error>
+			<enum 79 error_txfd_dma1_hang_error>
+			<enum 80 error_txfd_b2b_cbf_start_error>
+			<enum 81 error_txfd_b2b_cbf_done_error>
+			<enum 82 error_txfd_unsaved_cv_error>
+			<enum 83 error_txfd_wt_mem_wr_conflict_error>
+			<enum 84 error_txfd_wt_mem_rd_conflict_error>
+			<enum 85 error_txfd_qre_intf_to_error>
+			<enum 86 error_txfd_qre_txbf_stomp_rx_error>
+			<enum 87 error_txfd_qre_rx_stomp_txbf_error>
+			<enum 88 error_txfd_precoding_start_before_bf_param_clr_error>
+			
+			<enum 89 error_txfd_tone_map_lut_rd_conflict_error>
+			<enum 90 error_txfd_precoding_fifo_ovfl_error>
+			<enum 91 error_txfd_precoding_fifo_udfl_error>
+			<enum 92 error_txfd_txbf_axi_slave_to_error>
+			<enum 93 error_txfd_less_prefetch_tlvs_error>
+			<enum 94 error_txfd_more_prefetch_tlvs_error>
+			<enum 95 error_txfd_prefetch_fifo_ovfl_error>
+			<enum 96 error_txfd_prefetch_fifo_udfl_error>
+			<enum 97 error_txfd_precoding_error>
+			<enum 98 error_txfd_cv_ctrl_state_to_error>
+			<enum 99 error_txfd_txbfp_qre_tone_udfl_error>
+			<enum 100 error_txfd_less_bf_param_per_user_tlvs_error>
+			<enum 101 error_txfd_more_bf_param_per_user_tlvs_error>
+			<enum 102 error_txfd_bf_param_common_unexpected_error>
+			<enum 103 error_txfd_less_expect_cbf_per_user_tlvs_error>
+			
+			<enum 104 error_txfd_more_expect_cbf_per_user_tlvs_error>
+			
+			<enum 105 error_txfd_precoding_stg1_stg2_wait_to_error>
+			<enum 106 error_txfd_expect_cbf_per_user_before_common_error>
+			
+			<enum 107 error_txfd_prefetch_per_user_before_common_error>
+			
+			<enum 108 error_txfd_bf_param_per_user_before_common_error>
+			
+			<enum 109 error_txfd_ndp_cbf_bw_mismatch_error>
+			<enum 110 error_txtd_tx_pre_desc_error>
+			<enum 111 error_txtd_tx_desc_error>
+			<enum 112 error_txtd_start_error>
+			<enum 113 error_txtd_sym_error>
+			<enum 114 error_txtd_multi_sym_error>
+			<enum 115 error_txtd_pre_data_error>
+			<enum 116 error_txtd_pkt_data_error>
+			<enum 117 error_txtd_pkt_end_error>
+			<enum 118 error_txtd_tx_frame_unexp>
+			<enum 119 error_txtd_start_unexp>
+			<enum 120 error_txtd_fft_error_1>
+			<enum 121 error_txtd_fft_error_2>
+			<enum 122 error_txtd_uld_sym_cp_len_zero>
+			<enum 123 error_txtd_start_done>
+			<enum 124 error_txtd_start_nonidle>
+			<enum 125 error_txtd_tx_abort_nonidle>
+			<enum 126 error_txtd_tx_abort_done>
+			<enum 127 error_txtd_tx_abort_idle>
+			<enum 128 error_txtd_cck_sample_overflow>
+			<enum 129 error_txtd_cck_timeout>
+			<enum 130 error_txtd_ofdm_sym_mismatch>
+			<enum 131 error_txtd_tx_vld_unalign_error>
+			<enum 132 error_txtd_fft_cdc_fifo>This is the merged Rx/Tx
+			 CDC FIFO empty/full error code
+			<enum 133 error_mac_tb_ppdu_abort>All 'error_txtd_chn' codes
+			 use this value as well.
+			<enum 136 error_abort_req_from_macrx_enum_05>This code is
+			 used to abort the Tx when MAC Rx issues an abort request
+			 with code 05 "macrx_abort_too_much_bad_data."
+			<enum 137 error_tx_extra_sym_mismatch>
+			<enum 138 error_tx_vht_length_not_multiple_of_3>
+			<enum 139 error_tx_11b_rate_illegal>
+			<enum 140 error_tx_ht_rate_illegal>
+			<enum 141 error_tx_vht_rate_illegal>
+			<enum 142 error_mac_rf_only_abort>
+			<enum 255 error_tx_invalid_error_code>
+*/
+
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_OFFSET                          0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_LSB                             0
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MSB                             7
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MASK                            0x000000ff
+
+
+/* Description		USER_NUMBER
+
+			For some errors, the user for which this error was detected
+			 can be indicated in this field.
+			<legal 0-36>
+*/
+
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_OFFSET                                 0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_LSB                                    8
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MSB                                    13
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MASK                                   0x00003f00
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_OFFSET                                    0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_LSB                                       14
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MSB                                       15
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MASK                                      0x0000c000
+
+
+
+#endif   // PHYTX_ABORT_REQUEST_INFO
diff --git a/hw/qca5332/phytx_ppdu_header_info_request.h b/hw/qca5332/phytx_ppdu_header_info_request.h
new file mode 100644
index 0000000..4424fb8
--- /dev/null
+++ b/hw/qca5332/phytx_ppdu_header_info_request.h
@@ -0,0 +1,98 @@
+
+/* 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 _PHYTX_PPDU_HEADER_INFO_REQUEST_H_
+#define _PHYTX_PPDU_HEADER_INFO_REQUEST_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_PHYTX_PPDU_HEADER_INFO_REQUEST 2
+
+#define NUM_OF_DWORDS_PHYTX_PPDU_HEADER_INFO_REQUEST 1
+
+
+struct phytx_ppdu_header_info_request {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t request_type                                            :  5, // [4:0]
+                      reserved                                                : 11; // [15:5]
+             uint16_t tlv32_padding                                           : 16; // [15:0]
+#else
+             uint16_t reserved                                                : 11, // [15:5]
+                      request_type                                            :  5; // [4:0]
+             uint16_t tlv32_padding                                           : 16; // [15:0]
+#endif
+};
+
+
+/* Description		REQUEST_TYPE
+
+			Reason for the request by PHY 
+			<enum 0 request_L_SIG_B> 
+			<enum 1  request_L_SIG_A>
+			<enum 2 request_USER_DESC> 
+			<enum 3  request_HT_SIG>
+			<enum 4  request_VHT_SIG_A>
+			<enum 5  request_VHT_SIG_B >
+			<enum 6 request_TX_SERVICE>
+			<enum 7 request_HE_SIG_A>
+			<enum 8 request_HE_SIG_B>
+			<enum 9 request_U_SIG>
+			<enum 10 request_EHT_SIG>
+			
+			<legal 0-10>
+*/
+
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_OFFSET                          0x00000000
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_LSB                             0
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_MSB                             4
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_REQUEST_TYPE_MASK                            0x0000001f
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_OFFSET                              0x00000000
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_LSB                                 5
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_MSB                                 15
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_RESERVED_MASK                                0x0000ffe0
+
+
+/* Description		TLV32_PADDING
+
+			Automatic WORD padding inserted while converting TLV16 to
+			 TLV32 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_OFFSET                         0x00000002
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_LSB                            0
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_MSB                            15
+#define PHYTX_PPDU_HEADER_INFO_REQUEST_TLV32_PADDING_MASK                           0x0000ffff
+
+
+
+#endif   // PHYTX_PPDU_HEADER_INFO_REQUEST
diff --git a/hw/qca5332/receive_rssi_info.h b/hw/qca5332/receive_rssi_info.h
new file mode 100644
index 0000000..6a40239
--- /dev/null
+++ b/hw/qca5332/receive_rssi_info.h
@@ -0,0 +1,1002 @@
+
+/* 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 _RECEIVE_RSSI_INFO_H_
+#define _RECEIVE_RSSI_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVE_RSSI_INFO 16
+
+
+struct receive_rssi_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rssi_pri20_chain0                                       :  8, // [7:0]
+                      rssi_ext20_chain0                                       :  8, // [15:8]
+                      rssi_ext40_low20_chain0                                 :  8, // [23:16]
+                      rssi_ext40_high20_chain0                                :  8; // [31:24]
+             uint32_t rssi_ext80_low20_chain0                                 :  8, // [7:0]
+                      rssi_ext80_low_high20_chain0                            :  8, // [15:8]
+                      rssi_ext80_high_low20_chain0                            :  8, // [23:16]
+                      rssi_ext80_high20_chain0                                :  8; // [31:24]
+             uint32_t rssi_ext160_0_chain0                                    :  8, // [7:0]
+                      rssi_ext160_1_chain0                                    :  8, // [15:8]
+                      rssi_ext160_2_chain0                                    :  8, // [23:16]
+                      rssi_ext160_3_chain0                                    :  8; // [31:24]
+             uint32_t rssi_ext160_4_chain0                                    :  8, // [7:0]
+                      rssi_ext160_5_chain0                                    :  8, // [15:8]
+                      rssi_ext160_6_chain0                                    :  8, // [23:16]
+                      rssi_ext160_7_chain0                                    :  8; // [31:24]
+             uint32_t rssi_pri20_chain1                                       :  8, // [7:0]
+                      rssi_ext20_chain1                                       :  8, // [15:8]
+                      rssi_ext40_low20_chain1                                 :  8, // [23:16]
+                      rssi_ext40_high20_chain1                                :  8; // [31:24]
+             uint32_t rssi_ext80_low20_chain1                                 :  8, // [7:0]
+                      rssi_ext80_low_high20_chain1                            :  8, // [15:8]
+                      rssi_ext80_high_low20_chain1                            :  8, // [23:16]
+                      rssi_ext80_high20_chain1                                :  8; // [31:24]
+             uint32_t rssi_ext160_0_chain1                                    :  8, // [7:0]
+                      rssi_ext160_1_chain1                                    :  8, // [15:8]
+                      rssi_ext160_2_chain1                                    :  8, // [23:16]
+                      rssi_ext160_3_chain1                                    :  8; // [31:24]
+             uint32_t rssi_ext160_4_chain1                                    :  8, // [7:0]
+                      rssi_ext160_5_chain1                                    :  8, // [15:8]
+                      rssi_ext160_6_chain1                                    :  8, // [23:16]
+                      rssi_ext160_7_chain1                                    :  8; // [31:24]
+             uint32_t rssi_pri20_chain2                                       :  8, // [7:0]
+                      rssi_ext20_chain2                                       :  8, // [15:8]
+                      rssi_ext40_low20_chain2                                 :  8, // [23:16]
+                      rssi_ext40_high20_chain2                                :  8; // [31:24]
+             uint32_t rssi_ext80_low20_chain2                                 :  8, // [7:0]
+                      rssi_ext80_low_high20_chain2                            :  8, // [15:8]
+                      rssi_ext80_high_low20_chain2                            :  8, // [23:16]
+                      rssi_ext80_high20_chain2                                :  8; // [31:24]
+             uint32_t rssi_ext160_0_chain2                                    :  8, // [7:0]
+                      rssi_ext160_1_chain2                                    :  8, // [15:8]
+                      rssi_ext160_2_chain2                                    :  8, // [23:16]
+                      rssi_ext160_3_chain2                                    :  8; // [31:24]
+             uint32_t rssi_ext160_4_chain2                                    :  8, // [7:0]
+                      rssi_ext160_5_chain2                                    :  8, // [15:8]
+                      rssi_ext160_6_chain2                                    :  8, // [23:16]
+                      rssi_ext160_7_chain2                                    :  8; // [31:24]
+             uint32_t rssi_pri20_chain3                                       :  8, // [7:0]
+                      rssi_ext20_chain3                                       :  8, // [15:8]
+                      rssi_ext40_low20_chain3                                 :  8, // [23:16]
+                      rssi_ext40_high20_chain3                                :  8; // [31:24]
+             uint32_t rssi_ext80_low20_chain3                                 :  8, // [7:0]
+                      rssi_ext80_low_high20_chain3                            :  8, // [15:8]
+                      rssi_ext80_high_low20_chain3                            :  8, // [23:16]
+                      rssi_ext80_high20_chain3                                :  8; // [31:24]
+             uint32_t rssi_ext160_0_chain3                                    :  8, // [7:0]
+                      rssi_ext160_1_chain3                                    :  8, // [15:8]
+                      rssi_ext160_2_chain3                                    :  8, // [23:16]
+                      rssi_ext160_3_chain3                                    :  8; // [31:24]
+             uint32_t rssi_ext160_4_chain3                                    :  8, // [7:0]
+                      rssi_ext160_5_chain3                                    :  8, // [15:8]
+                      rssi_ext160_6_chain3                                    :  8, // [23:16]
+                      rssi_ext160_7_chain3                                    :  8; // [31:24]
+#else
+             uint32_t rssi_ext40_high20_chain0                                :  8, // [31:24]
+                      rssi_ext40_low20_chain0                                 :  8, // [23:16]
+                      rssi_ext20_chain0                                       :  8, // [15:8]
+                      rssi_pri20_chain0                                       :  8; // [7:0]
+             uint32_t rssi_ext80_high20_chain0                                :  8, // [31:24]
+                      rssi_ext80_high_low20_chain0                            :  8, // [23:16]
+                      rssi_ext80_low_high20_chain0                            :  8, // [15:8]
+                      rssi_ext80_low20_chain0                                 :  8; // [7:0]
+             uint32_t rssi_ext160_3_chain0                                    :  8, // [31:24]
+                      rssi_ext160_2_chain0                                    :  8, // [23:16]
+                      rssi_ext160_1_chain0                                    :  8, // [15:8]
+                      rssi_ext160_0_chain0                                    :  8; // [7:0]
+             uint32_t rssi_ext160_7_chain0                                    :  8, // [31:24]
+                      rssi_ext160_6_chain0                                    :  8, // [23:16]
+                      rssi_ext160_5_chain0                                    :  8, // [15:8]
+                      rssi_ext160_4_chain0                                    :  8; // [7:0]
+             uint32_t rssi_ext40_high20_chain1                                :  8, // [31:24]
+                      rssi_ext40_low20_chain1                                 :  8, // [23:16]
+                      rssi_ext20_chain1                                       :  8, // [15:8]
+                      rssi_pri20_chain1                                       :  8; // [7:0]
+             uint32_t rssi_ext80_high20_chain1                                :  8, // [31:24]
+                      rssi_ext80_high_low20_chain1                            :  8, // [23:16]
+                      rssi_ext80_low_high20_chain1                            :  8, // [15:8]
+                      rssi_ext80_low20_chain1                                 :  8; // [7:0]
+             uint32_t rssi_ext160_3_chain1                                    :  8, // [31:24]
+                      rssi_ext160_2_chain1                                    :  8, // [23:16]
+                      rssi_ext160_1_chain1                                    :  8, // [15:8]
+                      rssi_ext160_0_chain1                                    :  8; // [7:0]
+             uint32_t rssi_ext160_7_chain1                                    :  8, // [31:24]
+                      rssi_ext160_6_chain1                                    :  8, // [23:16]
+                      rssi_ext160_5_chain1                                    :  8, // [15:8]
+                      rssi_ext160_4_chain1                                    :  8; // [7:0]
+             uint32_t rssi_ext40_high20_chain2                                :  8, // [31:24]
+                      rssi_ext40_low20_chain2                                 :  8, // [23:16]
+                      rssi_ext20_chain2                                       :  8, // [15:8]
+                      rssi_pri20_chain2                                       :  8; // [7:0]
+             uint32_t rssi_ext80_high20_chain2                                :  8, // [31:24]
+                      rssi_ext80_high_low20_chain2                            :  8, // [23:16]
+                      rssi_ext80_low_high20_chain2                            :  8, // [15:8]
+                      rssi_ext80_low20_chain2                                 :  8; // [7:0]
+             uint32_t rssi_ext160_3_chain2                                    :  8, // [31:24]
+                      rssi_ext160_2_chain2                                    :  8, // [23:16]
+                      rssi_ext160_1_chain2                                    :  8, // [15:8]
+                      rssi_ext160_0_chain2                                    :  8; // [7:0]
+             uint32_t rssi_ext160_7_chain2                                    :  8, // [31:24]
+                      rssi_ext160_6_chain2                                    :  8, // [23:16]
+                      rssi_ext160_5_chain2                                    :  8, // [15:8]
+                      rssi_ext160_4_chain2                                    :  8; // [7:0]
+             uint32_t rssi_ext40_high20_chain3                                :  8, // [31:24]
+                      rssi_ext40_low20_chain3                                 :  8, // [23:16]
+                      rssi_ext20_chain3                                       :  8, // [15:8]
+                      rssi_pri20_chain3                                       :  8; // [7:0]
+             uint32_t rssi_ext80_high20_chain3                                :  8, // [31:24]
+                      rssi_ext80_high_low20_chain3                            :  8, // [23:16]
+                      rssi_ext80_low_high20_chain3                            :  8, // [15:8]
+                      rssi_ext80_low20_chain3                                 :  8; // [7:0]
+             uint32_t rssi_ext160_3_chain3                                    :  8, // [31:24]
+                      rssi_ext160_2_chain3                                    :  8, // [23:16]
+                      rssi_ext160_1_chain3                                    :  8, // [15:8]
+                      rssi_ext160_0_chain3                                    :  8; // [7:0]
+             uint32_t rssi_ext160_7_chain3                                    :  8, // [31:24]
+                      rssi_ext160_6_chain3                                    :  8, // [23:16]
+                      rssi_ext160_5_chain3                                    :  8, // [15:8]
+                      rssi_ext160_4_chain3                                    :  8; // [7:0]
+#endif
+};
+
+
+/* Description		RSSI_PRI20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_OFFSET                                  0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MASK                                    0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_OFFSET                                  0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MASK                                    0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_OFFSET                            0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MASK                              0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_OFFSET                           0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_OFFSET                            0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MASK                              0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET                       0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK                         0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET                       0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK                         0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_OFFSET                           0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MASK                                 0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN0
+
+			RSSI of RX PPDU on chain 0 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MASK                                 0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_OFFSET                                  0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MASK                                    0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_OFFSET                                  0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MASK                                    0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_OFFSET                            0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MASK                              0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_OFFSET                           0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_OFFSET                            0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MASK                              0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET                       0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK                         0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET                       0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK                         0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_OFFSET                           0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MASK                                 0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN1
+
+			RSSI of RX PPDU on chain 1 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MASK                                 0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_OFFSET                                  0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MASK                                    0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_OFFSET                                  0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MASK                                    0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_OFFSET                            0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MASK                              0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_OFFSET                           0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_OFFSET                            0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MASK                              0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET                       0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK                         0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET                       0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK                         0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_OFFSET                           0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MASK                                 0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN2
+
+			RSSI of RX PPDU on chain 2 of extension 80, highest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MASK                                 0xff000000
+
+
+/* Description		RSSI_PRI20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of primary 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_OFFSET                                  0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MASK                                    0x000000ff
+
+
+/* Description		RSSI_EXT20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 20 MHz bandwidth. 
+			
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_OFFSET                                  0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MASK                                    0x0000ff00
+
+
+/* Description		RSSI_EXT40_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_OFFSET                            0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MASK                              0x00ff0000
+
+
+/* Description		RSSI_EXT40_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 40, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_OFFSET                           0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT80_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low 20 MHz bandwidth. 
+			 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_OFFSET                            0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MASK                              0x000000ff
+
+
+/* Description		RSSI_EXT80_LOW_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, low-high 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET                       0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK                         0x0000ff00
+
+
+/* Description		RSSI_EXT80_HIGH_LOW20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high-low 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET                       0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK                         0x00ff0000
+
+
+/* Description		RSSI_EXT80_HIGH20_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 80, high 20 MHz 
+			bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_OFFSET                           0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MASK                             0xff000000
+
+
+/* Description		RSSI_EXT160_0_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, lowest 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_1_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth. 
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_2_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_3_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MASK                                 0xff000000
+
+
+/* Description		RSSI_EXT160_4_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MASK                                 0x000000ff
+
+
+/* Description		RSSI_EXT160_5_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MASK                                 0x0000ff00
+
+
+/* Description		RSSI_EXT160_6_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, next 20 MHz
+			 bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MASK                                 0x00ff0000
+
+
+/* Description		RSSI_EXT160_7_CHAIN3
+
+			RSSI of RX PPDU on chain 3 of extension 160, highest 20 
+			MHz bandwidth.  
+			Value of 0x80 indicates invalid.
+*/
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MASK                                 0xff000000
+
+
+
+#endif   // RECEIVE_RSSI_INFO
diff --git a/hw/qca5332/receive_user_info.h b/hw/qca5332/receive_user_info.h
new file mode 100644
index 0000000..27d8f0a
--- /dev/null
+++ b/hw/qca5332/receive_user_info.h
@@ -0,0 +1,715 @@
+
+/* 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 _RECEIVE_USER_INFO_H_
+#define _RECEIVE_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVE_USER_INFO 8
+
+
+struct receive_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      user_rssi                                               :  8, // [23:16]
+                      pkt_type                                                :  4, // [27:24]
+                      stbc                                                    :  1, // [28:28]
+                      reception_type                                          :  3; // [31:29]
+             uint32_t rate_mcs                                                :  4, // [3:0]
+                      sgi                                                     :  2, // [5:4]
+                      he_ranging_ndp                                          :  1, // [6:6]
+                      reserved_1a                                             :  1, // [7:7]
+                      mimo_ss_bitmap                                          :  8, // [15:8]
+                      receive_bandwidth                                       :  3, // [18:16]
+                      reserved_1b                                             :  5, // [23:19]
+                      dl_ofdma_user_index                                     :  8; // [31:24]
+             uint32_t dl_ofdma_content_channel                                :  1, // [0:0]
+                      reserved_2a                                             :  7, // [7:1]
+                      nss                                                     :  3, // [10:8]
+                      stream_offset                                           :  3, // [13:11]
+                      sta_dcm                                                 :  1, // [14:14]
+                      ldpc                                                    :  1, // [15:15]
+                      ru_type_80_0                                            :  4, // [19:16]
+                      ru_type_80_1                                            :  4, // [23:20]
+                      ru_type_80_2                                            :  4, // [27:24]
+                      ru_type_80_3                                            :  4; // [31:28]
+             uint32_t ru_start_index_80_0                                     :  6, // [5:0]
+                      reserved_3a                                             :  2, // [7:6]
+                      ru_start_index_80_1                                     :  6, // [13:8]
+                      reserved_3b                                             :  2, // [15:14]
+                      ru_start_index_80_2                                     :  6, // [21:16]
+                      reserved_3c                                             :  2, // [23:22]
+                      ru_start_index_80_3                                     :  6, // [29:24]
+                      reserved_3d                                             :  2; // [31:30]
+             uint32_t user_fd_rssi_seg0                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg1                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg2                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg3                                       : 32; // [31:0]
+#else
+             uint32_t reception_type                                          :  3, // [31:29]
+                      stbc                                                    :  1, // [28:28]
+                      pkt_type                                                :  4, // [27:24]
+                      user_rssi                                               :  8, // [23:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+             uint32_t dl_ofdma_user_index                                     :  8, // [31:24]
+                      reserved_1b                                             :  5, // [23:19]
+                      receive_bandwidth                                       :  3, // [18:16]
+                      mimo_ss_bitmap                                          :  8, // [15:8]
+                      reserved_1a                                             :  1, // [7:7]
+                      he_ranging_ndp                                          :  1, // [6:6]
+                      sgi                                                     :  2, // [5:4]
+                      rate_mcs                                                :  4; // [3:0]
+             uint32_t ru_type_80_3                                            :  4, // [31:28]
+                      ru_type_80_2                                            :  4, // [27:24]
+                      ru_type_80_1                                            :  4, // [23:20]
+                      ru_type_80_0                                            :  4, // [19:16]
+                      ldpc                                                    :  1, // [15:15]
+                      sta_dcm                                                 :  1, // [14:14]
+                      stream_offset                                           :  3, // [13:11]
+                      nss                                                     :  3, // [10:8]
+                      reserved_2a                                             :  7, // [7:1]
+                      dl_ofdma_content_channel                                :  1; // [0:0]
+             uint32_t reserved_3d                                             :  2, // [31:30]
+                      ru_start_index_80_3                                     :  6, // [29:24]
+                      reserved_3c                                             :  2, // [23:22]
+                      ru_start_index_80_2                                     :  6, // [21:16]
+                      reserved_3b                                             :  2, // [15:14]
+                      ru_start_index_80_1                                     :  6, // [13:8]
+                      reserved_3a                                             :  2, // [7:6]
+                      ru_start_index_80_0                                     :  6; // [5:0]
+             uint32_t user_fd_rssi_seg0                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg1                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg2                                       : 32; // [31:0]
+             uint32_t user_fd_rssi_seg3                                       : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_OFFSET                                        0x00000000
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_LSB                                           0
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_MSB                                           15
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_MASK                                          0x0000ffff
+
+
+/* Description		USER_RSSI
+
+			RSSI for this user
+			Frequency domain RSSI measurement for this user. Based on
+			 the channel estimate.  
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_USER_RSSI_OFFSET                                          0x00000000
+#define RECEIVE_USER_INFO_USER_RSSI_LSB                                             16
+#define RECEIVE_USER_INFO_USER_RSSI_MSB                                             23
+#define RECEIVE_USER_INFO_USER_RSSI_MASK                                            0x00ff0000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RECEIVE_USER_INFO_PKT_TYPE_OFFSET                                           0x00000000
+#define RECEIVE_USER_INFO_PKT_TYPE_LSB                                              24
+#define RECEIVE_USER_INFO_PKT_TYPE_MSB                                              27
+#define RECEIVE_USER_INFO_PKT_TYPE_MASK                                             0x0f000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define RECEIVE_USER_INFO_STBC_OFFSET                                               0x00000000
+#define RECEIVE_USER_INFO_STBC_LSB                                                  28
+#define RECEIVE_USER_INFO_STBC_MSB                                                  28
+#define RECEIVE_USER_INFO_STBC_MASK                                                 0x10000000
+
+
+/* Description		RECEPTION_TYPE
+
+			Indicates what type of reception this is.
+			<enum 0     reception_type_SU > Basic SU reception (not 
+			part of OFDMA or MU-MIMO)
+			<enum 1     reception_type_MU_MIMO > This is related to 
+			DL type of reception
+			<enum 2     reception_type_MU_OFDMA >  This is related to
+			 DL type of reception
+			<enum 3     reception_type_MU_OFDMA_MIMO >  This is related
+			 to DL type of reception
+			<enum 4     reception_type_UL_MU_MIMO > This is related 
+			to UL type of reception
+			<enum 5     reception_type_UL_MU_OFDMA >  This is related
+			 to UL type of reception
+			<enum 6     reception_type_UL_MU_OFDMA_MIMO >  This is related
+			 to UL type of reception
+			
+			<legal 0-6>
+*/
+
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_OFFSET                                     0x00000000
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_LSB                                        29
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_MSB                                        31
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_MASK                                       0xe0000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_RATE_MCS_OFFSET                                           0x00000004
+#define RECEIVE_USER_INFO_RATE_MCS_LSB                                              0
+#define RECEIVE_USER_INFO_RATE_MCS_MSB                                              3
+#define RECEIVE_USER_INFO_RATE_MCS_MASK                                             0x0000000f
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			<enum 0     gi_0_8_us > Legacy normal GI.  Can also be used
+			 for HE
+			<enum 1     gi_0_4_us > Legacy short GI.  Can also be used
+			 for HE
+			<enum 2     gi_1_6_us > HE related GI
+			<enum 3     gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RECEIVE_USER_INFO_SGI_OFFSET                                                0x00000004
+#define RECEIVE_USER_INFO_SGI_LSB                                                   4
+#define RECEIVE_USER_INFO_SGI_MSB                                                   5
+#define RECEIVE_USER_INFO_SGI_MASK                                                  0x00000030
+
+
+/* Description		HE_RANGING_NDP
+
+			Set to 1 for expected HE TB ranging NDP Rx in response to
+			 sounding/secure sounding ranging Trigger Tx
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_OFFSET                                     0x00000004
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_LSB                                        6
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_MSB                                        6
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_MASK                                       0x00000040
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_1A_OFFSET                                        0x00000004
+#define RECEIVE_USER_INFO_RESERVED_1A_LSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_1A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_1A_MASK                                          0x00000080
+
+
+/* Description		MIMO_SS_BITMAP
+
+			Bitmap, with each bit indicating if the related spatial 
+			stream is used for this STA
+			LSB related to SS 0
+			
+			0: spatial stream not used for this reception
+			1: spatial stream used for this reception
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_OFFSET                                     0x00000004
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_LSB                                        8
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MSB                                        15
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MASK                                       0x0000ff00
+
+
+/* Description		RECEIVE_BANDWIDTH
+
+			Full receive 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 RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_OFFSET                                  0x00000004
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_LSB                                     16
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MSB                                     18
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MASK                                    0x00070000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_1B_OFFSET                                        0x00000004
+#define RECEIVE_USER_INFO_RESERVED_1B_LSB                                           19
+#define RECEIVE_USER_INFO_RESERVED_1B_MSB                                           23
+#define RECEIVE_USER_INFO_RESERVED_1B_MASK                                          0x00f80000
+
+
+/* Description		DL_OFDMA_USER_INDEX
+
+			Field only valid in the of DL MU OFDMA reception
+			
+			The user number within the RU_allocation.
+			
+			This is needed for SW to determine the exact RU position
+			 within the reception.
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_OFFSET                                0x00000004
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_LSB                                   24
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MSB                                   31
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MASK                                  0xff000000
+
+
+/* Description		DL_OFDMA_CONTENT_CHANNEL
+
+			Field only valid in the of DL MU OFDMA/MIMO reception
+			
+			In case of DL MU reception, this field indicates the content
+			 channel number where PHY found the RU information for this
+			 user
+			
+			This is needed for SW to determine the exact RU position
+			 within the reception.
+			
+			<enum 0      content_channel_1>
+			<enum 1      content_channel_2> 
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_OFFSET                           0x00000008
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_LSB                              0
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MSB                              0
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MASK                             0x00000001
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_2A_OFFSET                                        0x00000008
+#define RECEIVE_USER_INFO_RESERVED_2A_LSB                                           1
+#define RECEIVE_USER_INFO_RESERVED_2A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_2A_MASK                                          0x000000fe
+
+
+/* Description		NSS
+
+			Field only valid in case of Uplink_receive_type == mimo_only
+			 OR ofdma_mimo
+			
+			Number of Spatial Streams occupied by the User
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define RECEIVE_USER_INFO_NSS_OFFSET                                                0x00000008
+#define RECEIVE_USER_INFO_NSS_LSB                                                   8
+#define RECEIVE_USER_INFO_NSS_MSB                                                   10
+#define RECEIVE_USER_INFO_NSS_MASK                                                  0x00000700
+
+
+/* Description		STREAM_OFFSET
+
+			Field only valid in case of Uplink_receive_type == mimo_only
+			 OR ofdma_mimo
+			
+			Stream Offset from which the User occupies the Streams
+			
+			Note MAC:
+			directly from pdg_fes_setup, based on BW
+*/
+
+#define RECEIVE_USER_INFO_STREAM_OFFSET_OFFSET                                      0x00000008
+#define RECEIVE_USER_INFO_STREAM_OFFSET_LSB                                         11
+#define RECEIVE_USER_INFO_STREAM_OFFSET_MSB                                         13
+#define RECEIVE_USER_INFO_STREAM_OFFSET_MASK                                        0x00003800
+
+
+/* Description		STA_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_STA_DCM_OFFSET                                            0x00000008
+#define RECEIVE_USER_INFO_STA_DCM_LSB                                               14
+#define RECEIVE_USER_INFO_STA_DCM_MSB                                               14
+#define RECEIVE_USER_INFO_STA_DCM_MASK                                              0x00004000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates were used.
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_LDPC_OFFSET                                               0x00000008
+#define RECEIVE_USER_INFO_LDPC_LSB                                                  15
+#define RECEIVE_USER_INFO_LDPC_MSB                                                  15
+#define RECEIVE_USER_INFO_LDPC_MASK                                                 0x00008000
+
+
+/* Description		RU_TYPE_80_0
+
+			Indicates the size of the RU in the first 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_LSB                                          16
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_MSB                                          19
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_MASK                                         0x000f0000
+
+
+/* Description		RU_TYPE_80_1
+
+			Indicates the size of the RU in the second 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_LSB                                          20
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_MSB                                          23
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_MASK                                         0x00f00000
+
+
+/* Description		RU_TYPE_80_2
+
+			Indicates the size of the RU in the third 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_LSB                                          24
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_MSB                                          27
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_MASK                                         0x0f000000
+
+
+/* Description		RU_TYPE_80_3
+
+			Indicates the size of the RU in the fourth 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_LSB                                          28
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_MSB                                          31
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_MASK                                         0xf0000000
+
+
+/* Description		RU_START_INDEX_80_0
+
+			RU index number to which User is assigned in the first 80
+			 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_LSB                                   0
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MSB                                   5
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MASK                                  0x0000003f
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_3A_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3A_LSB                                           6
+#define RECEIVE_USER_INFO_RESERVED_3A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_3A_MASK                                          0x000000c0
+
+
+/* Description		RU_START_INDEX_80_1
+
+			RU index number to which User is assigned in the second 
+			80 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_LSB                                   8
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MSB                                   13
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MASK                                  0x00003f00
+
+
+/* Description		RESERVED_3B
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_3B_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3B_LSB                                           14
+#define RECEIVE_USER_INFO_RESERVED_3B_MSB                                           15
+#define RECEIVE_USER_INFO_RESERVED_3B_MASK                                          0x0000c000
+
+
+/* Description		RU_START_INDEX_80_2
+
+			RU index number to which User is assigned in the third 80
+			 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_LSB                                   16
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MSB                                   21
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MASK                                  0x003f0000
+
+
+/* Description		RESERVED_3C
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_3C_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3C_LSB                                           22
+#define RECEIVE_USER_INFO_RESERVED_3C_MSB                                           23
+#define RECEIVE_USER_INFO_RESERVED_3C_MASK                                          0x00c00000
+
+
+/* Description		RU_START_INDEX_80_3
+
+			RU index number to which User is assigned in the fourth 
+			80 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_LSB                                   24
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MSB                                   29
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MASK                                  0x3f000000
+
+
+/* Description		RESERVED_3D
+
+			<legal 0>
+*/
+
+#define RECEIVE_USER_INFO_RESERVED_3D_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3D_LSB                                           30
+#define RECEIVE_USER_INFO_RESERVED_3D_MSB                                           31
+#define RECEIVE_USER_INFO_RESERVED_3D_MASK                                          0xc0000000
+
+
+/* Description		USER_FD_RSSI_SEG0
+
+			Frequency domain RSSI measurement for the lowest 80 MHz 
+			subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_OFFSET                                  0x00000010
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MASK                                    0xffffffff
+
+
+/* Description		USER_FD_RSSI_SEG1
+
+			Frequency domain RSSI measurement for the second lowest 
+			80 MHz subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_OFFSET                                  0x00000014
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MASK                                    0xffffffff
+
+
+/* Description		USER_FD_RSSI_SEG2
+
+			Frequency domain RSSI measurement for the third lowest 80
+			 MHz subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_OFFSET                                  0x00000018
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MASK                                    0xffffffff
+
+
+/* Description		USER_FD_RSSI_SEG3
+
+			Frequency domain RSSI measurement for the highest 80 MHz
+			 subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			In Hamilton v1 this structure had 4 more (32-bit) words 
+			after this field.
+			<legal all>
+*/
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_OFFSET                                  0x0000001c
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MASK                                    0xffffffff
+
+
+
+#endif   // RECEIVE_USER_INFO
diff --git a/hw/qca5332/received_response_user_15_8.h b/hw/qca5332/received_response_user_15_8.h
new file mode 100644
index 0000000..a34ed34
--- /dev/null
+++ b/hw/qca5332/received_response_user_15_8.h
@@ -0,0 +1,3125 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_15_8_H_
+#define _RECEIVED_RESPONSE_USER_15_8_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_response_user_info.h"
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_15_8 64
+
+#define NUM_OF_QWORDS_RECEIVED_RESPONSE_USER_15_8 32
+
+
+struct received_response_user_15_8 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_response_user_info                               received_response_details_user8;
+             struct   received_response_user_info                               received_response_details_user9;
+             struct   received_response_user_info                               received_response_details_user10;
+             struct   received_response_user_info                               received_response_details_user11;
+             struct   received_response_user_info                               received_response_details_user12;
+             struct   received_response_user_info                               received_response_details_user13;
+             struct   received_response_user_info                               received_response_details_user14;
+             struct   received_response_user_info                               received_response_details_user15;
+#else
+             struct   received_response_user_info                               received_response_details_user8;
+             struct   received_response_user_info                               received_response_details_user9;
+             struct   received_response_user_info                               received_response_details_user10;
+             struct   received_response_user_info                               received_response_details_user11;
+             struct   received_response_user_info                               received_response_details_user12;
+             struct   received_response_user_info                               received_response_details_user13;
+             struct   received_response_user_info                               received_response_details_user14;
+             struct   received_response_user_info                               received_response_details_user15;
+#endif
+};
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER8
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_0A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_USER_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_1A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_LSB  0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_MSB  31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_VALID_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_EOSP_OFFSET     0x0000000000000008
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_EOSP_LSB        48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_EOSP_MSB        63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_EOSP_MASK       0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER8_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER9
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_0A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_USER_INFO_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_1A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_LSB  0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_MSB  31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_VALID_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_EOSP_OFFSET     0x0000000000000028
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_EOSP_LSB        48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_EOSP_MSB        63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_EOSP_MASK       0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER9_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER10
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_0A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_USER_INFO_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_1A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_VALID_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_EOSP_OFFSET    0x0000000000000048
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER10_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER11
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_0A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_USER_INFO_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_1A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_VALID_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_EOSP_OFFSET    0x0000000000000068
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER11_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER12
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_0A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_USER_INFO_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_1A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_VALID_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_EOSP_OFFSET    0x0000000000000088
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER12_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER13
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_0A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_USER_INFO_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_1A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_VALID_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_EOSP_OFFSET    0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER13_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER14
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_0A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_USER_INFO_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_1A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_VALID_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_EOSP_OFFSET    0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER14_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER15
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_0A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_USER_INFO_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_1A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_VALID_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_EOSP_OFFSET    0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_EOSP_LSB       48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_EOSP_MSB       63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_EOSP_MASK      0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_15_8_RECEIVED_RESPONSE_DETAILS_USER15_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_15_8
diff --git a/hw/qca5332/received_response_user_23_16.h b/hw/qca5332/received_response_user_23_16.h
new file mode 100644
index 0000000..fa4c82f
--- /dev/null
+++ b/hw/qca5332/received_response_user_23_16.h
@@ -0,0 +1,3125 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_23_16_H_
+#define _RECEIVED_RESPONSE_USER_23_16_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_response_user_info.h"
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_23_16 64
+
+#define NUM_OF_QWORDS_RECEIVED_RESPONSE_USER_23_16 32
+
+
+struct received_response_user_23_16 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_response_user_info                               received_response_details_user16;
+             struct   received_response_user_info                               received_response_details_user17;
+             struct   received_response_user_info                               received_response_details_user18;
+             struct   received_response_user_info                               received_response_details_user19;
+             struct   received_response_user_info                               received_response_details_user20;
+             struct   received_response_user_info                               received_response_details_user21;
+             struct   received_response_user_info                               received_response_details_user22;
+             struct   received_response_user_info                               received_response_details_user23;
+#else
+             struct   received_response_user_info                               received_response_details_user16;
+             struct   received_response_user_info                               received_response_details_user17;
+             struct   received_response_user_info                               received_response_details_user18;
+             struct   received_response_user_info                               received_response_details_user19;
+             struct   received_response_user_info                               received_response_details_user20;
+             struct   received_response_user_info                               received_response_details_user21;
+             struct   received_response_user_info                               received_response_details_user22;
+             struct   received_response_user_info                               received_response_details_user23;
+#endif
+};
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER16
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_0A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_USER_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_1A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_VALID_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_EOSP_OFFSET   0x0000000000000008
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER16_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER17
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_0A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_USER_INFO_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_1A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_VALID_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_EOSP_OFFSET   0x0000000000000028
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER17_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER18
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_0A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_USER_INFO_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_1A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_VALID_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_EOSP_OFFSET   0x0000000000000048
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER18_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER19
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_0A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_USER_INFO_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_1A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_VALID_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_EOSP_OFFSET   0x0000000000000068
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER19_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER20
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_0A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_USER_INFO_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_1A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_VALID_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_EOSP_OFFSET   0x0000000000000088
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER20_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER21
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_0A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_USER_INFO_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_1A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_VALID_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_EOSP_OFFSET   0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER21_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER22
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_0A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_USER_INFO_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_1A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_VALID_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_EOSP_OFFSET   0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER22_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER23
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_0A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_USER_INFO_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_1A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_VALID_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_EOSP_OFFSET   0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_23_16_RECEIVED_RESPONSE_DETAILS_USER23_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_23_16
diff --git a/hw/qca5332/received_response_user_31_24.h b/hw/qca5332/received_response_user_31_24.h
new file mode 100644
index 0000000..07cb716
--- /dev/null
+++ b/hw/qca5332/received_response_user_31_24.h
@@ -0,0 +1,3125 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_31_24_H_
+#define _RECEIVED_RESPONSE_USER_31_24_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_response_user_info.h"
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_31_24 64
+
+#define NUM_OF_QWORDS_RECEIVED_RESPONSE_USER_31_24 32
+
+
+struct received_response_user_31_24 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_response_user_info                               received_response_details_user24;
+             struct   received_response_user_info                               received_response_details_user25;
+             struct   received_response_user_info                               received_response_details_user26;
+             struct   received_response_user_info                               received_response_details_user27;
+             struct   received_response_user_info                               received_response_details_user28;
+             struct   received_response_user_info                               received_response_details_user29;
+             struct   received_response_user_info                               received_response_details_user30;
+             struct   received_response_user_info                               received_response_details_user31;
+#else
+             struct   received_response_user_info                               received_response_details_user24;
+             struct   received_response_user_info                               received_response_details_user25;
+             struct   received_response_user_info                               received_response_details_user26;
+             struct   received_response_user_info                               received_response_details_user27;
+             struct   received_response_user_info                               received_response_details_user28;
+             struct   received_response_user_info                               received_response_details_user29;
+             struct   received_response_user_info                               received_response_details_user30;
+             struct   received_response_user_info                               received_response_details_user31;
+#endif
+};
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER24
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_0A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_USER_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_1A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_VALID_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_EOSP_OFFSET   0x0000000000000008
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER24_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER25
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_0A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_USER_INFO_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_1A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_VALID_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_EOSP_OFFSET   0x0000000000000028
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER25_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER26
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_0A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_USER_INFO_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_1A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_VALID_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_EOSP_OFFSET   0x0000000000000048
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER26_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER27
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_0A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_USER_INFO_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_1A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_VALID_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_EOSP_OFFSET   0x0000000000000068
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER27_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER28
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_0A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_USER_INFO_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_1A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_VALID_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_EOSP_OFFSET   0x0000000000000088
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER28_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER29
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_0A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_USER_INFO_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_1A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_VALID_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_EOSP_OFFSET   0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER29_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER30
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_0A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_USER_INFO_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_1A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_VALID_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_EOSP_OFFSET   0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER30_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER31
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_0A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_USER_INFO_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_1A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_VALID_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_EOSP_OFFSET   0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_31_24_RECEIVED_RESPONSE_DETAILS_USER31_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_31_24
diff --git a/hw/qca5332/received_response_user_36_32.h b/hw/qca5332/received_response_user_36_32.h
new file mode 100644
index 0000000..375f845
--- /dev/null
+++ b/hw/qca5332/received_response_user_36_32.h
@@ -0,0 +1,1970 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_36_32_H_
+#define _RECEIVED_RESPONSE_USER_36_32_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_response_user_info.h"
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_36_32 40
+
+#define NUM_OF_QWORDS_RECEIVED_RESPONSE_USER_36_32 20
+
+
+struct received_response_user_36_32 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_response_user_info                               received_response_details_user32;
+             struct   received_response_user_info                               received_response_details_user33;
+             struct   received_response_user_info                               received_response_details_user34;
+             struct   received_response_user_info                               received_response_details_user35;
+             struct   received_response_user_info                               received_response_details_user36;
+#else
+             struct   received_response_user_info                               received_response_details_user32;
+             struct   received_response_user_info                               received_response_details_user33;
+             struct   received_response_user_info                               received_response_details_user34;
+             struct   received_response_user_info                               received_response_details_user35;
+             struct   received_response_user_info                               received_response_details_user36;
+#endif
+};
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER32
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_0A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_USER_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_1A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_VALID_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_EOSP_OFFSET   0x0000000000000008
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER32_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER33
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_0A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_USER_INFO_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_1A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_VALID_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_EOSP_OFFSET   0x0000000000000028
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER33_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER34
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_0A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_USER_INFO_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_1A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_VALID_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_EOSP_OFFSET   0x0000000000000048
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER34_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER35
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_0A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_USER_INFO_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_1A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_VALID_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_EOSP_OFFSET   0x0000000000000068
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER35_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER36
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_0A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_0A_LSB 28
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_0A_MSB 30
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_USER_INFO_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_1A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_1A_LSB 54
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_1A_MSB 62
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_HT_CONTROL_MASK 0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_VALID_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_EOSP_OFFSET   0x0000000000000088
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_EOSP_LSB      48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_EOSP_MSB      63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_EOSP_MASK     0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_36_32_RECEIVED_RESPONSE_DETAILS_USER36_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_36_32
diff --git a/hw/qca5332/received_response_user_7_0.h b/hw/qca5332/received_response_user_7_0.h
new file mode 100644
index 0000000..4413919
--- /dev/null
+++ b/hw/qca5332/received_response_user_7_0.h
@@ -0,0 +1,3125 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_7_0_H_
+#define _RECEIVED_RESPONSE_USER_7_0_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_response_user_info.h"
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_7_0 64
+
+#define NUM_OF_QWORDS_RECEIVED_RESPONSE_USER_7_0 32
+
+
+struct received_response_user_7_0 {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_response_user_info                               received_response_details_user0;
+             struct   received_response_user_info                               received_response_details_user1;
+             struct   received_response_user_info                               received_response_details_user2;
+             struct   received_response_user_info                               received_response_details_user3;
+             struct   received_response_user_info                               received_response_details_user4;
+             struct   received_response_user_info                               received_response_details_user5;
+             struct   received_response_user_info                               received_response_details_user6;
+             struct   received_response_user_info                               received_response_details_user7;
+#else
+             struct   received_response_user_info                               received_response_details_user0;
+             struct   received_response_user_info                               received_response_details_user1;
+             struct   received_response_user_info                               received_response_details_user2;
+             struct   received_response_user_info                               received_response_details_user3;
+             struct   received_response_user_info                               received_response_details_user4;
+             struct   received_response_user_info                               received_response_details_user5;
+             struct   received_response_user_info                               received_response_details_user6;
+             struct   received_response_user_info                               received_response_details_user7;
+#endif
+};
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER0
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_0A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_USER_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_1A_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_VALID_OFFSET 0x0000000000000008
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_EOSP_OFFSET      0x0000000000000008
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000010
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000018
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER0_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER1
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_0A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_USER_INFO_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_1A_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_VALID_OFFSET 0x0000000000000020
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_VALID_OFFSET 0x0000000000000028
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_EOSP_OFFSET      0x0000000000000028
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000030
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000038
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER1_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER2
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_0A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_USER_INFO_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_1A_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_VALID_OFFSET 0x0000000000000040
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_VALID_OFFSET 0x0000000000000048
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_EOSP_OFFSET      0x0000000000000048
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000050
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000058
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER2_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER3
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_0A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_USER_INFO_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_1A_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_VALID_OFFSET 0x0000000000000060
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_VALID_OFFSET 0x0000000000000068
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_EOSP_OFFSET      0x0000000000000068
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000070
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000078
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER3_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER4
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_PASS_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_FAIL_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOSNULL_FRAME_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_0A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_USER_INFO_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_NULL_DELIMITER_COUNT_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_1A_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_VALID_OFFSET 0x0000000000000080
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_VALID_OFFSET 0x0000000000000088
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_EOSP_OFFSET      0x0000000000000088
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_0_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_1_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_2_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_3_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_4_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_5_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_6_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_7_OFFSET 0x0000000000000090
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_8_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_9_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_10_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_11_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_12_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_13_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_14_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_15_OFFSET 0x0000000000000098
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER4_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER5
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_0A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_USER_INFO_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_1A_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_VALID_OFFSET 0x00000000000000a0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_VALID_OFFSET 0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_EOSP_OFFSET      0x00000000000000a8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000b0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000b8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER5_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER6
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_0A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_USER_INFO_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_1A_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_VALID_OFFSET 0x00000000000000c0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_VALID_OFFSET 0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_EOSP_OFFSET      0x00000000000000c8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000d0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000d8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER6_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+/* Description		RECEIVED_RESPONSE_DETAILS_USER7
+
+			Field contains details about the response received for this
+			 user
+*/
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_PASS_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_PASS_COUNT_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_PASS_COUNT_MSB 11
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_PASS_COUNT_MASK 0x0000000000000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_FAIL_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_FAIL_COUNT_LSB 12
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_FAIL_COUNT_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_MPDU_FCS_FAIL_COUNT_MASK 0x0000000000fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOSNULL_FRAME_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOSNULL_FRAME_COUNT_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOSNULL_FRAME_COUNT_MSB 27
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOSNULL_FRAME_COUNT_MASK 0x000000000f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_0A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_0A_LSB  28
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_0A_MSB  30
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_0A_MASK 0x0000000070000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_USER_INFO_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_USER_INFO_VALID_LSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_USER_INFO_VALID_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_USER_INFO_VALID_MASK 0x0000000080000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_NULL_DELIMITER_COUNT_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_NULL_DELIMITER_COUNT_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_NULL_DELIMITER_COUNT_MSB 53
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_NULL_DELIMITER_COUNT_MASK 0x003fffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_1A_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_1A_LSB  54
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_1A_MSB  62
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_RESERVED_1A_MASK 0x7fc0000000000000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_VALID_OFFSET 0x00000000000000e0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_VALID_LSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_VALID_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_VALID_MASK 0x8000000000000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_LSB   0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_MSB   31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_HT_CONTROL_MASK  0x00000000ffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_VALID_OFFSET 0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_VALID_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_VALID_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_VALID_MASK 0x0000ffff00000000
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_EOSP_OFFSET      0x00000000000000e8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_EOSP_LSB         48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_EOSP_MSB         63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_EOSP_MASK        0xffff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_0_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_0_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_0_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_0_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_1_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_1_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_1_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_1_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_2_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_2_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_2_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_2_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_3_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_3_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_3_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_3_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_4_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_4_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_4_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_4_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_5_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_5_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_5_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_5_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_6_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_6_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_6_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_6_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_7_OFFSET 0x00000000000000f0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_7_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_7_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_7_MASK 0xff00000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_8_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_8_LSB 0
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_8_MSB 7
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_8_MASK 0x00000000000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_9_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_9_LSB 8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_9_MSB 15
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_9_MASK 0x000000000000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_10_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_10_LSB 16
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_10_MSB 23
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_10_MASK 0x0000000000ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_11_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_11_LSB 24
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_11_MSB 31
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_11_MASK 0x00000000ff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_12_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_12_LSB 32
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_12_MSB 39
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_12_MASK 0x000000ff00000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_13_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_13_LSB 40
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_13_MSB 47
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_13_MASK 0x0000ff0000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_14_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_14_LSB 48
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_14_MSB 55
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_14_MASK 0x00ff000000000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_15_OFFSET 0x00000000000000f8
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_15_LSB 56
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_15_MSB 63
+#define RECEIVED_RESPONSE_USER_7_0_RECEIVED_RESPONSE_DETAILS_USER7_QOS_CONTROL_15_8_TID_15_MASK 0xff00000000000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_7_0
diff --git a/hw/qca5332/received_response_user_info.h b/hw/qca5332/received_response_user_info.h
new file mode 100644
index 0000000..7ef76f4
--- /dev/null
+++ b/hw/qca5332/received_response_user_info.h
@@ -0,0 +1,472 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_INFO_H_
+#define _RECEIVED_RESPONSE_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_INFO 8
+
+
+struct received_response_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mpdu_fcs_pass_count                                     : 12, // [11:0]
+                      mpdu_fcs_fail_count                                     : 12, // [23:12]
+                      qosnull_frame_count                                     :  4, // [27:24]
+                      reserved_0a                                             :  3, // [30:28]
+                      user_info_valid                                         :  1; // [31:31]
+             uint32_t null_delimiter_count                                    : 22, // [21:0]
+                      reserved_1a                                             :  9, // [30:22]
+                      ht_control_valid                                        :  1; // [31:31]
+             uint32_t ht_control                                              : 32; // [31:0]
+             uint32_t qos_control_valid                                       : 16, // [15:0]
+                      eosp                                                    : 16; // [31:16]
+             uint32_t qos_control_15_8_tid_0                                  :  8, // [7:0]
+                      qos_control_15_8_tid_1                                  :  8, // [15:8]
+                      qos_control_15_8_tid_2                                  :  8, // [23:16]
+                      qos_control_15_8_tid_3                                  :  8; // [31:24]
+             uint32_t qos_control_15_8_tid_4                                  :  8, // [7:0]
+                      qos_control_15_8_tid_5                                  :  8, // [15:8]
+                      qos_control_15_8_tid_6                                  :  8, // [23:16]
+                      qos_control_15_8_tid_7                                  :  8; // [31:24]
+             uint32_t qos_control_15_8_tid_8                                  :  8, // [7:0]
+                      qos_control_15_8_tid_9                                  :  8, // [15:8]
+                      qos_control_15_8_tid_10                                 :  8, // [23:16]
+                      qos_control_15_8_tid_11                                 :  8; // [31:24]
+             uint32_t qos_control_15_8_tid_12                                 :  8, // [7:0]
+                      qos_control_15_8_tid_13                                 :  8, // [15:8]
+                      qos_control_15_8_tid_14                                 :  8, // [23:16]
+                      qos_control_15_8_tid_15                                 :  8; // [31:24]
+#else
+             uint32_t user_info_valid                                         :  1, // [31:31]
+                      reserved_0a                                             :  3, // [30:28]
+                      qosnull_frame_count                                     :  4, // [27:24]
+                      mpdu_fcs_fail_count                                     : 12, // [23:12]
+                      mpdu_fcs_pass_count                                     : 12; // [11:0]
+             uint32_t ht_control_valid                                        :  1, // [31:31]
+                      reserved_1a                                             :  9, // [30:22]
+                      null_delimiter_count                                    : 22; // [21:0]
+             uint32_t ht_control                                              : 32; // [31:0]
+             uint32_t eosp                                                    : 16, // [31:16]
+                      qos_control_valid                                       : 16; // [15:0]
+             uint32_t qos_control_15_8_tid_3                                  :  8, // [31:24]
+                      qos_control_15_8_tid_2                                  :  8, // [23:16]
+                      qos_control_15_8_tid_1                                  :  8, // [15:8]
+                      qos_control_15_8_tid_0                                  :  8; // [7:0]
+             uint32_t qos_control_15_8_tid_7                                  :  8, // [31:24]
+                      qos_control_15_8_tid_6                                  :  8, // [23:16]
+                      qos_control_15_8_tid_5                                  :  8, // [15:8]
+                      qos_control_15_8_tid_4                                  :  8; // [7:0]
+             uint32_t qos_control_15_8_tid_11                                 :  8, // [31:24]
+                      qos_control_15_8_tid_10                                 :  8, // [23:16]
+                      qos_control_15_8_tid_9                                  :  8, // [15:8]
+                      qos_control_15_8_tid_8                                  :  8; // [7:0]
+             uint32_t qos_control_15_8_tid_15                                 :  8, // [31:24]
+                      qos_control_15_8_tid_14                                 :  8, // [23:16]
+                      qos_control_15_8_tid_13                                 :  8, // [15:8]
+                      qos_control_15_8_tid_12                                 :  8; // [7:0]
+#endif
+};
+
+
+/* Description		MPDU_FCS_PASS_COUNT
+
+			The number of MPDUs received with correct FCS.
+			Hamilton v1 used bits [15:8] to report 'mpdu_fcs_fail_count.'
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_LSB                         0
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MSB                         11
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MASK                        0x00000fff
+
+
+/* Description		MPDU_FCS_FAIL_COUNT
+
+			The number of MPDUs received with wrong FCS.
+			Hamilton v1 used bits [15:8] for this and bits [23:16] to
+			 report the number of data frames with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_LSB                         12
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MSB                         23
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MASK                        0x00fff000
+
+
+/* Description		QOSNULL_FRAME_COUNT
+
+			The number of QoSNULL frames received with correct FCS.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_LSB                         24
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MSB                         27
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MASK                        0x0f000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_OFFSET                              0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_LSB                                 28
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MSB                                 30
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MASK                                0x70000000
+
+
+/* Description		USER_INFO_VALID
+
+			When set, this RECEIVED_RESPONSE_USER_INFO STRUCT contains
+			 valid information.
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_OFFSET                          0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_LSB                             31
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MSB                             31
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MASK                            0x80000000
+
+
+/* Description		NULL_DELIMITER_COUNT
+
+			The number of valid, properly formed NULL delimiters received
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_OFFSET                     0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_LSB                        0
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MSB                        21
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MASK                       0x003fffff
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_OFFSET                              0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_LSB                                 22
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MSB                                 30
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MASK                                0x7fc00000
+
+
+/* Description		HT_CONTROL_VALID
+
+			When set, indicates that the received MPDUs included an 
+			HT Control field
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_OFFSET                         0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_LSB                            31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MSB                            31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MASK                           0x80000000
+
+
+/* Description		HT_CONTROL
+
+			Field only valid if HT_Control_valid is set
+			Received HT Control value
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_OFFSET                               0x00000008
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_LSB                                  0
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MSB                                  31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MASK                                 0xffffffff
+
+
+/* Description		QOS_CONTROL_VALID
+
+			Each bit when set, indicates that the received MPDUs included
+			 that TID and the corresponding 'EOSP' bit and 'QoS_Control_15_8_*' 
+			field are valid.
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_OFFSET                        0x0000000c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_LSB                           0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MSB                           15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MASK                          0x0000ffff
+
+
+/* Description		EOSP
+
+			Each bit only valid if the corresponding bit of QoS_Control_valid
+			 is set.
+			
+			Received EOSP bit for each TID
+			Bit 0: TID 0
+			...
+			Bit 15: TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_OFFSET                                     0x0000000c
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_LSB                                        16
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_MSB                                        31
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_MASK                                       0xffff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_0
+
+			Field only valid if QoS_Control_valid[0] is set.
+			
+			Received bits [15:8] of QoS Control for TID 0
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MASK                     0x000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_1
+
+			Field only valid if QoS_Control_valid[1] is set.
+			
+			Received bits [15:8] of QoS Control for TID 1
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MASK                     0x0000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_2
+
+			Field only valid if QoS_Control_valid[2] is set.
+			
+			Received bits [15:8] of QoS Control for TID 2
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_LSB                      16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MSB                      23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MASK                     0x00ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_3
+
+			Field only valid if QoS_Control_valid[3] is set.
+			
+			Received bits [15:8] of QoS Control for TID 3
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_LSB                      24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MSB                      31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MASK                     0xff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_4
+
+			Field only valid if QoS_Control_valid[4] is set.
+			
+			Received bits [15:8] of QoS Control for TID 4
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MASK                     0x000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_5
+
+			Field only valid if QoS_Control_valid[5] is set.
+			
+			Received bits [15:8] of QoS Control for TID 5
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MASK                     0x0000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_6
+
+			Field only valid if QoS_Control_valid[6] is set.
+			
+			Received bits [15:8] of QoS Control for TID 6
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_LSB                      16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MSB                      23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MASK                     0x00ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_7
+
+			Field only valid if QoS_Control_valid[7] is set.
+			
+			Received bits [15:8] of QoS Control for TID 7
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_LSB                      24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MSB                      31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MASK                     0xff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_8
+
+			Field only valid if QoS_Control_valid[8] is set.
+			
+			Received bits [15:8] of QoS Control for TID 8
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_OFFSET                   0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MASK                     0x000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_9
+
+			Field only valid if QoS_Control_valid[9] is set.
+			
+			Received bits [15:8] of QoS Control for TID 9
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_OFFSET                   0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MASK                     0x0000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_10
+
+			Field only valid if QoS_Control_valid[10] is set.
+			
+			Received bits [15:8] of QoS Control for TID 10
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_OFFSET                  0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_LSB                     16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MSB                     23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MASK                    0x00ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_11
+
+			Field only valid if QoS_Control_valid[11] is set.
+			
+			Received bits [15:8] of QoS Control for TID 11
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_OFFSET                  0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_LSB                     24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MSB                     31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MASK                    0xff000000
+
+
+/* Description		QOS_CONTROL_15_8_TID_12
+
+			Field only valid if QoS_Control_valid[12] is set.
+			
+			Received bits [15:8] of QoS Control for TID 12
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_LSB                     0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MSB                     7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MASK                    0x000000ff
+
+
+/* Description		QOS_CONTROL_15_8_TID_13
+
+			Field only valid if QoS_Control_valid[13] is set.
+			
+			Received bits [15:8] of QoS Control for TID 13
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_LSB                     8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MSB                     15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MASK                    0x0000ff00
+
+
+/* Description		QOS_CONTROL_15_8_TID_14
+
+			Field only valid if QoS_Control_valid[14] is set.
+			
+			Received bits [15:8] of QoS Control for TID 14
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_LSB                     16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MSB                     23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MASK                    0x00ff0000
+
+
+/* Description		QOS_CONTROL_15_8_TID_15
+
+			Field only valid if QoS_Control_valid[15] is set.
+			
+			Received bits [15:8] of QoS Control for TID 15
+			<legal all>
+*/
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_LSB                     24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MSB                     31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MASK                    0xff000000
+
+
+
+#endif   // RECEIVED_RESPONSE_USER_INFO
diff --git a/hw/qca5332/received_trigger_info.h b/hw/qca5332/received_trigger_info.h
new file mode 100644
index 0000000..4839dcc
--- /dev/null
+++ b/hw/qca5332/received_trigger_info.h
@@ -0,0 +1,344 @@
+
+/* 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 _RECEIVED_TRIGGER_INFO_H_
+#define _RECEIVED_TRIGGER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "received_trigger_info_details.h"
+#define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO 6
+
+#define NUM_OF_QWORDS_RECEIVED_TRIGGER_INFO 3
+
+
+struct received_trigger_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   received_trigger_info_details                             received_trigger_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   received_trigger_info_details                             received_trigger_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RECEIVED_TRIGGER_DETAILS
+
+			Info related to the type of trigger (that potentially requires
+			 SIFS response) that was received
+*/
+
+
+/* Description		TRIGGER_TYPE
+
+			This field indicates for what type of trigger has been received
+			
+			
+			<enum 0 SCH_Qboost_trigger> 
+			<enum 1 SCH_PSPOLL_trigger>
+			<enum 2 SCH_UAPSD_trigger>
+			<enum 3 SCH_11ax_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 7 SCH_EHT_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 4 SCH_11ax_wildcard_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 5 SCH_11ax_unassoc_wildcard_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type" 
+			indicates the subtype of the received trigger
+			
+			<legal 0-7>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_OFFSET          0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_LSB             0
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MSB             3
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MASK            0x000000000000000f
+
+
+/* Description		AX_TRIGGER_SOURCE
+
+			Field Only valid when Trigger_type  is an 11ax related trigger
+			 
+			
+			<enum 0 11ax_trigger_frame>
+			<enum 1 he_control_based_trigger>
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_OFFSET     0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_LSB        4
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MSB        4
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MASK       0x0000000000000010
+
+
+/* Description		AX_TRIGGER_TYPE
+
+			Field Only valid when Trigger_type  is an 11ax related trigger
+			
+			
+			The 11AX trigger type/ trigger number:
+			It identifies which trigger was received.
+			<enum 0 ax_trigger_basic>
+			<enum 1 ax_trigger_brpoll>
+			<enum 2 ax_trigger_mu_bar>
+			<enum 3 ax_trigger_mu_rts>
+			<enum 4 ax_trigger_buffer_size>
+			<enum 5 ax_trigger_gcr_mu_bar>
+			<enum 6 ax_trigger_BQRP> 
+			<enum 7 ax_trigger_NDP_fb_report_poll> 
+			<enum 8 ax_tb_ranging_trigger> Indicates the reception of
+			 Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype
+			
+			<enum 9 ax_trigger_reserved_9>
+			<enum 10 ax_trigger_reserved_10>
+			<enum 11 ax_trigger_reserved_11>
+			<enum 12 ax_trigger_reserved_12>
+			<enum 13 ax_trigger_reserved_13>
+			<enum 14 ax_trigger_reserved_14>
+			<enum 15 ax_trigger_reserved_15>
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_OFFSET       0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_LSB          5
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MSB          8
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MASK         0x00000000000001e0
+
+
+/* Description		TRIGGER_SOURCE_STA_FULL_AID
+
+			The sta_full_aid of the sta/ap that generated the trigger.
+			
+			Comes from the address_search_entry
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x00000000003ffe00
+
+
+/* Description		FRAME_CONTROL_VALID
+
+			When set, the 'frame_control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_OFFSET   0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_LSB      22
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MSB      22
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MASK     0x0000000000400000
+
+
+/* Description		QOS_CONTROL_VALID
+
+			When set, the 'QoS_control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_OFFSET     0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_LSB        23
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MSB        23
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MASK       0x0000000000800000
+
+
+/* Description		HE_CONTROL_INFO_VALID
+
+			When set, the 'HE control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_LSB    24
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MSB    24
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MASK   0x0000000001000000
+
+
+/* Description		RANGING_TRIGGER_SUBTYPE
+
+			Field only valid if  AX_Trigger_type = ax_tb_ranging_trigger
+			
+			
+			Indicates the Trigger subtype for the current ranging TF
+			
+			
+			<enum 0 TF_Poll>
+			<enum 1 TF_Sound>
+			<enum 2 TF_Secure_Sound>
+			<enum 3 TF_Report>
+			
+			<legal 0-3>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB  25
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB  28
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x000000001e000000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_OFFSET           0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_LSB              29
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MSB              31
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MASK             0x00000000e0000000
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_OFFSET           0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_LSB              32
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MSB              47
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MASK             0x0000ffff00000000
+
+
+/* Description		LSIG_RESPONSE_LENGTH
+
+			Field only valid in case of OFDMA trigger
+			
+			Indicates the value of the L-SIG Length field of the HE 
+			trigger-based PPDU that is the response to the Trigger frame
+			 
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET  0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_LSB     48
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MSB     59
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MASK    0x0fff000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_OFFSET           0x0000000000000000
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_LSB              60
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MSB              63
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MASK             0xf000000000000000
+
+
+/* Description		FRAME_CONTROL
+
+			frame control field of the received frame
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_OFFSET         0x0000000000000008
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_LSB            0
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MSB            15
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MASK           0x000000000000ffff
+
+
+/* Description		QOS_CONTROL
+
+			frame control field of the received frame (if present)
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_OFFSET           0x0000000000000008
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_LSB              16
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MSB              31
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MASK             0x00000000ffff0000
+
+
+/* Description		SW_PEER_ID
+
+			A unique identifier for this STA. Extracted from the Address_Search_Entry
+			
+			
+			Used by the SCH to find linkage between this trigger and
+			 potentially pre-programmed responses.
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_OFFSET            0x0000000000000008
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_LSB               32
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MSB               47
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MASK              0x0000ffff00000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_OFFSET           0x0000000000000008
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_LSB              48
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MSB              63
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MASK             0xffff000000000000
+
+
+/* Description		HE_CONTROL
+
+			Field only valid when HE_control_info_valid is set
+			
+			This is the 'RAW HE_CONTROL field' that was present in the
+			 frame.
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_OFFSET            0x0000000000000010
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_LSB               0
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MSB               31
+#define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MASK              0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_OFFSET                                  0x0000000000000010
+#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_LSB                                     32
+#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MSB                                     63
+#define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MASK                                    0xffffffff00000000
+
+
+
+#endif   // RECEIVED_TRIGGER_INFO
diff --git a/hw/qca5332/received_trigger_info_details.h b/hw/qca5332/received_trigger_info_details.h
new file mode 100644
index 0000000..c8353e6
--- /dev/null
+++ b/hw/qca5332/received_trigger_info_details.h
@@ -0,0 +1,351 @@
+
+/* 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 _RECEIVED_TRIGGER_INFO_DETAILS_H_
+#define _RECEIVED_TRIGGER_INFO_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO_DETAILS 5
+
+
+struct received_trigger_info_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t trigger_type                                            :  4, // [3:0]
+                      ax_trigger_source                                       :  1, // [4:4]
+                      ax_trigger_type                                         :  4, // [8:5]
+                      trigger_source_sta_full_aid                             : 13, // [21:9]
+                      frame_control_valid                                     :  1, // [22:22]
+                      qos_control_valid                                       :  1, // [23:23]
+                      he_control_info_valid                                   :  1, // [24:24]
+                      ranging_trigger_subtype                                 :  4, // [28:25]
+                      reserved_0b                                             :  3; // [31:29]
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      lsig_response_length                                    : 12, // [27:16]
+                      reserved_1a                                             :  4; // [31:28]
+             uint32_t frame_control                                           : 16, // [15:0]
+                      qos_control                                             : 16; // [31:16]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      reserved_3a                                             : 16; // [31:16]
+             uint32_t he_control                                              : 32; // [31:0]
+#else
+             uint32_t reserved_0b                                             :  3, // [31:29]
+                      ranging_trigger_subtype                                 :  4, // [28:25]
+                      he_control_info_valid                                   :  1, // [24:24]
+                      qos_control_valid                                       :  1, // [23:23]
+                      frame_control_valid                                     :  1, // [22:22]
+                      trigger_source_sta_full_aid                             : 13, // [21:9]
+                      ax_trigger_type                                         :  4, // [8:5]
+                      ax_trigger_source                                       :  1, // [4:4]
+                      trigger_type                                            :  4; // [3:0]
+             uint32_t reserved_1a                                             :  4, // [31:28]
+                      lsig_response_length                                    : 12, // [27:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+             uint32_t qos_control                                             : 16, // [31:16]
+                      frame_control                                           : 16; // [15:0]
+             uint32_t reserved_3a                                             : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t he_control                                              : 32; // [31:0]
+#endif
+};
+
+
+/* Description		TRIGGER_TYPE
+
+			This field indicates for what type of trigger has been received
+			
+			
+			<enum 0 SCH_Qboost_trigger> 
+			<enum 1 SCH_PSPOLL_trigger>
+			<enum 2 SCH_UAPSD_trigger>
+			<enum 3 SCH_11ax_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 7 SCH_EHT_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 4 SCH_11ax_wildcard_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 5 SCH_11ax_unassoc_wildcard_trigger> 
+			Field "AX_trigger_type" indicates the ID of the received
+			 trigger
+			<enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type" 
+			indicates the subtype of the received trigger
+			
+			<legal 0-7>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_OFFSET                           0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_LSB                              0
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MSB                              3
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MASK                             0x0000000f
+
+
+/* Description		AX_TRIGGER_SOURCE
+
+			Field Only valid when Trigger_type  is an 11ax related trigger
+			 
+			
+			<enum 0 11ax_trigger_frame>
+			<enum 1 he_control_based_trigger>
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_OFFSET                      0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_LSB                         4
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MSB                         4
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MASK                        0x00000010
+
+
+/* Description		AX_TRIGGER_TYPE
+
+			Field Only valid when Trigger_type  is an 11ax related trigger
+			
+			
+			The 11AX trigger type/ trigger number:
+			It identifies which trigger was received.
+			<enum 0 ax_trigger_basic>
+			<enum 1 ax_trigger_brpoll>
+			<enum 2 ax_trigger_mu_bar>
+			<enum 3 ax_trigger_mu_rts>
+			<enum 4 ax_trigger_buffer_size>
+			<enum 5 ax_trigger_gcr_mu_bar>
+			<enum 6 ax_trigger_BQRP> 
+			<enum 7 ax_trigger_NDP_fb_report_poll> 
+			<enum 8 ax_tb_ranging_trigger> Indicates the reception of
+			 Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype
+			
+			<enum 9 ax_trigger_reserved_9>
+			<enum 10 ax_trigger_reserved_10>
+			<enum 11 ax_trigger_reserved_11>
+			<enum 12 ax_trigger_reserved_12>
+			<enum 13 ax_trigger_reserved_13>
+			<enum 14 ax_trigger_reserved_14>
+			<enum 15 ax_trigger_reserved_15>
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_OFFSET                        0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_LSB                           5
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MSB                           8
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MASK                          0x000001e0
+
+
+/* Description		TRIGGER_SOURCE_STA_FULL_AID
+
+			The sta_full_aid of the sta/ap that generated the trigger.
+			
+			Comes from the address_search_entry
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET            0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB               9
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB               21
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK              0x003ffe00
+
+
+/* Description		FRAME_CONTROL_VALID
+
+			When set, the 'frame_control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_OFFSET                    0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_LSB                       22
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MSB                       22
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MASK                      0x00400000
+
+
+/* Description		QOS_CONTROL_VALID
+
+			When set, the 'QoS_control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_OFFSET                      0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_LSB                         23
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MSB                         23
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MASK                        0x00800000
+
+
+/* Description		HE_CONTROL_INFO_VALID
+
+			When set, the 'HE control' field contains valid info
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_OFFSET                  0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_LSB                     24
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MSB                     24
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MASK                    0x01000000
+
+
+/* Description		RANGING_TRIGGER_SUBTYPE
+
+			Field only valid if  AX_Trigger_type = ax_tb_ranging_trigger
+			
+			
+			Indicates the Trigger subtype for the current ranging TF
+			
+			
+			<enum 0 TF_Poll>
+			<enum 1 TF_Sound>
+			<enum 2 TF_Secure_Sound>
+			<enum 3 TF_Report>
+			
+			<legal 0-3>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET                0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB                   25
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB                   28
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK                  0x1e000000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_OFFSET                            0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_LSB                               29
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MASK                              0xe0000000
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_OFFSET                            0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_LSB                               0
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MSB                               15
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MASK                              0x0000ffff
+
+
+/* Description		LSIG_RESPONSE_LENGTH
+
+			Field only valid in case of OFDMA trigger
+			
+			Indicates the value of the L-SIG Length field of the HE 
+			trigger-based PPDU that is the response to the Trigger frame
+			 
+			
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET                   0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_LSB                      16
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MSB                      27
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MASK                     0x0fff0000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_OFFSET                            0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_LSB                               28
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MASK                              0xf0000000
+
+
+/* Description		FRAME_CONTROL
+
+			frame control field of the received frame
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_OFFSET                          0x00000008
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_LSB                             0
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MSB                             15
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MASK                            0x0000ffff
+
+
+/* Description		QOS_CONTROL
+
+			frame control field of the received frame (if present)
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_OFFSET                            0x00000008
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_LSB                               16
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MASK                              0xffff0000
+
+
+/* Description		SW_PEER_ID
+
+			A unique identifier for this STA. Extracted from the Address_Search_Entry
+			
+			
+			Used by the SCH to find linkage between this trigger and
+			 potentially pre-programmed responses.
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_OFFSET                             0x0000000c
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_LSB                                0
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MSB                                15
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MASK                               0x0000ffff
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_OFFSET                            0x0000000c
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_LSB                               16
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MASK                              0xffff0000
+
+
+/* Description		HE_CONTROL
+
+			Field only valid when HE_control_info_valid is set
+			
+			This is the 'RAW HE_CONTROL field' that was present in the
+			 frame.
+			<legal all>
+*/
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_OFFSET                             0x00000010
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_LSB                                0
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MSB                                31
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MASK                               0xffffffff
+
+
+
+#endif   // RECEIVED_TRIGGER_INFO_DETAILS
diff --git a/hw/qca5332/reo_descriptor_threshold_reached_status.h b/hw/qca5332/reo_descriptor_threshold_reached_status.h
new file mode 100644
index 0000000..91a4196
--- /dev/null
+++ b/hw/qca5332/reo_descriptor_threshold_reached_status.h
@@ -0,0 +1,572 @@
+
+/* 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 _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
+#define _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 26
+
+#define NUM_OF_QWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 13
+
+
+struct reo_descriptor_threshold_reached_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t threshold_index                                         :  2, // [1:0]
+                      reserved_2                                              : 30; // [31:2]
+             uint32_t link_descriptor_counter0                                : 24, // [23:0]
+                      reserved_3                                              :  8; // [31:24]
+             uint32_t link_descriptor_counter1                                : 24, // [23:0]
+                      reserved_4                                              :  8; // [31:24]
+             uint32_t link_descriptor_counter2                                : 24, // [23:0]
+                      reserved_5                                              :  8; // [31:24]
+             uint32_t link_descriptor_counter_sum                             : 26, // [25:0]
+                      reserved_6                                              :  6; // [31:26]
+             uint32_t reserved_7                                              : 32; // [31:0]
+             uint32_t reserved_8                                              : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2                                              : 30, // [31:2]
+                      threshold_index                                         :  2; // [1:0]
+             uint32_t reserved_3                                              :  8, // [31:24]
+                      link_descriptor_counter0                                : 24; // [23:0]
+             uint32_t reserved_4                                              :  8, // [31:24]
+                      link_descriptor_counter1                                : 24; // [23:0]
+             uint32_t reserved_5                                              :  8, // [31:24]
+                      link_descriptor_counter2                                : 24; // [23:0]
+             uint32_t reserved_6                                              :  6, // [31:26]
+                      link_descriptor_counter_sum                             : 26; // [25:0]
+             uint32_t reserved_7                                              : 32; // [31:0]
+             uint32_t reserved_8                                              : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB 15
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB 25
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB 27
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET    0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_LSB       28
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MSB       31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MASK      0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET      0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_LSB         32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MSB         63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MASK        0xffffffff00000000
+
+
+/* Description		THRESHOLD_INDEX
+
+			The index of the threshold register whose value got reached
+			
+			
+			<enum 0     reo_desc_counter0_threshold>
+			<enum 1     reo_desc_counter1_threshold>
+			<enum 2     reo_desc_counter2_threshold>
+			<enum 3     reo_desc_counter_sum_threshold>
+			
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_OFFSET              0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_LSB                 0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MSB                 1
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MASK                0x0000000000000003
+
+
+/* Description		RESERVED_2
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_OFFSET                   0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_LSB                      2
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MASK                     0x00000000fffffffc
+
+
+/* Description		LINK_DESCRIPTOR_COUNTER0
+
+			Value of this counter at generation of this message
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_OFFSET     0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_LSB        32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MSB        55
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MASK       0x00ffffff00000000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_OFFSET                   0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_LSB                      56
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MASK                     0xff00000000000000
+
+
+/* Description		LINK_DESCRIPTOR_COUNTER1
+
+			Value of this counter at generation of this message
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_OFFSET     0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_LSB        0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MSB        23
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MASK       0x0000000000ffffff
+
+
+/* Description		RESERVED_4
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_OFFSET                   0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_LSB                      24
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MASK                     0x00000000ff000000
+
+
+/* Description		LINK_DESCRIPTOR_COUNTER2
+
+			Value of this counter at generation of this message
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_OFFSET     0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_LSB        32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MSB        55
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MASK       0x00ffffff00000000
+
+
+/* Description		RESERVED_5
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_OFFSET                   0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_LSB                      56
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MASK                     0xff00000000000000
+
+
+/* Description		LINK_DESCRIPTOR_COUNTER_SUM
+
+			Value of this counter at generation of this message
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_OFFSET  0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_LSB     0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MSB     25
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MASK    0x0000000003ffffff
+
+
+/* Description		RESERVED_6
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_OFFSET                   0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_LSB                      26
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MASK                     0x00000000fc000000
+
+
+/* Description		RESERVED_7
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_OFFSET                   0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_LSB                      32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MASK                     0xffffffff00000000
+
+
+/* Description		RESERVED_8
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_OFFSET                   0x0000000000000020
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_LSB                      0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MASK                     0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_OFFSET                  0x0000000000000020
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_LSB                     32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MSB                     63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MASK                    0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_OFFSET                 0x0000000000000028
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_OFFSET                 0x0000000000000028
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_OFFSET                 0x0000000000000030
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_OFFSET                 0x0000000000000030
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_OFFSET                 0x0000000000000038
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_OFFSET                 0x0000000000000038
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_OFFSET                 0x0000000000000040
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_OFFSET                 0x0000000000000040
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_OFFSET                 0x0000000000000048
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_OFFSET                 0x0000000000000048
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_OFFSET                 0x0000000000000050
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_OFFSET                 0x0000000000000050
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_OFFSET                 0x0000000000000058
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_OFFSET                 0x0000000000000058
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MASK                   0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_OFFSET                 0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MASK                   0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_OFFSET                 0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MSB                    59
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MASK                   0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_OFFSET                0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_LSB                   60
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MSB                   63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MASK                  0xf000000000000000
+
+
+
+#endif   // REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS
diff --git a/hw/qca5332/reo_destination_ring.h b/hw/qca5332/reo_destination_ring.h
new file mode 100644
index 0000000..2560bf9
--- /dev/null
+++ b/hw/qca5332/reo_destination_ring.h
@@ -0,0 +1,949 @@
+
+/* 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 _REO_DESTINATION_RING_H_
+#define _REO_DESTINATION_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_REO_DESTINATION_RING 8
+
+
+struct reo_destination_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_or_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t reo_dest_buffer_type                                    :  1, // [0:0]
+                      reo_push_reason                                         :  2, // [2:1]
+                      reo_error_code                                          :  5, // [7:3]
+                      captured_msdu_data_size                                 :  4, // [11:8]
+                      sw_exception                                            :  1, // [12:12]
+                      src_link_id                                             :  3, // [15:13]
+                      reo_destination_struct_signature                        :  4, // [19:16]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   buffer_addr_info                                          buf_or_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reo_destination_struct_signature                        :  4, // [19:16]
+                      src_link_id                                             :  3, // [15:13]
+                      sw_exception                                            :  1, // [12:12]
+                      captured_msdu_data_size                                 :  4, // [11:8]
+                      reo_error_code                                          :  5, // [7:3]
+                      reo_push_reason                                         :  2, // [2:1]
+                      reo_dest_buffer_type                                    :  1; // [0:0]
+#endif
+};
+
+
+/* Description		BUF_OR_LINK_DESC_ADDR_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Details of the physical address of the a buffer or MSDU 
+			link descriptor
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET     0x00000000
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB        0
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB        31
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK       0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET    0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB       0
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB       7
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK      0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB   8
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB   11
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK  0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET     0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB        12
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB        31
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK       0xfffff000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU that is passed on
+			 from REO entrance ring to the REO destination ring
+			
+			When enabled in REO, REO will overwrite this structure to
+			 have only the 'Msdu_count' field and 56 bits of the previous
+			 PN from 'RX_REO_QUEUE' (Hamilton FR62456)
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET            0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB               0
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB               7
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK              0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET         0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB            8
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB            8
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK           0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET        0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB           9
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB           9
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK          0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET            0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB               10
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB               10
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK              0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET             0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                11
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                11
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK               0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET              0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                 13
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                 13
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET    0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB       14
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB       14
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK      0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET              0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                 15
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                 26
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB   27
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB   27
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK  0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                   0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                      28
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                      31
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                     0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET        0x0000000c
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB           0
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB           31
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK          0xffffffff
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			General information related to the MSDU that is passed on
+			 from RXDMA all the way to to the REO destination ring.
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB  0
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB  0
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK 0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB   1
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB   1
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK  0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET     0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB        2
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB        2
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK       0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB              3
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB              16
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK             0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET             0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                17
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                17
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK               0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB              18
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB              18
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK             0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB              19
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB              19
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK             0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET            0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB               20
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB               20
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK              0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB    21
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB    21
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK   0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET   0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB      22
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB      22
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK     0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET        0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB           23
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB           23
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK          0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                    24
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                    24
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                   0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                    25
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                    25
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                   0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET             0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                26
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                26
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK               0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET          0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB             27
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB             28
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK            0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET          0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB             29
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB             30
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK            0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET     0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB        31
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB        31
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK       0x80000000
+
+
+/* Description		BUFFER_VIRT_ADDR_31_0
+
+			Field only valid if Reo_dest_buffer_type is set to MSDU_buf_address
+			
+			
+			Lower 32 bits of the 64-bit virtual address corresponding
+			 to Buf_or_link_desc_addr_info
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_OFFSET                           0x00000014
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_LSB                              0
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_MSB                              31
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_MASK                             0xffffffff
+
+
+/* Description		BUFFER_VIRT_ADDR_63_32
+
+			Field only valid if Reo_dest_buffer_type is set to MSDU_buf_address
+			
+			
+			Upper 32 bits of the 64-bit virtual address corresponding
+			 to Buf_or_link_desc_addr_info
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_OFFSET                          0x00000018
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_LSB                             0
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_MSB                             31
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_MASK                            0xffffffff
+
+
+/* Description		REO_DEST_BUFFER_TYPE
+
+			Indicates the type of address provided in the 'Buf_or_link_desc_addr_info'
+			
+			
+			<enum 0 MSDU_buf_address> The address of an MSDU buffer
+			<enum 1 MSDU_link_desc_address> The address of the MSDU 
+			link descriptor. 
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_OFFSET                            0x0000001c
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_LSB                               0
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_MSB                               0
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_MASK                              0x00000001
+
+
+/* Description		REO_PUSH_REASON
+
+			Indicates why REO pushed the frame to this exit ring
+			
+			<enum 0 reo_error_detected> Reo detected an error an pushed
+			 this frame to this queue
+			<enum 1 reo_routing_instruction> Reo pushed the frame to
+			 this queue per received routing instructions. No error 
+			within REO was detected
+			
+			
+			<legal 0 - 1>
+*/
+
+#define REO_DESTINATION_RING_REO_PUSH_REASON_OFFSET                                 0x0000001c
+#define REO_DESTINATION_RING_REO_PUSH_REASON_LSB                                    1
+#define REO_DESTINATION_RING_REO_PUSH_REASON_MSB                                    2
+#define REO_DESTINATION_RING_REO_PUSH_REASON_MASK                                   0x00000006
+
+
+/* Description		REO_ERROR_CODE
+
+			Field only valid when 'Reo_push_reason' set to 'reo_error_detected'.
+			
+			
+			<enum 0 reo_queue_desc_addr_zero> Reo queue descriptor provided
+			 in the REO_ENTRANCE ring is set to 0
+			<enum 1 reo_queue_desc_not_valid> Reo queue descriptor valid
+			 bit is NOT set
+			<enum 2 ampdu_in_non_ba> AMPDU frame received without BA
+			 session having been setup.
+			<enum 3 non_ba_duplicate> Non-BA session, SN equal to SSN, 
+			Retry bit set: duplicate frame
+			<enum 4 ba_duplicate> BA session, duplicate frame
+			<enum 5 regular_frame_2k_jump> A normal (management/data
+			 frame) received with 2K jump in SN
+			<enum 6 bar_frame_2k_jump> A bar received with 2K jump in
+			 SSN
+			<enum 7 regular_frame_OOR> A normal (management/data frame) 
+			received with SN falling within the OOR window
+			<enum 8 bar_frame_OOR> A bar received with SSN falling within
+			 the OOR window
+			<enum 9 bar_frame_no_ba_session> A bar received without 
+			a BA session
+			<enum 10 bar_frame_sn_equals_ssn> A bar received with SSN
+			 equal to SN
+			<enum 11 pn_check_failed> PN Check Failed packet.
+			<enum 12 2k_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'Seq_2k_error_detected_flag' been set
+			 in the REO Queue descriptor
+			<enum 13 pn_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'pn_error_detected_flag' been set in 
+			the REO Queue descriptor
+			<enum 14 queue_descriptor_blocked_set> Frame is forwarded
+			 as a result of the queue descriptor(address) being blocked
+			 as SW/FW seems to be currently in the process of making
+			 updates to this descriptor...
+			
+			<legal 0-14>
+*/
+
+#define REO_DESTINATION_RING_REO_ERROR_CODE_OFFSET                                  0x0000001c
+#define REO_DESTINATION_RING_REO_ERROR_CODE_LSB                                     3
+#define REO_DESTINATION_RING_REO_ERROR_CODE_MSB                                     7
+#define REO_DESTINATION_RING_REO_ERROR_CODE_MASK                                    0x000000f8
+
+
+/* Description		CAPTURED_MSDU_DATA_SIZE
+
+			The number of following REO_DESTINATION STRUCTs that have
+			 been replaced with msdu_data extracted from the msdu_buffer
+			 and copied into the ring for easy FW/SW access.
+			Note that it is possible that these STRUCTs wrap around 
+			the end of the ring.
+			Feature supported only in HastingsPrime
+			<legal 0-4>
+*/
+
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_OFFSET                         0x0000001c
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_LSB                            8
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_MSB                            11
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_MASK                           0x00000f00
+
+
+/* Description		SW_EXCEPTION
+
+			This field has the same setting as the SW_exception field
+			 in the corresponding REO_entrance_ring descriptor.
+			When set, the REO entrance descriptor is generated by FW, 
+			and the MPDU was processed in the following way:
+			- NO re-order function is needed.
+			- MPDU delinking is determined by the setting of Entrance
+			 ring field: SW_excection_mpdu_delink
+			- Destination ring selection is based on the setting of 
+			the Entrance ring field SW_exception_destination _ring_valid
+			
+			Feature supported only in HastingsPrime
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_SW_EXCEPTION_OFFSET                                    0x0000001c
+#define REO_DESTINATION_RING_SW_EXCEPTION_LSB                                       12
+#define REO_DESTINATION_RING_SW_EXCEPTION_MSB                                       12
+#define REO_DESTINATION_RING_SW_EXCEPTION_MASK                                      0x00001000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_SRC_LINK_ID_OFFSET                                     0x0000001c
+#define REO_DESTINATION_RING_SRC_LINK_ID_LSB                                        13
+#define REO_DESTINATION_RING_SRC_LINK_ID_MSB                                        15
+#define REO_DESTINATION_RING_SRC_LINK_ID_MASK                                       0x0000e000
+
+
+/* Description		REO_DESTINATION_STRUCT_SIGNATURE
+
+			Set to value 0x8 when msdu capture mode is enabled for this
+			 ring <legal 0, 8 >
+*/
+
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_OFFSET                0x0000001c
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_LSB                   16
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_MSB                   19
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_MASK                  0x000f0000
+
+
+/* Description		RING_ID
+
+			The buffer pointer ring ID.
+			0 refers to the IDLE ring
+			1 - N refers to other rings
+			
+			Helps with debugging when dumping ring contents.
+			
+			This can be used in conjunction with the Reo_destination_struct_signature.
+			
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_RING_ID_OFFSET                                         0x0000001c
+#define REO_DESTINATION_RING_RING_ID_LSB                                            20
+#define REO_DESTINATION_RING_RING_ID_MSB                                            27
+#define REO_DESTINATION_RING_RING_ID_MASK                                           0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_DESTINATION_RING_LOOPING_COUNT_OFFSET                                   0x0000001c
+#define REO_DESTINATION_RING_LOOPING_COUNT_LSB                                      28
+#define REO_DESTINATION_RING_LOOPING_COUNT_MSB                                      31
+#define REO_DESTINATION_RING_LOOPING_COUNT_MASK                                     0xf0000000
+
+
+
+#endif   // REO_DESTINATION_RING
diff --git a/hw/qca5332/reo_entrance_ring.h b/hw/qca5332/reo_entrance_ring.h
new file mode 100644
index 0000000..8d46bd8
--- /dev/null
+++ b/hw/qca5332/reo_entrance_ring.h
@@ -0,0 +1,958 @@
+
+/* 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 _REO_ENTRANCE_RING_H_
+#define _REO_ENTRANCE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_details.h"
+#define NUM_OF_DWORDS_REO_ENTRANCE_RING 8
+
+
+struct reo_entrance_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8, // [7:0]
+                      rounded_mpdu_byte_count                                 : 14, // [21:8]
+                      reo_destination_indication                              :  5, // [26:22]
+                      frameless_bar                                           :  1, // [27:27]
+                      reserved_5a                                             :  4; // [31:28]
+             uint32_t rxdma_push_reason                                       :  2, // [1:0]
+                      rxdma_error_code                                        :  5, // [6:2]
+                      mpdu_fragment_number                                    :  4, // [10:7]
+                      sw_exception                                            :  1, // [11:11]
+                      sw_exception_mpdu_delink                                :  1, // [12:12]
+                      sw_exception_destination_ring_valid                     :  1, // [13:13]
+                      sw_exception_destination_ring                           :  5, // [18:14]
+                      mpdu_sequence_number                                    : 12, // [30:19]
+                      reserved_6a                                             :  1; // [31:31]
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      src_link_id                                             :  3, // [18:16]
+                      reserved_7a                                             :  1, // [19:19]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t reserved_5a                                             :  4, // [31:28]
+                      frameless_bar                                           :  1, // [27:27]
+                      reo_destination_indication                              :  5, // [26:22]
+                      rounded_mpdu_byte_count                                 : 14, // [21:8]
+                      rx_reo_queue_desc_addr_39_32                            :  8; // [7:0]
+             uint32_t reserved_6a                                             :  1, // [31:31]
+                      mpdu_sequence_number                                    : 12, // [30:19]
+                      sw_exception_destination_ring                           :  5, // [18:14]
+                      sw_exception_destination_ring_valid                     :  1, // [13:13]
+                      sw_exception_mpdu_delink                                :  1, // [12:12]
+                      sw_exception                                            :  1, // [11:11]
+                      mpdu_fragment_number                                    :  4, // [10:7]
+                      rxdma_error_code                                        :  5, // [6:2]
+                      rxdma_push_reason                                       :  2; // [1:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             :  1, // [19:19]
+                      src_link_id                                             :  3, // [18:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+#endif
+};
+
+
+/* Description		REO_LEVEL_MPDU_FRAME_INFO
+
+			Consumer: REO
+			Producer: RXDMA
+			
+			Details related to the MPDU being pushed into the REO
+*/
+
+
+/* Description		MSDU_LINK_DESC_ADDR_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Details of the physical address of the MSDU link descriptor
+			 that contains pointers to MSDUs related to this MPDU
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU that should be passed
+			 on from REO entrance ring to the REO destination ring
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB 7
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK 0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK 0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB 9
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB 9
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK 0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB 10
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB 10
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK 0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK 0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB 13
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB 13
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK 0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB 14
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB 14
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB 15
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB 26
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK 0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_LSB 28
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MASK 0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET 0x0000000c
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK 0xffffffff
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			Consumer: REO
+			Producer: RXDMA
+			
+			Address (lower 32 bits) of the REO queue descriptor
+			
+			Alternatively, as per FR63739, REO internally looks up the
+			 queue descriptor address from 'Sw_peer_id' and 'Tid.' In
+			 this mode, RXDMA fills 'Sw_peer_id' from 'RX_MPDU_START' 
+			in the LSB 16 bits. 'Tid' is available in 'RX_MPDU_DETAILS.'
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                        0x00000010
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                           0
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                           31
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                          0xffffffff
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			Consumer: REO
+			Producer: RXDMA
+			
+			Address (upper 8 bits) of the REO queue descriptor
+			Alternatively, as per FR63739, REO internally looks up the
+			 queue descriptor address from 'Sw_peer_id' and 'Tid.' In
+			 this mode, this field is unused.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                       0x00000014
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                          0
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                          7
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                         0x000000ff
+
+
+/* Description		ROUNDED_MPDU_BYTE_COUNT
+
+			An approximation of the number of bytes received in this
+			 MPDU. 
+			Used to keeps stats on the amount of data flowing through
+			 a queue.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_OFFSET                            0x00000014
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_LSB                               8
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_MSB                               21
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_MASK                              0x003fff00
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			RXDMA copy the MPDU's first MSDU's destination indication
+			 field here. This is used for REO to be able to re-route
+			 the packet to a different SW destination ring if the packet
+			 is detected as error in REO.
+			
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_OFFSET                         0x00000014
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_LSB                            22
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_MSB                            26
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_MASK                           0x07c00000
+
+
+/* Description		FRAMELESS_BAR
+
+			When set, this REO entrance ring struct contains BAR info
+			 from a multi TID BAR frame. The original multi TID BAR 
+			frame itself contained all the REO info for the first TID, 
+			but all the subsequent TID info and their linkage to the
+			 REO descriptors is passed down as 'frameless' BAR info.
+			
+			
+			The only fields valid in this descriptor when this bit is
+			 set are:
+			Rx_reo_queue_desc_addr_31_0
+			RX_reo_queue_desc_addr_39_32
+			
+			And within the
+			Reo_level_mpdu_frame_info:    
+			   Within Rx_mpdu_desc_info_details:
+			Mpdu_Sequence_number
+			BAR_frame
+			Peer_meta_data
+			All other fields shall be set to 0
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_OFFSET                                      0x00000014
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_LSB                                         27
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_MSB                                         27
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_MASK                                        0x08000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_ENTRANCE_RING_RESERVED_5A_OFFSET                                        0x00000014
+#define REO_ENTRANCE_RING_RESERVED_5A_LSB                                           28
+#define REO_ENTRANCE_RING_RESERVED_5A_MSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_5A_MASK                                          0xf0000000
+
+
+/* Description		RXDMA_PUSH_REASON
+
+			Indicates why rxdma pushed the frame to this ring
+			
+			This field is ignored by REO. 
+			
+			<enum 0 rxdma_error_detected> RXDMA detected an error an
+			 pushed this frame to this queue
+			<enum 1 rxdma_routing_instruction> RXDMA pushed the frame
+			 to this queue per received routing instructions. No error
+			 within RXDMA was detected
+			<enum 2 rxdma_rx_flush> RXDMA received an RX_FLUSH. As a
+			 result the MSDU link descriptor might not have the "last_msdu_in_mpdu_flag" 
+			set, but instead WBM might just see a NULL pointer in the
+			 MSDU link descriptor. This is to be considered a normal
+			 condition for this scenario.
+			
+			<legal 0 - 2>
+*/
+
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_OFFSET                                  0x00000018
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_LSB                                     0
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_MSB                                     1
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_MASK                                    0x00000003
+
+
+/* Description		RXDMA_ERROR_CODE
+
+			Field only valid when 'rxdma_push_reason' set to 'rxdma_error_detected'.
+			
+			
+			This field is ignored by REO.
+			
+			<enum 0 rxdma_overflow_err>MPDU frame is not complete due
+			 to a FIFO overflow error in RXPCU.
+			<enum 1 rxdma_mpdu_length_err>MPDU frame is not complete
+			 due to receiving incomplete MPDU from the PHY
+			<enum 2 rxdma_fcs_err>FCS check on the MPDU frame failed
+			
+			<enum 3 rxdma_decrypt_err>CRYPTO reported a decryption error
+			 or CRYPTO received an encrypted frame, but did not get 
+			a valid corresponding key id in the peer entry.
+			<enum 4 rxdma_tkip_mic_err>CRYPTO reported a TKIP MIC error
+			
+			<enum 5 rxdma_unecrypted_err>CRYPTO reported an unencrypted
+			 frame error when encrypted was expected
+			<enum 6 rxdma_msdu_len_err>RX OLE reported an MSDU length
+			 error
+			<enum 7 rxdma_msdu_limit_err>RX OLE reported that max number
+			 of MSDUs allowed in an MPDU got exceeded
+			<enum 8 rxdma_wifi_parse_err>RX OLE reported a parsing error
+			
+			<enum 9 rxdma_amsdu_parse_err>RX OLE reported an A-MSDU 
+			parsing error
+			<enum 10 rxdma_sa_timeout_err>RX OLE reported a timeout 
+			during SA search
+			<enum 11 rxdma_da_timeout_err>RX OLE reported a timeout 
+			during DA search
+			<enum 12 rxdma_flow_timeout_err>RX OLE reported a timeout
+			 during flow search
+			<enum 13 rxdma_flush_request>RXDMA received a flush request
+			
+			<enum 14 rxdma_amsdu_fragment_err>Rx PCU reported A-MSDU
+			 present as well as a fragmented MPDU. A-MSDU defragmentation
+			 is not supported in Lithium SW so this is treated as an
+			 error.
+			<enum 15 rxdma_multicast_echo_err>RX OLE reported a multicast
+			 echo
+			<enum 16 rxdma_amsdu_addr_mismatch_err>RX OLE reported an
+			 A-MSDU with either 'from DS = 0' with an SA mismatching
+			 TA or 'to DS = 0' with a DA mismatching RA.
+			<enum 17 rxdma_unauthorized_wds_err>RX PCU reported that
+			 Rx peer entry did not indicate 'authorized_to_send_WDS' 
+			and also indicated 'from DS = to DS = 1.'
+			<enum 18 rxdma_groupcast_amsdu_or_wds_err>RX PCU reported
+			 a broadcast or multicast RA as well as either A-MSDU present
+			 or 'from DS = to DS = 1.'
+*/
+
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_OFFSET                                   0x00000018
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_LSB                                      2
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_MSB                                      6
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_MASK                                     0x0000007c
+
+
+/* Description		MPDU_FRAGMENT_NUMBER
+
+			Field only valid when Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details.Fragment_flag
+			 is set.
+			
+			The fragment number from the 802.11 header.
+			
+			Note that the sequence number is embedded in the field: 
+			Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details. Mpdu_sequence_number
+			
+			
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_OFFSET                               0x00000018
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_LSB                                  7
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_MSB                                  10
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_MASK                                 0x00000780
+
+
+/* Description		SW_EXCEPTION
+
+			When not set, REO is performing all its default MPDU processing
+			 operations,
+			When set, this REO entrance descriptor is generated by FW, 
+			and should be processed as an exception. This implies: 
+			NO re-order function is needed.
+			MPDU delinking is determined by the setting of field SW_excection_mpdu_delink
+			
+			Destination ring selection is based on the setting of the
+			 field SW_exception_destination_ring_valid
+			In the destination ring descriptor set bit: SW_exception_entry
+			
+			Feature supported only in HastingsPrime
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_OFFSET                                       0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_LSB                                          11
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MSB                                          11
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MASK                                         0x00000800
+
+
+/* Description		SW_EXCEPTION_MPDU_DELINK
+
+			Field only valid when SW_exception is set.
+			1'b0: REO should NOT delink the MPDU, and thus pass this
+			 MPDU on to the destination ring as is. This implies that
+			 in the REO_DESTINATION_RING struct field Buf_or_link_desc_addr_info
+			 should point to an MSDU link descriptor
+			1'b1: REO should perform the normal MPDU delink into MSDU
+			 operations.
+			Feature supported only in HastingsPrime
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_OFFSET                           0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_LSB                              12
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_MSB                              12
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_MASK                             0x00001000
+
+
+/* Description		SW_EXCEPTION_DESTINATION_RING_VALID
+
+			Field only valid when SW_exception is set.
+			1'b0: REO shall push the MPDU (or delinked MPDU based on
+			 the setting of SW_exception_mpdu_delink) to the destination
+			 ring according to field reo_destination_indication.
+			1'b1: REO shall push the MPDU (or delinked MPDU based on
+			 the setting of SW_exception_mpdu_delink) to the destination
+			 ring according to field SW_exception_destination_ring.
+			Feature supported only in HastingsPrime
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_OFFSET                0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_LSB                   13
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_MSB                   13
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_MASK                  0x00002000
+
+
+/* Description		SW_EXCEPTION_DESTINATION_RING
+
+			Field only valid when fields SW_exception and SW_exception_destination_ring_valid
+			 are set.
+			The ID of the ring where REO shall push this frame.
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> REO remaps this
+			<enum 8 reo_destination_sw6> REO remaps this 
+			<enum 9 reo_destination_sw7> REO remaps this
+			<enum 10 reo_destination_sw8> REO remaps this 
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			Feature supported only in HastingsPrime
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_OFFSET                      0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_LSB                         14
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_MSB                         18
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_MASK                        0x0007c000
+
+
+/* Description		MPDU_SEQUENCE_NUMBER
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The field can have two different meanings based on the setting
+			 of sub-field Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details.BAR_frame:
+			
+			
+			'BAR_frame' is NOT set:
+			The MPDU sequence number of the received frame.
+			
+			'BAR_frame' is set.
+			The MPDU Start sequence number from the BAR frame
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_OFFSET                               0x00000018
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_LSB                                  19
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_MSB                                  30
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_MASK                                 0x7ff80000
+
+
+/* Description		RESERVED_6A
+
+			Field only valid when Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details. 
+			Mpdu_qos_control_valid is set
+			
+			This indicates whether the 'Ack policy' field within the
+			 QoS control field of the MPDU indicates 'no-Ack.'
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_RESERVED_6A_OFFSET                                        0x00000018
+#define REO_ENTRANCE_RING_RESERVED_6A_LSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_6A_MSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_6A_MASK                                          0x80000000
+
+
+/* Description		PHY_PPDU_ID
+
+			A PPDU counter value that PHY increments for every PPDU 
+			received
+			The counter value wraps around. Pine RXDMA can be configured
+			 to copy this from the RX_PPDU_START TLV for every output
+			 descriptor.
+			
+			This field is ignored by REO.
+			
+			Feature supported only in Pine
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_LSB                                           0
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_MSB                                           15
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_MASK                                          0x0000ffff
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_SRC_LINK_ID_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_SRC_LINK_ID_LSB                                           16
+#define REO_ENTRANCE_RING_SRC_LINK_ID_MSB                                           18
+#define REO_ENTRANCE_RING_SRC_LINK_ID_MASK                                          0x00070000
+
+
+/* Description		RESERVED_7A
+
+			Hamilton v1 filled the link ID of the PMAC that received
+			 the frame here.
+			<legal 0>
+*/
+
+#define REO_ENTRANCE_RING_RESERVED_7A_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_RESERVED_7A_LSB                                           19
+#define REO_ENTRANCE_RING_RESERVED_7A_MSB                                           19
+#define REO_ENTRANCE_RING_RESERVED_7A_MASK                                          0x00080000
+
+
+/* Description		RING_ID
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of RXDMA)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			It help to identify the ring that is being looked <legal
+			 all>
+*/
+
+#define REO_ENTRANCE_RING_RING_ID_OFFSET                                            0x0000001c
+#define REO_ENTRANCE_RING_RING_ID_LSB                                               20
+#define REO_ENTRANCE_RING_RING_ID_MSB                                               27
+#define REO_ENTRANCE_RING_RING_ID_MASK                                              0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of RXDMA)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_ENTRANCE_RING_LOOPING_COUNT_OFFSET                                      0x0000001c
+#define REO_ENTRANCE_RING_LOOPING_COUNT_LSB                                         28
+#define REO_ENTRANCE_RING_LOOPING_COUNT_MSB                                         31
+#define REO_ENTRANCE_RING_LOOPING_COUNT_MASK                                        0xf0000000
+
+
+
+#endif   // REO_ENTRANCE_RING
diff --git a/hw/qca5332/reo_flush_cache.h b/hw/qca5332/reo_flush_cache.h
new file mode 100644
index 0000000..bc037be
--- /dev/null
+++ b/hw/qca5332/reo_flush_cache.h
@@ -0,0 +1,403 @@
+
+/* 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 _REO_FLUSH_CACHE_H_
+#define _REO_FLUSH_CACHE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_CACHE 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_CACHE 5
+
+
+struct reo_flush_cache {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_addr_31_0                                         : 32; // [31:0]
+             uint32_t flush_addr_39_32                                        :  8, // [7:0]
+                      forward_all_mpdus_in_queue                              :  1, // [8:8]
+                      release_cache_block_index                               :  1, // [9:9]
+                      cache_block_resource_index                              :  2, // [11:10]
+                      flush_without_invalidate                                :  1, // [12:12]
+                      block_cache_usage_after_flush                           :  1, // [13:13]
+                      flush_entire_cache                                      :  1, // [14:14]
+                      flush_queue_1k_desc                                     :  1, // [15:15]
+                      reserved_2b                                             : 16; // [31:16]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_addr_31_0                                         : 32; // [31:0]
+             uint32_t reserved_2b                                             : 16, // [31:16]
+                      flush_queue_1k_desc                                     :  1, // [15:15]
+                      flush_entire_cache                                      :  1, // [14:14]
+                      block_cache_usage_after_flush                           :  1, // [13:13]
+                      flush_without_invalidate                                :  1, // [12:12]
+                      cache_block_resource_index                              :  2, // [11:10]
+                      release_cache_block_index                               :  1, // [9:9]
+                      forward_all_mpdus_in_queue                              :  1, // [8:8]
+                      flush_addr_39_32                                        :  8; // [7:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                            0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_LSB                               0
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_MSB                               15
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_MASK                              0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                       0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                          16
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                          16
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                         0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_OFFSET                               0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_LSB                                  17
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_MSB                                  31
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_MASK                                 0x00000000fffe0000
+
+
+/* Description		FLUSH_ADDR_31_0
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (lower 32 bits) of the descriptor to flush
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_OFFSET                                      0x0000000000000000
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_LSB                                         32
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_MSB                                         63
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_MASK                                        0xffffffff00000000
+
+
+/* Description		FLUSH_ADDR_39_32
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (upper 8 bits) of the descriptor to flush
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_OFFSET                                     0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_LSB                                        0
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_MSB                                        7
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_MASK                                       0x00000000000000ff
+
+
+/* Description		FORWARD_ALL_MPDUS_IN_QUEUE
+
+			Is only allowed to be set when the flush address corresponds
+			 with a REO descriptor.
+			
+			When set, REO shall first forward all the MPDUs held in 
+			the indicated re-order queue, before flushing the descriptor
+			 from the cache.
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_LSB                              8
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_MSB                              8
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_MASK                             0x0000000000000100
+
+
+/* Description		RELEASE_CACHE_BLOCK_INDEX
+
+			Field not valid when Flush_entire_cache is set.
+			
+			If SW has previously used a blocking resource that it now
+			 wants to re-use for this command, this bit shall be set. 
+			It prevents SW from having to send a separate REO_UNBLOCK_CACHE
+			 command.
+			
+			When set, HW will first release the blocking resource (indicated
+			 in field 'Cache_block_resouce_index') before this command
+			 gets executed.
+			If that resource was already unblocked, this will be considered
+			 an error. This command will not be executed, and an error
+			 shall be returned.
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_OFFSET                            0x0000000000000008
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_LSB                               9
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_MSB                               9
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_MASK                              0x0000000000000200
+
+
+/* Description		CACHE_BLOCK_RESOURCE_INDEX
+
+			Field not valid when Flush_entire_cache is set.
+			
+			Indicates which of the four blocking resources in REO will
+			 be assigned for managing the blocking of this (descriptor) 
+			address 
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_LSB                              10
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MSB                              11
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MASK                             0x0000000000000c00
+
+
+/* Description		FLUSH_WITHOUT_INVALIDATE
+
+			Field not valid when Flush_entire_cache is set.
+			
+			When set, REO shall flush the cache line contents from the
+			 cache, but there is NO need to invalidate the cache line
+			 entry... The contents in the cache can be maintained. This
+			 feature can be used by SW (and DV) to get a current snapshot
+			 of the contents in the cache
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_OFFSET                             0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_LSB                                12
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_MSB                                12
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_MASK                               0x0000000000001000
+
+
+/* Description		BLOCK_CACHE_USAGE_AFTER_FLUSH
+
+			Field not valid when Flush_entire_cache is set.
+			
+			When set, REO shall block any cache accesses to this address
+			 till explicitly unblocked. 
+			
+			Whenever SW sets this bit, SW shall also set bit 'Forward_all_mpdus_in_queue' 
+			to ensure all packets are flushed out in order to make sure
+			 this queue desc is not in one of the aging link lists. 
+			In case SW does not want to flush the MPDUs in the queue, 
+			see the recipe description below this TLV definition.
+			
+			The 'blocking' index to be used for this is indicated in
+			 field 'cache_block_resource_index'. If SW had previously
+			 used this blocking resource and was not freed up yet, SW
+			 shall first unblock that index (by setting bit Release_cache_block_index) 
+			or use an unblock command.
+			
+			If the resource indicated here was already blocked (and 
+			did not get unblocked in this command), it is considered
+			 an error scenario...
+			No flush shall happen. The status for this command shall
+			 indicate error.
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_OFFSET                        0x0000000000000008
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_LSB                           13
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_MSB                           13
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_MASK                          0x0000000000002000
+
+
+/* Description		FLUSH_ENTIRE_CACHE
+
+			When set, the entire cache shall be flushed. The entire 
+			cache will also remain blocked, till the 'REO_UNBLOCK_COMMAND' 
+			is received with bit unblock type set to unblock_cache. 
+			All other fields in this command are to be ignored.
+			
+			Note that flushing the entire cache has no changes to the
+			 current settings of the blocking resource settings
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_LSB                                      14
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_MSB                                      14
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_MASK                                     0x0000000000004000
+
+
+/* Description		FLUSH_QUEUE_1K_DESC
+
+			When set, REO will flush the 'RX_REO_QUEUE_1K' descriptor
+			 after flushing the 'RX_REO_QUEUE' descriptor.
+			
+			This bit shall only be set when the BA_window_size > 255
+			 in 'RX_REO_QUEUE.'
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_OFFSET                                  0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_LSB                                     15
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_MSB                                     15
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_MASK                                    0x0000000000008000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_2B_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_CACHE_RESERVED_2B_LSB                                             16
+#define REO_FLUSH_CACHE_RESERVED_2B_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_2B_MASK                                            0x00000000ffff0000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_3A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_CACHE_RESERVED_3A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_3A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_3A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_4A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_CACHE_RESERVED_4A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_4A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_4A_MASK                                            0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_5A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_CACHE_RESERVED_5A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_5A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_5A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_6A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_CACHE_RESERVED_6A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_6A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_6A_MASK                                            0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_7A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_CACHE_RESERVED_7A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_7A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_7A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_RESERVED_8A_OFFSET                                          0x0000000000000020
+#define REO_FLUSH_CACHE_RESERVED_8A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_8A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_8A_MASK                                            0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_TLV64_PADDING_OFFSET                                        0x0000000000000020
+#define REO_FLUSH_CACHE_TLV64_PADDING_LSB                                           32
+#define REO_FLUSH_CACHE_TLV64_PADDING_MSB                                           63
+#define REO_FLUSH_CACHE_TLV64_PADDING_MASK                                          0xffffffff00000000
+
+
+
+#endif   // REO_FLUSH_CACHE
diff --git a/hw/qca5332/reo_flush_cache_status.h b/hw/qca5332/reo_flush_cache_status.h
new file mode 100644
index 0000000..1847c57
--- /dev/null
+++ b/hw/qca5332/reo_flush_cache_status.h
@@ -0,0 +1,655 @@
+
+/* 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 _REO_FLUSH_CACHE_STATUS_H_
+#define _REO_FLUSH_CACHE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_CACHE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_CACHE_STATUS 13
+
+
+struct reo_flush_cache_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1, // [0:0]
+                      block_error_details                                     :  2, // [2:1]
+                      reserved_2a                                             :  5, // [7:3]
+                      cache_controller_flush_status_hit                       :  1, // [8:8]
+                      cache_controller_flush_status_desc_type                 :  3, // [11:9]
+                      cache_controller_flush_status_client_id                 :  4, // [15:12]
+                      cache_controller_flush_status_error                     :  2, // [17:16]
+                      cache_controller_flush_count                            :  8, // [25:18]
+                      flush_queue_1k_desc                                     :  1, // [26:26]
+                      reserved_2b                                             :  5; // [31:27]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2b                                             :  5, // [31:27]
+                      flush_queue_1k_desc                                     :  1, // [26:26]
+                      cache_controller_flush_count                            :  8, // [25:18]
+                      cache_controller_flush_status_error                     :  2, // [17:16]
+                      cache_controller_flush_status_client_id                 :  4, // [15:12]
+                      cache_controller_flush_status_desc_type                 :  3, // [11:9]
+                      cache_controller_flush_status_hit                       :  1, // [8:8]
+                      reserved_2a                                             :  5, // [7:3]
+                      block_error_details                                     :  2, // [2:1]
+                      error_detected                                          :  1; // [0:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET               0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                  0
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                  15
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK                 0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET              0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                 16
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                 25
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET        0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB           26
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB           27
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK          0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                     0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                        28
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                        31
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                       0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                       0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                          32
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                          63
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                         0xffffffff00000000
+
+
+/* Description		ERROR_DETECTED
+
+			Status for blocking resource handling
+			
+			0: No error has been detected while executing this command
+			
+			1: an error in the blocking resource management was detected
+			
+			See field 'Block_error_details'
+*/
+
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_OFFSET                                0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_LSB                                   0
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_MSB                                   0
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_MASK                                  0x0000000000000001
+
+
+/* Description		BLOCK_ERROR_DETAILS
+
+			Field only valid when 'Error_detected' is set.
+			0: no blocking related error found
+			1: blocking resource was already in use
+			2: resource that was asked to be unblocked, was not blocked
+			
+			<legal 0-2>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_LSB                              1
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_MSB                              2
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_MASK                             0x0000000000000006
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_LSB                                      3
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_MSB                                      7
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_MASK                                     0x00000000000000f8
+
+
+/* Description		CACHE_CONTROLLER_FLUSH_STATUS_HIT
+
+			The status that the cache controller returned for executing
+			 the flush command
+			
+			descriptor hit
+			1 = hit
+			0 = miss
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_OFFSET             0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_LSB                8
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_MSB                8
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_MASK               0x0000000000000100
+
+
+/* Description		CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE
+
+			The status that the cache controller returned for executing
+			 the flush command
+			Descriptor type
+			FLOW_QUEUE_DESCRIPTOR                 3'd0
+			MPDU_LINK_DESCRIPTOR                      3'd4
+			 <legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_OFFSET       0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_LSB          9
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_MSB          11
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_MASK         0x0000000000000e00
+
+
+/* Description		CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID
+
+			The status that the cache controller returned for executing
+			 the flush command
+			
+			client ID
+			Module who made flush the request
+			
+			In REO, this is always set to 0
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_OFFSET       0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_LSB          12
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_MSB          15
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_MASK         0x000000000000f000
+
+
+/* Description		CACHE_CONTROLLER_FLUSH_STATUS_ERROR
+
+			The status that the cache controller returned for executing
+			 the flush command
+			
+			Error condition
+			2'b00: No error found
+			2'b01: HW IF still busy
+			2'b10: Line is currently locked. Used for the one line flush
+			 command.
+			2'b11: At least one line is currently still locked. Used
+			 for the cache flush command.
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_OFFSET           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_LSB              16
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_MSB              17
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_MASK             0x0000000000030000
+
+
+/* Description		CACHE_CONTROLLER_FLUSH_COUNT
+
+			The number of lines that were actually flushed out.
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_OFFSET                  0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_LSB                     18
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_MSB                     25
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_MASK                    0x0000000003fc0000
+
+
+/* Description		FLUSH_QUEUE_1K_DESC
+
+			When set, REO has flushed the 'RX_REO_QUEUE_1K' descriptor
+			 after flushing the 'RX_REO_QUEUE' descriptor.
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_LSB                              26
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_MSB                              26
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_MASK                             0x0000000004000000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_LSB                                      27
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_MASK                                     0x00000000f8000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_MSB                                     59
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_MASK                                    0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_OFFSET                                 0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_LSB                                    60
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_MSB                                    63
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_MASK                                   0xf000000000000000
+
+
+
+#endif   // REO_FLUSH_CACHE_STATUS
diff --git a/hw/qca5332/reo_flush_queue.h b/hw/qca5332/reo_flush_queue.h
new file mode 100644
index 0000000..5b5a01a
--- /dev/null
+++ b/hw/qca5332/reo_flush_queue.h
@@ -0,0 +1,281 @@
+
+/* 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 _REO_FLUSH_QUEUE_H_
+#define _REO_FLUSH_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_QUEUE 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_QUEUE 5
+
+
+struct reo_flush_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_desc_addr_31_0                                    : 32; // [31:0]
+             uint32_t flush_desc_addr_39_32                                   :  8, // [7:0]
+                      block_desc_addr_usage_after_flush                       :  1, // [8:8]
+                      block_resource_index                                    :  2, // [10:9]
+                      reserved_2a                                             : 21; // [31:11]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_desc_addr_31_0                                    : 32; // [31:0]
+             uint32_t reserved_2a                                             : 21, // [31:11]
+                      block_resource_index                                    :  2, // [10:9]
+                      block_desc_addr_usage_after_flush                       :  1, // [8:8]
+                      flush_desc_addr_39_32                                   :  8; // [7:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                            0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_LSB                               0
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MSB                               15
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MASK                              0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                       0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                          16
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                          16
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                         0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_OFFSET                               0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_LSB                                  17
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_MSB                                  31
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_MASK                                 0x00000000fffe0000
+
+
+/* Description		FLUSH_DESC_ADDR_31_0
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (lower 32 bits) of the descriptor to flush
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_OFFSET                                 0x0000000000000000
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_LSB                                    32
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_MSB                                    63
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_MASK                                   0xffffffff00000000
+
+
+/* Description		FLUSH_DESC_ADDR_39_32
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (upper 8 bits) of the descriptor to flush
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_OFFSET                                0x0000000000000008
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_LSB                                   0
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_MSB                                   7
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_MASK                                  0x00000000000000ff
+
+
+/* Description		BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH
+
+			When set, REO shall not re-fetch this address till SW explicitly
+			 unblocked this address
+			
+			If the blocking resource was already used, this command 
+			shall fail and an error is reported
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_OFFSET                    0x0000000000000008
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_LSB                       8
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_MSB                       8
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_MASK                      0x0000000000000100
+
+
+/* Description		BLOCK_RESOURCE_INDEX
+
+			Field only valid when 'Block_desc_addr_usage_after_flush
+			 ' is set.
+			
+			Indicates which of the four blocking resources in REO will
+			 be assigned for managing the blocking of this address.
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_OFFSET                                 0x0000000000000008
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_LSB                                    9
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_MSB                                    10
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_MASK                                   0x0000000000000600
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_2A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_QUEUE_RESERVED_2A_LSB                                             11
+#define REO_FLUSH_QUEUE_RESERVED_2A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_2A_MASK                                            0x00000000fffff800
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_3A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_QUEUE_RESERVED_3A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_3A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_3A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_4A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_QUEUE_RESERVED_4A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_4A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_4A_MASK                                            0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_5A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_QUEUE_RESERVED_5A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_5A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_5A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_6A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_QUEUE_RESERVED_6A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_6A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_6A_MASK                                            0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_7A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_QUEUE_RESERVED_7A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_7A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_7A_MASK                                            0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_RESERVED_8A_OFFSET                                          0x0000000000000020
+#define REO_FLUSH_QUEUE_RESERVED_8A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_8A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_8A_MASK                                            0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_TLV64_PADDING_OFFSET                                        0x0000000000000020
+#define REO_FLUSH_QUEUE_TLV64_PADDING_LSB                                           32
+#define REO_FLUSH_QUEUE_TLV64_PADDING_MSB                                           63
+#define REO_FLUSH_QUEUE_TLV64_PADDING_MASK                                          0xffffffff00000000
+
+
+
+#endif   // REO_FLUSH_QUEUE
diff --git a/hw/qca5332/reo_flush_queue_status.h b/hw/qca5332/reo_flush_queue_status.h
new file mode 100644
index 0000000..3229890
--- /dev/null
+++ b/hw/qca5332/reo_flush_queue_status.h
@@ -0,0 +1,512 @@
+
+/* 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 _REO_FLUSH_QUEUE_STATUS_H_
+#define _REO_FLUSH_QUEUE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_QUEUE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_QUEUE_STATUS 13
+
+
+struct reo_flush_queue_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1, // [0:0]
+                      reserved_2a                                             : 31; // [31:1]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 31, // [31:1]
+                      error_detected                                          :  1; // [0:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET               0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                  0
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                  15
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK                 0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET              0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                 16
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                 25
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET        0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB           26
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB           27
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK          0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                     0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                        28
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                        31
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                       0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                       0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                          32
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                          63
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                         0xffffffff00000000
+
+
+/* Description		ERROR_DETECTED
+
+			Status of the blocking resource
+			0: No error has been detected while executing this command
+			
+			1: Error detected: The resource to be used for blocking 
+			was already in use.
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_OFFSET                                0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_LSB                                   0
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_MSB                                   0
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_MASK                                  0x0000000000000001
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_LSB                                      1
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_MASK                                     0x00000000fffffffe
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_MASK                                    0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_MASK                                    0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_MSB                                     59
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_MASK                                    0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_OFFSET                                 0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_LSB                                    60
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_MSB                                    63
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_MASK                                   0xf000000000000000
+
+
+
+#endif   // REO_FLUSH_QUEUE_STATUS
diff --git a/hw/qca5332/reo_flush_timeout_list.h b/hw/qca5332/reo_flush_timeout_list.h
new file mode 100644
index 0000000..344282f
--- /dev/null
+++ b/hw/qca5332/reo_flush_timeout_list.h
@@ -0,0 +1,288 @@
+
+/* 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 _REO_FLUSH_TIMEOUT_LIST_H_
+#define _REO_FLUSH_TIMEOUT_LIST_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_TIMEOUT_LIST 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_TIMEOUT_LIST 5
+
+
+struct reo_flush_timeout_list {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t ac_timout_list                                          :  2, // [1:0]
+                      reserved_1                                              : 30; // [31:2]
+             uint32_t minimum_release_desc_count                              : 16, // [15:0]
+                      minimum_forward_buf_count                               : 16; // [31:16]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t reserved_1                                              : 30, // [31:2]
+                      ac_timout_list                                          :  2; // [1:0]
+             uint32_t minimum_forward_buf_count                               : 16, // [31:16]
+                      minimum_release_desc_count                              : 16; // [15:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_OFFSET                     0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_LSB                        0
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_MSB                        15
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_MASK                       0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_LSB                   16
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_MSB                   16
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_MASK                  0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_OFFSET                        0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_LSB                           17
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_MSB                           31
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_MASK                          0x00000000fffe0000
+
+
+/* Description		AC_TIMOUT_LIST
+
+			Consumer: REO
+			Producer: SW
+			
+			The AC_timeout list to be used for this command
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_OFFSET                                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_LSB                                   32
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_MSB                                   33
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_MASK                                  0x0000000300000000
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_OFFSET                                    0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_LSB                                       34
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_MSB                                       63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_MASK                                      0xfffffffc00000000
+
+
+/* Description		MINIMUM_RELEASE_DESC_COUNT
+
+			Consumer: REO
+			Producer: SW
+			
+			The minimum number of link descriptors requested to be released. 
+			If set to 0, only buffer release counts seems to be important... 
+			When set to very high value, likely the entire timeout list
+			 will be exhausted before this count is reached or maybe
+			 this count will not get reached. REO however will stop 
+			here as it can not do anything else.
+			
+			When both this field and field Minimum_forward_buf_count
+			 are > 0, REO needs to meet both requirements. When both
+			 entries are 0 (which should be a programming error), REO
+			 does not need to do anything.
+			
+			Note that this includes counts of MPDU link Desc as well
+			 as MSDU link Desc. Where the count of MSDU link Desc is
+			 not known to REO it's approximated by deriving from MSDU
+			 count
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_OFFSET                    0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_LSB                       0
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_MSB                       15
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_MASK                      0x000000000000ffff
+
+
+/* Description		MINIMUM_FORWARD_BUF_COUNT
+
+			Consumer: REO
+			Producer: SW
+			
+			The minimum number of buffer descriptors requested to be
+			 passed on to the REO destination rings. 
+			
+			If set to 0, only descriptor release counts seems to be 
+			important... 
+			
+			When set to very high value, likely the entire timeout list
+			 will be exhausted before this count is reached or maybe
+			 this count will not get reached. REO however will stop 
+			here as it can not do anything else.
+			
+			Note that REO does not know the exact buffer count. This
+			 can be approximated by using the MSDU_COUNT
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_OFFSET                     0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_LSB                        16
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_MSB                        31
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_MASK                       0x00000000ffff0000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_OFFSET                                 0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_LSB                                    32
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_MSB                                    63
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_MASK                                   0xffffffff00000000
+
+
+
+#endif   // REO_FLUSH_TIMEOUT_LIST
diff --git a/hw/qca5332/reo_flush_timeout_list_status.h b/hw/qca5332/reo_flush_timeout_list_status.h
new file mode 100644
index 0000000..dffb544
--- /dev/null
+++ b/hw/qca5332/reo_flush_timeout_list_status.h
@@ -0,0 +1,551 @@
+
+/* 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 _REO_FLUSH_TIMEOUT_LIST_STATUS_H_
+#define _REO_FLUSH_TIMEOUT_LIST_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_TIMEOUT_LIST_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_TIMEOUT_LIST_STATUS 13
+
+
+struct reo_flush_timeout_list_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1, // [0:0]
+                      timout_list_empty                                       :  1, // [1:1]
+                      reserved_2a                                             : 30; // [31:2]
+             uint32_t release_desc_count                                      : 16, // [15:0]
+                      forward_buf_count                                       : 16; // [31:16]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 30, // [31:2]
+                      timout_list_empty                                       :  1, // [1:1]
+                      error_detected                                          :  1; // [0:0]
+             uint32_t forward_buf_count                                       : 16, // [31:16]
+                      release_desc_count                                      : 16; // [15:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET        0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB           0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB           15
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK          0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET       0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB          16
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB          25
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK         0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB    26
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB    27
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK   0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET              0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_LSB                 28
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_MSB                 31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_MASK                0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_LSB                   32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_MSB                   63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_MASK                  0xffffffff00000000
+
+
+/* Description		ERROR_DETECTED
+
+			0: No error has been detected while executing this command
+			
+			1: command not properly executed and returned with an error
+			
+			
+			NOTE: Current no error is defined, but field is put in place
+			 to avoid data structure changes in future...
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_OFFSET                         0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_LSB                            0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_MSB                            0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_MASK                           0x0000000000000001
+
+
+/* Description		TIMOUT_LIST_EMPTY
+
+			When set, REO has depleted the timeout list and all entries
+			 are gone.
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_OFFSET                      0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_LSB                         1
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_MSB                         1
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_MASK                        0x0000000000000002
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_OFFSET                            0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_LSB                               2
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_MASK                              0x00000000fffffffc
+
+
+/* Description		RELEASE_DESC_COUNT
+
+			Consumer: REO
+			Producer: SW
+			
+			The number of link descriptors released
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_OFFSET                     0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_LSB                        32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_MSB                        47
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_MASK                       0x0000ffff00000000
+
+
+/* Description		FORWARD_BUF_COUNT
+
+			Consumer: REO
+			Producer: SW
+			
+			The number of buffers forwarded to the REO destination rings
+			
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_OFFSET                      0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_LSB                         48
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_MSB                         63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_MASK                        0xffff000000000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_OFFSET                            0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_MASK                              0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_OFFSET                            0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_MASK                              0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_OFFSET                            0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_MASK                              0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_OFFSET                            0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_MASK                              0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_OFFSET                            0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_MASK                              0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_OFFSET                            0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_MASK                              0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_OFFSET                           0x0000000000000028
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_OFFSET                           0x0000000000000028
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_OFFSET                           0x0000000000000030
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_OFFSET                           0x0000000000000030
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_OFFSET                           0x0000000000000038
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_OFFSET                           0x0000000000000038
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_OFFSET                           0x0000000000000040
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_OFFSET                           0x0000000000000040
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_OFFSET                           0x0000000000000048
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_OFFSET                           0x0000000000000048
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_OFFSET                           0x0000000000000050
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_OFFSET                           0x0000000000000050
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_OFFSET                           0x0000000000000058
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_OFFSET                           0x0000000000000058
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_OFFSET                           0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_OFFSET                           0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_MSB                              59
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_MASK                             0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_OFFSET                          0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_LSB                             60
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_MSB                             63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_MASK                            0xf000000000000000
+
+
+
+#endif   // REO_FLUSH_TIMEOUT_LIST_STATUS
diff --git a/hw/qca5332/reo_get_queue_stats.h b/hw/qca5332/reo_get_queue_stats.h
new file mode 100644
index 0000000..caf90f9
--- /dev/null
+++ b/hw/qca5332/reo_get_queue_stats.h
@@ -0,0 +1,276 @@
+
+/* 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 _REO_GET_QUEUE_STATS_H_
+#define _REO_GET_QUEUE_STATS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_GET_QUEUE_STATS 10
+
+#define NUM_OF_QWORDS_REO_GET_QUEUE_STATS 5
+
+
+struct reo_get_queue_stats {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8, // [7:0]
+                      clear_stats                                             :  1, // [8:8]
+                      reserved_2a                                             : 23; // [31:9]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t reserved_2a                                             : 23, // [31:9]
+                      clear_stats                                             :  1, // [8:8]
+                      rx_reo_queue_desc_addr_39_32                            :  8; // [7:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_OFFSET                        0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_LSB                           0
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_MSB                           15
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_MASK                          0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                   0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_LSB                      16
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_MSB                      16
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_MASK                     0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_OFFSET                           0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_LSB                              17
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_MSB                              31
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_MASK                             0x00000000fffe0000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (lower 32 bits) of the REO queue descriptor
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                      0x0000000000000000
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                         32
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                         63
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                        0xffffffff00000000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (upper 8 bits) of the REO queue descriptor
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                     0x0000000000000008
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                        0
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                        7
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                       0x00000000000000ff
+
+
+/* Description		CLEAR_STATS
+
+			Clear stat settings....
+			
+			<enum 0 no_clear> Do NOT clear the stats after generating
+			 the status
+			<enum 1 clear_the_stats> Clear the stats after generating
+			 the status. 
+			
+			The stats actually cleared are:
+			Timeout_count
+			Forward_due_to_bar_count
+			Duplicate_count
+			Frames_in_order_count
+			BAR_received_count
+			MPDU_Frames_processed_count
+			MSDU_Frames_processed_count
+			Total_processed_byte_count
+			Late_receive_MPDU_count
+			window_jump_2k
+			Hole_count
+			<legal 0-1>
+*/
+
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_LSB                                         8
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_MSB                                         8
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_MASK                                        0x0000000000000100
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_2A_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_RESERVED_2A_LSB                                         9
+#define REO_GET_QUEUE_STATS_RESERVED_2A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_2A_MASK                                        0x00000000fffffe00
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_3A_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_RESERVED_3A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_3A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_3A_MASK                                        0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_4A_OFFSET                                      0x0000000000000010
+#define REO_GET_QUEUE_STATS_RESERVED_4A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_4A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_4A_MASK                                        0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_5A_OFFSET                                      0x0000000000000010
+#define REO_GET_QUEUE_STATS_RESERVED_5A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_5A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_5A_MASK                                        0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_6A_OFFSET                                      0x0000000000000018
+#define REO_GET_QUEUE_STATS_RESERVED_6A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_6A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_6A_MASK                                        0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_7A_OFFSET                                      0x0000000000000018
+#define REO_GET_QUEUE_STATS_RESERVED_7A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_7A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_7A_MASK                                        0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_RESERVED_8A_OFFSET                                      0x0000000000000020
+#define REO_GET_QUEUE_STATS_RESERVED_8A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_8A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_8A_MASK                                        0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_OFFSET                                    0x0000000000000020
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_LSB                                       32
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_MSB                                       63
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_MASK                                      0xffffffff00000000
+
+
+
+#endif   // REO_GET_QUEUE_STATS
diff --git a/hw/qca5332/reo_get_queue_stats_status.h b/hw/qca5332/reo_get_queue_stats_status.h
new file mode 100644
index 0000000..d93daa3
--- /dev/null
+++ b/hw/qca5332/reo_get_queue_stats_status.h
@@ -0,0 +1,746 @@
+
+/* 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 _REO_GET_QUEUE_STATS_STATUS_H_
+#define _REO_GET_QUEUE_STATS_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 26
+
+#define NUM_OF_QWORDS_REO_GET_QUEUE_STATS_STATUS 13
+
+
+struct reo_get_queue_stats_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t ssn                                                     : 12, // [11:0]
+                      current_index                                           : 10, // [21:12]
+                      reserved_2                                              : 10; // [31:22]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
+             uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
+             uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t current_mpdu_count                                      :  7, // [6:0]
+                      current_msdu_count                                      : 25; // [31:7]
+             uint32_t window_jump_2k                                          :  4, // [3:0]
+                      timeout_count                                           :  6, // [9:4]
+                      forward_due_to_bar_count                                :  6, // [15:10]
+                      duplicate_count                                         : 16; // [31:16]
+             uint32_t frames_in_order_count                                   : 24, // [23:0]
+                      bar_received_count                                      :  8; // [31:24]
+             uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t msdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t total_processed_byte_count                              : 32; // [31:0]
+             uint32_t late_receive_mpdu_count                                 : 12, // [11:0]
+                      hole_count                                              : 16, // [27:12]
+                      get_queue_1k_stats_status_to_follow                     :  1, // [28:28]
+                      reserved_24a                                            :  3; // [31:29]
+             uint32_t aging_drop_mpdu_count                                   : 16, // [15:0]
+                      aging_drop_interval                                     :  8, // [23:16]
+                      reserved_25a                                            :  4, // [27:24]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2                                              : 10, // [31:22]
+                      current_index                                           : 10, // [21:12]
+                      ssn                                                     : 12; // [11:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
+             uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
+             uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t current_msdu_count                                      : 25, // [31:7]
+                      current_mpdu_count                                      :  7; // [6:0]
+             uint32_t duplicate_count                                         : 16, // [31:16]
+                      forward_due_to_bar_count                                :  6, // [15:10]
+                      timeout_count                                           :  6, // [9:4]
+                      window_jump_2k                                          :  4; // [3:0]
+             uint32_t bar_received_count                                      :  8, // [31:24]
+                      frames_in_order_count                                   : 24; // [23:0]
+             uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t msdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t total_processed_byte_count                              : 32; // [31:0]
+             uint32_t reserved_24a                                            :  3, // [31:29]
+                      get_queue_1k_stats_status_to_follow                     :  1, // [28:28]
+                      hole_count                                              : 16, // [27:12]
+                      late_receive_mpdu_count                                 : 12; // [11:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            :  4, // [27:24]
+                      aging_drop_interval                                     :  8, // [23:16]
+                      aging_drop_mpdu_count                                   : 16; // [15:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET           0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB              0
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB              15
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK             0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET          0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB             16
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB             25
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK            0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET    0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB       26
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB       27
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK      0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                 0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_LSB                    28
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MSB                    31
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MASK                   0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                   0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_LSB                      32
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MSB                      63
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MASK                     0xffffffff00000000
+
+
+/* Description		SSN
+
+			Starting Sequence number of the session, this changes whenever
+			 window moves. (can be filled by SW then maintained by REO)
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_SSN_OFFSET                                       0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_SSN_LSB                                          0
+#define REO_GET_QUEUE_STATS_STATUS_SSN_MSB                                          11
+#define REO_GET_QUEUE_STATS_STATUS_SSN_MASK                                         0x0000000000000fff
+
+
+/* Description		CURRENT_INDEX
+
+			Points to last forwarded packet
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_OFFSET                             0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_LSB                                12
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MSB                                21
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MASK                               0x00000000003ff000
+
+
+/* Description		RESERVED_2
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_OFFSET                                0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_LSB                                   22
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MSB                                   31
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MASK                                  0x00000000ffc00000
+
+
+/* Description		PN_31_0
+
+			Bits [31:0] of the PN number extracted from the IV field
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_OFFSET                                   0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_LSB                                      32
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MSB                                      63
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MASK                                     0xffffffff00000000
+
+
+/* Description		PN_63_32
+
+			Bits [63:32] of the PN number.  
+			<legal all> 
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_OFFSET                                  0x0000000000000010
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_LSB                                     0
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MSB                                     31
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MASK                                    0x00000000ffffffff
+
+
+/* Description		PN_95_64
+
+			Bits [95:64] of the PN number.  
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_OFFSET                                  0x0000000000000010
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_LSB                                     32
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MSB                                     63
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MASK                                    0xffffffff00000000
+
+
+/* Description		PN_127_96
+
+			Bits [127:96] of the PN number.  
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_OFFSET                                 0x0000000000000018
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_LSB                                    0
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MSB                                    31
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MASK                                   0x00000000ffffffff
+
+
+/* Description		LAST_RX_ENQUEUE_TIMESTAMP
+
+			Timestamp of arrival of the last MPDU for this queue
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET                 0x0000000000000018
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_LSB                    32
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MSB                    63
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MASK                   0xffffffff00000000
+
+
+/* Description		LAST_RX_DEQUEUE_TIMESTAMP
+
+			Timestamp of forwarding an MPDU
+			
+			If the queue is empty when a frame gets received, this time
+			 shall be initialized to the 'enqueue' timestamp
+			
+			Used for aging
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET                 0x0000000000000020
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_LSB                    0
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MSB                    31
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MASK                   0x00000000ffffffff
+
+
+/* Description		RX_BITMAP_31_0
+
+			When a bit is set, the corresponding frame is currently 
+			held in the re-order queue.
+			The bitmap  is Fully managed by HW. 
+			SW shall init this to 0, and then never ever change it
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_OFFSET                            0x0000000000000020
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_LSB                               32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MSB                               63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MASK                              0xffffffff00000000
+
+
+/* Description		RX_BITMAP_63_32
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_OFFSET                           0x0000000000000028
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_LSB                              0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MSB                              31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MASK                             0x00000000ffffffff
+
+
+/* Description		RX_BITMAP_95_64
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_OFFSET                           0x0000000000000028
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_LSB                              32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MSB                              63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MASK                             0xffffffff00000000
+
+
+/* Description		RX_BITMAP_127_96
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_OFFSET                          0x0000000000000030
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_LSB                             0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MSB                             31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MASK                            0x00000000ffffffff
+
+
+/* Description		RX_BITMAP_159_128
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_OFFSET                         0x0000000000000030
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MASK                           0xffffffff00000000
+
+
+/* Description		RX_BITMAP_191_160
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_OFFSET                         0x0000000000000038
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_LSB                            0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MSB                            31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MASK                           0x00000000ffffffff
+
+
+/* Description		RX_BITMAP_223_192
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_OFFSET                         0x0000000000000038
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MASK                           0xffffffff00000000
+
+
+/* Description		RX_BITMAP_255_224
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_OFFSET                         0x0000000000000040
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_LSB                            0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MSB                            31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MASK                           0x00000000ffffffff
+
+
+/* Description		RX_BITMAP_287_256
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_OFFSET                         0x0000000000000040
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MASK                           0xffffffff00000000
+
+
+/* Description		CURRENT_MPDU_COUNT
+
+			The number of MPDUs in the queue.
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_OFFSET                        0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_LSB                           0
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MSB                           6
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MASK                          0x000000000000007f
+
+
+/* Description		CURRENT_MSDU_COUNT
+
+			The number of MSDUs in the queue.
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_OFFSET                        0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_LSB                           7
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MSB                           31
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MASK                          0x00000000ffffff80
+
+
+/* Description		WINDOW_JUMP_2K
+
+			The number of times the window moved more then 2K
+			
+			The counter saturates and freezes at 0xF
+			
+			(Note: field name can not start with number: previous 2k_window_jump)
+			
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_OFFSET                            0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_LSB                               32
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MSB                               35
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MASK                              0x0000000f00000000
+
+
+/* Description		TIMEOUT_COUNT
+
+			The number of times that REO started forwarding frames even
+			 though there is a hole in the bitmap. Forwarding reason
+			 is Timeout
+			
+			The counter saturates and freezes at 0x3F
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_OFFSET                             0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_LSB                                36
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MSB                                41
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MASK                               0x000003f000000000
+
+
+/* Description		FORWARD_DUE_TO_BAR_COUNT
+
+			The number of times that REO started forwarding frames even
+			 though there is a hole in the bitmap. Forwarding reason
+			 is reception of BAR frame.
+			
+			The counter saturates and freezes at 0x3F
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_OFFSET                  0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_LSB                     42
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MSB                     47
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MASK                    0x0000fc0000000000
+
+
+/* Description		DUPLICATE_COUNT
+
+			The number of duplicate frames that have been detected
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_OFFSET                           0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_LSB                              48
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MSB                              63
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MASK                             0xffff000000000000
+
+
+/* Description		FRAMES_IN_ORDER_COUNT
+
+			The number of frames that have been received in order (without
+			 a hole that prevented them from being forwarded immediately)
+			
+			
+			This corresponds to the Reorder opcodes:
+			'FWDCUR' and 'FWD BUF'
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_OFFSET                     0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_LSB                        0
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MSB                        23
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MASK                       0x0000000000ffffff
+
+
+/* Description		BAR_RECEIVED_COUNT
+
+			The number of times a BAR frame is received.
+			
+			This corresponds to the Reorder opcodes with 'DROP'
+			
+			The counter saturates and freezes at 0xFF
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_OFFSET                        0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_LSB                           24
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MSB                           31
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MASK                          0x00000000ff000000
+
+
+/* Description		MPDU_FRAMES_PROCESSED_COUNT
+
+			The total number of MPDU frames that have been processed
+			 by REO. This includes the duplicates.
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_LSB                  32
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MSB                  63
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MASK                 0xffffffff00000000
+
+
+/* Description		MSDU_FRAMES_PROCESSED_COUNT
+
+			The total number of MSDU frames that have been processed
+			 by REO. This includes the duplicates.
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000058
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_LSB                  0
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MSB                  31
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MASK                 0x00000000ffffffff
+
+
+/* Description		TOTAL_PROCESSED_BYTE_COUNT
+
+			An approximation of the number of bytes received for this
+			 queue. 
+			
+			In 64 byte units
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_OFFSET                0x0000000000000058
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_LSB                   32
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MSB                   63
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MASK                  0xffffffff00000000
+
+
+/* Description		LATE_RECEIVE_MPDU_COUNT
+
+			The number of MPDUs received after the window had already
+			 moved on. The 'late' sequence window is defined as (Window
+			 SSN - 256) - (Window SSN - 1)
+			
+			This corresponds with Out of order detection in duplicate
+			 detect FSM
+			
+			The counter saturates and freezes at 0xFFF
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_OFFSET                   0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_LSB                      0
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MSB                      11
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MASK                     0x0000000000000fff
+
+
+/* Description		HOLE_COUNT
+
+			The number of times a hole was created in the receive bitmap.
+			
+			
+			This corresponds to the Reorder opcodes with 'QCUR'
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_OFFSET                                0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_LSB                                   12
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MSB                                   27
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MASK                                  0x000000000ffff000
+
+
+/* Description		GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW
+
+			Indicates that the queue supports a BA window size above
+			 256, so a 'REO_GET_QUEUE_STATS_1K_STATUS' status TLV will
+			 immediately follow.
+			
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_OFFSET       0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_LSB          28
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MSB          28
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MASK         0x0000000010000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_OFFSET                              0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_LSB                                 29
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MSB                                 31
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MASK                                0x00000000e0000000
+
+
+/* Description		AGING_DROP_MPDU_COUNT
+
+			The number of holes in the bitmap that moved due to aging
+			 counter expiry
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_OFFSET                     0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_LSB                        32
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MSB                        47
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MASK                       0x0000ffff00000000
+
+
+/* Description		AGING_DROP_INTERVAL
+
+			The number of times holes got removed from the bitmap due
+			 to aging counter expiry
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_OFFSET                       0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_LSB                          48
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MSB                          55
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MASK                         0x00ff000000000000
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_OFFSET                              0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_LSB                                 56
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MSB                                 59
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MASK                                0x0f00000000000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_OFFSET                             0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_LSB                                60
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MSB                                63
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MASK                               0xf000000000000000
+
+
+
+#endif   // REO_GET_QUEUE_STATS_STATUS
diff --git a/hw/qca5332/reo_unblock_cache.h b/hw/qca5332/reo_unblock_cache.h
new file mode 100644
index 0000000..abb91f6
--- /dev/null
+++ b/hw/qca5332/reo_unblock_cache.h
@@ -0,0 +1,271 @@
+
+/* 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 _REO_UNBLOCK_CACHE_H_
+#define _REO_UNBLOCK_CACHE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_UNBLOCK_CACHE 10
+
+#define NUM_OF_QWORDS_REO_UNBLOCK_CACHE 5
+
+
+struct reo_unblock_cache {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t unblock_type                                            :  1, // [0:0]
+                      cache_block_resource_index                              :  2, // [2:1]
+                      reserved_1a                                             : 29; // [31:3]
+             uint32_t reserved_2a                                             : 32; // [31:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t reserved_1a                                             : 29, // [31:3]
+                      cache_block_resource_index                              :  2, // [2:1]
+                      unblock_type                                            :  1; // [0:0]
+             uint32_t reserved_2a                                             : 32; // [31:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                          0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_LSB                             0
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_MSB                             15
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_MASK                            0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                     0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                        16
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                        16
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                       0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_OFFSET                             0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_LSB                                17
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_MSB                                31
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_MASK                               0x00000000fffe0000
+
+
+/* Description		UNBLOCK_TYPE
+
+			Unblock type
+			
+			<enum 0 unblock_resource_index> Unblock a block resource, 
+			whose index is given in field 'cache_block_resource_index'.
+			
+			If the indicated blocking resource is not in use (=> not
+			 blocking an address at the moment), the command status 
+			will indicate an error.
+			
+			<enum 1 unblock_cache> The entire cache usage is unblocked. 
+			
+			If the entire cache is not in a blocked mode at the moment
+			 this command is received, the command status will indicate
+			 an error.
+			Note that unlocking the "entire cache" has no changes to
+			 the current settings of the blocking resource settings
+			
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_OFFSET                                       0x0000000000000000
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_LSB                                          32
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_MSB                                          32
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_MASK                                         0x0000000100000000
+
+
+/* Description		CACHE_BLOCK_RESOURCE_INDEX
+
+			Field not valid when field Unblock_type is set to unblock_cache.
+			
+			
+			Indicates which of the four blocking resources in REO should
+			 be released from blocking a (descriptor) address.
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_OFFSET                         0x0000000000000000
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_LSB                            33
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MSB                            34
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MASK                           0x0000000600000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_1A_OFFSET                                        0x0000000000000000
+#define REO_UNBLOCK_CACHE_RESERVED_1A_LSB                                           35
+#define REO_UNBLOCK_CACHE_RESERVED_1A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_1A_MASK                                          0xfffffff800000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_2A_OFFSET                                        0x0000000000000008
+#define REO_UNBLOCK_CACHE_RESERVED_2A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_2A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_2A_MASK                                          0x00000000ffffffff
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_3A_OFFSET                                        0x0000000000000008
+#define REO_UNBLOCK_CACHE_RESERVED_3A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_3A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_3A_MASK                                          0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define REO_UNBLOCK_CACHE_RESERVED_4A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_4A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_4A_MASK                                          0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_5A_OFFSET                                        0x0000000000000010
+#define REO_UNBLOCK_CACHE_RESERVED_5A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_5A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_5A_MASK                                          0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_6A_OFFSET                                        0x0000000000000018
+#define REO_UNBLOCK_CACHE_RESERVED_6A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_6A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_6A_MASK                                          0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_7A_OFFSET                                        0x0000000000000018
+#define REO_UNBLOCK_CACHE_RESERVED_7A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_7A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_7A_MASK                                          0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_RESERVED_8A_OFFSET                                        0x0000000000000020
+#define REO_UNBLOCK_CACHE_RESERVED_8A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_8A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_8A_MASK                                          0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_OFFSET                                      0x0000000000000020
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_LSB                                         32
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_MSB                                         63
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_MASK                                        0xffffffff00000000
+
+
+
+#endif   // REO_UNBLOCK_CACHE
diff --git a/hw/qca5332/reo_unblock_cache_status.h b/hw/qca5332/reo_unblock_cache_status.h
new file mode 100644
index 0000000..2a095ec
--- /dev/null
+++ b/hw/qca5332/reo_unblock_cache_status.h
@@ -0,0 +1,534 @@
+
+/* 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 _REO_UNBLOCK_CACHE_STATUS_H_
+#define _REO_UNBLOCK_CACHE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_UNBLOCK_CACHE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_UNBLOCK_CACHE_STATUS 13
+
+
+struct reo_unblock_cache_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1, // [0:0]
+                      unblock_type                                            :  1, // [1:1]
+                      reserved_2a                                             : 30; // [31:2]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 30, // [31:2]
+                      unblock_type                                            :  1, // [1:1]
+                      error_detected                                          :  1; // [0:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET             0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                0
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                15
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK               0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET            0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB               16
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB               25
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK              0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET      0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB         26
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB         27
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK        0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                   0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                      28
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                      31
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                     0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                     0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                        32
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                        63
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                       0xffffffff00000000
+
+
+/* Description		ERROR_DETECTED
+
+			Status for blocking resource handling
+			
+			0: No error has been detected while executing this command
+			
+			1: The blocking resource was not in use, and therefor it
+			 could not be 'unblocked'
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_OFFSET                              0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_LSB                                 0
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_MSB                                 0
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_MASK                                0x0000000000000001
+
+
+/* Description		UNBLOCK_TYPE
+
+			Reference to the type of Unblock command type...
+			
+			<enum 0 unblock_resource_index> Unblock a blocking resource
+			
+			
+			<enum 1 unblock_cache> The entire cache usage is unblock. 
+			
+			
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_OFFSET                                0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_LSB                                   1
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_MSB                                   1
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_MASK                                  0x0000000000000002
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_OFFSET                                 0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_LSB                                    2
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_MASK                                   0x00000000fffffffc
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_OFFSET                                 0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_MASK                                   0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_OFFSET                                 0x0000000000000010
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_MASK                                   0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_OFFSET                                 0x0000000000000010
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_MASK                                   0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_OFFSET                                 0x0000000000000018
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_MASK                                   0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_OFFSET                                 0x0000000000000018
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_MASK                                   0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_OFFSET                                 0x0000000000000020
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_MASK                                   0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_OFFSET                                 0x0000000000000020
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_MASK                                   0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_OFFSET                                0x0000000000000028
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_OFFSET                                0x0000000000000028
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_OFFSET                                0x0000000000000030
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_OFFSET                                0x0000000000000030
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_OFFSET                                0x0000000000000038
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_OFFSET                                0x0000000000000038
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_OFFSET                                0x0000000000000040
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_OFFSET                                0x0000000000000040
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_OFFSET                                0x0000000000000048
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_OFFSET                                0x0000000000000048
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_OFFSET                                0x0000000000000050
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_OFFSET                                0x0000000000000050
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_OFFSET                                0x0000000000000058
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_OFFSET                                0x0000000000000058
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_MASK                                  0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_OFFSET                                0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_MASK                                  0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_OFFSET                                0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_MSB                                   59
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_MASK                                  0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_OFFSET                               0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_LSB                                  60
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_MSB                                  63
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_MASK                                 0xf000000000000000
+
+
+
+#endif   // REO_UNBLOCK_CACHE_STATUS
diff --git a/hw/qca5332/reo_update_rx_reo_queue.h b/hw/qca5332/reo_update_rx_reo_queue.h
new file mode 100644
index 0000000..4c0be75
--- /dev/null
+++ b/hw/qca5332/reo_update_rx_reo_queue.h
@@ -0,0 +1,1065 @@
+
+/* 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 _REO_UPDATE_RX_REO_QUEUE_H_
+#define _REO_UPDATE_RX_REO_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE 10
+
+#define NUM_OF_QWORDS_REO_UPDATE_RX_REO_QUEUE 5
+
+
+struct reo_update_rx_reo_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8, // [7:0]
+                      update_receive_queue_number                             :  1, // [8:8]
+                      update_vld                                              :  1, // [9:9]
+                      update_associated_link_descriptor_counter               :  1, // [10:10]
+                      update_disable_duplicate_detection                      :  1, // [11:11]
+                      update_soft_reorder_enable                              :  1, // [12:12]
+                      update_ac                                               :  1, // [13:13]
+                      update_bar                                              :  1, // [14:14]
+                      update_rty                                              :  1, // [15:15]
+                      update_chk_2k_mode                                      :  1, // [16:16]
+                      update_oor_mode                                         :  1, // [17:17]
+                      update_ba_window_size                                   :  1, // [18:18]
+                      update_pn_check_needed                                  :  1, // [19:19]
+                      update_pn_shall_be_even                                 :  1, // [20:20]
+                      update_pn_shall_be_uneven                               :  1, // [21:21]
+                      update_pn_handling_enable                               :  1, // [22:22]
+                      update_pn_size                                          :  1, // [23:23]
+                      update_ignore_ampdu_flag                                :  1, // [24:24]
+                      update_svld                                             :  1, // [25:25]
+                      update_ssn                                              :  1, // [26:26]
+                      update_seq_2k_error_detected_flag                       :  1, // [27:27]
+                      update_pn_error_detected_flag                           :  1, // [28:28]
+                      update_pn_valid                                         :  1, // [29:29]
+                      update_pn                                               :  1, // [30:30]
+                      clear_stat_counters                                     :  1; // [31:31]
+             uint32_t receive_queue_number                                    : 16, // [15:0]
+                      vld                                                     :  1, // [16:16]
+                      associated_link_descriptor_counter                      :  2, // [18:17]
+                      disable_duplicate_detection                             :  1, // [19:19]
+                      soft_reorder_enable                                     :  1, // [20:20]
+                      ac                                                      :  2, // [22:21]
+                      bar                                                     :  1, // [23:23]
+                      rty                                                     :  1, // [24:24]
+                      chk_2k_mode                                             :  1, // [25:25]
+                      oor_mode                                                :  1, // [26:26]
+                      pn_check_needed                                         :  1, // [27:27]
+                      pn_shall_be_even                                        :  1, // [28:28]
+                      pn_shall_be_uneven                                      :  1, // [29:29]
+                      pn_handling_enable                                      :  1, // [30:30]
+                      ignore_ampdu_flag                                       :  1; // [31:31]
+             uint32_t ba_window_size                                          : 10, // [9:0]
+                      pn_size                                                 :  2, // [11:10]
+                      svld                                                    :  1, // [12:12]
+                      ssn                                                     : 12, // [24:13]
+                      seq_2k_error_detected_flag                              :  1, // [25:25]
+                      pn_error_detected_flag                                  :  1, // [26:26]
+                      pn_valid                                                :  1, // [27:27]
+                      flush_from_cache                                        :  1, // [28:28]
+                      reserved_4a                                             :  3; // [31:29]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t clear_stat_counters                                     :  1, // [31:31]
+                      update_pn                                               :  1, // [30:30]
+                      update_pn_valid                                         :  1, // [29:29]
+                      update_pn_error_detected_flag                           :  1, // [28:28]
+                      update_seq_2k_error_detected_flag                       :  1, // [27:27]
+                      update_ssn                                              :  1, // [26:26]
+                      update_svld                                             :  1, // [25:25]
+                      update_ignore_ampdu_flag                                :  1, // [24:24]
+                      update_pn_size                                          :  1, // [23:23]
+                      update_pn_handling_enable                               :  1, // [22:22]
+                      update_pn_shall_be_uneven                               :  1, // [21:21]
+                      update_pn_shall_be_even                                 :  1, // [20:20]
+                      update_pn_check_needed                                  :  1, // [19:19]
+                      update_ba_window_size                                   :  1, // [18:18]
+                      update_oor_mode                                         :  1, // [17:17]
+                      update_chk_2k_mode                                      :  1, // [16:16]
+                      update_rty                                              :  1, // [15:15]
+                      update_bar                                              :  1, // [14:14]
+                      update_ac                                               :  1, // [13:13]
+                      update_soft_reorder_enable                              :  1, // [12:12]
+                      update_disable_duplicate_detection                      :  1, // [11:11]
+                      update_associated_link_descriptor_counter               :  1, // [10:10]
+                      update_vld                                              :  1, // [9:9]
+                      update_receive_queue_number                             :  1, // [8:8]
+                      rx_reo_queue_desc_addr_39_32                            :  8; // [7:0]
+             uint32_t ignore_ampdu_flag                                       :  1, // [31:31]
+                      pn_handling_enable                                      :  1, // [30:30]
+                      pn_shall_be_uneven                                      :  1, // [29:29]
+                      pn_shall_be_even                                        :  1, // [28:28]
+                      pn_check_needed                                         :  1, // [27:27]
+                      oor_mode                                                :  1, // [26:26]
+                      chk_2k_mode                                             :  1, // [25:25]
+                      rty                                                     :  1, // [24:24]
+                      bar                                                     :  1, // [23:23]
+                      ac                                                      :  2, // [22:21]
+                      soft_reorder_enable                                     :  1, // [20:20]
+                      disable_duplicate_detection                             :  1, // [19:19]
+                      associated_link_descriptor_counter                      :  2, // [18:17]
+                      vld                                                     :  1, // [16:16]
+                      receive_queue_number                                    : 16; // [15:0]
+             uint32_t reserved_4a                                             :  3, // [31:29]
+                      flush_from_cache                                        :  1, // [28:28]
+                      pn_valid                                                :  1, // [27:27]
+                      pn_error_detected_flag                                  :  1, // [26:26]
+                      seq_2k_error_detected_flag                              :  1, // [25:25]
+                      ssn                                                     : 12, // [24:13]
+                      svld                                                    :  1, // [12:12]
+                      pn_size                                                 :  2, // [11:10]
+                      ba_window_size                                          : 10; // [9:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		CMD_HEADER
+
+			Consumer: REO
+			Producer: SW
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                    0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_LSB                       0
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MSB                       15
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MASK                      0x000000000000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET               0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                  16
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                  16
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                 0x0000000000010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_OFFSET                       0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_LSB                          17
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_MSB                          31
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_MASK                         0x00000000fffe0000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (lower 32 bits) of the REO queue descriptor
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                  0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                     32
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                     63
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                    0xffffffff00000000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			Consumer: REO
+			Producer: SW
+			
+			Address (upper 8 bits) of the REO queue descriptor
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                 0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                    0
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                    7
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                   0x00000000000000ff
+
+
+/* Description		UPDATE_RECEIVE_QUEUE_NUMBER
+
+			Consumer: REO
+			Producer: SW
+			When set, receive_queue_number from this command will be
+			 updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_OFFSET                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_LSB                     8
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_MSB                     8
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_MASK                    0x0000000000000100
+
+
+/* Description		UPDATE_VLD
+
+			Consumer: REO
+			Producer: SW
+			
+			When clear, REO will NOT update the VLD bit setting. For
+			 this setting, SW MUST set the Flush_from_cache bit in this
+			 command.
+			
+			When set, VLD from this command will be updated in the descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_LSB                                      9
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_MSB                                      9
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_MASK                                     0x0000000000000200
+
+
+/* Description		UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
+
+			Consumer: REO
+			Producer: SW
+			When set, Associated_link_descriptor_counter from this command
+			 will be updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB       10
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB       10
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK      0x0000000000000400
+
+
+/* Description		UPDATE_DISABLE_DUPLICATE_DETECTION
+
+			Consumer: REO
+			Producer: SW
+			When set, Disable_duplicate_detection from this command 
+			will be updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_OFFSET           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_LSB              11
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_MSB              11
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_MASK             0x0000000000000800
+
+
+/* Description		UPDATE_SOFT_REORDER_ENABLE
+
+			Consumer: REO
+			Producer: SW
+			When set, Soft_reorder_enable from this command will be 
+			updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_OFFSET                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_LSB                      12
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_MSB                      12
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_MASK                     0x0000000000001000
+
+
+/* Description		UPDATE_AC
+
+			Consumer: REO
+			Producer: SW
+			When set, AC from this command will be updated in the descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_OFFSET                                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_LSB                                       13
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_MSB                                       13
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_MASK                                      0x0000000000002000
+
+
+/* Description		UPDATE_BAR
+
+			Consumer: REO
+			Producer: SW
+			When set, BAR from this command will be updated in the descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_LSB                                      14
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_MSB                                      14
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_MASK                                     0x0000000000004000
+
+
+/* Description		UPDATE_RTY
+
+			Consumer: REO
+			Producer: SW
+			When set, RTY from this command will be updated in the descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_LSB                                      15
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_MSB                                      15
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_MASK                                     0x0000000000008000
+
+
+/* Description		UPDATE_CHK_2K_MODE
+
+			Consumer: REO
+			Producer: SW
+			When set, Chk_2k_mode from this command will be updated 
+			in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_LSB                              16
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_MSB                              16
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_MASK                             0x0000000000010000
+
+
+/* Description		UPDATE_OOR_MODE
+
+			Consumer: REO
+			Producer: SW
+			When set, OOR_Mode from this command will be updated in 
+			the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_LSB                                 17
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_MSB                                 17
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_MASK                                0x0000000000020000
+
+
+/* Description		UPDATE_BA_WINDOW_SIZE
+
+			Consumer: REO
+			Producer: SW
+			When set, BA_window_size from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_OFFSET                        0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_LSB                           18
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_MSB                           18
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_MASK                          0x0000000000040000
+
+
+/* Description		UPDATE_PN_CHECK_NEEDED
+
+			Consumer: REO
+			Producer: SW
+			When set, Pn_check_needed from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_OFFSET                       0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_LSB                          19
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_MSB                          19
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_MASK                         0x0000000000080000
+
+
+/* Description		UPDATE_PN_SHALL_BE_EVEN
+
+			Consumer: REO
+			Producer: SW
+			When set, Pn_shall_be_even from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_OFFSET                      0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_LSB                         20
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_MSB                         20
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_MASK                        0x0000000000100000
+
+
+/* Description		UPDATE_PN_SHALL_BE_UNEVEN
+
+			Consumer: REO
+			Producer: SW
+			When set, Pn_shall_be_uneven from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_OFFSET                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_LSB                       21
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_MSB                       21
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_MASK                      0x0000000000200000
+
+
+/* Description		UPDATE_PN_HANDLING_ENABLE
+
+			Consumer: REO
+			Producer: SW
+			When set, Pn_handling_enable from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_OFFSET                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_LSB                       22
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_MSB                       22
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_MASK                      0x0000000000400000
+
+
+/* Description		UPDATE_PN_SIZE
+
+			Consumer: REO
+			Producer: SW
+			When set, Pn_size from this command will be updated in the
+			 descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_OFFSET                               0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_LSB                                  23
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_MSB                                  23
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_MASK                                 0x0000000000800000
+
+
+/* Description		UPDATE_IGNORE_AMPDU_FLAG
+
+			Consumer: REO
+			Producer: SW
+			When set, Ignore_ampdu_flag from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_OFFSET                     0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_LSB                        24
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_MSB                        24
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_MASK                       0x0000000001000000
+
+
+/* Description		UPDATE_SVLD
+
+			Consumer: REO
+			Producer: SW
+			When set, Svld from this command will be updated in the 
+			descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_OFFSET                                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_LSB                                     25
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_MSB                                     25
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_MASK                                    0x0000000002000000
+
+
+/* Description		UPDATE_SSN
+
+			Consumer: REO
+			Producer: SW
+			When set, SSN from this command will be updated in the descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_LSB                                      26
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_MSB                                      26
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_MASK                                     0x0000000004000000
+
+
+/* Description		UPDATE_SEQ_2K_ERROR_DETECTED_FLAG
+
+			Consumer: REO
+			Producer: SW
+			When set, Seq_2k_error_detected_flag from this command will
+			 be updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET            0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_LSB               27
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MSB               27
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MASK              0x0000000008000000
+
+
+/* Description		UPDATE_PN_ERROR_DETECTED_FLAG
+
+			Consumer: REO
+			Producer: SW
+			When set, pn_error_detected_flag from this command will 
+			be updated in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_OFFSET                0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_LSB                   28
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_MSB                   28
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_MASK                  0x0000000010000000
+
+
+/* Description		UPDATE_PN_VALID
+
+			Consumer: REO
+			Producer: SW
+			When set, pn_valid from this command will be updated in 
+			the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_LSB                                 29
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_MSB                                 29
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_MASK                                0x0000000020000000
+
+
+/* Description		UPDATE_PN
+
+			Consumer: REO
+			Producer: SW
+			When set, all pn_... fields from this command will be updated
+			 in the descriptor.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_OFFSET                                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_LSB                                       30
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_MSB                                       30
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_MASK                                      0x0000000040000000
+
+
+/* Description		CLEAR_STAT_COUNTERS
+
+			Consumer: REO
+			Producer: SW
+			When set, REO will clear (=> set to 0) the following stat
+			 counters in the REO_QUEUE_STRUCT
+			
+			Last_rx_enqueue_TimeStamp
+			Last_rx_dequeue_Timestamp
+			Rx_bitmap (not a counter, but bitmap is cleared)
+			Timeout_count
+			Forward_due_to_bar_count
+			Duplicate_count
+			Frames_in_order_count
+			BAR_received_count
+			MPDU_Frames_processed_count
+			MSDU_Frames_processed_count
+			Total_processed_byte_count
+			Late_receive_MPDU_count
+			window_jump_2k
+			Hole_count
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_OFFSET                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_LSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_MASK                            0x0000000080000000
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			Field only valid when Update_receive_queue_number is set
+			
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_OFFSET                         0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_LSB                            32
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MSB                            47
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MASK                           0x0000ffff00000000
+
+
+/* Description		VLD
+
+			Field only valid when Update_VLD is set
+			
+			For Update_VLD set and VLD clear, SW MUST set the Flush_from_cache
+			 bit in this command.
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_VLD_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_VLD_LSB                                             48
+#define REO_UPDATE_RX_REO_QUEUE_VLD_MSB                                             48
+#define REO_UPDATE_RX_REO_QUEUE_VLD_MASK                                            0x0001000000000000
+
+
+/* Description		ASSOCIATED_LINK_DESCRIPTOR_COUNTER
+
+			Field only valid when Update_Associated_link_descriptor_counter
+			 is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB              49
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB              50
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK             0x0006000000000000
+
+
+/* Description		DISABLE_DUPLICATE_DETECTION
+
+			Field only valid when Update_Disable_duplicate_detection
+			 is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_OFFSET                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_LSB                     51
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MSB                     51
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MASK                    0x0008000000000000
+
+
+/* Description		SOFT_REORDER_ENABLE
+
+			Field only valid when Update_Soft_reorder_enable is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_OFFSET                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_LSB                             52
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_MSB                             52
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_MASK                            0x0010000000000000
+
+
+/* Description		AC
+
+			Field only valid when Update_AC is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_AC_OFFSET                                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_AC_LSB                                              53
+#define REO_UPDATE_RX_REO_QUEUE_AC_MSB                                              54
+#define REO_UPDATE_RX_REO_QUEUE_AC_MASK                                             0x0060000000000000
+
+
+/* Description		BAR
+
+			Field only valid when Update_BAR is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_BAR_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_BAR_LSB                                             55
+#define REO_UPDATE_RX_REO_QUEUE_BAR_MSB                                             55
+#define REO_UPDATE_RX_REO_QUEUE_BAR_MASK                                            0x0080000000000000
+
+
+/* Description		RTY
+
+			Field only valid when Update_RTY is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_RTY_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RTY_LSB                                             56
+#define REO_UPDATE_RX_REO_QUEUE_RTY_MSB                                             56
+#define REO_UPDATE_RX_REO_QUEUE_RTY_MASK                                            0x0100000000000000
+
+
+/* Description		CHK_2K_MODE
+
+			Field only valid when Update_Chk_2k_Mode is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_OFFSET                                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_LSB                                     57
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_MSB                                     57
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_MASK                                    0x0200000000000000
+
+
+/* Description		OOR_MODE
+
+			Field only valid when Update_OOR_Mode is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_OFFSET                                     0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_LSB                                        58
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_MSB                                        58
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_MASK                                       0x0400000000000000
+
+
+/* Description		PN_CHECK_NEEDED
+
+			Field only valid when Update_Pn_check_needed is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_LSB                                 59
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_MSB                                 59
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_MASK                                0x0800000000000000
+
+
+/* Description		PN_SHALL_BE_EVEN
+
+			Field only valid when Update_Pn_shall_be_even is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_OFFSET                             0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_LSB                                60
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_MSB                                60
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_MASK                               0x1000000000000000
+
+
+/* Description		PN_SHALL_BE_UNEVEN
+
+			Field only valid when Update_Pn_shall_be_uneven is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_LSB                              61
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MSB                              61
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MASK                             0x2000000000000000
+
+
+/* Description		PN_HANDLING_ENABLE
+
+			Field only valid when Update_Pn_handling_enable is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_LSB                              62
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_MSB                              62
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_MASK                             0x4000000000000000
+
+
+/* Description		IGNORE_AMPDU_FLAG
+
+			Field only valid when Update_Ignore_ampdu_flag is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_OFFSET                            0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_LSB                               63
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MSB                               63
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MASK                              0x8000000000000000
+
+
+/* Description		BA_WINDOW_SIZE
+
+			Field only valid when Update_BA_window_size is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_OFFSET                               0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_LSB                                  0
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_MSB                                  9
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_MASK                                 0x00000000000003ff
+
+
+/* Description		PN_SIZE
+
+			Field only valid when Update_Pn_size is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			
+			<enum 0     pn_size_24>
+			<enum 1     pn_size_48>
+			<enum 2     pn_size_128>
+			
+			<legal 0-2>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_OFFSET                                      0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_LSB                                         10
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_MSB                                         11
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_MASK                                        0x0000000000000c00
+
+
+/* Description		SVLD
+
+			Field only valid when Update_Svld is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_OFFSET                                         0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_LSB                                            12
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_MSB                                            12
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_MASK                                           0x0000000000001000
+
+
+/* Description		SSN
+
+			Field only valid when Update_SSN is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_SSN_OFFSET                                          0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SSN_LSB                                             13
+#define REO_UPDATE_RX_REO_QUEUE_SSN_MSB                                             24
+#define REO_UPDATE_RX_REO_QUEUE_SSN_MASK                                            0x0000000001ffe000
+
+
+/* Description		SEQ_2K_ERROR_DETECTED_FLAG
+
+			Field only valid when Update_Seq_2k_error_detected_flag 
+			is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET                   0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_LSB                      25
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MSB                      25
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MASK                     0x0000000002000000
+
+
+/* Description		PN_ERROR_DETECTED_FLAG
+
+			Field only valid when Update_pn_error_detected_flag is set
+			
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_OFFSET                       0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_LSB                          26
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MSB                          26
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MASK                         0x0000000004000000
+
+
+/* Description		PN_VALID
+
+			Field only valid when Update_pn_valid is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_OFFSET                                     0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_LSB                                        27
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_MSB                                        27
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_MASK                                       0x0000000008000000
+
+
+/* Description		FLUSH_FROM_CACHE
+
+			When set, REO shall, after finishing the execution of this
+			 command, flush the related descriptor from the cache.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_OFFSET                             0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_LSB                                28
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_MSB                                28
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_MASK                               0x0000000010000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_OFFSET                                  0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_LSB                                     29
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_MSB                                     31
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_MASK                                    0x00000000e0000000
+
+
+/* Description		PN_31_0
+
+			Field only valid when Update_Pn is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_OFFSET                                      0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_LSB                                         32
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_MSB                                         63
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_MASK                                        0xffffffff00000000
+
+
+/* Description		PN_63_32
+
+			Field only valid when Update_pn is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_OFFSET                                     0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_LSB                                        0
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_MSB                                        31
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_MASK                                       0x00000000ffffffff
+
+
+/* Description		PN_95_64
+
+			Field only valid when Update_pn is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_OFFSET                                     0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_LSB                                        32
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_MSB                                        63
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_MASK                                       0xffffffff00000000
+
+
+/* Description		PN_127_96
+
+			Field only valid when Update_pn is set
+			
+			Field value to be copied over into the RX_REO_QUEUE descriptor.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_OFFSET                                    0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_LSB                                       0
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_MSB                                       31
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_MASK                                      0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_OFFSET                                0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_LSB                                   32
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_MSB                                   63
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_MASK                                  0xffffffff00000000
+
+
+
+#endif   // REO_UPDATE_RX_REO_QUEUE
diff --git a/hw/qca5332/reo_update_rx_reo_queue_status.h b/hw/qca5332/reo_update_rx_reo_queue_status.h
new file mode 100644
index 0000000..27a1a48
--- /dev/null
+++ b/hw/qca5332/reo_update_rx_reo_queue_status.h
@@ -0,0 +1,495 @@
+
+/* 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 _REO_UPDATE_RX_REO_QUEUE_STATUS_H_
+#define _REO_UPDATE_RX_REO_QUEUE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_UPDATE_RX_REO_QUEUE_STATUS 13
+
+
+struct reo_update_rx_reo_queue_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 32; // [31:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t reserved_25a                                            : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 32; // [31:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 32; // [31:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+             uint32_t reserved_10a                                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 32; // [31:0]
+             uint32_t reserved_12a                                            : 32; // [31:0]
+             uint32_t reserved_13a                                            : 32; // [31:0]
+             uint32_t reserved_14a                                            : 32; // [31:0]
+             uint32_t reserved_15a                                            : 32; // [31:0]
+             uint32_t reserved_16a                                            : 32; // [31:0]
+             uint32_t reserved_17a                                            : 32; // [31:0]
+             uint32_t reserved_18a                                            : 32; // [31:0]
+             uint32_t reserved_19a                                            : 32; // [31:0]
+             uint32_t reserved_20a                                            : 32; // [31:0]
+             uint32_t reserved_21a                                            : 32; // [31:0]
+             uint32_t reserved_22a                                            : 32; // [31:0]
+             uint32_t reserved_23a                                            : 32; // [31:0]
+             uint32_t reserved_24a                                            : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_25a                                            : 28; // [27:0]
+#endif
+};
+
+
+/* Description		STATUS_HEADER
+
+			Consumer: SW
+			Producer: REO
+			
+			Details that can link this status with the original command. 
+			It also contains info on how long REO took to execute this
+			 command.
+*/
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET       0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB          0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB          15
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK         0x000000000000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET      0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB         16
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB         25
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK        0x0000000003ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB   26
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB   27
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK  0x000000000c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET             0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                28
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MASK               0x00000000f0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET               0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                  32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                  63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                 0xffffffff00000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_OFFSET                           0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_OFFSET                           0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_OFFSET                           0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_OFFSET                           0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_OFFSET                           0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_MASK                             0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_OFFSET                           0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_MASK                             0xffffffff00000000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_OFFSET                          0x0000000000000028
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_OFFSET                          0x0000000000000028
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_OFFSET                          0x0000000000000030
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_OFFSET                          0x0000000000000030
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_OFFSET                          0x0000000000000038
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_OFFSET                          0x0000000000000038
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_16A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_OFFSET                          0x0000000000000040
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_OFFSET                          0x0000000000000040
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_18A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_OFFSET                          0x0000000000000048
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_19A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_OFFSET                          0x0000000000000048
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_OFFSET                          0x0000000000000050
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_21A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_OFFSET                          0x0000000000000050
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_22A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_OFFSET                          0x0000000000000058
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_OFFSET                          0x0000000000000058
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_MASK                            0xffffffff00000000
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_OFFSET                          0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_MASK                            0x00000000ffffffff
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_OFFSET                          0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_MSB                             59
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_MASK                            0x0fffffff00000000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_OFFSET                         0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_LSB                            60
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_MSB                            63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_MASK                           0xf000000000000000
+
+
+
+#endif   // REO_UPDATE_RX_REO_QUEUE_STATUS
diff --git a/hw/qca5332/response_end_status.h b/hw/qca5332/response_end_status.h
new file mode 100644
index 0000000..a806901
--- /dev/null
+++ b/hw/qca5332/response_end_status.h
@@ -0,0 +1,1212 @@
+
+/* 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 _RESPONSE_END_STATUS_H_
+#define _RESPONSE_END_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phytx_abort_request_info.h"
+#define NUM_OF_DWORDS_RESPONSE_END_STATUS 22
+
+#define NUM_OF_QWORDS_RESPONSE_END_STATUS 11
+
+
+struct response_end_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t coex_bt_tx_while_wlan_tx                                :  1, // [0:0]
+                      coex_wan_tx_while_wlan_tx                               :  1, // [1:1]
+                      coex_wlan_tx_while_wlan_tx                              :  1, // [2:2]
+                      global_data_underflow_warning                           :  1, // [3:3]
+                      response_transmit_status                                :  4, // [7:4]
+                      phytx_pkt_end_info_valid                                :  1, // [8:8]
+                      phytx_abort_request_info_valid                          :  1, // [9:9]
+                      generated_response                                      :  3, // [12:10]
+                      mba_user_count                                          :  7, // [19:13]
+                      mba_fake_bitmap_count                                   :  7, // [26:20]
+                      coex_based_tx_bw                                        :  3, // [29:27]
+                      trig_response_related                                   :  1, // [30:30]
+                      dpdtrain_done                                           :  1; // [31:31]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint16_t cbf_segment_request_mask                                :  8, // [23:16]
+                      cbf_segment_sent_mask                                   :  8; // [31:24]
+             uint32_t underflow_mpdu_count                                    :  9, // [8:0]
+                      data_underflow_warning                                  :  2, // [10:9]
+                      phy_tx_gain_setting                                     :  8, // [18:11]
+                      timing_status                                           :  2, // [20:19]
+                      only_null_delim_sent                                    :  1, // [21:21]
+                      brp_info_valid                                          :  1, // [22:22]
+                      reserved_2a                                             :  9; // [31:23]
+             uint32_t mu_response_bitmap_31_0                                 : 32; // [31:0]
+             uint32_t mu_response_bitmap_36_32                                :  5, // [4:0]
+                      reserved_4a                                             : 11, // [15:5]
+                      transmit_delay                                          : 16; // [31:16]
+             uint32_t start_of_frame_timestamp_15_0                           : 16, // [15:0]
+                      start_of_frame_timestamp_31_16                          : 16; // [31:16]
+             uint32_t end_of_frame_timestamp_15_0                             : 16, // [15:0]
+                      end_of_frame_timestamp_31_16                            : 16; // [31:16]
+             uint32_t tx_group_delay                                          : 12, // [11:0]
+                      reserved_7a                                             :  4, // [15:12]
+                      tpc_dbg_info_cmn_15_0                                   : 16; // [31:16]
+             uint32_t tpc_dbg_info_31_16                                      : 16, // [15:0]
+                      tpc_dbg_info_47_32                                      : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_15_0                                  : 16, // [15:0]
+                      tpc_dbg_info_chn1_31_16                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_47_32                                 : 16, // [15:0]
+                      tpc_dbg_info_chn1_63_48                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_79_64                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_15_0                                  : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_31_16                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_47_32                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_63_48                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_79_64                                 : 16; // [31:16]
+             uint32_t phytx_tx_end_sw_info_15_0                               : 16, // [15:0]
+                      phytx_tx_end_sw_info_31_16                              : 16; // [31:16]
+             uint32_t phytx_tx_end_sw_info_47_32                              : 16, // [15:0]
+                      phytx_tx_end_sw_info_63_48                              : 16; // [31:16]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr1_47_32                                             : 16, // [15:0]
+                      addr2_15_0                                              : 16; // [31:16]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t addr3_31_0                                              : 32; // [31:0]
+             uint32_t addr3_47_32                                             : 16, // [15:0]
+                      ranging                                                 :  1, // [16:16]
+                      secure                                                  :  1, // [17:17]
+                      ranging_ftm_frame_sent                                  :  1, // [18:18]
+                      reserved_20a                                            : 13; // [31:19]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t dpdtrain_done                                           :  1, // [31:31]
+                      trig_response_related                                   :  1, // [30:30]
+                      coex_based_tx_bw                                        :  3, // [29:27]
+                      mba_fake_bitmap_count                                   :  7, // [26:20]
+                      mba_user_count                                          :  7, // [19:13]
+                      generated_response                                      :  3, // [12:10]
+                      phytx_abort_request_info_valid                          :  1, // [9:9]
+                      phytx_pkt_end_info_valid                                :  1, // [8:8]
+                      response_transmit_status                                :  4, // [7:4]
+                      global_data_underflow_warning                           :  1, // [3:3]
+                      coex_wlan_tx_while_wlan_tx                              :  1, // [2:2]
+                      coex_wan_tx_while_wlan_tx                               :  1, // [1:1]
+                      coex_bt_tx_while_wlan_tx                                :  1; // [0:0]
+             uint32_t cbf_segment_sent_mask                                   :  8, // [31:24]
+                      cbf_segment_request_mask                                :  8; // [23:16]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint32_t reserved_2a                                             :  9, // [31:23]
+                      brp_info_valid                                          :  1, // [22:22]
+                      only_null_delim_sent                                    :  1, // [21:21]
+                      timing_status                                           :  2, // [20:19]
+                      phy_tx_gain_setting                                     :  8, // [18:11]
+                      data_underflow_warning                                  :  2, // [10:9]
+                      underflow_mpdu_count                                    :  9; // [8:0]
+             uint32_t mu_response_bitmap_31_0                                 : 32; // [31:0]
+             uint32_t transmit_delay                                          : 16, // [31:16]
+                      reserved_4a                                             : 11, // [15:5]
+                      mu_response_bitmap_36_32                                :  5; // [4:0]
+             uint32_t start_of_frame_timestamp_31_16                          : 16, // [31:16]
+                      start_of_frame_timestamp_15_0                           : 16; // [15:0]
+             uint32_t end_of_frame_timestamp_31_16                            : 16, // [31:16]
+                      end_of_frame_timestamp_15_0                             : 16; // [15:0]
+             uint32_t tpc_dbg_info_cmn_15_0                                   : 16, // [31:16]
+                      reserved_7a                                             :  4, // [15:12]
+                      tx_group_delay                                          : 12; // [11:0]
+             uint32_t tpc_dbg_info_47_32                                      : 16, // [31:16]
+                      tpc_dbg_info_31_16                                      : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_31_16                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_15_0                                  : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_63_48                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_47_32                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_15_0                                  : 16, // [31:16]
+                      tpc_dbg_info_chn1_79_64                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_47_32                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_31_16                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_79_64                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_63_48                                 : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_31_16                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_15_0                               : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_63_48                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_47_32                              : 16; // [15:0]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr2_15_0                                              : 16, // [31:16]
+                      addr1_47_32                                             : 16; // [15:0]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t addr3_31_0                                              : 32; // [31:0]
+             uint32_t reserved_20a                                            : 13, // [31:19]
+                      ranging_ftm_frame_sent                                  :  1, // [18:18]
+                      secure                                                  :  1, // [17:17]
+                      ranging                                                 :  1, // [16:16]
+                      addr3_47_32                                             : 16; // [15:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		COEX_BT_TX_WHILE_WLAN_TX
+
+			When set, a BT tx coex event started while wlan was in the
+			 middle of response transmission.
+			
+			Field set when coex_status_broadcast TLV received with bt
+			 tx activity set and WLAN tx ongoing.
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_OFFSET                         0x0000000000000000
+#define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_LSB                            0
+#define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_MSB                            0
+#define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_MASK                           0x0000000000000001
+
+
+/* Description		COEX_WAN_TX_WHILE_WLAN_TX
+
+			When set, a WAN tx coex event started while wlan was in 
+			the middle of response transmission.
+			
+			Field set when coex_status_broadcast TLV received with WAN
+			 tx activity set and WLAN tx ongoing
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET                        0x0000000000000000
+#define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_LSB                           1
+#define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_MSB                           1
+#define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_MASK                          0x0000000000000002
+
+
+/* Description		COEX_WLAN_TX_WHILE_WLAN_TX
+
+			When set, a WLAN tx coex event started while wlan was in
+			 the middle of response transmission.
+			
+			Field set when coex_status_broadcast TLV received with WLAN
+			 tx activity set and WLAN tx ongoing
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET                       0x0000000000000000
+#define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_LSB                          2
+#define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_MSB                          2
+#define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_MASK                         0x0000000000000004
+
+
+/* Description		GLOBAL_DATA_UNDERFLOW_WARNING
+
+			Consumer: SCH/SW
+			Producer: TXPCU
+			
+			When set, during response transmission a data underflow 
+			occurred for one or more users.<legal all>
+*/
+
+#define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET                    0x0000000000000000
+#define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_LSB                       3
+#define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_MSB                       3
+#define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_MASK                      0x0000000000000008
+
+
+/* Description		RESPONSE_TRANSMIT_STATUS
+
+			<enum 0 response_ok> Successful transmission of the selfgen
+			 response frame
+			<enum 1 response_coex_soft_abort> Set if transmission is
+			 terminated because of the coex soft abort.
+			<enum 2 response_phy_err> Set if transmission is terminated
+			 because PHY generated an abort request
+			<enum 3 response_flush_received> Set if transmission is 
+			terminated because RXPCU received a flush request
+			<enum 4 response_other_err> Set if transmission is terminated
+			 because of other errors within the RXPCU
+			<legal 0-4>
+*/
+
+#define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_OFFSET                         0x0000000000000000
+#define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_LSB                            4
+#define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_MSB                            7
+#define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_MASK                           0x00000000000000f0
+
+
+/* Description		PHYTX_PKT_END_INFO_VALID
+
+			All the fields originating from PHYTX_PKT_END TLV contain
+			 valid info
+			
+			Note that when "trig_response_related" is set, this bit 
+			will often not be set as the trigger response contents might
+			 have come from a scheduling command which is not reported
+			 as part of the 'response' transmission.
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_OFFSET                         0x0000000000000000
+#define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_LSB                            8
+#define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_MSB                            8
+#define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_MASK                           0x0000000000000100
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_VALID
+
+			Field Phytx_abort_request_info_details contains valid info
+			
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET                   0x0000000000000000
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_LSB                      9
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_MSB                      9
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_MASK                     0x0000000000000200
+
+
+/* Description		GENERATED_RESPONSE
+
+			The generated response frame
+			
+			<enum 0 selfgen_ACK> TXPCU generated an ACK response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 1 selfgen_CTS> TXPCU generated an CTS response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 2 selfgen_BA> TXPCU generated a BA response. Note 
+			that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 3 selfgen_MBA> TXPCU generated an M BA response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 4 selfgen_CBF> TXPCU generated a CBF response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 5 selfgen_other_trig_response>
+			TXPCU generated a trigger related response of a type not
+			 specified above. Note that in this case bit trig_response_related
+			 will be set as well.
+			This e-num will also be used when TXPCU has been programmed
+			 to overwrite it's own self gen response generation, and
+			 wait for the response to come from SCH..
+			Also applicable for basic trigger response. 
+			
+			<enum 6 selfgen_NDP_LMR> TXPCU generated a self-gen NDP 
+			followed by a self-gen LMR for the ranging NDPA followed
+			 by NDP received by RXPCU.
+			
+			<legal 0-6>
+*/
+
+#define RESPONSE_END_STATUS_GENERATED_RESPONSE_OFFSET                               0x0000000000000000
+#define RESPONSE_END_STATUS_GENERATED_RESPONSE_LSB                                  10
+#define RESPONSE_END_STATUS_GENERATED_RESPONSE_MSB                                  12
+#define RESPONSE_END_STATUS_GENERATED_RESPONSE_MASK                                 0x0000000000001c00
+
+
+/* Description		MBA_USER_COUNT
+
+			Field only valid in case of selfgen_MBA
+			
+			The number of users included in the generated MBA 
+			
+			Note that this value will be the same as in TLV/field: RESPONSE_START_STATUS.response_STA_count
+			
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_MBA_USER_COUNT_OFFSET                                   0x0000000000000000
+#define RESPONSE_END_STATUS_MBA_USER_COUNT_LSB                                      13
+#define RESPONSE_END_STATUS_MBA_USER_COUNT_MSB                                      19
+#define RESPONSE_END_STATUS_MBA_USER_COUNT_MASK                                     0x00000000000fe000
+
+
+/* Description		MBA_FAKE_BITMAP_COUNT
+
+			Field only valid in case of MU OFDMA selfgen_MBA
+			
+			The number of users for which RXPCU did not have a bitmap, 
+			and thus provided a 'fake bitmap'
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_OFFSET                            0x0000000000000000
+#define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_LSB                               20
+#define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_MSB                               26
+#define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_MASK                              0x0000000007f00000
+
+
+/* Description		COEX_BASED_TX_BW
+
+			This is the transmit bandwidth value
+			that is granted by Coex for the response frame
+			
+			<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 RESPONSE_END_STATUS_COEX_BASED_TX_BW_OFFSET                                 0x0000000000000000
+#define RESPONSE_END_STATUS_COEX_BASED_TX_BW_LSB                                    27
+#define RESPONSE_END_STATUS_COEX_BASED_TX_BW_MSB                                    29
+#define RESPONSE_END_STATUS_COEX_BASED_TX_BW_MASK                                   0x0000000038000000
+
+
+/* Description		TRIG_RESPONSE_RELATED
+
+			When set, this TLV is generated by TXPCU in the context 
+			of a response transmission to a received trigger frame.
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_OFFSET                            0x0000000000000000
+#define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_LSB                               30
+#define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_MSB                               30
+#define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_MASK                              0x0000000040000000
+
+
+/* Description		DPDTRAIN_DONE
+
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			For DPD Training packets, this bit is set to indicate that
+			 DPD Training was successfully run to completion.  Also 
+			reused by Implicit BF Calibration Packets. This bit is intended
+			 for debug purposes.
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_DPDTRAIN_DONE_OFFSET                                    0x0000000000000000
+#define RESPONSE_END_STATUS_DPDTRAIN_DONE_LSB                                       31
+#define RESPONSE_END_STATUS_DPDTRAIN_DONE_MSB                                       31
+#define RESPONSE_END_STATUS_DPDTRAIN_DONE_MASK                                      0x0000000080000000
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_DETAILS
+
+			Field only valid when PHYTX_ABORT_REQUEST_info_valid is 
+			set
+			
+			The reason why PHYTX is requested an abort
+*/
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Reason for early termination of TX packet by the PHY 
+			
+			<enum_type PHYTX_ABORT_ENUM>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000
+
+
+/* Description		USER_NUMBER
+
+			For some errors, the user for which this error was detected
+			 can be indicated in this field.
+			<legal 0-36>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET     0x0000000000000000
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB        40
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB        45
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK       0x00003f0000000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET        0x0000000000000000
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB           46
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB           47
+#define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK          0x0000c00000000000
+
+
+/* Description		CBF_SEGMENT_REQUEST_MASK
+
+			Field only valid when brp_info_valid is set.
+			
+			Field equal to the 'Feedback Segment Retransmission Bitmap' 
+			from the Beamform Report Poll frame OR Beamform Report Poll
+			 Trigger frame
+			
+			Bit 0 represents segment 0
+			Bit 1 represents segment 1
+			Etc.
+			
+			1'b1: Segment is requested
+			1'b0: Segment is NOT requested
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_OFFSET                         0x0000000000000000
+#define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_LSB                            48
+#define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_MSB                            55
+#define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_MASK                           0x00ff000000000000
+
+
+/* Description		CBF_SEGMENT_SENT_MASK
+
+			Field only valid when brp_info_valid is set.
+			
+			Bit 0 represents segment 0
+			Bit 1 represents segment 1
+			Etc.
+			
+			1'b1: Segment is sent
+			1'b0: Segment is not sent
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_OFFSET                            0x0000000000000000
+#define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_LSB                               56
+#define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_MSB                               63
+#define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_MASK                              0xff00000000000000
+
+
+/* Description		UNDERFLOW_MPDU_COUNT
+
+			The MPDU count transmitted when the first underrun condition
+			 was detected
+			<legal 0-256>
+*/
+
+#define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_OFFSET                             0x0000000000000008
+#define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_LSB                                0
+#define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_MSB                                8
+#define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_MASK                               0x00000000000001ff
+
+
+/* Description		DATA_UNDERFLOW_WARNING
+
+			Mac data underflow warning 
+			
+			<enum 0 no_data_underrun> No data underflow
+			<enum 1 data_underrun_between_mpdu> PCU experienced data
+			 underflow in between MPDUs
+			<enum 2 data_underrun_within_mpdu> PCU experienced data 
+			underflow within an MPDU
+			<legal 0-2>
+*/
+
+#define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_OFFSET                           0x0000000000000008
+#define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_LSB                              9
+#define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_MSB                              10
+#define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_MASK                             0x0000000000000600
+
+
+/* Description		PHY_TX_GAIN_SETTING
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			The gain setting that the PHY used for this last PPDU transmission
+			
+*/
+
+#define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_OFFSET                              0x0000000000000008
+#define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_LSB                                 11
+#define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_MSB                                 18
+#define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_MASK                                0x000000000007f800
+
+
+/* Description		TIMING_STATUS
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			<enum 0 No_tx_timing_request> The MAC did not request for
+			 the transmission to start at a particular time
+			<enum 1 successful_tx_timing > MAC did request for transmission
+			 to start at a particular time and PHY was able to do so.
+			
+			<enum 2 tx_timing_not_honoured> PHY was not able to honour
+			 the requested transmit time by the MAC. The transmission
+			 started later, and field transmit_delay indicates how much
+			 later.
+			<legal 0-2>
+*/
+
+#define RESPONSE_END_STATUS_TIMING_STATUS_OFFSET                                    0x0000000000000008
+#define RESPONSE_END_STATUS_TIMING_STATUS_LSB                                       19
+#define RESPONSE_END_STATUS_TIMING_STATUS_MSB                                       20
+#define RESPONSE_END_STATUS_TIMING_STATUS_MASK                                      0x0000000000180000
+
+
+/* Description		ONLY_NULL_DELIM_SENT
+
+			Field only valid when "trig_response_related" is set.
+			
+			When set, TXPCU only sent NULL delimiters to the PHY for
+			 the entire duration of the trigger response time.
+			
+			Note that SCH does not evaluate this field. It is only for
+			 SW to look at.
+			
+			Setting this bit can only happen when a trigger is received, 
+			and either the trigger allocated an incorrectly small duration, 
+			or SW had not programmed a response scheduler command in
+			 time to respond, which may not comply with the 11ax IEEE
+			 spec.
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_OFFSET                             0x0000000000000008
+#define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_LSB                                21
+#define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_MSB                                21
+#define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_MASK                               0x0000000000200000
+
+
+/* Description		BRP_INFO_VALID
+
+			When set, TXPCU sent CBF segments.
+			
+			Fields cbf_segment_request_mask and cbf_segment_sent_mask
+			 contain valid info.
+			
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_BRP_INFO_VALID_OFFSET                                   0x0000000000000008
+#define RESPONSE_END_STATUS_BRP_INFO_VALID_LSB                                      22
+#define RESPONSE_END_STATUS_BRP_INFO_VALID_MSB                                      22
+#define RESPONSE_END_STATUS_BRP_INFO_VALID_MASK                                     0x0000000000400000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_RESERVED_2A_OFFSET                                      0x0000000000000008
+#define RESPONSE_END_STATUS_RESERVED_2A_LSB                                         23
+#define RESPONSE_END_STATUS_RESERVED_2A_MSB                                         31
+#define RESPONSE_END_STATUS_RESERVED_2A_MASK                                        0x00000000ff800000
+
+
+/* Description		MU_RESPONSE_BITMAP_31_0
+
+			Bit 0 represents user 0
+			Bit 1 represents user 1
+			...
+			When set, at least 1 MPDU from this user has been properly
+			 received => FCS OK
+			
+			TODO: remove these
+			Field can not be filled in with the self generated response
+			
+*/
+
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_OFFSET                          0x0000000000000008
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_LSB                             32
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_MSB                             63
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_MASK                            0xffffffff00000000
+
+
+/* Description		MU_RESPONSE_BITMAP_36_32
+
+			Bit 0 represents user 32
+			Bit 1 represents user 33
+			...
+			When set, at least 1 MPDU from this user has been properly
+			 received => FCS OK
+			TODO: remove these
+			Field can not be filled in with the self generated response
+			
+			Note: Received_response already goes to SW, so probably 
+			no need to copy this bitmap info to TX_FES_STATUS TLV.
+*/
+
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_OFFSET                         0x0000000000000010
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_LSB                            0
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_MSB                            4
+#define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_MASK                           0x000000000000001f
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_RESERVED_4A_OFFSET                                      0x0000000000000010
+#define RESPONSE_END_STATUS_RESERVED_4A_LSB                                         5
+#define RESPONSE_END_STATUS_RESERVED_4A_MSB                                         15
+#define RESPONSE_END_STATUS_RESERVED_4A_MASK                                        0x000000000000ffe0
+
+
+/* Description		TRANSMIT_DELAY
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			The number of 480 MHz clock cycles that the transmission
+			 started after the actual requested transmit start time.
+			
+			Value saturates at 0xFFFF
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TRANSMIT_DELAY_OFFSET                                   0x0000000000000010
+#define RESPONSE_END_STATUS_TRANSMIT_DELAY_LSB                                      16
+#define RESPONSE_END_STATUS_TRANSMIT_DELAY_MSB                                      31
+#define RESPONSE_END_STATUS_TRANSMIT_DELAY_MASK                                     0x00000000ffff0000
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_OFFSET                    0x0000000000000010
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_LSB                       32
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_MSB                       47
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_MASK                      0x0000ffff00000000
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_OFFSET                   0x0000000000000010
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_LSB                      48
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_MSB                      63
+#define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_MASK                     0xffff000000000000
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_OFFSET                      0x0000000000000018
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_LSB                         0
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_MSB                         15
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_MASK                        0x000000000000ffff
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_OFFSET                     0x0000000000000018
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_LSB                        16
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_MSB                        31
+#define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_MASK                       0x00000000ffff0000
+
+
+/* Description		TX_GROUP_DELAY
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Group delay on TxTD+PHYRF path for this PPDU (packet BW 
+			dependent), useful for RTT
+			
+			Unit is 960MHz cycles.
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TX_GROUP_DELAY_OFFSET                                   0x0000000000000018
+#define RESPONSE_END_STATUS_TX_GROUP_DELAY_LSB                                      32
+#define RESPONSE_END_STATUS_TX_GROUP_DELAY_MSB                                      43
+#define RESPONSE_END_STATUS_TX_GROUP_DELAY_MASK                                     0x00000fff00000000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_RESERVED_7A_OFFSET                                      0x0000000000000018
+#define RESPONSE_END_STATUS_RESERVED_7A_LSB                                         44
+#define RESPONSE_END_STATUS_RESERVED_7A_MSB                                         47
+#define RESPONSE_END_STATUS_RESERVED_7A_MASK                                        0x0000f00000000000
+
+
+/* Description		TPC_DBG_INFO_CMN_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_OFFSET                            0x0000000000000018
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_LSB                               48
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_MSB                               63
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_MASK                              0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_OFFSET                               0x0000000000000020
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_LSB                                  0
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_MSB                                  15
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_MASK                                 0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug infothat PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_OFFSET                               0x0000000000000020
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_LSB                                  16
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_MSB                                  31
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_MASK                                 0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN1_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_OFFSET                           0x0000000000000020
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_LSB                              32
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_MSB                              47
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_MASK                             0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_OFFSET                          0x0000000000000020
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_LSB                             48
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_MSB                             63
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_MASK                            0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_OFFSET                          0x0000000000000028
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_LSB                             0
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_MSB                             15
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_MASK                            0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN1_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_OFFSET                          0x0000000000000028
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_LSB                             16
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_MSB                             31
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_MASK                            0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN1_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_OFFSET                          0x0000000000000028
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_LSB                             32
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_MSB                             47
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_MASK                            0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_OFFSET                           0x0000000000000028
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_LSB                              48
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_MSB                              63
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_MASK                             0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_OFFSET                          0x0000000000000030
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_LSB                             0
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_MSB                             15
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_MASK                            0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN2_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_OFFSET                          0x0000000000000030
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_LSB                             16
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_MSB                             31
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_MASK                            0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN2_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_OFFSET                          0x0000000000000030
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_LSB                             32
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_MSB                             47
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_MASK                            0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_OFFSET                          0x0000000000000030
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_LSB                             48
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_MSB                             63
+#define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_MASK                            0xffff000000000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_OFFSET                        0x0000000000000038
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_LSB                           0
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_MSB                           15
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_MASK                          0x000000000000ffff
+
+
+/* Description		PHYTX_TX_END_SW_INFO_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_OFFSET                       0x0000000000000038
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_LSB                          16
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_MSB                          31
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_MASK                         0x00000000ffff0000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_OFFSET                       0x0000000000000038
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_LSB                          32
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_MSB                          47
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_MASK                         0x0000ffff00000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_OFFSET                       0x0000000000000038
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_LSB                          48
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_MSB                          63
+#define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_MASK                         0xffff000000000000
+
+
+/* Description		ADDR1_31_0
+
+			To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
+			
+*/
+
+#define RESPONSE_END_STATUS_ADDR1_31_0_OFFSET                                       0x0000000000000040
+#define RESPONSE_END_STATUS_ADDR1_31_0_LSB                                          0
+#define RESPONSE_END_STATUS_ADDR1_31_0_MSB                                          31
+#define RESPONSE_END_STATUS_ADDR1_31_0_MASK                                         0x00000000ffffffff
+
+
+/* Description		ADDR1_47_32
+
+			To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
+			
+*/
+
+#define RESPONSE_END_STATUS_ADDR1_47_32_OFFSET                                      0x0000000000000040
+#define RESPONSE_END_STATUS_ADDR1_47_32_LSB                                         32
+#define RESPONSE_END_STATUS_ADDR1_47_32_MSB                                         47
+#define RESPONSE_END_STATUS_ADDR1_47_32_MASK                                        0x0000ffff00000000
+
+
+/* Description		ADDR2_15_0
+
+			To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
+			
+*/
+
+#define RESPONSE_END_STATUS_ADDR2_15_0_OFFSET                                       0x0000000000000040
+#define RESPONSE_END_STATUS_ADDR2_15_0_LSB                                          48
+#define RESPONSE_END_STATUS_ADDR2_15_0_MSB                                          63
+#define RESPONSE_END_STATUS_ADDR2_15_0_MASK                                         0xffff000000000000
+
+
+/* Description		ADDR2_47_16
+
+			To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
+			
+*/
+
+#define RESPONSE_END_STATUS_ADDR2_47_16_OFFSET                                      0x0000000000000048
+#define RESPONSE_END_STATUS_ADDR2_47_16_LSB                                         0
+#define RESPONSE_END_STATUS_ADDR2_47_16_MSB                                         31
+#define RESPONSE_END_STATUS_ADDR2_47_16_MASK                                        0x00000000ffffffff
+
+
+/* Description		ADDR3_31_0
+
+			To be copied over from TX_CBF_INFO
+*/
+
+#define RESPONSE_END_STATUS_ADDR3_31_0_OFFSET                                       0x0000000000000048
+#define RESPONSE_END_STATUS_ADDR3_31_0_LSB                                          32
+#define RESPONSE_END_STATUS_ADDR3_31_0_MSB                                          63
+#define RESPONSE_END_STATUS_ADDR3_31_0_MASK                                         0xffffffff00000000
+
+
+/* Description		ADDR3_47_32
+
+			To be copied over from TX_CBF_INFO
+*/
+
+#define RESPONSE_END_STATUS_ADDR3_47_32_OFFSET                                      0x0000000000000050
+#define RESPONSE_END_STATUS_ADDR3_47_32_LSB                                         0
+#define RESPONSE_END_STATUS_ADDR3_47_32_MSB                                         15
+#define RESPONSE_END_STATUS_ADDR3_47_32_MASK                                        0x000000000000ffff
+
+
+/* Description		RANGING
+
+			To be copied over from TX_CBF_INFO: Set to 1 if the status
+			 is generated due to an active ranging session (.11az)
+*/
+
+#define RESPONSE_END_STATUS_RANGING_OFFSET                                          0x0000000000000050
+#define RESPONSE_END_STATUS_RANGING_LSB                                             16
+#define RESPONSE_END_STATUS_RANGING_MSB                                             16
+#define RESPONSE_END_STATUS_RANGING_MASK                                            0x0000000000010000
+
+
+/* Description		SECURE
+
+			To be copied over from TX_CBF_INFO: Only valid if Ranging
+			 is set to 1, this indicates if the current ranging session
+			 is secure.
+*/
+
+#define RESPONSE_END_STATUS_SECURE_OFFSET                                           0x0000000000000050
+#define RESPONSE_END_STATUS_SECURE_LSB                                              17
+#define RESPONSE_END_STATUS_SECURE_MSB                                              17
+#define RESPONSE_END_STATUS_SECURE_MASK                                             0x0000000000020000
+
+
+/* Description		RANGING_FTM_FRAME_SENT
+
+			Only valid if Ranging is set to 1
+			
+			TXPCU sets this bit if an FTM frame aggregated with an LMR
+			 was sent.
+*/
+
+#define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_OFFSET                           0x0000000000000050
+#define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_LSB                              18
+#define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_MSB                              18
+#define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_MASK                             0x0000000000040000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_RESERVED_20A_OFFSET                                     0x0000000000000050
+#define RESPONSE_END_STATUS_RESERVED_20A_LSB                                        19
+#define RESPONSE_END_STATUS_RESERVED_20A_MSB                                        31
+#define RESPONSE_END_STATUS_RESERVED_20A_MASK                                       0x00000000fff80000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RESPONSE_END_STATUS_TLV64_PADDING_OFFSET                                    0x0000000000000050
+#define RESPONSE_END_STATUS_TLV64_PADDING_LSB                                       32
+#define RESPONSE_END_STATUS_TLV64_PADDING_MSB                                       63
+#define RESPONSE_END_STATUS_TLV64_PADDING_MASK                                      0xffffffff00000000
+
+
+
+#endif   // RESPONSE_END_STATUS
diff --git a/hw/qca5332/response_start_status.h b/hw/qca5332/response_start_status.h
new file mode 100644
index 0000000..2352ff5
--- /dev/null
+++ b/hw/qca5332/response_start_status.h
@@ -0,0 +1,194 @@
+
+/* 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 _RESPONSE_START_STATUS_H_
+#define _RESPONSE_START_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RESPONSE_START_STATUS 2
+
+#define NUM_OF_QWORDS_RESPONSE_START_STATUS 1
+
+
+struct response_start_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t generated_response                                      :  3, // [2:0]
+                      ftm_tm                                                  :  2, // [4:3]
+                      trig_response_related                                   :  1, // [5:5]
+                      response_sta_count                                      :  7, // [12:6]
+                      reserved                                                : 19; // [31:13]
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      sw_peer_id                                              : 16; // [31:16]
+#else
+             uint32_t reserved                                                : 19, // [31:13]
+                      response_sta_count                                      :  7, // [12:6]
+                      trig_response_related                                   :  1, // [5:5]
+                      ftm_tm                                                  :  2, // [4:3]
+                      generated_response                                      :  3; // [2:0]
+             uint32_t sw_peer_id                                              : 16, // [31:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+#endif
+};
+
+
+/* Description		GENERATED_RESPONSE
+
+			The generated response frame
+			
+			<enum 0 selfgen_ACK> TXPCU generated an ACK response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 1 selfgen_CTS> TXPCU generated an CTS response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 2 selfgen_BA> TXPCU generated a BA response. Note 
+			that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 3 selfgen_MBA> TXPCU generated an M BA response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 4 selfgen_CBF> TXPCU generated a CBF response. Note
+			 that this can be part of a trigger response. In that case
+			 bit trig_response_related will be set as well.
+			
+			<enum 5 selfgen_other_trig_response>
+			TXPCU generated a trigger related response of a type not
+			 specified above. Note that in this case bit trig_response_related
+			 will be set as well. 
+			
+			This e-num will also be used when TXPCU has been programmed
+			 to overwrite it's own self gen response generation, and
+			 wait for the response to come from SCH..
+			Also applicable for basic trigger response. 
+			
+			<enum 6 selfgen_NDP_LMR> TXPCU generated a self-gen NDP 
+			followed by a self-gen LMR for the ranging NDPA followed
+			 by NDP received by RXPCU.
+			
+			<legal 0-6>
+*/
+
+#define RESPONSE_START_STATUS_GENERATED_RESPONSE_OFFSET                             0x0000000000000000
+#define RESPONSE_START_STATUS_GENERATED_RESPONSE_LSB                                0
+#define RESPONSE_START_STATUS_GENERATED_RESPONSE_MSB                                2
+#define RESPONSE_START_STATUS_GENERATED_RESPONSE_MASK                               0x0000000000000007
+
+
+/* Description		FTM_TM
+
+			This field Indicates if the response is related to receiving
+			 a TM or FTM frame
+			
+			0: no TM and no FTM frame => there is NO measurement done
+			
+			1: FTM frame
+			2: TM frame
+			3: reserved
+*/
+
+#define RESPONSE_START_STATUS_FTM_TM_OFFSET                                         0x0000000000000000
+#define RESPONSE_START_STATUS_FTM_TM_LSB                                            3
+#define RESPONSE_START_STATUS_FTM_TM_MSB                                            4
+#define RESPONSE_START_STATUS_FTM_TM_MASK                                           0x0000000000000018
+
+
+/* Description		TRIG_RESPONSE_RELATED
+
+			When set, this TLV is generated by TXPCU in the context 
+			of a response transmission to a received trigger frame.
+			
+			<legal all>
+*/
+
+#define RESPONSE_START_STATUS_TRIG_RESPONSE_RELATED_OFFSET                          0x0000000000000000
+#define RESPONSE_START_STATUS_TRIG_RESPONSE_RELATED_LSB                             5
+#define RESPONSE_START_STATUS_TRIG_RESPONSE_RELATED_MSB                             5
+#define RESPONSE_START_STATUS_TRIG_RESPONSE_RELATED_MASK                            0x0000000000000020
+
+
+/* Description		RESPONSE_STA_COUNT
+
+			The number of STAs to which the responses need to be sent.
+			
+			
+			In case of multiple ACKs/BAs to be send, TXPCU uses this
+			 field to determine what address formatting to use for the
+			 response frame: This could be broadcast or unicast.
+			
+			<legal all>
+*/
+
+#define RESPONSE_START_STATUS_RESPONSE_STA_COUNT_OFFSET                             0x0000000000000000
+#define RESPONSE_START_STATUS_RESPONSE_STA_COUNT_LSB                                6
+#define RESPONSE_START_STATUS_RESPONSE_STA_COUNT_MSB                                12
+#define RESPONSE_START_STATUS_RESPONSE_STA_COUNT_MASK                               0x0000000000001fc0
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define RESPONSE_START_STATUS_RESERVED_OFFSET                                       0x0000000000000000
+#define RESPONSE_START_STATUS_RESERVED_LSB                                          13
+#define RESPONSE_START_STATUS_RESERVED_MSB                                          31
+#define RESPONSE_START_STATUS_RESERVED_MASK                                         0x00000000ffffe000
+
+
+/* Description		PHY_PPDU_ID
+
+			The PHY_PPDU_ID of the received PPDU for which this response
+			 is generated.
+*/
+
+#define RESPONSE_START_STATUS_PHY_PPDU_ID_OFFSET                                    0x0000000000000000
+#define RESPONSE_START_STATUS_PHY_PPDU_ID_LSB                                       32
+#define RESPONSE_START_STATUS_PHY_PPDU_ID_MSB                                       47
+#define RESPONSE_START_STATUS_PHY_PPDU_ID_MASK                                      0x0000ffff00000000
+
+
+/* Description		SW_PEER_ID
+
+			This field is only valid when Response_STA_count  is set
+			 to 1
+			
+			An identifier indicating for which device this response 
+			is needed.
+			<legal all>
+*/
+
+#define RESPONSE_START_STATUS_SW_PEER_ID_OFFSET                                     0x0000000000000000
+#define RESPONSE_START_STATUS_SW_PEER_ID_LSB                                        48
+#define RESPONSE_START_STATUS_SW_PEER_ID_MSB                                        63
+#define RESPONSE_START_STATUS_SW_PEER_ID_MASK                                       0xffff000000000000
+
+
+
+#endif   // RESPONSE_START_STATUS
diff --git a/hw/qca5332/ru_allocation_160_info.h b/hw/qca5332/ru_allocation_160_info.h
new file mode 100644
index 0000000..1fc411e
--- /dev/null
+++ b/hw/qca5332/ru_allocation_160_info.h
@@ -0,0 +1,303 @@
+
+/* 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 _RU_ALLOCATION_160_INFO_H_
+#define _RU_ALLOCATION_160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RU_ALLOCATION_160_INFO 4
+
+
+struct ru_allocation_160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_allocation_band0_0                                   :  9, // [8:0]
+                      ru_allocation_band0_1                                   :  9, // [17:9]
+                      reserved_0a                                             :  6, // [23:18]
+                      ru_allocations_01_subband80_mask                        :  4, // [27:24]
+                      ru_allocations_23_subband80_mask                        :  4; // [31:28]
+             uint32_t ru_allocation_band0_2                                   :  9, // [8:0]
+                      ru_allocation_band0_3                                   :  9, // [17:9]
+                      reserved_1a                                             : 14; // [31:18]
+             uint32_t ru_allocation_band1_0                                   :  9, // [8:0]
+                      ru_allocation_band1_1                                   :  9, // [17:9]
+                      reserved_2a                                             : 14; // [31:18]
+             uint32_t ru_allocation_band1_2                                   :  9, // [8:0]
+                      ru_allocation_band1_3                                   :  9, // [17:9]
+                      reserved_3a                                             : 14; // [31:18]
+#else
+             uint32_t ru_allocations_23_subband80_mask                        :  4, // [31:28]
+                      ru_allocations_01_subband80_mask                        :  4, // [27:24]
+                      reserved_0a                                             :  6, // [23:18]
+                      ru_allocation_band0_1                                   :  9, // [17:9]
+                      ru_allocation_band0_0                                   :  9; // [8:0]
+             uint32_t reserved_1a                                             : 14, // [31:18]
+                      ru_allocation_band0_3                                   :  9, // [17:9]
+                      ru_allocation_band0_2                                   :  9; // [8:0]
+             uint32_t reserved_2a                                             : 14, // [31:18]
+                      ru_allocation_band1_1                                   :  9, // [17:9]
+                      ru_allocation_band1_0                                   :  9; // [8:0]
+             uint32_t reserved_3a                                             : 14, // [31:18]
+                      ru_allocation_band1_3                                   :  9, // [17:9]
+                      ru_allocation_band1_2                                   :  9; // [8:0]
+#endif
+};
+
+
+/* Description		RU_ALLOCATION_BAND0_0
+
+			Field not used for MIMO
+			
+			Indicates RU arrangement in frequency domain. RU allocated
+			 for MU-MIMO, and number of users in the MU-MIMO.
+			0 - valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			1 - valid for HE_80/HE_160 (80+80)/ EHT_80/EHT_160/EHT_240/EHT_320
+			
+			2 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			3 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
+			
+			The four bands are for HE_SIGB0 & B1 respectively or for
+			 EHT_SIG0, EHT_SIG1, EHT_SIG2 & EHT_SIG3 respectively.
+			
+			valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320 packets and denotes RU-map of the first 
+			20MHz band of HE_SIGB0 or EHT_SIG0
+			<legal all>
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_OFFSET                         0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_MASK                           0x000001ff
+
+
+/* Description		RU_ALLOCATION_BAND0_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB0
+			 or EHT_SIG0
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_OFFSET                         0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_MASK                           0x0003fe00
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_OFFSET                                   0x00000000
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_MSB                                      23
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_MASK                                     0x00fc0000
+
+
+/* Description		RU_ALLOCATIONS_01_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{0, 
+			1}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET              0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB                 24
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB                 27
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK                0x0f000000
+
+
+/* Description		RU_ALLOCATIONS_23_SUBBAND80_MASK
+
+			Field not used for HE
+			
+			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{2, 
+			3}' are valid for
+			Bit 0: lowest 80 MHz
+			Bit 1: 2nd lowest 80 MHz
+			Bit 2: 2nd highest 80 MHz
+			Bit 3: highest 80 MHz
+			
+			In other 80 MHz subbands PHY microcode should override these
+			 with 'zero-user RU996.'
+			<legal all>
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET              0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB                 28
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB                 31
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK                0xf0000000
+
+
+/* Description		RU_ALLOCATION_BAND0_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB0 or EHT_SIG0
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_OFFSET                         0x00000004
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_MASK                           0x000001ff
+
+
+/* Description		RU_ALLOCATION_BAND0_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB0 or EHT_SIG0
+			
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_OFFSET                         0x00000004
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_MASK                           0x0003fe00
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_OFFSET                                   0x00000004
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_MASK                                     0xfffc0000
+
+
+/* Description		RU_ALLOCATION_BAND1_0
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_40/HE_80/HE_160/ EHT_40/EHT_80/EHT_160/ EHT_240/EHT_320
+			 packets and denotes RU-map of the first 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_OFFSET                         0x00000008
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_MASK                           0x000001ff
+
+
+/* Description		RU_ALLOCATION_BAND1_1
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
+			 and denotes RU-map of the second 20MHz band of HE_SIGB1
+			 or EHT_SIG1
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_OFFSET                         0x00000008
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_MASK                           0x0003fe00
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_OFFSET                                   0x00000008
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_MASK                                     0xfffc0000
+
+
+/* Description		RU_ALLOCATION_BAND1_2
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the third 20MHz band of HE_SIGB1 or EHT_SIG1
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_OFFSET                         0x0000000c
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_MASK                           0x000001ff
+
+
+/* Description		RU_ALLOCATION_BAND1_3
+
+			Field not used for MIMO
+			
+			See description of ru_allocation_band0_0
+			
+			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
+			 RU-map of the fourth 20MHz band of HE_SIGB1 or EHT_SIG1
+			
+*/
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_OFFSET                         0x0000000c
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_MASK                           0x0003fe00
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_OFFSET                                   0x0000000c
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_MASK                                     0xfffc0000
+
+
+
+#endif   // RU_ALLOCATION_160_INFO
diff --git a/hw/qca5332/rx_attention.h b/hw/qca5332/rx_attention.h
new file mode 100644
index 0000000..a0d68c4
--- /dev/null
+++ b/hw/qca5332/rx_attention.h
@@ -0,0 +1,883 @@
+
+/* 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 _RX_ATTENTION_H_
+#define _RX_ATTENTION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_ATTENTION 4
+
+#define NUM_OF_QWORDS_RX_ATTENTION 2
+
+
+struct rx_attention {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      reserved_0                                              :  7, // [15:9]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t first_mpdu                                              :  1, // [0:0]
+                      reserved_1a                                             :  1, // [1:1]
+                      mcast_bcast                                             :  1, // [2:2]
+                      ast_index_not_found                                     :  1, // [3:3]
+                      ast_index_timeout                                       :  1, // [4:4]
+                      power_mgmt                                              :  1, // [5:5]
+                      non_qos                                                 :  1, // [6:6]
+                      null_data                                               :  1, // [7:7]
+                      mgmt_type                                               :  1, // [8:8]
+                      ctrl_type                                               :  1, // [9:9]
+                      more_data                                               :  1, // [10:10]
+                      eosp                                                    :  1, // [11:11]
+                      a_msdu_error                                            :  1, // [12:12]
+                      fragment_flag                                           :  1, // [13:13]
+                      order                                                   :  1, // [14:14]
+                      cce_match                                               :  1, // [15:15]
+                      overflow_err                                            :  1, // [16:16]
+                      msdu_length_err                                         :  1, // [17:17]
+                      tcp_udp_chksum_fail                                     :  1, // [18:18]
+                      ip_chksum_fail                                          :  1, // [19:19]
+                      sa_idx_invalid                                          :  1, // [20:20]
+                      da_idx_invalid                                          :  1, // [21:21]
+                      reserved_1b                                             :  1, // [22:22]
+                      rx_in_tx_decrypt_byp                                    :  1, // [23:23]
+                      encrypt_required                                        :  1, // [24:24]
+                      directed                                                :  1, // [25:25]
+                      buffer_fragment                                         :  1, // [26:26]
+                      mpdu_length_err                                         :  1, // [27:27]
+                      tkip_mic_err                                            :  1, // [28:28]
+                      decrypt_err                                             :  1, // [29:29]
+                      unencrypted_frame_err                                   :  1, // [30:30]
+                      fcs_err                                                 :  1; // [31:31]
+             uint32_t flow_idx_timeout                                        :  1, // [0:0]
+                      flow_idx_invalid                                        :  1, // [1:1]
+                      wifi_parser_error                                       :  1, // [2:2]
+                      amsdu_parser_error                                      :  1, // [3:3]
+                      sa_idx_timeout                                          :  1, // [4:4]
+                      da_idx_timeout                                          :  1, // [5:5]
+                      msdu_limit_error                                        :  1, // [6:6]
+                      da_is_valid                                             :  1, // [7:7]
+                      da_is_mcbc                                              :  1, // [8:8]
+                      sa_is_valid                                             :  1, // [9:9]
+                      decrypt_status_code                                     :  3, // [12:10]
+                      rx_bitmap_not_updated                                   :  1, // [13:13]
+                      reserved_2                                              : 17, // [30:14]
+                      msdu_done                                               :  1; // [31:31]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_0                                              :  7, // [15:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t fcs_err                                                 :  1, // [31:31]
+                      unencrypted_frame_err                                   :  1, // [30:30]
+                      decrypt_err                                             :  1, // [29:29]
+                      tkip_mic_err                                            :  1, // [28:28]
+                      mpdu_length_err                                         :  1, // [27:27]
+                      buffer_fragment                                         :  1, // [26:26]
+                      directed                                                :  1, // [25:25]
+                      encrypt_required                                        :  1, // [24:24]
+                      rx_in_tx_decrypt_byp                                    :  1, // [23:23]
+                      reserved_1b                                             :  1, // [22:22]
+                      da_idx_invalid                                          :  1, // [21:21]
+                      sa_idx_invalid                                          :  1, // [20:20]
+                      ip_chksum_fail                                          :  1, // [19:19]
+                      tcp_udp_chksum_fail                                     :  1, // [18:18]
+                      msdu_length_err                                         :  1, // [17:17]
+                      overflow_err                                            :  1, // [16:16]
+                      cce_match                                               :  1, // [15:15]
+                      order                                                   :  1, // [14:14]
+                      fragment_flag                                           :  1, // [13:13]
+                      a_msdu_error                                            :  1, // [12:12]
+                      eosp                                                    :  1, // [11:11]
+                      more_data                                               :  1, // [10:10]
+                      ctrl_type                                               :  1, // [9:9]
+                      mgmt_type                                               :  1, // [8:8]
+                      null_data                                               :  1, // [7:7]
+                      non_qos                                                 :  1, // [6:6]
+                      power_mgmt                                              :  1, // [5:5]
+                      ast_index_timeout                                       :  1, // [4:4]
+                      ast_index_not_found                                     :  1, // [3:3]
+                      mcast_bcast                                             :  1, // [2:2]
+                      reserved_1a                                             :  1, // [1:1]
+                      first_mpdu                                              :  1; // [0:0]
+             uint32_t msdu_done                                               :  1, // [31:31]
+                      reserved_2                                              : 17, // [30:14]
+                      rx_bitmap_not_updated                                   :  1, // [13:13]
+                      decrypt_status_code                                     :  3, // [12:10]
+                      sa_is_valid                                             :  1, // [9:9]
+                      da_is_mcbc                                              :  1, // [8:8]
+                      da_is_valid                                             :  1, // [7:7]
+                      msdu_limit_error                                        :  1, // [6:6]
+                      da_idx_timeout                                          :  1, // [5:5]
+                      sa_idx_timeout                                          :  1, // [4:4]
+                      amsdu_parser_error                                      :  1, // [3:3]
+                      wifi_parser_error                                       :  1, // [2:2]
+                      flow_idx_invalid                                        :  1, // [1:1]
+                      flow_idx_timeout                                        :  1; // [0:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			<legal 0-3>
+*/
+
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                           0x0000000000000000
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                              0
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                              1
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                             0x0000000000000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> 
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			
+			<legal 0-39>
+*/
+
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_OFFSET                                       0x0000000000000000
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_LSB                                          2
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_MSB                                          8
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_MASK                                         0x00000000000001fc
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_ATTENTION_RESERVED_0_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_RESERVED_0_LSB                                                 9
+#define RX_ATTENTION_RESERVED_0_MSB                                                 15
+#define RX_ATTENTION_RESERVED_0_MASK                                                0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_ATTENTION_PHY_PPDU_ID_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_PHY_PPDU_ID_LSB                                                16
+#define RX_ATTENTION_PHY_PPDU_ID_MSB                                                31
+#define RX_ATTENTION_PHY_PPDU_ID_MASK                                               0x00000000ffff0000
+
+
+/* Description		FIRST_MPDU
+
+			Indicates the first MSDU of the PPDU.  If both first_mpdu
+			 and last_mpdu are set in the MSDU then this is a not an
+			 A-MPDU frame but a stand alone MPDU.  Interior MPDU in 
+			an A-MPDU shall have both first_mpdu and last_mpdu bits 
+			set to 0.  The PPDU start status will only be valid when
+			 this bit is set.
+*/
+
+#define RX_ATTENTION_FIRST_MPDU_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_FIRST_MPDU_LSB                                                 32
+#define RX_ATTENTION_FIRST_MPDU_MSB                                                 32
+#define RX_ATTENTION_FIRST_MPDU_MASK                                                0x0000000100000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_ATTENTION_RESERVED_1A_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_RESERVED_1A_LSB                                                33
+#define RX_ATTENTION_RESERVED_1A_MSB                                                33
+#define RX_ATTENTION_RESERVED_1A_MASK                                               0x0000000200000000
+
+
+/* Description		MCAST_BCAST
+
+			Multicast / broadcast indicator.  Only set when the MAC 
+			address 1 bit 0 is set indicating mcast/bcast and the BSSID
+			 matches one of the 4 BSSID registers. Only set when first_msdu
+			 is set.
+*/
+
+#define RX_ATTENTION_MCAST_BCAST_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_MCAST_BCAST_LSB                                                34
+#define RX_ATTENTION_MCAST_BCAST_MSB                                                34
+#define RX_ATTENTION_MCAST_BCAST_MASK                                               0x0000000400000000
+
+
+/* Description		AST_INDEX_NOT_FOUND
+
+			Only valid when first_msdu is set.
+			
+			Indicates no AST matching entries within the the max search
+			 count.  
+*/
+
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_OFFSET                                     0x0000000000000000
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_LSB                                        35
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_MSB                                        35
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_MASK                                       0x0000000800000000
+
+
+/* Description		AST_INDEX_TIMEOUT
+
+			Only valid when first_msdu is set.
+			
+			Indicates an unsuccessful search in the address seach table
+			 due to timeout.  
+*/
+
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_OFFSET                                       0x0000000000000000
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_LSB                                          36
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_MSB                                          36
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_MASK                                         0x0000001000000000
+
+
+/* Description		POWER_MGMT
+
+			Power management bit set in the 802.11 header.  Only set
+			 when first_msdu is set.
+*/
+
+#define RX_ATTENTION_POWER_MGMT_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_POWER_MGMT_LSB                                                 37
+#define RX_ATTENTION_POWER_MGMT_MSB                                                 37
+#define RX_ATTENTION_POWER_MGMT_MASK                                                0x0000002000000000
+
+
+/* Description		NON_QOS
+
+			Set if packet is not a non-QoS data frame.  Only set when
+			 first_msdu is set.
+*/
+
+#define RX_ATTENTION_NON_QOS_OFFSET                                                 0x0000000000000000
+#define RX_ATTENTION_NON_QOS_LSB                                                    38
+#define RX_ATTENTION_NON_QOS_MSB                                                    38
+#define RX_ATTENTION_NON_QOS_MASK                                                   0x0000004000000000
+
+
+/* Description		NULL_DATA
+
+			Set if frame type indicates either null data or QoS null
+			 data format.  Only set when first_msdu is set.
+*/
+
+#define RX_ATTENTION_NULL_DATA_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_NULL_DATA_LSB                                                  39
+#define RX_ATTENTION_NULL_DATA_MSB                                                  39
+#define RX_ATTENTION_NULL_DATA_MASK                                                 0x0000008000000000
+
+
+/* Description		MGMT_TYPE
+
+			Set if packet is a management packet.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_ATTENTION_MGMT_TYPE_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_MGMT_TYPE_LSB                                                  40
+#define RX_ATTENTION_MGMT_TYPE_MSB                                                  40
+#define RX_ATTENTION_MGMT_TYPE_MASK                                                 0x0000010000000000
+
+
+/* Description		CTRL_TYPE
+
+			Set if packet is a control packet.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_ATTENTION_CTRL_TYPE_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_CTRL_TYPE_LSB                                                  41
+#define RX_ATTENTION_CTRL_TYPE_MSB                                                  41
+#define RX_ATTENTION_CTRL_TYPE_MASK                                                 0x0000020000000000
+
+
+/* Description		MORE_DATA
+
+			Set if more bit in frame control is set.  Only set when 
+			first_msdu is set.
+*/
+
+#define RX_ATTENTION_MORE_DATA_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_MORE_DATA_LSB                                                  42
+#define RX_ATTENTION_MORE_DATA_MSB                                                  42
+#define RX_ATTENTION_MORE_DATA_MASK                                                 0x0000040000000000
+
+
+/* Description		EOSP
+
+			Set if the EOSP (end of service period) bit in the QoS control
+			 field is set.  Only set when first_msdu is set.
+*/
+
+#define RX_ATTENTION_EOSP_OFFSET                                                    0x0000000000000000
+#define RX_ATTENTION_EOSP_LSB                                                       43
+#define RX_ATTENTION_EOSP_MSB                                                       43
+#define RX_ATTENTION_EOSP_MASK                                                      0x0000080000000000
+
+
+/* Description		A_MSDU_ERROR
+
+			Set if number of MSDUs in A-MSDU is above a threshold or
+			 if the size of the MSDU is invalid.  This receive buffer
+			 will contain all of the remainder of the MSDUs in this 
+			MPDU without decapsulation.
+*/
+
+#define RX_ATTENTION_A_MSDU_ERROR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_A_MSDU_ERROR_LSB                                               44
+#define RX_ATTENTION_A_MSDU_ERROR_MSB                                               44
+#define RX_ATTENTION_A_MSDU_ERROR_MASK                                              0x0000100000000000
+
+
+/* Description		FRAGMENT_FLAG
+
+			Indicates that this is an 802.11 fragment frame.  This is
+			 set when either the more_frag bit is set in the frame control
+			 or the fragment number is not zero.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_ATTENTION_FRAGMENT_FLAG_OFFSET                                           0x0000000000000000
+#define RX_ATTENTION_FRAGMENT_FLAG_LSB                                              45
+#define RX_ATTENTION_FRAGMENT_FLAG_MSB                                              45
+#define RX_ATTENTION_FRAGMENT_FLAG_MASK                                             0x0000200000000000
+
+
+/* Description		ORDER
+
+			Set if the order bit in the frame control is set.  Only 
+			set when first_msdu is set.
+*/
+
+#define RX_ATTENTION_ORDER_OFFSET                                                   0x0000000000000000
+#define RX_ATTENTION_ORDER_LSB                                                      46
+#define RX_ATTENTION_ORDER_MSB                                                      46
+#define RX_ATTENTION_ORDER_MASK                                                     0x0000400000000000
+
+
+/* Description		CCE_MATCH
+
+			Indicates that this status has a corresponding MSDU that
+			 requires FW processing.  The OLE will have classification
+			 ring mask registers which will indicate the ring(s) for
+			 packets and descriptors which need FW attention.
+*/
+
+#define RX_ATTENTION_CCE_MATCH_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_CCE_MATCH_LSB                                                  47
+#define RX_ATTENTION_CCE_MATCH_MSB                                                  47
+#define RX_ATTENTION_CCE_MATCH_MASK                                                 0x0000800000000000
+
+
+/* Description		OVERFLOW_ERR
+
+			RXPCU Receive FIFO ran out of space to receive the full 
+			MPDU. Therefor this MPDU is terminated early and is thus
+			 corrupted.  
+			
+			This MPDU will not be ACKed.
+			RXPCU might still be able to correctly receive the following
+			 MPDUs in the PPDU if enough fifo space became available
+			 in time
+*/
+
+#define RX_ATTENTION_OVERFLOW_ERR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_OVERFLOW_ERR_LSB                                               48
+#define RX_ATTENTION_OVERFLOW_ERR_MSB                                               48
+#define RX_ATTENTION_OVERFLOW_ERR_MASK                                              0x0001000000000000
+
+
+/* Description		MSDU_LENGTH_ERR
+
+			Indicates that the MSDU length from the 802.3 encapsulated
+			 length field extends beyond the MPDU boundary or if the
+			 length is less than 14 bytes.
+			Merged with original "other_msdu_err": Indicates that the
+			 MSDU threshold was exceeded and thus all the rest of the
+			 MSDUs will not be scattered and will not be decasulated
+			 but will be DMA'ed in RAW format as a single MSDU buffer
+			
+*/
+
+#define RX_ATTENTION_MSDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_MSDU_LENGTH_ERR_LSB                                            49
+#define RX_ATTENTION_MSDU_LENGTH_ERR_MSB                                            49
+#define RX_ATTENTION_MSDU_LENGTH_ERR_MASK                                           0x0002000000000000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Indicates that the computed checksum (tcp_udp_chksum in 'RX_MSDU_END') 
+			did not match the checksum in the TCP/UDP header.
+*/
+
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_OFFSET                                     0x0000000000000000
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_LSB                                        50
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MSB                                        50
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MASK                                       0x0004000000000000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Indicates that the computed checksum (ip_hdr_chksum in 'RX_MSDU_END') 
+			did not match the checksum in the IP header.
+*/
+
+#define RX_ATTENTION_IP_CHKSUM_FAIL_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_IP_CHKSUM_FAIL_LSB                                             51
+#define RX_ATTENTION_IP_CHKSUM_FAIL_MSB                                             51
+#define RX_ATTENTION_IP_CHKSUM_FAIL_MASK                                            0x0008000000000000
+
+
+/* Description		SA_IDX_INVALID
+
+			Indicates no matching entry was found in the address search
+			 table for the source MAC address.
+*/
+
+#define RX_ATTENTION_SA_IDX_INVALID_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_SA_IDX_INVALID_LSB                                             52
+#define RX_ATTENTION_SA_IDX_INVALID_MSB                                             52
+#define RX_ATTENTION_SA_IDX_INVALID_MASK                                            0x0010000000000000
+
+
+/* Description		DA_IDX_INVALID
+
+			Indicates no matching entry was found in the address search
+			 table for the destination MAC address.
+*/
+
+#define RX_ATTENTION_DA_IDX_INVALID_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_DA_IDX_INVALID_LSB                                             53
+#define RX_ATTENTION_DA_IDX_INVALID_MSB                                             53
+#define RX_ATTENTION_DA_IDX_INVALID_MASK                                            0x0020000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define RX_ATTENTION_RESERVED_1B_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_RESERVED_1B_LSB                                                54
+#define RX_ATTENTION_RESERVED_1B_MSB                                                54
+#define RX_ATTENTION_RESERVED_1B_MASK                                               0x0040000000000000
+
+
+/* Description		RX_IN_TX_DECRYPT_BYP
+
+			Indicates that RX packet is not decrypted as Crypto is busy
+			 with TX packet processing.
+*/
+
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_OFFSET                                    0x0000000000000000
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_LSB                                       55
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MSB                                       55
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MASK                                      0x0080000000000000
+
+
+/* Description		ENCRYPT_REQUIRED
+
+			Indicates that this data type frame is not encrypted even
+			 if the policy for this MPDU requires encryption as indicated
+			 in the peer entry key type.
+*/
+
+#define RX_ATTENTION_ENCRYPT_REQUIRED_OFFSET                                        0x0000000000000000
+#define RX_ATTENTION_ENCRYPT_REQUIRED_LSB                                           56
+#define RX_ATTENTION_ENCRYPT_REQUIRED_MSB                                           56
+#define RX_ATTENTION_ENCRYPT_REQUIRED_MASK                                          0x0100000000000000
+
+
+/* Description		DIRECTED
+
+			MPDU is a directed packet which means that the RA matched
+			 our STA addresses.  In proxySTA it means that the TA matched
+			 an entry in our address search table with the corresponding
+			 "no_ack" bit is the address search entry cleared.
+*/
+
+#define RX_ATTENTION_DIRECTED_OFFSET                                                0x0000000000000000
+#define RX_ATTENTION_DIRECTED_LSB                                                   57
+#define RX_ATTENTION_DIRECTED_MSB                                                   57
+#define RX_ATTENTION_DIRECTED_MASK                                                  0x0200000000000000
+
+
+/* Description		BUFFER_FRAGMENT
+
+			Indicates that at least one of the rx buffers has been fragmented. 
+			 If set the FW should look at the rx_frag_info descriptor
+			 described below.
+*/
+
+#define RX_ATTENTION_BUFFER_FRAGMENT_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_BUFFER_FRAGMENT_LSB                                            58
+#define RX_ATTENTION_BUFFER_FRAGMENT_MSB                                            58
+#define RX_ATTENTION_BUFFER_FRAGMENT_MASK                                           0x0400000000000000
+
+
+/* Description		MPDU_LENGTH_ERR
+
+			Indicates that the MPDU was pre-maturely terminated resulting
+			 in a truncated MPDU.  Don't trust the MPDU length field.
+			
+*/
+
+#define RX_ATTENTION_MPDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_MPDU_LENGTH_ERR_LSB                                            59
+#define RX_ATTENTION_MPDU_LENGTH_ERR_MSB                                            59
+#define RX_ATTENTION_MPDU_LENGTH_ERR_MASK                                           0x0800000000000000
+
+
+/* Description		TKIP_MIC_ERR
+
+			Indicates that the MPDU Michael integrity check failed
+*/
+
+#define RX_ATTENTION_TKIP_MIC_ERR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_TKIP_MIC_ERR_LSB                                               60
+#define RX_ATTENTION_TKIP_MIC_ERR_MSB                                               60
+#define RX_ATTENTION_TKIP_MIC_ERR_MASK                                              0x1000000000000000
+
+
+/* Description		DECRYPT_ERR
+
+			Indicates that the MPDU decrypt integrity check failed or
+			 CRYPTO received an encrypted frame, but did not get a valid
+			 corresponding key id in the peer entry.
+*/
+
+#define RX_ATTENTION_DECRYPT_ERR_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_DECRYPT_ERR_LSB                                                61
+#define RX_ATTENTION_DECRYPT_ERR_MSB                                                61
+#define RX_ATTENTION_DECRYPT_ERR_MASK                                               0x2000000000000000
+
+
+/* Description		UNENCRYPTED_FRAME_ERR
+
+			Copied here by RX OLE from the RX_MPDU_END TLV
+*/
+
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_OFFSET                                   0x0000000000000000
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_LSB                                      62
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MSB                                      62
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MASK                                     0x4000000000000000
+
+
+/* Description		FCS_ERR
+
+			Indicates that the MPDU FCS check failed
+*/
+
+#define RX_ATTENTION_FCS_ERR_OFFSET                                                 0x0000000000000000
+#define RX_ATTENTION_FCS_ERR_LSB                                                    63
+#define RX_ATTENTION_FCS_ERR_MSB                                                    63
+#define RX_ATTENTION_FCS_ERR_MASK                                                   0x8000000000000000
+
+
+/* Description		FLOW_IDX_TIMEOUT
+
+			Indicates an unsuccessful flow search due to the expiring
+			 of the search timer.
+			<legal all>
+*/
+
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_LSB                                           0
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_MSB                                           0
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_MASK                                          0x0000000000000001
+
+
+/* Description		FLOW_IDX_INVALID
+
+			flow id is not valid
+			<legal all>
+*/
+
+#define RX_ATTENTION_FLOW_IDX_INVALID_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_FLOW_IDX_INVALID_LSB                                           1
+#define RX_ATTENTION_FLOW_IDX_INVALID_MSB                                           1
+#define RX_ATTENTION_FLOW_IDX_INVALID_MASK                                          0x0000000000000002
+
+
+/* Description		WIFI_PARSER_ERROR
+
+			Indicates that the WiFi frame has one of the following errors
+			
+			o has less than minimum allowed bytes as per standard
+			o has incomplete VLAN LLC/SNAP (only for non A-MSDUs)
+			<legal all>
+*/
+
+#define RX_ATTENTION_WIFI_PARSER_ERROR_OFFSET                                       0x0000000000000008
+#define RX_ATTENTION_WIFI_PARSER_ERROR_LSB                                          2
+#define RX_ATTENTION_WIFI_PARSER_ERROR_MSB                                          2
+#define RX_ATTENTION_WIFI_PARSER_ERROR_MASK                                         0x0000000000000004
+
+
+/* Description		AMSDU_PARSER_ERROR
+
+			A-MSDU could not be properly de-agregated.
+			<legal all>
+*/
+
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_OFFSET                                      0x0000000000000008
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_LSB                                         3
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_MSB                                         3
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_MASK                                        0x0000000000000008
+
+
+/* Description		SA_IDX_TIMEOUT
+
+			Indicates an unsuccessful MAC source address search due 
+			to the expiring of the search timer.
+*/
+
+#define RX_ATTENTION_SA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
+#define RX_ATTENTION_SA_IDX_TIMEOUT_LSB                                             4
+#define RX_ATTENTION_SA_IDX_TIMEOUT_MSB                                             4
+#define RX_ATTENTION_SA_IDX_TIMEOUT_MASK                                            0x0000000000000010
+
+
+/* Description		DA_IDX_TIMEOUT
+
+			Indicates an unsuccessful MAC destination address search
+			 due to the expiring of the search timer.
+*/
+
+#define RX_ATTENTION_DA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
+#define RX_ATTENTION_DA_IDX_TIMEOUT_LSB                                             5
+#define RX_ATTENTION_DA_IDX_TIMEOUT_MSB                                             5
+#define RX_ATTENTION_DA_IDX_TIMEOUT_MASK                                            0x0000000000000020
+
+
+/* Description		MSDU_LIMIT_ERROR
+
+			Indicates that the MSDU threshold was exceeded and thus 
+			all the rest of the MSDUs will not be scattered and will
+			 not be decasulated but will be DMA'ed in RAW format as 
+			a single MSDU buffer
+*/
+
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_LSB                                           6
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_MSB                                           6
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_MASK                                          0x0000000000000040
+
+
+/* Description		DA_IS_VALID
+
+			Indicates that OLE found a valid DA entry
+*/
+
+#define RX_ATTENTION_DA_IS_VALID_OFFSET                                             0x0000000000000008
+#define RX_ATTENTION_DA_IS_VALID_LSB                                                7
+#define RX_ATTENTION_DA_IS_VALID_MSB                                                7
+#define RX_ATTENTION_DA_IS_VALID_MASK                                               0x0000000000000080
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address.
+			
+*/
+
+#define RX_ATTENTION_DA_IS_MCBC_OFFSET                                              0x0000000000000008
+#define RX_ATTENTION_DA_IS_MCBC_LSB                                                 8
+#define RX_ATTENTION_DA_IS_MCBC_MSB                                                 8
+#define RX_ATTENTION_DA_IS_MCBC_MASK                                                0x0000000000000100
+
+
+/* Description		SA_IS_VALID
+
+			Indicates that OLE found a valid SA entry
+*/
+
+#define RX_ATTENTION_SA_IS_VALID_OFFSET                                             0x0000000000000008
+#define RX_ATTENTION_SA_IS_VALID_LSB                                                9
+#define RX_ATTENTION_SA_IS_VALID_MSB                                                9
+#define RX_ATTENTION_SA_IS_VALID_MASK                                               0x0000000000000200
+
+
+/* Description		DECRYPT_STATUS_CODE
+
+			Field provides insight into the decryption performed
+			
+			<enum 0 decrypt_ok> Frame had protection enabled and decrypted
+			 properly 
+			<enum 1 decrypt_unprotected_frame > Frame is unprotected
+			 and hence bypassed 
+			<enum 2 decrypt_data_err > Frame has protection enabled 
+			and could not be properly decrypted due to MIC/ICV mismatch
+			 etc. 
+			<enum 3 decrypt_key_invalid > Frame has protection enabled
+			 but the key that was required to decrypt this frame was
+			 not valid 
+			<enum 4 decrypt_peer_entry_invalid > Frame has protection
+			 enabled but the key that was required to decrypt this frame
+			 was not valid
+			<enum 5 decrypt_other > Reserved for other indications
+			
+			<legal 0 - 5>
+*/
+
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_OFFSET                                     0x0000000000000008
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_LSB                                        10
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_MSB                                        12
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_MASK                                       0x0000000000001c00
+
+
+/* Description		RX_BITMAP_NOT_UPDATED
+
+			Frame is received, but RXPCU could not update the receive
+			 bitmap due to (temporary) fifo contraints.
+			<legal all>
+*/
+
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_OFFSET                                   0x0000000000000008
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_LSB                                      13
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MSB                                      13
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MASK                                     0x0000000000002000
+
+
+/* Description		RESERVED_2
+
+			<legal 0>
+*/
+
+#define RX_ATTENTION_RESERVED_2_OFFSET                                              0x0000000000000008
+#define RX_ATTENTION_RESERVED_2_LSB                                                 14
+#define RX_ATTENTION_RESERVED_2_MSB                                                 30
+#define RX_ATTENTION_RESERVED_2_MASK                                                0x000000007fffc000
+
+
+/* Description		MSDU_DONE
+
+			If set indicates that the RX packet data, RX header data, 
+			RX PPDU start descriptor, RX MPDU start/end descriptor, 
+			RX MSDU start/end descriptors and RX Attention descriptor
+			 are all valid.  This bit must be in the last octet of the
+			 descriptor.
+*/
+
+#define RX_ATTENTION_MSDU_DONE_OFFSET                                               0x0000000000000008
+#define RX_ATTENTION_MSDU_DONE_LSB                                                  31
+#define RX_ATTENTION_MSDU_DONE_MSB                                                  31
+#define RX_ATTENTION_MSDU_DONE_MASK                                                 0x0000000080000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_ATTENTION_TLV64_PADDING_OFFSET                                           0x0000000000000008
+#define RX_ATTENTION_TLV64_PADDING_LSB                                              32
+#define RX_ATTENTION_TLV64_PADDING_MSB                                              63
+#define RX_ATTENTION_TLV64_PADDING_MASK                                             0xffffffff00000000
+
+
+
+#endif   // RX_ATTENTION
diff --git a/hw/qca5332/rx_flow_search_entry.h b/hw/qca5332/rx_flow_search_entry.h
new file mode 100644
index 0000000..672f655
--- /dev/null
+++ b/hw/qca5332/rx_flow_search_entry.h
@@ -0,0 +1,583 @@
+
+/* 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 _RX_FLOW_SEARCH_ENTRY_H_
+#define _RX_FLOW_SEARCH_ENTRY_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_FLOW_SEARCH_ENTRY 16
+
+
+struct rx_flow_search_entry {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t src_ip_127_96                                           : 32; // [31:0]
+             uint32_t src_ip_95_64                                            : 32; // [31:0]
+             uint32_t src_ip_63_32                                            : 32; // [31:0]
+             uint32_t src_ip_31_0                                             : 32; // [31:0]
+             uint32_t dest_ip_127_96                                          : 32; // [31:0]
+             uint32_t dest_ip_95_64                                           : 32; // [31:0]
+             uint32_t dest_ip_63_32                                           : 32; // [31:0]
+             uint32_t dest_ip_31_0                                            : 32; // [31:0]
+             uint32_t src_port                                                : 16, // [15:0]
+                      dest_port                                               : 16; // [31:16]
+             uint32_t l4_protocol                                             :  8, // [7:0]
+                      valid                                                   :  1, // [8:8]
+                      reserved_9                                              :  4, // [12:9]
+                      service_code                                            :  9, // [21:13]
+                      priority_valid                                          :  1, // [22:22]
+                      use_ppe                                                 :  1, // [23:23]
+                      reo_destination_indication                              :  5, // [28:24]
+                      msdu_drop                                               :  1, // [29:29]
+                      reo_destination_handler                                 :  2; // [31:30]
+             uint32_t metadata                                                : 32; // [31:0]
+             uint32_t aggregation_count                                       :  7, // [6:0]
+                      lro_eligible                                            :  1, // [7:7]
+                      msdu_count                                              : 24; // [31:8]
+             uint32_t msdu_byte_count                                         : 32; // [31:0]
+             uint32_t timestamp                                               : 32; // [31:0]
+             uint32_t cumulative_ip_length_pmac1                              : 16, // [15:0]
+                      cumulative_ip_length                                    : 16; // [31:16]
+             uint32_t tcp_sequence_number                                     : 32; // [31:0]
+#else
+             uint32_t src_ip_127_96                                           : 32; // [31:0]
+             uint32_t src_ip_95_64                                            : 32; // [31:0]
+             uint32_t src_ip_63_32                                            : 32; // [31:0]
+             uint32_t src_ip_31_0                                             : 32; // [31:0]
+             uint32_t dest_ip_127_96                                          : 32; // [31:0]
+             uint32_t dest_ip_95_64                                           : 32; // [31:0]
+             uint32_t dest_ip_63_32                                           : 32; // [31:0]
+             uint32_t dest_ip_31_0                                            : 32; // [31:0]
+             uint32_t dest_port                                               : 16, // [31:16]
+                      src_port                                                : 16; // [15:0]
+             uint32_t reo_destination_handler                                 :  2, // [31:30]
+                      msdu_drop                                               :  1, // [29:29]
+                      reo_destination_indication                              :  5, // [28:24]
+                      use_ppe                                                 :  1, // [23:23]
+                      priority_valid                                          :  1, // [22:22]
+                      service_code                                            :  9, // [21:13]
+                      reserved_9                                              :  4, // [12:9]
+                      valid                                                   :  1, // [8:8]
+                      l4_protocol                                             :  8; // [7:0]
+             uint32_t metadata                                                : 32; // [31:0]
+             uint32_t msdu_count                                              : 24, // [31:8]
+                      lro_eligible                                            :  1, // [7:7]
+                      aggregation_count                                       :  7; // [6:0]
+             uint32_t msdu_byte_count                                         : 32; // [31:0]
+             uint32_t timestamp                                               : 32; // [31:0]
+             uint32_t cumulative_ip_length                                    : 16, // [31:16]
+                      cumulative_ip_length_pmac1                              : 16; // [15:0]
+             uint32_t tcp_sequence_number                                     : 32; // [31:0]
+#endif
+};
+
+
+/* Description		SRC_IP_127_96
+
+			Uppermost 32 bits of source IPv6 address or prefix as per
+			 Common Parser register field IP_DA_SA_PREFIX (with the 
+			first byte in the MSB and the last byte in the LSB, i.e. 
+			requiring a byte-swap for little-endian SW w.r.t. the byte
+			 order in an IPv6 packet)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_OFFSET                                   0x00000000
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_MASK                                     0xffffffff
+
+
+/* Description		SRC_IP_95_64
+
+			Next 32 bits of source IPv6 address or prefix (requiring
+			 a byte-swap for little-endian SW) <legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_OFFSET                                    0x00000004
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_MASK                                      0xffffffff
+
+
+/* Description		SRC_IP_63_32
+
+			Next 32 bits of source IPv6 address or lowest 32 bits of
+			 prefix (requiring a byte-swap for little-endian SW)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_OFFSET                                    0x00000008
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_MASK                                      0xffffffff
+
+
+/* Description		SRC_IP_31_0
+
+			Lowest 32 bits of source IPv6 address, or source IPv4 address
+			 (requiring a byte-swap for little-endian SW w.r.t. the 
+			byte order in an IPv6 or IPv4 packet)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_OFFSET                                     0x0000000c
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_LSB                                        0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_MSB                                        31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_MASK                                       0xffffffff
+
+
+/* Description		DEST_IP_127_96
+
+			Uppermost 32 bits of destination IPv6 address or prefix 
+			as per Common Parser register field IP_DA_SA_PREFIX (with
+			 the first byte in the MSB and the last byte in the LSB, 
+			i.e. requiring a byte-swap for little-endian SW w.r.t. the
+			 byte order as in an IPv6 packet)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_OFFSET                                  0x00000010
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_LSB                                     0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_MSB                                     31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_MASK                                    0xffffffff
+
+
+/* Description		DEST_IP_95_64
+
+			Next 32 bits of destination IPv6 address or prefix (requiring
+			 a byte-swap for little-endian SW)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_OFFSET                                   0x00000014
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_MASK                                     0xffffffff
+
+
+/* Description		DEST_IP_63_32
+
+			Next 32 bits of destination IPv6 address or lowest 32 bits
+			 of prefix (requiring a byte-swap for little-endian SW)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_OFFSET                                   0x00000018
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_MASK                                     0xffffffff
+
+
+/* Description		DEST_IP_31_0
+
+			Lowest 32 bits of destination IPv6 address, or destination
+			 IPv4 address (requiring a byte-swap for little-endian SW
+			 w.r.t. the byte order in an IPv6 or IPv4 packet)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_OFFSET                                    0x0000001c
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_MASK                                      0xffffffff
+
+
+/* Description		SRC_PORT
+
+			LSB of SPI in case of ESP/AH
+			else source port in case of TCP/UDP without IPsec,
+			else zeros in case of ICMP (with the first/third byte in
+			 the MSB and the second/fourth byte in the LSB, i.e. requiring
+			 a byte-swap for little-endian SW w.r.t. the byte order 
+			as in an IPv6 or IPv4 packet)  <legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_OFFSET                                        0x00000020
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_LSB                                           0
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_MSB                                           15
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_MASK                                          0x0000ffff
+
+
+/* Description		DEST_PORT
+
+			MSB of SPI in case of ESP/AH
+			else destination port in case of TCP/UDP without IPsec,
+			else zeros in case of ICMP (with the first byte in the MSB
+			 and the second byte in the LSB, i.e. requiring a byte-swap
+			 for little-endian SW w.r.t. the byte order as in an IPv6
+			 or IPv4 packet)
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_OFFSET                                       0x00000020
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_LSB                                          16
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_MSB                                          31
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_MASK                                         0xffff0000
+
+
+/* Description		L4_PROTOCOL
+
+			IPsec or L4 protocol
+			
+			<enum 1 ICMPV4>
+			<enum 6 TCP>
+			<enum 17 UDP>
+			<enum 50 ESP>
+			<enum 51 AH>
+			<enum 58 ICMPV6>
+			<legal 1, 6, 17, 50, 51, 58>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_OFFSET                                     0x00000024
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_LSB                                        0
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_MSB                                        7
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_MASK                                       0x000000ff
+
+
+/* Description		VALID
+
+			Indicates validity of entry
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_VALID_OFFSET                                           0x00000024
+#define RX_FLOW_SEARCH_ENTRY_VALID_LSB                                              8
+#define RX_FLOW_SEARCH_ENTRY_VALID_MSB                                              8
+#define RX_FLOW_SEARCH_ENTRY_VALID_MASK                                             0x00000100
+
+
+/* Description		RESERVED_9
+
+			<legal 0>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_OFFSET                                      0x00000024
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_LSB                                         9
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_MSB                                         12
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_MASK                                        0x00001e00
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_OFFSET                                    0x00000024
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_LSB                                       13
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_MSB                                       21
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_MASK                                      0x003fe000
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_OFFSET                                  0x00000024
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_LSB                                     22
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_MSB                                     22
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_MASK                                    0x00400000
+
+
+/* Description		USE_PPE
+
+			Indicates to RXDMA to ignore the REO_destination_indication
+			 and use a programmed value corresponding to the REO2PPE
+			 ring
+			
+			This override to REO2PPE for packets requiring multiple 
+			buffers shall be disabled based on an RXDMA configuration, 
+			as PPE may not support such packets.
+			
+			Supported only in full AP chips like Waikiki, not in client/soft
+			 AP chips like Hamilton
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_OFFSET                                         0x00000024
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_LSB                                            23
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_MSB                                            23
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_MASK                                           0x00800000
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine) 
+			<enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_OFFSET                      0x00000024
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_LSB                         24
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_MSB                         28
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_MASK                        0x1f000000
+
+
+/* Description		MSDU_DROP
+
+			Overriding indication to REO to forward to REO release ring
+			
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_OFFSET                                       0x00000024
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_LSB                                          29
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_MSB                                          29
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_MASK                                         0x20000000
+
+
+/* Description		REO_DESTINATION_HANDLER
+
+			Indicates how to decide the REO destination indication
+			<enum 0 RXFT_USE_FT> Follow this entry
+			<enum 1 RXFT_USE_ASPT> Use address search+peer table entry
+			
+			<enum 2 RXFT_USE_FT2> Follow this entry
+			<enum 3 RXFT_USE_CCE> Use CCE super-rule
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_OFFSET                         0x00000024
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_LSB                            30
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_MSB                            31
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_MASK                           0xc0000000
+
+
+/* Description		METADATA
+
+			Value to be passed to SW if this flow search entry matches
+			
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_METADATA_OFFSET                                        0x00000028
+#define RX_FLOW_SEARCH_ENTRY_METADATA_LSB                                           0
+#define RX_FLOW_SEARCH_ENTRY_METADATA_MSB                                           31
+#define RX_FLOW_SEARCH_ENTRY_METADATA_MASK                                          0xffffffff
+
+
+/* Description		AGGREGATION_COUNT
+
+			FISA: Number'of MSDU's aggregated so far
+			
+			Based on an RXOLE register, this can be changed to reflect
+			 aggregation of MSDUs from PMAC0 only.
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_OFFSET                               0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_LSB                                  0
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_MSB                                  6
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_MASK                                 0x0000007f
+
+
+/* Description		LRO_ELIGIBLE
+
+			FISA:
+			To indicate whether the previous MSDU for this flow is eligible
+			 for LRO/FISA
+			
+			Based on an RXOLE register, this can be changed to reflect
+			 the LRO/FISA eligibility for MSDUs from PMAC0 only.
+			
+			Chips not supporting FISA, e.g. Waikiki:
+			This bit is also known as RDI_invalid.
+			When RXOLE is configured to enable flow search (but ignore
+			 the REO_destination_indication) for the first fragment, 
+			it will set this bit if a flow entry matches.
+			Subsequently when RXOLE matches this flow entry for any 
+			other packet, the REO_destination_indication in this entry
+			 is considered invalid and w.r.t. REO routing the flow search
+			 is considered to have failed.
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_OFFSET                                    0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_LSB                                       7
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_MSB                                       7
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_MASK                                      0x00000080
+
+
+/* Description		MSDU_COUNT
+
+			Number of Rx MSDUs matching this flow
+			
+			Based on an RXOLE register, this can be changed to reflect
+			 the number of Rx MSDUs from PMAC0 matching the flow.
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_OFFSET                                      0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_LSB                                         8
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_MSB                                         31
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_MASK                                        0xffffff00
+
+
+/* Description		MSDU_BYTE_COUNT
+
+			Number of bytes in Rx MSDUs matching this flow
+			
+			Based on an RXOLE register, this can be changed to reflect
+			 the number of Rx MSDUs from PMAC1 matching the flow.
+			
+			Based on an RXOLE register, the MSB 8 bits can be changed
+			 to reflect the 'aggregation_count' and 'LRO_eligible' of
+			 MSDUs from PMAC1.
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_OFFSET                                 0x00000030
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_LSB                                    0
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_MSB                                    31
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_MASK                                   0xffffffff
+
+
+/* Description		TIMESTAMP
+
+			Time of last reception (as measured at Rx OLE) matching 
+			this flow
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_OFFSET                                       0x00000034
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_LSB                                          0
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_MSB                                          31
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_MASK                                         0xffffffff
+
+
+/* Description		CUMULATIVE_IP_LENGTH_PMAC1
+
+			Based on an RXOLE register, this can be changed to reflect
+			 the 'cumulative_IP_length' for MSDUs from PMAC1.
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_OFFSET                      0x00000038
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_LSB                         0
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_MSB                         15
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_MASK                        0x0000ffff
+
+
+/* Description		CUMULATIVE_IP_LENGTH
+
+			FISA: Total MSDU length that is part of this flow aggregated
+			 so far
+			
+			Based on an RXOLE register, this can be changed to reflect
+			 aggregation of MSDUs from PMAC0 only.
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_OFFSET                            0x00000038
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_LSB                               16
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_MSB                               31
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_MASK                              0xffff0000
+
+
+/* Description		TCP_SEQUENCE_NUMBER
+
+			FISA: TCP Sequence number of the last packet in this flow
+			 to detect sequence number jump
+			
+			Based on an RXOLE register, this can be changed so that 
+			the bottom half of this field reflects the LSBs of the TCP
+			 sequence number of the last packet from PMAC0 and the top
+			 half reflects the LSBs of the TCP sequence number of the
+			 last packet from PMAC1.
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_OFFSET                             0x0000003c
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_LSB                                0
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_MSB                                31
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_MASK                               0xffffffff
+
+
+
+#endif   // RX_FLOW_SEARCH_ENTRY
diff --git a/hw/qca5332/rx_frame_1k_bitmap_ack.h b/hw/qca5332/rx_frame_1k_bitmap_ack.h
new file mode 100644
index 0000000..3e201f8
--- /dev/null
+++ b/hw/qca5332/rx_frame_1k_bitmap_ack.h
@@ -0,0 +1,639 @@
+
+/* 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 _RX_FRAME_1K_BITMAP_ACK_H_
+#define _RX_FRAME_1K_BITMAP_ACK_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_FRAME_1K_BITMAP_ACK 38
+
+#define NUM_OF_QWORDS_RX_FRAME_1K_BITMAP_ACK 19
+
+
+struct rx_frame_1k_bitmap_ack {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reserved_0a                                             :  5, // [4:0]
+                      ba_bitmap_size                                          :  2, // [6:5]
+                      reserved_0b                                             :  3, // [9:7]
+                      ba_tid                                                  :  4, // [13:10]
+                      sta_full_aid                                            : 13, // [26:14]
+                      reserved_0c                                             :  5; // [31:27]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr1_47_32                                             : 16, // [15:0]
+                      addr2_15_0                                              : 16; // [31:16]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t ba_ts_ctrl                                              : 16, // [15:0]
+                      ba_ts_seq                                               : 16; // [31:16]
+             uint32_t ba_ts_bitmap_31_0                                       : 32; // [31:0]
+             uint32_t ba_ts_bitmap_63_32                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_95_64                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_127_96                                     : 32; // [31:0]
+             uint32_t ba_ts_bitmap_159_128                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_191_160                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_223_192                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_255_224                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_287_256                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_319_288                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_351_320                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_383_352                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_415_384                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_447_416                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_479_448                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_511_480                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_543_512                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_575_544                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_607_576                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_639_608                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_671_640                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_703_672                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_735_704                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_767_736                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_799_768                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_831_800                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_863_832                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_895_864                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_927_896                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_959_928                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_991_960                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_1023_992                                   : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0c                                             :  5, // [31:27]
+                      sta_full_aid                                            : 13, // [26:14]
+                      ba_tid                                                  :  4, // [13:10]
+                      reserved_0b                                             :  3, // [9:7]
+                      ba_bitmap_size                                          :  2, // [6:5]
+                      reserved_0a                                             :  5; // [4:0]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr2_15_0                                              : 16, // [31:16]
+                      addr1_47_32                                             : 16; // [15:0]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t ba_ts_seq                                               : 16, // [31:16]
+                      ba_ts_ctrl                                              : 16; // [15:0]
+             uint32_t ba_ts_bitmap_31_0                                       : 32; // [31:0]
+             uint32_t ba_ts_bitmap_63_32                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_95_64                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_127_96                                     : 32; // [31:0]
+             uint32_t ba_ts_bitmap_159_128                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_191_160                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_223_192                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_255_224                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_287_256                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_319_288                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_351_320                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_383_352                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_415_384                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_447_416                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_479_448                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_511_480                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_543_512                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_575_544                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_607_576                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_639_608                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_671_640                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_703_672                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_735_704                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_767_736                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_799_768                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_831_800                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_863_832                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_895_864                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_927_896                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_959_928                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_991_960                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_1023_992                                   : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0A_OFFSET                                   0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0A_LSB                                      0
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0A_MSB                                      4
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0A_MASK                                     0x000000000000001f
+
+
+/* Description		BA_BITMAP_SIZE
+
+			<enum 0 BA_bitmap_512 > Bitmap size set to window of 512
+			
+			<enum 1 BA_bitmap_1024 > Bitmap size set to window of 1024
+			
+			
+			<legal 0-1>
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_BITMAP_SIZE_OFFSET                                0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_BA_BITMAP_SIZE_LSB                                   5
+#define RX_FRAME_1K_BITMAP_ACK_BA_BITMAP_SIZE_MSB                                   6
+#define RX_FRAME_1K_BITMAP_ACK_BA_BITMAP_SIZE_MASK                                  0x0000000000000060
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0B_OFFSET                                   0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0B_LSB                                      7
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0B_MSB                                      9
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0B_MASK                                     0x0000000000000380
+
+
+/* Description		BA_TID
+
+			The tid for the BA
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TID_OFFSET                                        0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_BA_TID_LSB                                           10
+#define RX_FRAME_1K_BITMAP_ACK_BA_TID_MSB                                           13
+#define RX_FRAME_1K_BITMAP_ACK_BA_TID_MASK                                          0x0000000000003c00
+
+
+/* Description		STA_FULL_AID
+
+			The full AID of this station. 
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_STA_FULL_AID_OFFSET                                  0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_STA_FULL_AID_LSB                                     14
+#define RX_FRAME_1K_BITMAP_ACK_STA_FULL_AID_MSB                                     26
+#define RX_FRAME_1K_BITMAP_ACK_STA_FULL_AID_MASK                                    0x0000000007ffc000
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0C_OFFSET                                   0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0C_LSB                                      27
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0C_MSB                                      31
+#define RX_FRAME_1K_BITMAP_ACK_RESERVED_0C_MASK                                     0x00000000f8000000
+
+
+/* Description		ADDR1_31_0
+
+			lower 32 bits of addr1 of the received frame
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_31_0_OFFSET                                    0x0000000000000000
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_31_0_LSB                                       32
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_31_0_MSB                                       63
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_31_0_MASK                                      0xffffffff00000000
+
+
+/* Description		ADDR1_47_32
+
+			upper 16 bits of addr1 of the received frame
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_47_32_OFFSET                                   0x0000000000000008
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_47_32_LSB                                      0
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_47_32_MSB                                      15
+#define RX_FRAME_1K_BITMAP_ACK_ADDR1_47_32_MASK                                     0x000000000000ffff
+
+
+/* Description		ADDR2_15_0
+
+			lower 16 bits of addr2 of the received frame
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_15_0_OFFSET                                    0x0000000000000008
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_15_0_LSB                                       16
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_15_0_MSB                                       31
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_15_0_MASK                                      0x00000000ffff0000
+
+
+/* Description		ADDR2_47_16
+
+			upper 32 bits of addr2 of the received frame
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_47_16_OFFSET                                   0x0000000000000008
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_47_16_LSB                                      32
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_47_16_MSB                                      63
+#define RX_FRAME_1K_BITMAP_ACK_ADDR2_47_16_MASK                                     0xffffffff00000000
+
+
+/* Description		BA_TS_CTRL
+
+			Transmit BA control
+			RXPCU assumes the C-BA format, NOT M-BA format.
+			In case TXPCU is responding with M-BA, TXPCU will ignore
+			 this field. TXPCU will generate it 
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_CTRL_OFFSET                                    0x0000000000000010
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_CTRL_LSB                                       0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_CTRL_MSB                                       15
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_CTRL_MASK                                      0x000000000000ffff
+
+
+/* Description		BA_TS_SEQ
+
+			Transmit BA sequence number. 
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_SEQ_OFFSET                                     0x0000000000000010
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_SEQ_LSB                                        16
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_SEQ_MSB                                        31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_SEQ_MASK                                       0x00000000ffff0000
+
+
+/* Description		BA_TS_BITMAP_31_0
+
+			Transmit BA bitmap[31:0]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_31_0_OFFSET                             0x0000000000000010
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_31_0_LSB                                32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_31_0_MSB                                63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_31_0_MASK                               0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_63_32
+
+			Transmit BA bitmap[63:32]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_63_32_OFFSET                            0x0000000000000018
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_63_32_LSB                               0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_63_32_MSB                               31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_63_32_MASK                              0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_95_64
+
+			Transmit BA bitmap[95:64]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_95_64_OFFSET                            0x0000000000000018
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_95_64_LSB                               32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_95_64_MSB                               63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_95_64_MASK                              0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_127_96
+
+			Transmit BA bitmap[127:96]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_127_96_OFFSET                           0x0000000000000020
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_127_96_LSB                              0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_127_96_MSB                              31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_127_96_MASK                             0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_159_128
+
+			Transmit BA bitmap[159:128]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_159_128_OFFSET                          0x0000000000000020
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_159_128_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_159_128_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_159_128_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_191_160
+
+			Transmit BA bitmap[191:160]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_191_160_OFFSET                          0x0000000000000028
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_191_160_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_191_160_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_191_160_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_223_192
+
+			Transmit BA bitmap[223:192]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_223_192_OFFSET                          0x0000000000000028
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_223_192_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_223_192_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_223_192_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_255_224
+
+			Transmit BA bitmap[255:224]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_255_224_OFFSET                          0x0000000000000030
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_255_224_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_255_224_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_255_224_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_287_256
+
+			Transmit BA bitmap[287:256]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_287_256_OFFSET                          0x0000000000000030
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_287_256_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_287_256_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_287_256_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_319_288
+
+			Transmit BA bitmap[319:288]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_319_288_OFFSET                          0x0000000000000038
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_319_288_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_319_288_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_319_288_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_351_320
+
+			Transmit BA bitmap[351:320]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_351_320_OFFSET                          0x0000000000000038
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_351_320_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_351_320_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_351_320_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_383_352
+
+			Transmit BA bitmap[383:352]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_383_352_OFFSET                          0x0000000000000040
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_383_352_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_383_352_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_383_352_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_415_384
+
+			Transmit BA bitmap[415:384]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_415_384_OFFSET                          0x0000000000000040
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_415_384_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_415_384_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_415_384_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_447_416
+
+			Transmit BA bitmap[447:416]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_447_416_OFFSET                          0x0000000000000048
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_447_416_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_447_416_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_447_416_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_479_448
+
+			Transmit BA bitmap[479:448]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_479_448_OFFSET                          0x0000000000000048
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_479_448_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_479_448_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_479_448_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_511_480
+
+			Transmit BA bitmap[511:480]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_511_480_OFFSET                          0x0000000000000050
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_511_480_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_511_480_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_511_480_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_543_512
+
+			Transmit BA bitmap[543:512]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_543_512_OFFSET                          0x0000000000000050
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_543_512_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_543_512_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_543_512_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_575_544
+
+			Transmit BA bitmap[575:544]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_575_544_OFFSET                          0x0000000000000058
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_575_544_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_575_544_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_575_544_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_607_576
+
+			Transmit BA bitmap[607:576]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_607_576_OFFSET                          0x0000000000000058
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_607_576_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_607_576_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_607_576_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_639_608
+
+			Transmit BA bitmap[639:608]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_639_608_OFFSET                          0x0000000000000060
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_639_608_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_639_608_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_639_608_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_671_640
+
+			Transmit BA bitmap[671:640]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_671_640_OFFSET                          0x0000000000000060
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_671_640_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_671_640_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_671_640_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_703_672
+
+			Transmit BA bitmap[703:672]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_703_672_OFFSET                          0x0000000000000068
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_703_672_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_703_672_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_703_672_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_735_704
+
+			Transmit BA bitmap[735:704]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_735_704_OFFSET                          0x0000000000000068
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_735_704_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_735_704_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_735_704_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_767_736
+
+			Transmit BA bitmap[767:736]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_767_736_OFFSET                          0x0000000000000070
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_767_736_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_767_736_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_767_736_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_799_768
+
+			Transmit BA bitmap[799:768]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_799_768_OFFSET                          0x0000000000000070
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_799_768_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_799_768_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_799_768_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_831_800
+
+			Transmit BA bitmap[831:800]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_831_800_OFFSET                          0x0000000000000078
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_831_800_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_831_800_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_831_800_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_863_832
+
+			Transmit BA bitmap[863:832]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_863_832_OFFSET                          0x0000000000000078
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_863_832_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_863_832_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_863_832_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_895_864
+
+			Transmit BA bitmap[895:864]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_895_864_OFFSET                          0x0000000000000080
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_895_864_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_895_864_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_895_864_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_927_896
+
+			Transmit BA bitmap[927:896]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_927_896_OFFSET                          0x0000000000000080
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_927_896_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_927_896_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_927_896_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_959_928
+
+			Transmit BA bitmap[959:928]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_959_928_OFFSET                          0x0000000000000088
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_959_928_LSB                             0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_959_928_MSB                             31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_959_928_MASK                            0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_991_960
+
+			Transmit BA bitmap[991:960]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_991_960_OFFSET                          0x0000000000000088
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_991_960_LSB                             32
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_991_960_MSB                             63
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_991_960_MASK                            0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_1023_992
+
+			Transmit BA bitmap[1023:992]
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_1023_992_OFFSET                         0x0000000000000090
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_1023_992_LSB                            0
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_1023_992_MSB                            31
+#define RX_FRAME_1K_BITMAP_ACK_BA_TS_BITMAP_1023_992_MASK                           0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_FRAME_1K_BITMAP_ACK_TLV64_PADDING_OFFSET                                 0x0000000000000090
+#define RX_FRAME_1K_BITMAP_ACK_TLV64_PADDING_LSB                                    32
+#define RX_FRAME_1K_BITMAP_ACK_TLV64_PADDING_MSB                                    63
+#define RX_FRAME_1K_BITMAP_ACK_TLV64_PADDING_MASK                                   0xffffffff00000000
+
+
+
+#endif   // RX_FRAME_1K_BITMAP_ACK
diff --git a/hw/qca5332/rx_frame_bitmap_ack.h b/hw/qca5332/rx_frame_bitmap_ack.h
new file mode 100644
index 0000000..58ce078
--- /dev/null
+++ b/hw/qca5332/rx_frame_bitmap_ack.h
@@ -0,0 +1,406 @@
+
+/* 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 _RX_FRAME_BITMAP_ACK_H_
+#define _RX_FRAME_BITMAP_ACK_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_FRAME_BITMAP_ACK 14
+
+#define NUM_OF_QWORDS_RX_FRAME_BITMAP_ACK 7
+
+
+struct rx_frame_bitmap_ack {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t no_bitmap_available                                     :  1, // [0:0]
+                      explicit_ack                                            :  1, // [1:1]
+                      explict_ack_type                                        :  3, // [4:2]
+                      ba_bitmap_size                                          :  2, // [6:5]
+                      reserved_0a                                             :  3, // [9:7]
+                      ba_tid                                                  :  4, // [13:10]
+                      sta_full_aid                                            : 13, // [26:14]
+                      reserved_0b                                             :  5; // [31:27]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr1_47_32                                             : 16, // [15:0]
+                      addr2_15_0                                              : 16; // [31:16]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t ba_ts_ctrl                                              : 16, // [15:0]
+                      ba_ts_seq                                               : 16; // [31:16]
+             uint32_t ba_ts_bitmap_31_0                                       : 32; // [31:0]
+             uint32_t ba_ts_bitmap_63_32                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_95_64                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_127_96                                     : 32; // [31:0]
+             uint32_t ba_ts_bitmap_159_128                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_191_160                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_223_192                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_255_224                                    : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0b                                             :  5, // [31:27]
+                      sta_full_aid                                            : 13, // [26:14]
+                      ba_tid                                                  :  4, // [13:10]
+                      reserved_0a                                             :  3, // [9:7]
+                      ba_bitmap_size                                          :  2, // [6:5]
+                      explict_ack_type                                        :  3, // [4:2]
+                      explicit_ack                                            :  1, // [1:1]
+                      no_bitmap_available                                     :  1; // [0:0]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr2_15_0                                              : 16, // [31:16]
+                      addr1_47_32                                             : 16; // [15:0]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t ba_ts_seq                                               : 16, // [31:16]
+                      ba_ts_ctrl                                              : 16; // [15:0]
+             uint32_t ba_ts_bitmap_31_0                                       : 32; // [31:0]
+             uint32_t ba_ts_bitmap_63_32                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_95_64                                      : 32; // [31:0]
+             uint32_t ba_ts_bitmap_127_96                                     : 32; // [31:0]
+             uint32_t ba_ts_bitmap_159_128                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_191_160                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_223_192                                    : 32; // [31:0]
+             uint32_t ba_ts_bitmap_255_224                                    : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		NO_BITMAP_AVAILABLE
+
+			When set, RXPCU does not have any info available for the
+			 requested user. 
+			
+			RXPCU will set the TA/RA, addresses with the devices OWN
+			 address.
+			All other fields are set to 0
+			
+			TXPCU will just blindly follow RXPCUs info.
+			(only for status reporting is TXPCU using this).
+			
+			Note that this field and field "Explicit_ack" can not be
+			 simultaneously set.
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_ACK_NO_BITMAP_AVAILABLE_OFFSET                              0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_NO_BITMAP_AVAILABLE_LSB                                 0
+#define RX_FRAME_BITMAP_ACK_NO_BITMAP_AVAILABLE_MSB                                 0
+#define RX_FRAME_BITMAP_ACK_NO_BITMAP_AVAILABLE_MASK                                0x0000000000000001
+
+
+/* Description		EXPLICIT_ACK
+
+			When set, no BA is needed for this STA. Instead just a single
+			 ACK indication 
+			
+			Note that this field and field "No_bitmap_available" can
+			 not be simultaneously set.
+			
+			Also note that RXPCU might not know if the response that
+			 TXPCU is generating is a single ACK or M(sta) BA.
+			For that reason, RXPCU shall also properly fill in all the
+			 BA related fields. TXPCU will based on the explicit ack
+			 type and in case of BA type response, blindely copy the
+			 required BA related fields and not change their contents:
+			
+			The related fields are:
+			Ba_tid 
+			ba_ts_ctrl 
+			ba_ts_seq
+			ba_ts_bitmap_...
+			
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_ACK_EXPLICIT_ACK_OFFSET                                     0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_EXPLICIT_ACK_LSB                                        1
+#define RX_FRAME_BITMAP_ACK_EXPLICIT_ACK_MSB                                        1
+#define RX_FRAME_BITMAP_ACK_EXPLICIT_ACK_MASK                                       0x0000000000000002
+
+
+/* Description		EXPLICT_ACK_TYPE
+
+			Field only valid when Explicit_ack is set
+			
+			Note that TXPCU only needs to evaluate this field in case
+			 of generating a multi (STA) BA
+			
+			<enum 0 ack_for_single_data_frame> set when only a single
+			 data frame was received that indicated explicitly a 'normal' 
+			ack (no BA) to be sent.
+			<enum 1 ack_for_management> set when a management frame 
+			was received
+			<enum 2 ack_for_PSPOLL> set when a PS_POLL frame was received
+			
+			<enum 3 ack_for_assoc_request> set when an association request
+			 was received from an unassociated STA.
+			<enum 4 ack_for_all_frames> set when RXPCU determined that
+			 all frames have been properly received.
+			<legal 0-4>
+*/
+
+#define RX_FRAME_BITMAP_ACK_EXPLICT_ACK_TYPE_OFFSET                                 0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_EXPLICT_ACK_TYPE_LSB                                    2
+#define RX_FRAME_BITMAP_ACK_EXPLICT_ACK_TYPE_MSB                                    4
+#define RX_FRAME_BITMAP_ACK_EXPLICT_ACK_TYPE_MASK                                   0x000000000000001c
+
+
+/* Description		BA_BITMAP_SIZE
+
+			Field not valid when "No_bitmap_available" or "Explicit_ack" 
+			is set.
+			
+			
+			<enum 0 BA_bitmap_32 > Bitmap size set to window of 32
+			<enum 1 BA_bitmap_64 > Bitmap size set to window of 64
+			<enum 2 BA_bitmap_128 > Bitmap size set to window of 128
+			
+			<enum 3 BA_bitmap_256 > Bitmap size set to window of 256
+			
+			
+			<legal 0-3>
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_BITMAP_SIZE_OFFSET                                   0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_BA_BITMAP_SIZE_LSB                                      5
+#define RX_FRAME_BITMAP_ACK_BA_BITMAP_SIZE_MSB                                      6
+#define RX_FRAME_BITMAP_ACK_BA_BITMAP_SIZE_MASK                                     0x0000000000000060
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_FRAME_BITMAP_ACK_RESERVED_0A_OFFSET                                      0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_RESERVED_0A_LSB                                         7
+#define RX_FRAME_BITMAP_ACK_RESERVED_0A_MSB                                         9
+#define RX_FRAME_BITMAP_ACK_RESERVED_0A_MASK                                        0x0000000000000380
+
+
+/* Description		BA_TID
+
+			The tid for the BA
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TID_OFFSET                                           0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_BA_TID_LSB                                              10
+#define RX_FRAME_BITMAP_ACK_BA_TID_MSB                                              13
+#define RX_FRAME_BITMAP_ACK_BA_TID_MASK                                             0x0000000000003c00
+
+
+/* Description		STA_FULL_AID
+
+			The full AID of this station. 
+*/
+
+#define RX_FRAME_BITMAP_ACK_STA_FULL_AID_OFFSET                                     0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_STA_FULL_AID_LSB                                        14
+#define RX_FRAME_BITMAP_ACK_STA_FULL_AID_MSB                                        26
+#define RX_FRAME_BITMAP_ACK_STA_FULL_AID_MASK                                       0x0000000007ffc000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RX_FRAME_BITMAP_ACK_RESERVED_0B_OFFSET                                      0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_RESERVED_0B_LSB                                         27
+#define RX_FRAME_BITMAP_ACK_RESERVED_0B_MSB                                         31
+#define RX_FRAME_BITMAP_ACK_RESERVED_0B_MASK                                        0x00000000f8000000
+
+
+/* Description		ADDR1_31_0
+
+			lower 32 bits of addr1 of the received frame
+*/
+
+#define RX_FRAME_BITMAP_ACK_ADDR1_31_0_OFFSET                                       0x0000000000000000
+#define RX_FRAME_BITMAP_ACK_ADDR1_31_0_LSB                                          32
+#define RX_FRAME_BITMAP_ACK_ADDR1_31_0_MSB                                          63
+#define RX_FRAME_BITMAP_ACK_ADDR1_31_0_MASK                                         0xffffffff00000000
+
+
+/* Description		ADDR1_47_32
+
+			upper 16 bits of addr1 of the received frame
+*/
+
+#define RX_FRAME_BITMAP_ACK_ADDR1_47_32_OFFSET                                      0x0000000000000008
+#define RX_FRAME_BITMAP_ACK_ADDR1_47_32_LSB                                         0
+#define RX_FRAME_BITMAP_ACK_ADDR1_47_32_MSB                                         15
+#define RX_FRAME_BITMAP_ACK_ADDR1_47_32_MASK                                        0x000000000000ffff
+
+
+/* Description		ADDR2_15_0
+
+			lower 16 bits of addr2 of the received frame
+*/
+
+#define RX_FRAME_BITMAP_ACK_ADDR2_15_0_OFFSET                                       0x0000000000000008
+#define RX_FRAME_BITMAP_ACK_ADDR2_15_0_LSB                                          16
+#define RX_FRAME_BITMAP_ACK_ADDR2_15_0_MSB                                          31
+#define RX_FRAME_BITMAP_ACK_ADDR2_15_0_MASK                                         0x00000000ffff0000
+
+
+/* Description		ADDR2_47_16
+
+			upper 32 bits of addr2 of the received frame
+*/
+
+#define RX_FRAME_BITMAP_ACK_ADDR2_47_16_OFFSET                                      0x0000000000000008
+#define RX_FRAME_BITMAP_ACK_ADDR2_47_16_LSB                                         32
+#define RX_FRAME_BITMAP_ACK_ADDR2_47_16_MSB                                         63
+#define RX_FRAME_BITMAP_ACK_ADDR2_47_16_MASK                                        0xffffffff00000000
+
+
+/* Description		BA_TS_CTRL
+
+			Transmit BA control
+			RXPCU assumes the C-BA format, NOT M-BA format.
+			In case TXPCU is responding with M-BA, TXPCU will ignore
+			 this field. TXPCU will generate it 
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_CTRL_OFFSET                                       0x0000000000000010
+#define RX_FRAME_BITMAP_ACK_BA_TS_CTRL_LSB                                          0
+#define RX_FRAME_BITMAP_ACK_BA_TS_CTRL_MSB                                          15
+#define RX_FRAME_BITMAP_ACK_BA_TS_CTRL_MASK                                         0x000000000000ffff
+
+
+/* Description		BA_TS_SEQ
+
+			Transmit BA sequence number. 
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_SEQ_OFFSET                                        0x0000000000000010
+#define RX_FRAME_BITMAP_ACK_BA_TS_SEQ_LSB                                           16
+#define RX_FRAME_BITMAP_ACK_BA_TS_SEQ_MSB                                           31
+#define RX_FRAME_BITMAP_ACK_BA_TS_SEQ_MASK                                          0x00000000ffff0000
+
+
+/* Description		BA_TS_BITMAP_31_0
+
+			Transmit BA bitmap[31:0]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_31_0_OFFSET                                0x0000000000000010
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_31_0_LSB                                   32
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_31_0_MSB                                   63
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_31_0_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_63_32
+
+			Transmit BA bitmap[63:32]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_63_32_OFFSET                               0x0000000000000018
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_63_32_LSB                                  0
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_63_32_MSB                                  31
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_63_32_MASK                                 0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_95_64
+
+			Transmit BA bitmap[95:64]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_95_64_OFFSET                               0x0000000000000018
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_95_64_LSB                                  32
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_95_64_MSB                                  63
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_95_64_MASK                                 0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_127_96
+
+			Transmit BA bitmap[127:96]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_127_96_OFFSET                              0x0000000000000020
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_127_96_LSB                                 0
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_127_96_MSB                                 31
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_127_96_MASK                                0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_159_128
+
+			Transmit BA bitmap[159:128]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_159_128_OFFSET                             0x0000000000000020
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_159_128_LSB                                32
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_159_128_MSB                                63
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_159_128_MASK                               0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_191_160
+
+			Transmit BA bitmap[191:160]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_191_160_OFFSET                             0x0000000000000028
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_191_160_LSB                                0
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_191_160_MSB                                31
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_191_160_MASK                               0x00000000ffffffff
+
+
+/* Description		BA_TS_BITMAP_223_192
+
+			Transmit BA bitmap[223:192]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_223_192_OFFSET                             0x0000000000000028
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_223_192_LSB                                32
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_223_192_MSB                                63
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_223_192_MASK                               0xffffffff00000000
+
+
+/* Description		BA_TS_BITMAP_255_224
+
+			Transmit BA bitmap[255:224]
+*/
+
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_255_224_OFFSET                             0x0000000000000030
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_255_224_LSB                                0
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_255_224_MSB                                31
+#define RX_FRAME_BITMAP_ACK_BA_TS_BITMAP_255_224_MASK                               0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_FRAME_BITMAP_ACK_TLV64_PADDING_OFFSET                                    0x0000000000000030
+#define RX_FRAME_BITMAP_ACK_TLV64_PADDING_LSB                                       32
+#define RX_FRAME_BITMAP_ACK_TLV64_PADDING_MSB                                       63
+#define RX_FRAME_BITMAP_ACK_TLV64_PADDING_MASK                                      0xffffffff00000000
+
+
+
+#endif   // RX_FRAME_BITMAP_ACK
diff --git a/hw/qca5332/rx_frame_bitmap_req.h b/hw/qca5332/rx_frame_bitmap_req.h
new file mode 100644
index 0000000..e6a0509
--- /dev/null
+++ b/hw/qca5332/rx_frame_bitmap_req.h
@@ -0,0 +1,215 @@
+
+/* 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 _RX_FRAME_BITMAP_REQ_H_
+#define _RX_FRAME_BITMAP_REQ_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_FRAME_BITMAP_REQ 2
+
+#define NUM_OF_QWORDS_RX_FRAME_BITMAP_REQ 1
+
+
+struct rx_frame_bitmap_req {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t explicit_user_request                                   :  1, // [0:0]
+                      user_request_type                                       :  1, // [1:1]
+                      user_number                                             :  6, // [7:2]
+                      sw_peer_id                                              : 16, // [23:8]
+                      tid_specific_request                                    :  1, // [24:24]
+                      requested_tid                                           :  4, // [28:25]
+                      reserved_0                                              :  3; // [31:29]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0                                              :  3, // [31:29]
+                      requested_tid                                           :  4, // [28:25]
+                      tid_specific_request                                    :  1, // [24:24]
+                      sw_peer_id                                              : 16, // [23:8]
+                      user_number                                             :  6, // [7:2]
+                      user_request_type                                       :  1, // [1:1]
+                      explicit_user_request                                   :  1; // [0:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		EXPLICIT_USER_REQUEST
+
+			Note: TXCPU is allowed to interleave requests of the two
+			 different types
+			
+			Also, for either request, RXPCU shall clear the internal
+			 flag that linked the bitmap to the just received frame 
+			
+			
+			When set, TXPCU is asking for the bitmap for an explicit
+			 user. This is typically only to be used after an MU OFDMA
+			 or MU MIMO  reception. Note that this request can be used
+			 to retrieve bitmaps that do not necessarily belong to the
+			 just received PPDU, but might have been generated a while
+			 ago.
+			
+			When not set, it is up to RXPCU to decide which bitmap it
+			 wants to give to TXPCU based on what is available (and 
+			has not been passed on the TXPCU in a previous request, 
+			which might have included a request in the 'Explicit_user_request' 
+			format). This type of request is typically (but not required
+			 to be) used  in case of a non OFDMA reception, where a 
+			BA needs to be send back as response.
+			It is mode is typically (but not required to be) used by
+			 TXPCU in case of sending a Multi STA BA
+			Note that this request can only be used to retrieve bitmaps
+			 that are generated as result of the just received PPDU, 
+			and can not be used to retrieve bitmaps of earlier received
+			 PPDUs.
+			
+			
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_OFFSET                            0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_LSB                               0
+#define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_MSB                               0
+#define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_MASK                              0x0000000000000001
+
+
+/* Description		USER_REQUEST_TYPE
+
+			Field only valid when Explicit_user_request is set
+			
+			<enum 0 bitmap_req_user_number_based> The request is based
+			 on a user_number. This method is typically used in case
+			 of SIFS response for Multi User BA
+			
+			<enum 1 bitmap_req_sw_peer_id_based> The request is based
+			 on the sw_peer_id.  This method is typically used in the
+			 response to response scenario where TXPCU got a new scheduling
+			 command for the response to response part, and SW now explicitly
+			 indicates for which STAs a BA shall be requested.
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_OFFSET                                0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_LSB                                   1
+#define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_MSB                                   1
+#define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_MASK                                  0x0000000000000002
+
+
+/* Description		USER_NUMBER
+
+			Field only valid when Explicit_user_request is set 
+			and User_request_type is set to bitmap_req_user_number_based
+			
+			
+			The user number for which the bitmap is requested.
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_USER_NUMBER_OFFSET                                      0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_USER_NUMBER_LSB                                         2
+#define RX_FRAME_BITMAP_REQ_USER_NUMBER_MSB                                         7
+#define RX_FRAME_BITMAP_REQ_USER_NUMBER_MASK                                        0x00000000000000fc
+
+
+/* Description		SW_PEER_ID
+
+			Field only valid when Explicit_user_request is set 
+			and User_request_type is set to bitmap_req_sw_peer_id_based
+			
+			
+			The sw_peer_id for which the bitmap is requested. 
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_SW_PEER_ID_OFFSET                                       0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_SW_PEER_ID_LSB                                          8
+#define RX_FRAME_BITMAP_REQ_SW_PEER_ID_MSB                                          23
+#define RX_FRAME_BITMAP_REQ_SW_PEER_ID_MASK                                         0x0000000000ffff00
+
+
+/* Description		TID_SPECIFIC_REQUEST
+
+			Field only valid when Explicit_user_request is set
+			
+			When set, the request is going out for a specific TID, indicated
+			 in field TID
+			
+			When clear, it is up to RXPCU to determine in which order
+			 it wants to return bitmaps to TXPCU. Note that these bitmaps
+			 do need to all belong the the requested user, as Explicit_user_request
+			 has also been set. 
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_OFFSET                             0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_LSB                                24
+#define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_MSB                                24
+#define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_MASK                               0x0000000001000000
+
+
+/* Description		REQUESTED_TID
+
+			Field only valid when Explicit_user_request is set 
+			and User_request_type is set to bitmap_req_sw_peer_id_based
+			
+			and Tid_specific_request is set
+			
+			The TID for which a BA bitmap is requested
+			<legal all>
+*/
+
+#define RX_FRAME_BITMAP_REQ_REQUESTED_TID_OFFSET                                    0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_REQUESTED_TID_LSB                                       25
+#define RX_FRAME_BITMAP_REQ_REQUESTED_TID_MSB                                       28
+#define RX_FRAME_BITMAP_REQ_REQUESTED_TID_MASK                                      0x000000001e000000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_FRAME_BITMAP_REQ_RESERVED_0_OFFSET                                       0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_RESERVED_0_LSB                                          29
+#define RX_FRAME_BITMAP_REQ_RESERVED_0_MSB                                          31
+#define RX_FRAME_BITMAP_REQ_RESERVED_0_MASK                                         0x00000000e0000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_FRAME_BITMAP_REQ_TLV64_PADDING_OFFSET                                    0x0000000000000000
+#define RX_FRAME_BITMAP_REQ_TLV64_PADDING_LSB                                       32
+#define RX_FRAME_BITMAP_REQ_TLV64_PADDING_MSB                                       63
+#define RX_FRAME_BITMAP_REQ_TLV64_PADDING_MASK                                      0xffffffff00000000
+
+
+
+#endif   // RX_FRAME_BITMAP_REQ
diff --git a/hw/qca5332/rx_location_info.h b/hw/qca5332/rx_location_info.h
new file mode 100644
index 0000000..f8eaddd
--- /dev/null
+++ b/hw/qca5332/rx_location_info.h
@@ -0,0 +1,1035 @@
+
+/* 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 _RX_LOCATION_INFO_H_
+#define _RX_LOCATION_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_LOCATION_INFO 28
+
+
+struct rx_location_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_location_info_valid                                  :  1, // [0:0]
+                      rtt_hw_ifft_mode                                        :  1, // [1:1]
+                      rtt_11az_mode                                           :  2, // [3:2]
+                      reserved_0                                              :  4, // [7:4]
+                      rtt_num_fac                                             :  8, // [15:8]
+                      rtt_rx_chain_mask                                       :  8, // [23:16]
+                      rtt_num_streams                                         :  8; // [31:24]
+             uint32_t rtt_first_selected_chain                                :  8, // [7:0]
+                      rtt_second_selected_chain                               :  8, // [15:8]
+                      rtt_cfr_status                                          :  8, // [23:16]
+                      rtt_cir_status                                          :  8; // [31:24]
+             uint32_t rtt_che_buffer_pointer_low32                            : 32; // [31:0]
+             uint32_t rtt_che_buffer_pointer_high8                            :  8, // [7:0]
+                      reserved_3                                              :  8, // [15:8]
+                      rtt_pkt_bw_vht                                          :  4, // [19:16]
+                      rtt_pkt_bw_leg                                          :  4, // [23:20]
+                      rtt_mcs_rate                                            :  8; // [31:24]
+             uint32_t rtt_cfo_measurement                                     : 16, // [15:0]
+                      rtt_preamble_type                                       :  8, // [23:16]
+                      rtt_gi_type                                             :  8; // [31:24]
+             uint32_t rx_start_ts                                             : 32; // [31:0]
+             uint32_t rx_start_ts_upper                                       : 32; // [31:0]
+             uint32_t rx_end_ts                                               : 32; // [31:0]
+             uint32_t gain_chain0                                             : 16, // [15:0]
+                      gain_chain1                                             : 16; // [31:16]
+             uint32_t gain_chain2                                             : 16, // [15:0]
+                      gain_chain3                                             : 16; // [31:16]
+             uint32_t gain_report_status                                      :  8, // [7:0]
+                      rtt_timing_backoff_sel                                  :  8, // [15:8]
+                      rtt_fac_combined                                        : 16; // [31:16]
+             uint32_t rtt_fac_0                                               : 16, // [15:0]
+                      rtt_fac_1                                               : 16; // [31:16]
+             uint32_t rtt_fac_2                                               : 16, // [15:0]
+                      rtt_fac_3                                               : 16; // [31:16]
+             uint32_t rtt_fac_4                                               : 16, // [15:0]
+                      rtt_fac_5                                               : 16; // [31:16]
+             uint32_t rtt_fac_6                                               : 16, // [15:0]
+                      rtt_fac_7                                               : 16; // [31:16]
+             uint32_t rtt_fac_8                                               : 16, // [15:0]
+                      rtt_fac_9                                               : 16; // [31:16]
+             uint32_t rtt_fac_10                                              : 16, // [15:0]
+                      rtt_fac_11                                              : 16; // [31:16]
+             uint32_t rtt_fac_12                                              : 16, // [15:0]
+                      rtt_fac_13                                              : 16; // [31:16]
+             uint32_t rtt_fac_14                                              : 16, // [15:0]
+                      rtt_fac_15                                              : 16; // [31:16]
+             uint32_t rtt_fac_16                                              : 16, // [15:0]
+                      rtt_fac_17                                              : 16; // [31:16]
+             uint32_t rtt_fac_18                                              : 16, // [15:0]
+                      rtt_fac_19                                              : 16; // [31:16]
+             uint32_t rtt_fac_20                                              : 16, // [15:0]
+                      rtt_fac_21                                              : 16; // [31:16]
+             uint32_t rtt_fac_22                                              : 16, // [15:0]
+                      rtt_fac_23                                              : 16; // [31:16]
+             uint32_t rtt_fac_24                                              : 16, // [15:0]
+                      rtt_fac_25                                              : 16; // [31:16]
+             uint32_t rtt_fac_26                                              : 16, // [15:0]
+                      rtt_fac_27                                              : 16; // [31:16]
+             uint32_t rtt_fac_28                                              : 16, // [15:0]
+                      rtt_fac_29                                              : 16; // [31:16]
+             uint32_t rtt_fac_30                                              : 16, // [15:0]
+                      rtt_fac_31                                              : 16; // [31:16]
+             uint32_t reserved_27a                                            : 32; // [31:0]
+#else
+             uint32_t rtt_num_streams                                         :  8, // [31:24]
+                      rtt_rx_chain_mask                                       :  8, // [23:16]
+                      rtt_num_fac                                             :  8, // [15:8]
+                      reserved_0                                              :  4, // [7:4]
+                      rtt_11az_mode                                           :  2, // [3:2]
+                      rtt_hw_ifft_mode                                        :  1, // [1:1]
+                      rx_location_info_valid                                  :  1; // [0:0]
+             uint32_t rtt_cir_status                                          :  8, // [31:24]
+                      rtt_cfr_status                                          :  8, // [23:16]
+                      rtt_second_selected_chain                               :  8, // [15:8]
+                      rtt_first_selected_chain                                :  8; // [7:0]
+             uint32_t rtt_che_buffer_pointer_low32                            : 32; // [31:0]
+             uint32_t rtt_mcs_rate                                            :  8, // [31:24]
+                      rtt_pkt_bw_leg                                          :  4, // [23:20]
+                      rtt_pkt_bw_vht                                          :  4, // [19:16]
+                      reserved_3                                              :  8, // [15:8]
+                      rtt_che_buffer_pointer_high8                            :  8; // [7:0]
+             uint32_t rtt_gi_type                                             :  8, // [31:24]
+                      rtt_preamble_type                                       :  8, // [23:16]
+                      rtt_cfo_measurement                                     : 16; // [15:0]
+             uint32_t rx_start_ts                                             : 32; // [31:0]
+             uint32_t rx_start_ts_upper                                       : 32; // [31:0]
+             uint32_t rx_end_ts                                               : 32; // [31:0]
+             uint32_t gain_chain1                                             : 16, // [31:16]
+                      gain_chain0                                             : 16; // [15:0]
+             uint32_t gain_chain3                                             : 16, // [31:16]
+                      gain_chain2                                             : 16; // [15:0]
+             uint32_t rtt_fac_combined                                        : 16, // [31:16]
+                      rtt_timing_backoff_sel                                  :  8, // [15:8]
+                      gain_report_status                                      :  8; // [7:0]
+             uint32_t rtt_fac_1                                               : 16, // [31:16]
+                      rtt_fac_0                                               : 16; // [15:0]
+             uint32_t rtt_fac_3                                               : 16, // [31:16]
+                      rtt_fac_2                                               : 16; // [15:0]
+             uint32_t rtt_fac_5                                               : 16, // [31:16]
+                      rtt_fac_4                                               : 16; // [15:0]
+             uint32_t rtt_fac_7                                               : 16, // [31:16]
+                      rtt_fac_6                                               : 16; // [15:0]
+             uint32_t rtt_fac_9                                               : 16, // [31:16]
+                      rtt_fac_8                                               : 16; // [15:0]
+             uint32_t rtt_fac_11                                              : 16, // [31:16]
+                      rtt_fac_10                                              : 16; // [15:0]
+             uint32_t rtt_fac_13                                              : 16, // [31:16]
+                      rtt_fac_12                                              : 16; // [15:0]
+             uint32_t rtt_fac_15                                              : 16, // [31:16]
+                      rtt_fac_14                                              : 16; // [15:0]
+             uint32_t rtt_fac_17                                              : 16, // [31:16]
+                      rtt_fac_16                                              : 16; // [15:0]
+             uint32_t rtt_fac_19                                              : 16, // [31:16]
+                      rtt_fac_18                                              : 16; // [15:0]
+             uint32_t rtt_fac_21                                              : 16, // [31:16]
+                      rtt_fac_20                                              : 16; // [15:0]
+             uint32_t rtt_fac_23                                              : 16, // [31:16]
+                      rtt_fac_22                                              : 16; // [15:0]
+             uint32_t rtt_fac_25                                              : 16, // [31:16]
+                      rtt_fac_24                                              : 16; // [15:0]
+             uint32_t rtt_fac_27                                              : 16, // [31:16]
+                      rtt_fac_26                                              : 16; // [15:0]
+             uint32_t rtt_fac_29                                              : 16, // [31:16]
+                      rtt_fac_28                                              : 16; // [15:0]
+             uint32_t rtt_fac_31                                              : 16, // [31:16]
+                      rtt_fac_30                                              : 16; // [15:0]
+             uint32_t reserved_27a                                            : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RX_LOCATION_INFO_VALID
+
+			<enum 0 rx_location_info_is_not_valid>
+			<enum 1 rx_location_info_is_valid>
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_OFFSET                              0x00000000
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_LSB                                 0
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_MSB                                 0
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_MASK                                0x00000001
+
+
+/* Description		RTT_HW_IFFT_MODE
+
+			Indicator showing if HW IFFT mode or SW IFFT mode
+			
+			<enum 0 location_sw_ifft_mode>
+			<enum 1 location_hw_ifft_mode>
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_OFFSET                                    0x00000000
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_LSB                                       1
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_MSB                                       1
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_MASK                                      0x00000002
+
+
+/* Description		RTT_11AZ_MODE
+
+			Indicator showing RTT5/.11mc or .11az mode for debug
+			
+			<enum 0 location_rtt5_mode> legacy RTT5/.11mc mode
+			<enum 1 location_11az_ISTA> .11az ISTA location info. sent
+			 on Rx path after receiving R2I LMR
+			<enum 2 location_RSVD>
+			<enum 3 location_11az_RSTA> .11az RSTA location info. sent
+			 on Tx path after transmitting R2I LMR
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_OFFSET                                       0x00000000
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_LSB                                          2
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_MSB                                          3
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_MASK                                         0x0000000c
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_LOCATION_INFO_RESERVED_0_OFFSET                                          0x00000000
+#define RX_LOCATION_INFO_RESERVED_0_LSB                                             4
+#define RX_LOCATION_INFO_RESERVED_0_MSB                                             7
+#define RX_LOCATION_INFO_RESERVED_0_MASK                                            0x000000f0
+
+
+/* Description		RTT_NUM_FAC
+
+			Number of valid first arrival correction (FAC) values (in
+			 fields rtt_fac_0 - rtt_fac_31)
+			<legal 0-32>
+*/
+
+#define RX_LOCATION_INFO_RTT_NUM_FAC_OFFSET                                         0x00000000
+#define RX_LOCATION_INFO_RTT_NUM_FAC_LSB                                            8
+#define RX_LOCATION_INFO_RTT_NUM_FAC_MSB                                            15
+#define RX_LOCATION_INFO_RTT_NUM_FAC_MASK                                           0x0000ff00
+
+
+/* Description		RTT_RX_CHAIN_MASK
+
+			Rx chain mask, each bit is a Rx chain
+			0: the Rx chain is not used
+			1: the Rx chain is used
+			
+			Up to 4 Rx chains are supported.
+			
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_OFFSET                                   0x00000000
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_LSB                                      16
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_MSB                                      23
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_MASK                                     0x00ff0000
+
+
+/* Description		RTT_NUM_STREAMS
+
+			Number of streams used
+			
+			Up to 8 streams are supported.
+			
+			<legal 0-8>
+*/
+
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_OFFSET                                     0x00000000
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_LSB                                        24
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_MSB                                        31
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_MASK                                       0xff000000
+
+
+/* Description		RTT_FIRST_SELECTED_CHAIN
+
+			For legacy RTT5/.11mc mode, this field shows the first selected
+			 Rx chain that is used for FAC calculations, when forced
+			 by a virtual register.
+			
+			<enum 0 location_selected_chain_is_0>
+			<enum 1 location_selected_chain_is_1>
+			<enum 2 location_selected_chain_is_2>
+			<enum 3 location_selected_chain_is_3>
+			<legal 0-3>
+*/
+
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_OFFSET                            0x00000004
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_LSB                               0
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_MSB                               7
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_MASK                              0x000000ff
+
+
+/* Description		RTT_SECOND_SELECTED_CHAIN
+
+			For legacy RTT5/.11mc mode, this field shows the second 
+			selected Rx chain that is used for FAC calculations, when
+			 forced by a virtual register.
+			
+			<enum 0 location_selected_chain_is_0>
+			<enum 1 location_selected_chain_is_1>
+			<enum 2 location_selected_chain_is_2>
+			<enum 3 location_selected_chain_is_3>
+			<legal 0-3>
+*/
+
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_OFFSET                           0x00000004
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_LSB                              8
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_MSB                              15
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_MASK                             0x0000ff00
+
+
+/* Description		RTT_CFR_STATUS
+
+			Status of channel frequency response dump
+			
+			<enum 0 location_CFR_dump_not_valid>
+			<enum 1 location_CFR_dump_valid>
+			<legal 0-1>
+*/
+
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_OFFSET                                      0x00000004
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_LSB                                         16
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_MSB                                         23
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_MASK                                        0x00ff0000
+
+
+/* Description		RTT_CIR_STATUS
+
+			Status of channel impulse response dump
+			
+			<enum 0 location_CIR_dump_not_valid>
+			<enum 1 location_CIR_dump_valid>
+			<legal 0-1>
+*/
+
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_OFFSET                                      0x00000004
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_LSB                                         24
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_MSB                                         31
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_MASK                                        0xff000000
+
+
+/* Description		RTT_CHE_BUFFER_POINTER_LOW32
+
+			The low 32 bits of the 40 bits pointer pointed to the external
+			 RTT channel information buffer
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET                        0x00000008
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_LSB                           0
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_MSB                           31
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_MASK                          0xffffffff
+
+
+/* Description		RTT_CHE_BUFFER_POINTER_HIGH8
+
+			The high 8 bits of the 40 bits pointer pointed to the external
+			 RTT channel information buffer
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET                        0x0000000c
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_LSB                           0
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_MSB                           7
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_MASK                          0x000000ff
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define RX_LOCATION_INFO_RESERVED_3_OFFSET                                          0x0000000c
+#define RX_LOCATION_INFO_RESERVED_3_LSB                                             8
+#define RX_LOCATION_INFO_RESERVED_3_MSB                                             15
+#define RX_LOCATION_INFO_RESERVED_3_MASK                                            0x0000ff00
+
+
+/* Description		RTT_PKT_BW_VHT
+
+			Indicate the bandwidth of (V)HT/HE-LTF
+			
+			<enum 0 location_pkt_bw_20MHz>
+			<enum 1 location_pkt_bw_40MHz>
+			<enum 2 location_pkt_bw_80MHz>
+			<enum 3 location_pkt_bw_160MHz>
+			<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 240 MHz.
+			<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 320 MHz.
+			<legal 0-5>
+*/
+
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_OFFSET                                      0x0000000c
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_LSB                                         16
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_MSB                                         19
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_MASK                                        0x000f0000
+
+
+/* Description		RTT_PKT_BW_LEG
+
+			Indicate the bandwidth of L-LTF
+			
+			<enum 0 location_pkt_bw_20MHz>
+			<enum 1 location_pkt_bw_40MHz>
+			<enum 2 location_pkt_bw_80MHz>
+			<enum 3 location_pkt_bw_160MHz>
+			<enum 4 location_pkt_bw_240MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 240 MHz.
+			<enum 5 location_pkt_bw_320MHz> Only valid for CFR, FAC 
+			calculations are not PoR for 320 MHz.
+			<legal 0-5>
+*/
+
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_OFFSET                                      0x0000000c
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_LSB                                         20
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_MSB                                         23
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_MASK                                        0x00f00000
+
+
+/* Description		RTT_MCS_RATE
+
+			Bits 0~4 indicate MCS rate, if Legacy, 
+			0: 48 Mbps,
+			1: 24 Mbps,
+			2: 12 Mbps,
+			3: 6 Mbps,
+			4: 54 Mbps,
+			5: 36 Mbps,
+			6: 18 Mbps,
+			7: 9 Mbps,
+			8-15: reserved
+			
+			if HT, 0-7: MCS0-MCS7, 8-15: reserved,
+			if VHT, 0-9: MCS0-MCS9, 10-15: reserved,
+			if HE or EHT, 0-11: MCS0-MCS11, 12-13: 4096QAM, 14-15: reserved
+			
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_MCS_RATE_OFFSET                                        0x0000000c
+#define RX_LOCATION_INFO_RTT_MCS_RATE_LSB                                           24
+#define RX_LOCATION_INFO_RTT_MCS_RATE_MSB                                           31
+#define RX_LOCATION_INFO_RTT_MCS_RATE_MASK                                          0xff000000
+
+
+/* Description		RTT_CFO_MEASUREMENT
+
+			CFO measurement. Needed for passive locationing
+			
+			14 bits, signed 1.13. 13 bits fraction to provide a resolution
+			 of 153 Hz
+			
+			In units of cycles/800 ns
+			<legal 0-16383>
+*/
+
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_OFFSET                                 0x00000010
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_LSB                                    0
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_MSB                                    15
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_MASK                                   0x0000ffff
+
+
+/* Description		RTT_PREAMBLE_TYPE
+
+			Indicate preamble type
+			
+			<enum 0 location_preamble_type_legacy>
+			<enum 1 location_preamble_type_ht>
+			<enum 2 location_preamble_type_vht>
+			<enum 3 location_preamble_type_he_su_4xltf>
+			<enum 4 location_preamble_type_he_su_2xltf>
+			<enum 5 location_preamble_type_he_su_1xltf>
+			<enum 6 location_preamble_type_he_trigger_based_ul_4xltf>
+			
+			<enum 7 location_preamble_type_he_trigger_based_ul_2xltf>
+			
+			<enum 8 location_preamble_type_he_trigger_based_ul_1xltf>
+			
+			<enum 9 location_preamble_type_he_mu_4xltf>
+			<enum 10 location_preamble_type_he_mu_2xltf>
+			<enum 11 location_preamble_type_he_mu_1xltf>
+			<enum 12 location_preamble_type_he_extended_range_su_4xltf>
+			
+			<enum 13 location_preamble_type_he_extended_range_su_2xltf>
+			
+			<enum 14 location_preamble_type_he_extended_range_su_1xltf>
+			
+			<legal 0-14>
+*/
+
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_OFFSET                                   0x00000010
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_LSB                                      16
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_MSB                                      23
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_MASK                                     0x00ff0000
+
+
+/* Description		RTT_GI_TYPE
+
+			Indicate GI (guard interval) type
+			
+			<enum 0 location_gi_0_8_us > HE related GI. Can also be 
+			used for HE
+			<enum 1 location_gi_0_4_us > HE related GI. Can also be 
+			used for HE
+			<enum 2 location_gi_1_6_us > HE related GI
+			<enum 3 location_gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RX_LOCATION_INFO_RTT_GI_TYPE_OFFSET                                         0x00000010
+#define RX_LOCATION_INFO_RTT_GI_TYPE_LSB                                            24
+#define RX_LOCATION_INFO_RTT_GI_TYPE_MSB                                            31
+#define RX_LOCATION_INFO_RTT_GI_TYPE_MASK                                           0xff000000
+
+
+/* Description		RX_START_TS
+
+			RX packet start timestamp lower 32 bits
+			
+			It reports the time the first L-STF ADC sample arrived at
+			 RX antenna.
+			
+			The clock unit is 960MHz.
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RX_START_TS_OFFSET                                         0x00000014
+#define RX_LOCATION_INFO_RX_START_TS_LSB                                            0
+#define RX_LOCATION_INFO_RX_START_TS_MSB                                            31
+#define RX_LOCATION_INFO_RX_START_TS_MASK                                           0xffffffff
+
+
+/* Description		RX_START_TS_UPPER
+
+			RX packet start timestamp upper 32 bits
+			
+			It reports the time the first L-STF ADC sample arrived at
+			 RX antenna.
+			
+			The clock unit is 960MHz.
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_OFFSET                                   0x00000018
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_LSB                                      0
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_MSB                                      31
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_MASK                                     0xffffffff
+
+
+/* Description		RX_END_TS
+
+			RX packet end timestamp lower 32 bits
+			
+			It reports the time the last symbol's last ADC sample arrived
+			 at RX antenna.
+			
+			The clock unit is 960MHz. Only 32 bits are reported.
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RX_END_TS_OFFSET                                           0x0000001c
+#define RX_LOCATION_INFO_RX_END_TS_LSB                                              0
+#define RX_LOCATION_INFO_RX_END_TS_MSB                                              31
+#define RX_LOCATION_INFO_RX_END_TS_MASK                                             0xffffffff
+
+
+/* Description		GAIN_CHAIN0
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain0
+*/
+
+#define RX_LOCATION_INFO_GAIN_CHAIN0_OFFSET                                         0x00000020
+#define RX_LOCATION_INFO_GAIN_CHAIN0_LSB                                            0
+#define RX_LOCATION_INFO_GAIN_CHAIN0_MSB                                            15
+#define RX_LOCATION_INFO_GAIN_CHAIN0_MASK                                           0x0000ffff
+
+
+/* Description		GAIN_CHAIN1
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain1
+*/
+
+#define RX_LOCATION_INFO_GAIN_CHAIN1_OFFSET                                         0x00000020
+#define RX_LOCATION_INFO_GAIN_CHAIN1_LSB                                            16
+#define RX_LOCATION_INFO_GAIN_CHAIN1_MSB                                            31
+#define RX_LOCATION_INFO_GAIN_CHAIN1_MASK                                           0xffff0000
+
+
+/* Description		GAIN_CHAIN2
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain2
+*/
+
+#define RX_LOCATION_INFO_GAIN_CHAIN2_OFFSET                                         0x00000024
+#define RX_LOCATION_INFO_GAIN_CHAIN2_LSB                                            0
+#define RX_LOCATION_INFO_GAIN_CHAIN2_MSB                                            15
+#define RX_LOCATION_INFO_GAIN_CHAIN2_MASK                                           0x0000ffff
+
+
+/* Description		GAIN_CHAIN3
+
+			Reports the total gain in dB and the gain table index to
+			 support angle of arrival for chain3
+*/
+
+#define RX_LOCATION_INFO_GAIN_CHAIN3_OFFSET                                         0x00000024
+#define RX_LOCATION_INFO_GAIN_CHAIN3_LSB                                            16
+#define RX_LOCATION_INFO_GAIN_CHAIN3_MSB                                            31
+#define RX_LOCATION_INFO_GAIN_CHAIN3_MASK                                           0xffff0000
+
+
+/* Description		GAIN_REPORT_STATUS
+
+			Number of valid gain reports (in fields gain_chain0 - gain_chain_3)
+			
+			<legal 0-4>
+*/
+
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_OFFSET                                  0x00000028
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_LSB                                     0
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_MSB                                     7
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_MASK                                    0x000000ff
+
+
+/* Description		RTT_TIMING_BACKOFF_SEL
+
+			Indicate which timing backoff value is used
+			
+			<enum 0 timing_backoff_low_rssi>
+			<enum 1 timing_backoff_mid_rssi>
+			<enum 2 timing_backoff_high_rssi>
+			<enum 3 reserved>
+			<legal 0-3>
+*/
+
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_OFFSET                              0x00000028
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_LSB                                 8
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_MSB                                 15
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_MASK                                0x0000ff00
+
+
+/* Description		RTT_FAC_COMBINED
+
+			Final adjusted and combined first arrival correction value
+			
+			<legal all>
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_OFFSET                                    0x00000028
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_LSB                                       16
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_MSB                                       31
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_MASK                                      0xffff0000
+
+
+/* Description		RTT_FAC_0
+
+			The fields 'rtt_fac_0' - 'rtt_fac_31' show the RTT first
+			 arrival correction (FAC) value computed from the LTFs on
+			 the selected Rx chains.
+			
+			16 bits, signed 11.5. 11 integer bits to cover -3.2us to
+			 3.2us, and 5 fraction bits to cover 160 MHz with 32x FAC
+			 interpolation.
+			
+			The clock unit is 320MHz.
+			
+			For .11az/MIMO, the FACs will be stored in spatial stream
+			 order with multiple chains reported together for each stream. [ss0-ch0, 
+			ss0-ch1, ..., ss1-ch0, ss1-ch1, ...]
+			
+			For legacy RTT5/.11mc, the FACs will be stored in preamble
+			 order with multiple chains reported together for each LTF. [legacy-ch0, 
+			legacy-ch1, ..., (v)ht/he-ch0, (v)ht/he-ch1, ...]
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_0_OFFSET                                           0x0000002c
+#define RX_LOCATION_INFO_RTT_FAC_0_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_0_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_0_MASK                                             0x0000ffff
+
+
+/* Description		RTT_FAC_1
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_1_OFFSET                                           0x0000002c
+#define RX_LOCATION_INFO_RTT_FAC_1_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_1_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_1_MASK                                             0xffff0000
+
+
+/* Description		RTT_FAC_2
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_2_OFFSET                                           0x00000030
+#define RX_LOCATION_INFO_RTT_FAC_2_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_2_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_2_MASK                                             0x0000ffff
+
+
+/* Description		RTT_FAC_3
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_3_OFFSET                                           0x00000030
+#define RX_LOCATION_INFO_RTT_FAC_3_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_3_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_3_MASK                                             0xffff0000
+
+
+/* Description		RTT_FAC_4
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_4_OFFSET                                           0x00000034
+#define RX_LOCATION_INFO_RTT_FAC_4_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_4_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_4_MASK                                             0x0000ffff
+
+
+/* Description		RTT_FAC_5
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_5_OFFSET                                           0x00000034
+#define RX_LOCATION_INFO_RTT_FAC_5_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_5_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_5_MASK                                             0xffff0000
+
+
+/* Description		RTT_FAC_6
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_6_OFFSET                                           0x00000038
+#define RX_LOCATION_INFO_RTT_FAC_6_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_6_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_6_MASK                                             0x0000ffff
+
+
+/* Description		RTT_FAC_7
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_7_OFFSET                                           0x00000038
+#define RX_LOCATION_INFO_RTT_FAC_7_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_7_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_7_MASK                                             0xffff0000
+
+
+/* Description		RTT_FAC_8
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_8_OFFSET                                           0x0000003c
+#define RX_LOCATION_INFO_RTT_FAC_8_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_8_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_8_MASK                                             0x0000ffff
+
+
+/* Description		RTT_FAC_9
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_9_OFFSET                                           0x0000003c
+#define RX_LOCATION_INFO_RTT_FAC_9_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_9_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_9_MASK                                             0xffff0000
+
+
+/* Description		RTT_FAC_10
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_10_OFFSET                                          0x00000040
+#define RX_LOCATION_INFO_RTT_FAC_10_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_10_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_10_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_11
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_11_OFFSET                                          0x00000040
+#define RX_LOCATION_INFO_RTT_FAC_11_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_11_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_11_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_12
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_12_OFFSET                                          0x00000044
+#define RX_LOCATION_INFO_RTT_FAC_12_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_12_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_12_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_13
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_13_OFFSET                                          0x00000044
+#define RX_LOCATION_INFO_RTT_FAC_13_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_13_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_13_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_14
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_14_OFFSET                                          0x00000048
+#define RX_LOCATION_INFO_RTT_FAC_14_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_14_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_14_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_15
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_15_OFFSET                                          0x00000048
+#define RX_LOCATION_INFO_RTT_FAC_15_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_15_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_15_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_16
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_16_OFFSET                                          0x0000004c
+#define RX_LOCATION_INFO_RTT_FAC_16_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_16_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_16_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_17
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_17_OFFSET                                          0x0000004c
+#define RX_LOCATION_INFO_RTT_FAC_17_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_17_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_17_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_18
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_18_OFFSET                                          0x00000050
+#define RX_LOCATION_INFO_RTT_FAC_18_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_18_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_18_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_19
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_19_OFFSET                                          0x00000050
+#define RX_LOCATION_INFO_RTT_FAC_19_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_19_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_19_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_20
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_20_OFFSET                                          0x00000054
+#define RX_LOCATION_INFO_RTT_FAC_20_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_20_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_20_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_21
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_21_OFFSET                                          0x00000054
+#define RX_LOCATION_INFO_RTT_FAC_21_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_21_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_21_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_22
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_22_OFFSET                                          0x00000058
+#define RX_LOCATION_INFO_RTT_FAC_22_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_22_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_22_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_23
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_23_OFFSET                                          0x00000058
+#define RX_LOCATION_INFO_RTT_FAC_23_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_23_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_23_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_24
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_24_OFFSET                                          0x0000005c
+#define RX_LOCATION_INFO_RTT_FAC_24_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_24_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_24_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_25
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_25_OFFSET                                          0x0000005c
+#define RX_LOCATION_INFO_RTT_FAC_25_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_25_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_25_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_26
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_26_OFFSET                                          0x00000060
+#define RX_LOCATION_INFO_RTT_FAC_26_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_26_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_26_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_27
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_27_OFFSET                                          0x00000060
+#define RX_LOCATION_INFO_RTT_FAC_27_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_27_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_27_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_28
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_28_OFFSET                                          0x00000064
+#define RX_LOCATION_INFO_RTT_FAC_28_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_28_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_28_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_29
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_29_OFFSET                                          0x00000064
+#define RX_LOCATION_INFO_RTT_FAC_29_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_29_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_29_MASK                                            0xffff0000
+
+
+/* Description		RTT_FAC_30
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_30_OFFSET                                          0x00000068
+#define RX_LOCATION_INFO_RTT_FAC_30_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_30_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_30_MASK                                            0x0000ffff
+
+
+/* Description		RTT_FAC_31
+
+			See 'rtt_fac_0' description
+*/
+
+#define RX_LOCATION_INFO_RTT_FAC_31_OFFSET                                          0x00000068
+#define RX_LOCATION_INFO_RTT_FAC_31_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_31_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_31_MASK                                            0xffff0000
+
+
+/* Description		RESERVED_27A
+
+			<legal 0>
+*/
+
+#define RX_LOCATION_INFO_RESERVED_27A_OFFSET                                        0x0000006c
+#define RX_LOCATION_INFO_RESERVED_27A_LSB                                           0
+#define RX_LOCATION_INFO_RESERVED_27A_MSB                                           31
+#define RX_LOCATION_INFO_RESERVED_27A_MASK                                          0xffffffff
+
+
+
+#endif   // RX_LOCATION_INFO
diff --git a/hw/qca5332/rx_mpdu_desc_info.h b/hw/qca5332/rx_mpdu_desc_info.h
new file mode 100644
index 0000000..e8376d5
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_desc_info.h
@@ -0,0 +1,255 @@
+
+/* 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 _RX_MPDU_DESC_INFO_H_
+#define _RX_MPDU_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MPDU_DESC_INFO 2
+
+
+struct rx_mpdu_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t msdu_count                                              :  8, // [7:0]
+                      fragment_flag                                           :  1, // [8:8]
+                      mpdu_retry_bit                                          :  1, // [9:9]
+                      ampdu_flag                                              :  1, // [10:10]
+                      bar_frame                                               :  1, // [11:11]
+                      pn_fields_contain_valid_info                            :  1, // [12:12]
+                      raw_mpdu                                                :  1, // [13:13]
+                      more_fragment_flag                                      :  1, // [14:14]
+                      src_info                                                : 12, // [26:15]
+                      mpdu_qos_control_valid                                  :  1, // [27:27]
+                      tid                                                     :  4; // [31:28]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+#else
+             uint32_t tid                                                     :  4, // [31:28]
+                      mpdu_qos_control_valid                                  :  1, // [27:27]
+                      src_info                                                : 12, // [26:15]
+                      more_fragment_flag                                      :  1, // [14:14]
+                      raw_mpdu                                                :  1, // [13:13]
+                      pn_fields_contain_valid_info                            :  1, // [12:12]
+                      bar_frame                                               :  1, // [11:11]
+                      ampdu_flag                                              :  1, // [10:10]
+                      mpdu_retry_bit                                          :  1, // [9:9]
+                      fragment_flag                                           :  1, // [8:8]
+                      msdu_count                                              :  8; // [7:0]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_OFFSET                                         0x00000000
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_LSB                                            0
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_MSB                                            7
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_MASK                                           0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_OFFSET                                      0x00000000
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_LSB                                         8
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_MSB                                         8
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_MASK                                        0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_OFFSET                                     0x00000000
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_LSB                                        9
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_MSB                                        9
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_MASK                                       0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_OFFSET                                         0x00000000
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_LSB                                            10
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_MSB                                            10
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_MASK                                           0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_BAR_FRAME_OFFSET                                          0x00000000
+#define RX_MPDU_DESC_INFO_BAR_FRAME_LSB                                             11
+#define RX_MPDU_DESC_INFO_BAR_FRAME_MSB                                             11
+#define RX_MPDU_DESC_INFO_BAR_FRAME_MASK                                            0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET                       0x00000000
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_LSB                          12
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_MSB                          12
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_MASK                         0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_RAW_MPDU_OFFSET                                           0x00000000
+#define RX_MPDU_DESC_INFO_RAW_MPDU_LSB                                              13
+#define RX_MPDU_DESC_INFO_RAW_MPDU_MSB                                              13
+#define RX_MPDU_DESC_INFO_RAW_MPDU_MASK                                             0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_OFFSET                                 0x00000000
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_LSB                                    14
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_MSB                                    14
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_MASK                                   0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_SRC_INFO_OFFSET                                           0x00000000
+#define RX_MPDU_DESC_INFO_SRC_INFO_LSB                                              15
+#define RX_MPDU_DESC_INFO_SRC_INFO_MSB                                              26
+#define RX_MPDU_DESC_INFO_SRC_INFO_MASK                                             0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_OFFSET                             0x00000000
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_LSB                                27
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_MSB                                27
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_MASK                               0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_TID_OFFSET                                                0x00000000
+#define RX_MPDU_DESC_INFO_TID_LSB                                                   28
+#define RX_MPDU_DESC_INFO_TID_MSB                                                   31
+#define RX_MPDU_DESC_INFO_TID_MASK                                                  0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_OFFSET                                     0x00000004
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_LSB                                        0
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_MSB                                        31
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_MASK                                       0xffffffff
+
+
+
+#endif   // RX_MPDU_DESC_INFO
diff --git a/hw/qca5332/rx_mpdu_details.h b/hw/qca5332/rx_mpdu_details.h
new file mode 100644
index 0000000..0b1445b
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_details.h
@@ -0,0 +1,391 @@
+
+/* 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 _RX_MPDU_DETAILS_H_
+#define _RX_MPDU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_DETAILS 4
+
+
+struct rx_mpdu_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          msdu_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+#else
+             struct   buffer_addr_info                                          msdu_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+#endif
+};
+
+
+/* Description		MSDU_LINK_DESC_ADDR_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Details of the physical address of the MSDU link descriptor
+			 that contains pointers to MSDUs related to this MPDU
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET            0x00000000
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB               0
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB               31
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK              0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET           0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB              0
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB              7
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK             0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET       0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB          8
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB          11
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK         0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET            0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB               12
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB               31
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK              0xfffff000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU that should be passed
+			 on from REO entrance ring to the REO destination ring
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET                 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB                    0
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB                    7
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK                   0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET              0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB                 8
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB                 8
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK                0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET             0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB                9
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB                9
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK               0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET                 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB                    10
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB                    10
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK                   0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET                  0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                     11
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                     11
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK                    0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB  12
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB  12
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET                   0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                      13
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                      13
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                     0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET         0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB            14
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB            14
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK           0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET                   0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                      15
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                      26
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                     0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET     0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB        27
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB        27
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK       0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                        0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                           28
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                           31
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                          0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET             0x0000000c
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB                0
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB                31
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK               0xffffffff
+
+
+
+#endif   // RX_MPDU_DETAILS
diff --git a/hw/qca5332/rx_mpdu_end.h b/hw/qca5332/rx_mpdu_end.h
new file mode 100644
index 0000000..0ffebd2
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_end.h
@@ -0,0 +1,541 @@
+
+/* 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 _RX_MPDU_END_H_
+#define _RX_MPDU_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MPDU_END 4
+
+#define NUM_OF_QWORDS_RX_MPDU_END 2
+
+
+struct rx_mpdu_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      reserved_0                                              :  7, // [15:9]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t reserved_1a                                             : 11, // [10:0]
+                      unsup_ktype_short_frame                                 :  1, // [11:11]
+                      rx_in_tx_decrypt_byp                                    :  1, // [12:12]
+                      overflow_err                                            :  1, // [13:13]
+                      mpdu_length_err                                         :  1, // [14:14]
+                      tkip_mic_err                                            :  1, // [15:15]
+                      decrypt_err                                             :  1, // [16:16]
+                      unencrypted_frame_err                                   :  1, // [17:17]
+                      pn_fields_contain_valid_info                            :  1, // [18:18]
+                      fcs_err                                                 :  1, // [19:19]
+                      msdu_length_err                                         :  1, // [20:20]
+                      rxdma0_destination_ring                                 :  3, // [23:21]
+                      rxdma1_destination_ring                                 :  3, // [26:24]
+                      decrypt_status_code                                     :  3, // [29:27]
+                      rx_bitmap_not_updated                                   :  1, // [30:30]
+                      reserved_1b                                             :  1; // [31:31]
+             uint32_t reserved_2a                                             : 15, // [14:0]
+                      rxpcu_mgmt_sequence_nr_valid                            :  1, // [15:15]
+                      rxpcu_mgmt_sequence_nr                                  : 16; // [31:16]
+             uint32_t rxframe_assert_mlo_timestamp                            : 32; // [31:0]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_0                                              :  7, // [15:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t reserved_1b                                             :  1, // [31:31]
+                      rx_bitmap_not_updated                                   :  1, // [30:30]
+                      decrypt_status_code                                     :  3, // [29:27]
+                      rxdma1_destination_ring                                 :  3, // [26:24]
+                      rxdma0_destination_ring                                 :  3, // [23:21]
+                      msdu_length_err                                         :  1, // [20:20]
+                      fcs_err                                                 :  1, // [19:19]
+                      pn_fields_contain_valid_info                            :  1, // [18:18]
+                      unencrypted_frame_err                                   :  1, // [17:17]
+                      decrypt_err                                             :  1, // [16:16]
+                      tkip_mic_err                                            :  1, // [15:15]
+                      mpdu_length_err                                         :  1, // [14:14]
+                      overflow_err                                            :  1, // [13:13]
+                      rx_in_tx_decrypt_byp                                    :  1, // [12:12]
+                      unsup_ktype_short_frame                                 :  1, // [11:11]
+                      reserved_1a                                             : 11; // [10:0]
+             uint32_t rxpcu_mgmt_sequence_nr                                  : 16, // [31:16]
+                      rxpcu_mgmt_sequence_nr_valid                            :  1, // [15:15]
+                      reserved_2a                                             : 15; // [14:0]
+             uint32_t rxframe_assert_mlo_timestamp                            : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			<legal 0-3>
+*/
+
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                            0x0000000000000000
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                               0
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                               1
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                              0x0000000000000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> 
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			
+			<legal 0-39>
+*/
+
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_OFFSET                                        0x0000000000000000
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_LSB                                           2
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_MSB                                           8
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_MASK                                          0x00000000000001fc
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_MPDU_END_RESERVED_0_OFFSET                                               0x0000000000000000
+#define RX_MPDU_END_RESERVED_0_LSB                                                  9
+#define RX_MPDU_END_RESERVED_0_MSB                                                  15
+#define RX_MPDU_END_RESERVED_0_MASK                                                 0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_MPDU_END_PHY_PPDU_ID_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_PHY_PPDU_ID_LSB                                                 16
+#define RX_MPDU_END_PHY_PPDU_ID_MSB                                                 31
+#define RX_MPDU_END_PHY_PPDU_ID_MASK                                                0x00000000ffff0000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_END_RESERVED_1A_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_RESERVED_1A_LSB                                                 32
+#define RX_MPDU_END_RESERVED_1A_MSB                                                 42
+#define RX_MPDU_END_RESERVED_1A_MASK                                                0x000007ff00000000
+
+
+/* Description		UNSUP_KTYPE_SHORT_FRAME
+
+			This bit will be '1' when WEP or TKIP or WAPI key type is
+			 received for 11ah short frame.  Crypto will bypass the 
+			received packet without decryption to RxOLE after setting
+			 this bit.
+*/
+
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_LSB                                     43
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_MSB                                     43
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_MASK                                    0x0000080000000000
+
+
+/* Description		RX_IN_TX_DECRYPT_BYP
+
+			Indicates that RX packet is not decrypted as Crypto is busy
+			 with TX packet processing.
+*/
+
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_OFFSET                                     0x0000000000000000
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_LSB                                        44
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_MSB                                        44
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_MASK                                       0x0000100000000000
+
+
+/* Description		OVERFLOW_ERR
+
+			RXPCU Receive FIFO ran out of space to receive the full 
+			MPDU. Therefor this MPDU is terminated early and is thus
+			 corrupted.  
+			
+			This MPDU will not be ACKed.
+			RXPCU might still be able to correctly receive the following
+			 MPDUs in the PPDU if enough fifo space became available
+			 in time
+*/
+
+#define RX_MPDU_END_OVERFLOW_ERR_OFFSET                                             0x0000000000000000
+#define RX_MPDU_END_OVERFLOW_ERR_LSB                                                45
+#define RX_MPDU_END_OVERFLOW_ERR_MSB                                                45
+#define RX_MPDU_END_OVERFLOW_ERR_MASK                                               0x0000200000000000
+
+
+/* Description		MPDU_LENGTH_ERR
+
+			Set by RXPCU if the expected MPDU length does not correspond
+			 with the actually received number of bytes in the MPDU.
+			
+*/
+
+#define RX_MPDU_END_MPDU_LENGTH_ERR_OFFSET                                          0x0000000000000000
+#define RX_MPDU_END_MPDU_LENGTH_ERR_LSB                                             46
+#define RX_MPDU_END_MPDU_LENGTH_ERR_MSB                                             46
+#define RX_MPDU_END_MPDU_LENGTH_ERR_MASK                                            0x0000400000000000
+
+
+/* Description		TKIP_MIC_ERR
+
+			Set by RX CRYPTO when CRYPTO detected a TKIP MIC error for
+			 this MPDU
+*/
+
+#define RX_MPDU_END_TKIP_MIC_ERR_OFFSET                                             0x0000000000000000
+#define RX_MPDU_END_TKIP_MIC_ERR_LSB                                                47
+#define RX_MPDU_END_TKIP_MIC_ERR_MSB                                                47
+#define RX_MPDU_END_TKIP_MIC_ERR_MASK                                               0x0000800000000000
+
+
+/* Description		DECRYPT_ERR
+
+			Set by RX CRYPTO when CRYPTO detected a decrypt error for
+			 this MPDU or CRYPTO received an encrypted frame, but did
+			 not get a valid corresponding key id in the peer entry.
+			
+*/
+
+#define RX_MPDU_END_DECRYPT_ERR_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_DECRYPT_ERR_LSB                                                 48
+#define RX_MPDU_END_DECRYPT_ERR_MSB                                                 48
+#define RX_MPDU_END_DECRYPT_ERR_MASK                                                0x0001000000000000
+
+
+/* Description		UNENCRYPTED_FRAME_ERR
+
+			Set by RX CRYPTO when CRYPTO detected an unencrypted frame
+			 while in the peer entry field 'All_frames_shall_be_encrypted' 
+			is set.
+*/
+
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_OFFSET                                    0x0000000000000000
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_LSB                                       49
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_MSB                                       49
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_MASK                                      0x0002000000000000
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Set by RX CRYPTO to indicate that there is a valid PN field
+			 present in this MPDU
+*/
+
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET                             0x0000000000000000
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_LSB                                50
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_MSB                                50
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_MASK                               0x0004000000000000
+
+
+/* Description		FCS_ERR
+
+			Set by RXPCU when there is an FCS error detected for this
+			 MPDU
+			NOTE that when this field is set, all other (error) field
+			 settings should be ignored as modules could have made wrong
+			 decisions based on the corrupted data.
+*/
+
+#define RX_MPDU_END_FCS_ERR_OFFSET                                                  0x0000000000000000
+#define RX_MPDU_END_FCS_ERR_LSB                                                     51
+#define RX_MPDU_END_FCS_ERR_MSB                                                     51
+#define RX_MPDU_END_FCS_ERR_MASK                                                    0x0008000000000000
+
+
+/* Description		MSDU_LENGTH_ERR
+
+			Set by RXOLE when there is an msdu length error detected
+			 in at least 1 of the MSDUs embedded within the MPDU
+*/
+
+#define RX_MPDU_END_MSDU_LENGTH_ERR_OFFSET                                          0x0000000000000000
+#define RX_MPDU_END_MSDU_LENGTH_ERR_LSB                                             52
+#define RX_MPDU_END_MSDU_LENGTH_ERR_MSB                                             52
+#define RX_MPDU_END_MSDU_LENGTH_ERR_MASK                                            0x0010000000000000
+
+
+/* Description		RXDMA0_DESTINATION_RING
+
+			The ring to which RXDMA0 shall push the frame, assuming 
+			no MPDU level errors are detected. In case of MPDU level
+			 errors, RXDMA0 might change the RXDMA0 destination
+			
+			<enum 0  rxdma_release_ring >  RXDMA0 shall push the frame
+			 to the Release ring. Effectively this means the frame needs
+			 to be dropped.
+			
+			<enum 1  rxdma2fw_pmac0_ring >  RXDMA0 shall push the frame
+			 to the FW ring for PMAC0.
+			
+			<enum 2  rxdma2sw_ring >  RXDMA0 shall push the frame to
+			 the SW ring
+			
+			<enum 3  rxdma2reo_ring >  RXDMA0 shall push the frame to
+			 the REO entrance ring
+			
+			<enum 4  rxdma2fw_pmac1_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC1.
+			
+			<enum 5 rxdma2reo_remote0_ring> RXDMA0 shall push the frame
+			 to the first MLO REO entrance ring.
+			
+			<enum 6 rxdma2reo_remote1_ring> RXDMA0 shall push the frame
+			 to the second MLO REO entrance ring.
+			
+			<legal 0 - 6>
+*/
+
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_LSB                                     53
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_MSB                                     55
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_MASK                                    0x00e0000000000000
+
+
+/* Description		RXDMA1_DESTINATION_RING
+
+			The ring to which RXDMA1 shall push the frame, assuming 
+			no MPDU level errors are detected. In case of MPDU level
+			 errors, RXDMA1 might change the RXDMA destination
+			
+			<enum 0  rxdma_release_ring >  DO NOT USE.
+			
+			<enum 1  rxdma2fw_pmac0_ring >  DO NOT USE. 
+			
+			<enum 2  rxdma2sw_ring >  RXDMA1 shall push the frame to
+			 the SW ring 
+			
+			<enum 3  rxdma2reo_ring >  DO NOT USE.
+			
+			<enum 4  rxdma2fw_pmac1_ring> DO NOT USE.
+			
+			<enum 5 rxdma2reo_remote0_ring> DO NOT USE.
+			
+			<enum 6 rxdma2reo_remote1_ring> DO NOT USE.
+			
+			<legal 0 - 6>
+*/
+
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_LSB                                     56
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_MSB                                     58
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_MASK                                    0x0700000000000000
+
+
+/* Description		DECRYPT_STATUS_CODE
+
+			Field provides insight into the decryption performed
+			
+			<enum 0 decrypt_ok> Frame had protection enabled and decrypted
+			 properly 
+			<enum 1 decrypt_unprotected_frame > Frame is unprotected
+			 and hence bypassed 
+			<enum 2 decrypt_data_err > Frame has protection enabled 
+			and could not be properly decrypted due to MIC/ICV mismatch
+			 etc. 
+			<enum 3 decrypt_key_invalid > Frame has protection enabled
+			 but the key that was required to decrypt this frame was
+			 not valid 
+			<enum 4 decrypt_peer_entry_invalid > Frame has protection
+			 enabled but the key that was required to decrypt this frame
+			 was not valid
+			<enum 5 decrypt_other > Reserved for other indications
+			
+			<legal 0 - 5>
+*/
+
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_OFFSET                                      0x0000000000000000
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_LSB                                         59
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_MSB                                         61
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_MASK                                        0x3800000000000000
+
+
+/* Description		RX_BITMAP_NOT_UPDATED
+
+			Frame is received, but RXPCU could not update the receive
+			 bitmap due to (temporary) fifo contraints.
+			<legal all>
+*/
+
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_OFFSET                                    0x0000000000000000
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_LSB                                       62
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_MSB                                       62
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_MASK                                      0x4000000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define RX_MPDU_END_RESERVED_1B_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_RESERVED_1B_LSB                                                 63
+#define RX_MPDU_END_RESERVED_1B_MSB                                                 63
+#define RX_MPDU_END_RESERVED_1B_MASK                                                0x8000000000000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_END_RESERVED_2A_OFFSET                                              0x0000000000000008
+#define RX_MPDU_END_RESERVED_2A_LSB                                                 0
+#define RX_MPDU_END_RESERVED_2A_MSB                                                 14
+#define RX_MPDU_END_RESERVED_2A_MASK                                                0x0000000000007fff
+
+
+/* Description		RXPCU_MGMT_SEQUENCE_NR_VALID
+
+			This field gets set by RXPCU when the received management
+			 frame is destined to this device, passes FCS and is categorized
+			 as one for which RXPCU should assign a rxpcu_mgmt_sequence_number. 
+			After assigning a number, the RXPCU will increment the sequence
+			 number for the next management frame that meets these criteria.
+			
+			 
+			<legal all>
+*/
+
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_OFFSET                             0x0000000000000008
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_LSB                                15
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_MSB                                15
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_MASK                               0x0000000000008000
+
+
+/* Description		RXPCU_MGMT_SEQUENCE_NR
+
+			Field only valid when rxpcu_mgmt_sequence_nr_valid is set
+			
+			
+			This RXPCU generated sequence number is assigned to this
+			 management frame. It is used by FW and host SW for management
+			 frame reordering across multiple bands/links.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_OFFSET                                   0x0000000000000008
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_LSB                                      16
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_MSB                                      31
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_MASK                                     0x00000000ffff0000
+
+
+/* Description		RXFRAME_ASSERT_MLO_TIMESTAMP
+
+			'mlo_global_timestamp' that indicates when for the PPDU 
+			that contained this MPDU, the 'rx_frame' signal got asserted.
+			
+			 
+			This field is always valid, irrespective of the frame being
+			 related to MLO reception or not. It is used by FW and host
+			 SW for management frame reordering purposes.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_OFFSET                             0x0000000000000008
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_LSB                                32
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_MSB                                63
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_MASK                               0xffffffff00000000
+
+
+
+#endif   // RX_MPDU_END
diff --git a/hw/qca5332/rx_mpdu_info.h b/hw/qca5332/rx_mpdu_info.h
new file mode 100644
index 0000000..bff43a1
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_info.h
@@ -0,0 +1,2424 @@
+
+/* 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 _RX_MPDU_INFO_H_
+#define _RX_MPDU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rxpt_classify_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_INFO 30
+
+
+struct rx_mpdu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rxpt_classify_info                                        rxpt_classify_info_details;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8, // [7:0]
+                      receive_queue_number                                    : 16, // [23:8]
+                      pre_delim_err_warning                                   :  1, // [24:24]
+                      first_delim_err                                         :  1, // [25:25]
+                      reserved_2a                                             :  6; // [31:26]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t epd_en                                                  :  1, // [0:0]
+                      all_frames_shall_be_encrypted                           :  1, // [1:1]
+                      encrypt_type                                            :  4, // [5:2]
+                      wep_key_width_for_variable_key                          :  2, // [7:6]
+                      mesh_sta                                                :  2, // [9:8]
+                      bssid_hit                                               :  1, // [10:10]
+                      bssid_number                                            :  4, // [14:11]
+                      tid                                                     :  4, // [18:15]
+                      reserved_7a                                             : 13; // [31:19]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      ndp_frame                                               :  1, // [9:9]
+                      phy_err                                                 :  1, // [10:10]
+                      phy_err_during_mpdu_header                              :  1, // [11:11]
+                      protocol_version_err                                    :  1, // [12:12]
+                      ast_based_lookup_valid                                  :  1, // [13:13]
+                      ranging                                                 :  1, // [14:14]
+                      reserved_9a                                             :  1, // [15:15]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t ast_index                                               : 16, // [15:0]
+                      sw_peer_id                                              : 16; // [31:16]
+             uint32_t mpdu_frame_control_valid                                :  1, // [0:0]
+                      mpdu_duration_valid                                     :  1, // [1:1]
+                      mac_addr_ad1_valid                                      :  1, // [2:2]
+                      mac_addr_ad2_valid                                      :  1, // [3:3]
+                      mac_addr_ad3_valid                                      :  1, // [4:4]
+                      mac_addr_ad4_valid                                      :  1, // [5:5]
+                      mpdu_sequence_control_valid                             :  1, // [6:6]
+                      mpdu_qos_control_valid                                  :  1, // [7:7]
+                      mpdu_ht_control_valid                                   :  1, // [8:8]
+                      frame_encryption_info_valid                             :  1, // [9:9]
+                      mpdu_fragment_number                                    :  4, // [13:10]
+                      more_fragment_flag                                      :  1, // [14:14]
+                      reserved_11a                                            :  1, // [15:15]
+                      fr_ds                                                   :  1, // [16:16]
+                      to_ds                                                   :  1, // [17:17]
+                      encrypted                                               :  1, // [18:18]
+                      mpdu_retry                                              :  1, // [19:19]
+                      mpdu_sequence_number                                    : 12; // [31:20]
+             uint32_t key_id_octet                                            :  8, // [7:0]
+                      new_peer_entry                                          :  1, // [8:8]
+                      decrypt_needed                                          :  1, // [9:9]
+                      decap_type                                              :  2, // [11:10]
+                      rx_insert_vlan_c_tag_padding                            :  1, // [12:12]
+                      rx_insert_vlan_s_tag_padding                            :  1, // [13:13]
+                      strip_vlan_c_tag_decap                                  :  1, // [14:14]
+                      strip_vlan_s_tag_decap                                  :  1, // [15:15]
+                      pre_delim_count                                         : 12, // [27:16]
+                      ampdu_flag                                              :  1, // [28:28]
+                      bar_frame                                               :  1, // [29:29]
+                      raw_mpdu                                                :  1, // [30:30]
+                      reserved_12                                             :  1; // [31:31]
+             uint32_t mpdu_length                                             : 14, // [13:0]
+                      first_mpdu                                              :  1, // [14:14]
+                      mcast_bcast                                             :  1, // [15:15]
+                      ast_index_not_found                                     :  1, // [16:16]
+                      ast_index_timeout                                       :  1, // [17:17]
+                      power_mgmt                                              :  1, // [18:18]
+                      non_qos                                                 :  1, // [19:19]
+                      null_data                                               :  1, // [20:20]
+                      mgmt_type                                               :  1, // [21:21]
+                      ctrl_type                                               :  1, // [22:22]
+                      more_data                                               :  1, // [23:23]
+                      eosp                                                    :  1, // [24:24]
+                      fragment_flag                                           :  1, // [25:25]
+                      order                                                   :  1, // [26:26]
+                      u_apsd_trigger                                          :  1, // [27:27]
+                      encrypt_required                                        :  1, // [28:28]
+                      directed                                                :  1, // [29:29]
+                      amsdu_present                                           :  1, // [30:30]
+                      reserved_13                                             :  1; // [31:31]
+             uint32_t mpdu_frame_control_field                                : 16, // [15:0]
+                      mpdu_duration_field                                     : 16; // [31:16]
+             uint32_t mac_addr_ad1_31_0                                       : 32; // [31:0]
+             uint32_t mac_addr_ad1_47_32                                      : 16, // [15:0]
+                      mac_addr_ad2_15_0                                       : 16; // [31:16]
+             uint32_t mac_addr_ad2_47_16                                      : 32; // [31:0]
+             uint32_t mac_addr_ad3_31_0                                       : 32; // [31:0]
+             uint32_t mac_addr_ad3_47_32                                      : 16, // [15:0]
+                      mpdu_sequence_control_field                             : 16; // [31:16]
+             uint32_t mac_addr_ad4_31_0                                       : 32; // [31:0]
+             uint32_t mac_addr_ad4_47_32                                      : 16, // [15:0]
+                      mpdu_qos_control_field                                  : 16; // [31:16]
+             uint32_t mpdu_ht_control_field                                   : 32; // [31:0]
+             uint32_t vdev_id                                                 :  8, // [7:0]
+                      service_code                                            :  9, // [16:8]
+                      priority_valid                                          :  1, // [17:17]
+                      src_info                                                : 12, // [29:18]
+                      reserved_23a                                            :  1, // [30:30]
+                      multi_link_addr_ad1_ad2_valid                           :  1; // [31:31]
+             uint32_t multi_link_addr_ad1_31_0                                : 32; // [31:0]
+             uint32_t multi_link_addr_ad1_47_32                               : 16, // [15:0]
+                      multi_link_addr_ad2_15_0                                : 16; // [31:16]
+             uint32_t multi_link_addr_ad2_47_16                               : 32; // [31:0]
+             uint32_t authorized_to_send_wds                                  :  1, // [0:0]
+                      reserved_27a                                            : 31; // [31:1]
+             uint32_t reserved_28a                                            : 32; // [31:0]
+             uint32_t reserved_29a                                            : 32; // [31:0]
+#else
+             struct   rxpt_classify_info                                        rxpt_classify_info_details;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t reserved_2a                                             :  6, // [31:26]
+                      first_delim_err                                         :  1, // [25:25]
+                      pre_delim_err_warning                                   :  1, // [24:24]
+                      receive_queue_number                                    : 16, // [23:8]
+                      rx_reo_queue_desc_addr_39_32                            :  8; // [7:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t reserved_7a                                             : 13, // [31:19]
+                      tid                                                     :  4, // [18:15]
+                      bssid_number                                            :  4, // [14:11]
+                      bssid_hit                                               :  1, // [10:10]
+                      mesh_sta                                                :  2, // [9:8]
+                      wep_key_width_for_variable_key                          :  2, // [7:6]
+                      encrypt_type                                            :  4, // [5:2]
+                      all_frames_shall_be_encrypted                           :  1, // [1:1]
+                      epd_en                                                  :  1; // [0:0]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_9a                                             :  1, // [15:15]
+                      ranging                                                 :  1, // [14:14]
+                      ast_based_lookup_valid                                  :  1, // [13:13]
+                      protocol_version_err                                    :  1, // [12:12]
+                      phy_err_during_mpdu_header                              :  1, // [11:11]
+                      phy_err                                                 :  1, // [10:10]
+                      ndp_frame                                               :  1, // [9:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t sw_peer_id                                              : 16, // [31:16]
+                      ast_index                                               : 16; // [15:0]
+             uint32_t mpdu_sequence_number                                    : 12, // [31:20]
+                      mpdu_retry                                              :  1, // [19:19]
+                      encrypted                                               :  1, // [18:18]
+                      to_ds                                                   :  1, // [17:17]
+                      fr_ds                                                   :  1, // [16:16]
+                      reserved_11a                                            :  1, // [15:15]
+                      more_fragment_flag                                      :  1, // [14:14]
+                      mpdu_fragment_number                                    :  4, // [13:10]
+                      frame_encryption_info_valid                             :  1, // [9:9]
+                      mpdu_ht_control_valid                                   :  1, // [8:8]
+                      mpdu_qos_control_valid                                  :  1, // [7:7]
+                      mpdu_sequence_control_valid                             :  1, // [6:6]
+                      mac_addr_ad4_valid                                      :  1, // [5:5]
+                      mac_addr_ad3_valid                                      :  1, // [4:4]
+                      mac_addr_ad2_valid                                      :  1, // [3:3]
+                      mac_addr_ad1_valid                                      :  1, // [2:2]
+                      mpdu_duration_valid                                     :  1, // [1:1]
+                      mpdu_frame_control_valid                                :  1; // [0:0]
+             uint32_t reserved_12                                             :  1, // [31:31]
+                      raw_mpdu                                                :  1, // [30:30]
+                      bar_frame                                               :  1, // [29:29]
+                      ampdu_flag                                              :  1, // [28:28]
+                      pre_delim_count                                         : 12, // [27:16]
+                      strip_vlan_s_tag_decap                                  :  1, // [15:15]
+                      strip_vlan_c_tag_decap                                  :  1, // [14:14]
+                      rx_insert_vlan_s_tag_padding                            :  1, // [13:13]
+                      rx_insert_vlan_c_tag_padding                            :  1, // [12:12]
+                      decap_type                                              :  2, // [11:10]
+                      decrypt_needed                                          :  1, // [9:9]
+                      new_peer_entry                                          :  1, // [8:8]
+                      key_id_octet                                            :  8; // [7:0]
+             uint32_t reserved_13                                             :  1, // [31:31]
+                      amsdu_present                                           :  1, // [30:30]
+                      directed                                                :  1, // [29:29]
+                      encrypt_required                                        :  1, // [28:28]
+                      u_apsd_trigger                                          :  1, // [27:27]
+                      order                                                   :  1, // [26:26]
+                      fragment_flag                                           :  1, // [25:25]
+                      eosp                                                    :  1, // [24:24]
+                      more_data                                               :  1, // [23:23]
+                      ctrl_type                                               :  1, // [22:22]
+                      mgmt_type                                               :  1, // [21:21]
+                      null_data                                               :  1, // [20:20]
+                      non_qos                                                 :  1, // [19:19]
+                      power_mgmt                                              :  1, // [18:18]
+                      ast_index_timeout                                       :  1, // [17:17]
+                      ast_index_not_found                                     :  1, // [16:16]
+                      mcast_bcast                                             :  1, // [15:15]
+                      first_mpdu                                              :  1, // [14:14]
+                      mpdu_length                                             : 14; // [13:0]
+             uint32_t mpdu_duration_field                                     : 16, // [31:16]
+                      mpdu_frame_control_field                                : 16; // [15:0]
+             uint32_t mac_addr_ad1_31_0                                       : 32; // [31:0]
+             uint32_t mac_addr_ad2_15_0                                       : 16, // [31:16]
+                      mac_addr_ad1_47_32                                      : 16; // [15:0]
+             uint32_t mac_addr_ad2_47_16                                      : 32; // [31:0]
+             uint32_t mac_addr_ad3_31_0                                       : 32; // [31:0]
+             uint32_t mpdu_sequence_control_field                             : 16, // [31:16]
+                      mac_addr_ad3_47_32                                      : 16; // [15:0]
+             uint32_t mac_addr_ad4_31_0                                       : 32; // [31:0]
+             uint32_t mpdu_qos_control_field                                  : 16, // [31:16]
+                      mac_addr_ad4_47_32                                      : 16; // [15:0]
+             uint32_t mpdu_ht_control_field                                   : 32; // [31:0]
+             uint32_t multi_link_addr_ad1_ad2_valid                           :  1, // [31:31]
+                      reserved_23a                                            :  1, // [30:30]
+                      src_info                                                : 12, // [29:18]
+                      priority_valid                                          :  1, // [17:17]
+                      service_code                                            :  9, // [16:8]
+                      vdev_id                                                 :  8; // [7:0]
+             uint32_t multi_link_addr_ad1_31_0                                : 32; // [31:0]
+             uint32_t multi_link_addr_ad2_15_0                                : 16, // [31:16]
+                      multi_link_addr_ad1_47_32                               : 16; // [15:0]
+             uint32_t multi_link_addr_ad2_47_16                               : 32; // [31:0]
+             uint32_t reserved_27a                                            : 31, // [31:1]
+                      authorized_to_send_wds                                  :  1; // [0:0]
+             uint32_t reserved_28a                                            : 32; // [31:0]
+             uint32_t reserved_29a                                            : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RXPT_CLASSIFY_INFO_DETAILS
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			RXOLE related classification info
+			<legal all
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			<enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET   0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB      0
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB      4
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK     0x0000001f
+
+
+/* Description		LMAC_PEER_ID_MSB
+
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_'sb
+			 is 2'b00, Rx OLE uses a REO desination indicati'n of {1'b1, 
+			hash[3:0]} using the chosen Toeplitz hash from Common Parser
+			 if flow search fails.
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_msb
+			 's not 2'b00, Rx OLE uses a REO desination indication of
+			 {lmac_peer_id_msb, hash[2:0]} using the chosen Toeplitz
+			 hash from Common Parser if flow search fails.
+			This LMAC/peer-based routing is not supported in Hastings80
+			 and HastingsPrime.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_OFFSET             0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_LSB                5
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MSB                6
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MASK               0x00000060
+
+
+/* Description		USE_FLOW_ID_TOEPLITZ_CLFY
+
+			Indication to Rx OLE to enable REO destination routing based
+			 on the chosen Toeplitz hash from Common Parser, in case
+			 flow search fails
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET    0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_LSB       7
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MSB       7
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MASK      0x00000080
+
+
+/* Description		PKT_SELECTION_FP_UCAST_DATA
+
+			Filter pass Unicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Unicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_OFFSET  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_LSB     8
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MSB     8
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MASK    0x00000100
+
+
+/* Description		PKT_SELECTION_FP_MCAST_DATA
+
+			Filter pass Multicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Multicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_OFFSET  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_LSB     9
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MSB     9
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MASK    0x00000200
+
+
+/* Description		PKT_SELECTION_FP_1000
+
+			Filter pass BAR frame (matching rxpcu_filter_pass and sw_frame_group_ctrl_1000) 
+			routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_OFFSET        0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_LSB           10
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MSB           10
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MASK          0x00000400
+
+
+/* Description		RXDMA0_SOURCE_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0 sw2rxdma0_0_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma0 buffer source 
+			ring.
+			<enum 1 fw2rxdma0_pmac0_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC0.
+			<enum 2 sw2rxdma0_1_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma1 buffer source 
+			ring.
+			<enum 3 no_buffer_rxdma0_ring> The frame shall not be written
+			 to any data buffer.
+			<enum 4 sw2rxdma0_exception_buf_source_ring> The data buffer
+			 for this frame shall be sourced by sw2rxdma_exception buffer
+			 source ring.
+			<enum 5 fw2rxdma0_pmac1_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC1.
+			
+			<legal 0-5>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_LSB    11
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MSB    13
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MASK   0x00003800
+
+
+/* Description		RXDMA0_DESTINATION_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0  rxdma_release_ring> RXDMA0 shall push the frame
+			 to the Release ring. Effectively this means the frame needs
+			 to be dropped.
+			<enum 1  rxdma2fw_pmac0_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC0.
+			<enum 2  rxdma2sw_ring> RXDMA0 shall push the frame to the
+			 SW ring.
+			<enum 3  rxdma2reo_ring> RXDMA0 shall push the frame to 
+			the REO entrance ring.
+			<enum 4  rxdma2fw_pmac1_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC1.
+			<enum 5 rxdma2reo_remote0_ring> RXDMA0 shall push the frame
+			 to the first MLO REO entrance ring.
+			<enum 6 rxdma2reo_remote1_ring> RXDMA0 shall push the frame
+			 to the second MLO REO entrance ring.
+			
+			<legal 0-6>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_LSB 14
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MSB 16
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x0001c000
+
+
+/* Description		MCAST_ECHO_DROP_ENABLE
+
+			If set, for multicast packets, multicast echo check (i.e. 
+			SA search with mcast_echo_check = 1) shall be performed 
+			by RXOLE, and any multicast echo packets should be indicated
+			 to RXDMA for release to WBM
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_OFFSET       0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_LSB          17
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MSB          17
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MASK         0x00020000
+
+
+/* Description		WDS_LEARNING_DETECT_EN
+
+			If set, WDS learning detection based on SA search and notification
+			 to FW (using RXDMA0 status ring) is enabled and the "timestamp" 
+			field in address search failure cache-only entry should 
+			be used to avoid multiple WDS learning notifications.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_OFFSET       0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_LSB          18
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MSB          18
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MASK         0x00040000
+
+
+/* Description		INTRABSS_CHECK_EN
+
+			If set, intra-BSS routing detection is enabled
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_OFFSET            0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_LSB               19
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MSB               19
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MASK              0x00080000
+
+
+/* Description		USE_PPE
+
+			Indicates to RXDMA to ignore the REO_destination_indication
+			 and use a programmed value corresponding to the REO2PPE
+			 ring
+			
+			This override to REO2PPE for packets requiring multiple 
+			buffers shall be disabled based on an RXDMA configuration, 
+			as PPE may not support such packets.
+			
+			Supported only in full AP chips like Waikiki, not in client/soft
+			 AP chips like Hamilton
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_OFFSET                      0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_LSB                         20
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MSB                         20
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MASK                        0x00100000
+
+
+/* Description		PPE_ROUTING_ENABLE
+
+			Global enable/disable bit for routing to PPE, used to disable
+			 PPE routing even if RXOLE CCE or flow search indicate 'Use_PPE'
+			
+			
+			This is set by SW for peers which are being handled by a
+			 host SW/accelerator subsystem that also handles packet 
+			buffer management for WiFi-to-PPE routing.
+			
+			This is cleared by SW for peers which are being handled 
+			by a different subsystem, completely disabling WiFi-to-PPE
+			 routing for such peers.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_OFFSET           0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_LSB              21
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MSB              21
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MASK             0x00200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_OFFSET                  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_LSB                     22
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MSB                     31
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MASK                    0xffc00000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Address (lower 32 bits) of the REO queue descriptor. 
+			
+			If no Peer entry lookup happened for this frame, the value
+			 wil be set to 0, and the frame shall never be pushed to
+			 REO entrance ring.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                             0x00000004
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                                0
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                                31
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                               0xffffffff
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Address (upper 8 bits) of the REO queue descriptor. 
+			
+			If no Peer entry lookup happened for this frame, the value
+			 wil be set to 0, and the frame shall never be pushed to
+			 REO entrance ring.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                            0x00000008
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                               0
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                               7
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                              0x000000ff
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Indicates the MPDU queue ID to which this MPDU link descriptor
+			 belongs
+			Used for tracking and debugging
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x00000008
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_LSB                                       8
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_MSB                                       23
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_MASK                                      0x00ffff00
+
+
+/* Description		PRE_DELIM_ERR_WARNING
+
+			Indicates that a delimiter FCS error was found in between
+			 the Previous MPDU and this MPDU.
+			
+			Note that this is just a warning, and does not mean that
+			 this MPDU is corrupted in any way. If it is, there will
+			 be other errors indicated such as FCS or decrypt errors
+			
+			
+			In case of ndp or phy_err, this field will indicate at least
+			 one of delimiters located after the last MPDU in the previous
+			 PPDU has been corrupted.
+*/
+
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_OFFSET                                   0x00000008
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_LSB                                      24
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_MSB                                      24
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_MASK                                     0x01000000
+
+
+/* Description		FIRST_DELIM_ERR
+
+			Indicates that the first delimiter had a FCS failure.  Only
+			 valid when first_mpdu and first_msdu are set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_OFFSET                                         0x00000008
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_LSB                                            25
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_MSB                                            25
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_MASK                                           0x02000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_2A_OFFSET                                             0x00000008
+#define RX_MPDU_INFO_RESERVED_2A_LSB                                                26
+#define RX_MPDU_INFO_RESERVED_2A_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_2A_MASK                                               0xfc000000
+
+
+/* Description		PN_31_0
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [31:0] of the PN number extracted from the IV field
+			
+			WEP: IV = {key_id_octet, pn2, pn1, pn0}.  Only pn[23:0] 
+			is valid.
+			TKIP: IV = {pn5, pn4, pn3, pn2, key_id_octet, pn0, WEPSeed[1], 
+			pn1}.  Only pn[47:0] is valid.
+			AES-CCM: IV = {pn5, pn4, pn3, pn2, key_id_octet, 0x0, pn1, 
+			pn0}.  Only pn[47:0] is valid.
+			WAPI: IV = {key_id_octet, 0x0, pn15, pn14, pn13, pn12, pn11, 
+			pn10, pn9, pn8, pn7, pn6, pn5, pn4, pn3, pn2, pn1, pn0}. 
+			 pn[127:0] are valid.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_INFO_PN_31_0_OFFSET                                                 0x0000000c
+#define RX_MPDU_INFO_PN_31_0_LSB                                                    0
+#define RX_MPDU_INFO_PN_31_0_MSB                                                    31
+#define RX_MPDU_INFO_PN_31_0_MASK                                                   0xffffffff
+
+
+/* Description		PN_63_32
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [63:32] of the PN number.   See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_INFO_PN_63_32_OFFSET                                                0x00000010
+#define RX_MPDU_INFO_PN_63_32_LSB                                                   0
+#define RX_MPDU_INFO_PN_63_32_MSB                                                   31
+#define RX_MPDU_INFO_PN_63_32_MASK                                                  0xffffffff
+
+
+/* Description		PN_95_64
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [95:64] of the PN number.  See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_INFO_PN_95_64_OFFSET                                                0x00000014
+#define RX_MPDU_INFO_PN_95_64_LSB                                                   0
+#define RX_MPDU_INFO_PN_95_64_MSB                                                   31
+#define RX_MPDU_INFO_PN_95_64_MASK                                                  0xffffffff
+
+
+/* Description		PN_127_96
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [127:96] of the PN number.  See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_INFO_PN_127_96_OFFSET                                               0x00000018
+#define RX_MPDU_INFO_PN_127_96_LSB                                                  0
+#define RX_MPDU_INFO_PN_127_96_MSB                                                  31
+#define RX_MPDU_INFO_PN_127_96_MASK                                                 0xffffffff
+
+
+/* Description		EPD_EN
+
+			Field only valid when AST_based_lookup_valid == 1.
+			
+			
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			If set to one use EPD instead of LPD
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_EPD_EN_OFFSET                                                  0x0000001c
+#define RX_MPDU_INFO_EPD_EN_LSB                                                     0
+#define RX_MPDU_INFO_EPD_EN_MSB                                                     0
+#define RX_MPDU_INFO_EPD_EN_MASK                                                    0x00000001
+
+
+/* Description		ALL_FRAMES_SHALL_BE_ENCRYPTED
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, all frames (data only ?) shall be encrypted. If
+			 not, RX CRYPTO shall set an error flag.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_OFFSET                           0x0000001c
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_LSB                              1
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_MSB                              1
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_MASK                             0x00000002
+
+
+/* Description		ENCRYPT_TYPE
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Indicates type of decrypt cipher used (as defined in the
+			 peer entry)
+			
+			<enum 0 wep_40> WEP 40-bit
+			<enum 1 wep_104> WEP 104-bit
+			<enum 2 tkip_no_mic> TKIP without MIC
+			<enum 3 wep_128> WEP 128-bit
+			<enum 4 tkip_with_mic> TKIP with MIC
+			<enum 5 wapi> WAPI
+			<enum 6 aes_ccmp_128> AES CCMP 128
+			<enum 7 no_cipher> No crypto
+			<enum 8 aes_ccmp_256> AES CCMP 256
+			<enum 9 aes_gcmp_128> AES CCMP 128
+			<enum 10 aes_gcmp_256> AES CCMP 256
+			<enum 11 wapi_gcm_sm4> WAPI GCM SM4
+			
+			<enum 12 wep_varied_width> WEP encryption. As for WEP per
+			 keyid the key bit width can vary, the key bit width for
+			 this MPDU will be indicated in field wep_key_width_for_variable
+			 key
+			<legal 0-12>
+*/
+
+#define RX_MPDU_INFO_ENCRYPT_TYPE_OFFSET                                            0x0000001c
+#define RX_MPDU_INFO_ENCRYPT_TYPE_LSB                                               2
+#define RX_MPDU_INFO_ENCRYPT_TYPE_MSB                                               5
+#define RX_MPDU_INFO_ENCRYPT_TYPE_MASK                                              0x0000003c
+
+
+/* Description		WEP_KEY_WIDTH_FOR_VARIABLE_KEY
+
+			Field only valid when key_type is set to wep_varied_width. 
+			
+			
+			This field indicates the size of the wep key for this MPDU.
+			
+			 
+			<enum 0 wep_varied_width_40> WEP 40-bit
+			<enum 1 wep_varied_width_104> WEP 104-bit
+			<enum 2 wep_varied_width_128> WEP 128-bit
+			
+			<legal 0-2>
+*/
+
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_OFFSET                          0x0000001c
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_LSB                             6
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MSB                             7
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MASK                            0x000000c0
+
+
+/* Description		MESH_STA
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, this is a Mesh (11s) STA.
+			
+			The interpretation of the A-MSDU 'Length' field in the MPDU
+			 (if any) is decided by the e-numerations below.
+			
+			<enum 0 MESH_DISABLE>
+			<enum 1 MESH_Q2Q> A-MSDU 'Length' is big endian and includes
+			 the length of Mesh Control.
+			<enum 2 MESH_11S_BE> A-MSDU 'Length' is big endian and excludes
+			 the length of Mesh Control.
+			<enum 3 MESH_11S_LE> A-MSDU 'Length' is little endian and
+			 excludes the length of Mesh Control. This is 802.11s-compliant.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MESH_STA_OFFSET                                                0x0000001c
+#define RX_MPDU_INFO_MESH_STA_LSB                                                   8
+#define RX_MPDU_INFO_MESH_STA_MSB                                                   9
+#define RX_MPDU_INFO_MESH_STA_MASK                                                  0x00000300
+
+
+/* Description		BSSID_HIT
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, the BSSID of the incoming frame matched one of
+			 the 8 BSSID register values
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_BSSID_HIT_OFFSET                                               0x0000001c
+#define RX_MPDU_INFO_BSSID_HIT_LSB                                                  10
+#define RX_MPDU_INFO_BSSID_HIT_MSB                                                  10
+#define RX_MPDU_INFO_BSSID_HIT_MASK                                                 0x00000400
+
+
+/* Description		BSSID_NUMBER
+
+			Field only valid when bssid_hit is set.
+			
+			This number indicates which one out of the 8 BSSID register
+			 values matched the incoming frame
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_BSSID_NUMBER_OFFSET                                            0x0000001c
+#define RX_MPDU_INFO_BSSID_NUMBER_LSB                                               11
+#define RX_MPDU_INFO_BSSID_NUMBER_MSB                                               14
+#define RX_MPDU_INFO_BSSID_NUMBER_MASK                                              0x00007800
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_TID_OFFSET                                                     0x0000001c
+#define RX_MPDU_INFO_TID_LSB                                                        15
+#define RX_MPDU_INFO_TID_MSB                                                        18
+#define RX_MPDU_INFO_TID_MASK                                                       0x00078000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_7A_OFFSET                                             0x0000001c
+#define RX_MPDU_INFO_RESERVED_7A_LSB                                                19
+#define RX_MPDU_INFO_RESERVED_7A_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_7A_MASK                                               0xfff80000
+
+
+/* Description		PEER_META_DATA
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PEER_META_DATA_OFFSET                                          0x00000020
+#define RX_MPDU_INFO_PEER_META_DATA_LSB                                             0
+#define RX_MPDU_INFO_PEER_META_DATA_MSB                                             31
+#define RX_MPDU_INFO_PEER_META_DATA_MASK                                            0xffffffff
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			
+			Note: for ndp frame, if it was expected because the preceding
+			 NDPA was filter_pass, the setting  rxpcu_filter_pass will
+			 be used. This setting will also be used for every ndp frame
+			 in case Promiscuous mode is enabled.
+			
+			In case promiscuous is not enabled, and an NDP is not preceded
+			 by a NPDA filter pass frame, the only other setting that
+			 could appear here for the NDP is rxpcu_monitor_other. 
+			(rxpcu has a configuration bit specifically for this scenario)
+			
+			
+			Note: for 
+			<legal 0-3>
+*/
+
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                           0x00000024
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                              0
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                              1
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                             0x00000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> Note: The corresponding
+			 Rxpcu_Mpdu_filter_in_category can be rxpcu_filter_pass 
+			or rxpcu_monitor_other
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0 
+			Note: The corresponding Rxpcu_Mpdu_filter_in_category can
+			 only be rxpcu_monitor_other
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			Note: The corresponding Rxpcu_Mpdu_filter_in_category can
+			 be rxpcu_filter_pass
+			
+			<legal 0-39>
+*/
+
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_OFFSET                                       0x00000024
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_LSB                                          2
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_MSB                                          8
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_MASK                                         0x000001fc
+
+
+/* Description		NDP_FRAME
+
+			When set, the received frame was an NDP frame, and thus 
+			there will be no MPDU data.
+			TODO: Should this be extended to 2-bit e-num?
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_NDP_FRAME_OFFSET                                               0x00000024
+#define RX_MPDU_INFO_NDP_FRAME_LSB                                                  9
+#define RX_MPDU_INFO_NDP_FRAME_MSB                                                  9
+#define RX_MPDU_INFO_NDP_FRAME_MASK                                                 0x00000200
+
+
+/* Description		PHY_ERR
+
+			When set, a PHY error was received before MAC received any
+			 data, and thus there will be no MPDU data.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PHY_ERR_OFFSET                                                 0x00000024
+#define RX_MPDU_INFO_PHY_ERR_LSB                                                    10
+#define RX_MPDU_INFO_PHY_ERR_MSB                                                    10
+#define RX_MPDU_INFO_PHY_ERR_MASK                                                   0x00000400
+
+
+/* Description		PHY_ERR_DURING_MPDU_HEADER
+
+			When set, a PHY error was received before MAC received the
+			 complete MPDU header which was needed for proper decoding
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_OFFSET                              0x00000024
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_LSB                                 11
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_MSB                                 11
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_MASK                                0x00000800
+
+
+/* Description		PROTOCOL_VERSION_ERR
+
+			Set when RXPCU detected a version error in the Frame control
+			 field
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_OFFSET                                    0x00000024
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_LSB                                       12
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_MSB                                       12
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_MASK                                      0x00001000
+
+
+/* Description		AST_BASED_LOOKUP_VALID
+
+			When set, AST based lookup for this frame has found a valid
+			 result.
+			
+			Note that for NDP frame this will never be set
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_OFFSET                                  0x00000024
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_LSB                                     13
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_MSB                                     13
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_MASK                                    0x00002000
+
+
+/* Description		RANGING
+
+			When set, a ranging NDPA or a ranging NDP was received.
+			
+			This field is only for FW visibility. HW is not expected
+			 to take any action on this.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RANGING_OFFSET                                                 0x00000024
+#define RX_MPDU_INFO_RANGING_LSB                                                    14
+#define RX_MPDU_INFO_RANGING_MSB                                                    14
+#define RX_MPDU_INFO_RANGING_MASK                                                   0x00004000
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_9A_OFFSET                                             0x00000024
+#define RX_MPDU_INFO_RESERVED_9A_LSB                                                15
+#define RX_MPDU_INFO_RESERVED_9A_MSB                                                15
+#define RX_MPDU_INFO_RESERVED_9A_MASK                                               0x00008000
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PHY_PPDU_ID_OFFSET                                             0x00000024
+#define RX_MPDU_INFO_PHY_PPDU_ID_LSB                                                16
+#define RX_MPDU_INFO_PHY_PPDU_ID_MSB                                                31
+#define RX_MPDU_INFO_PHY_PPDU_ID_MASK                                               0xffff0000
+
+
+/* Description		AST_INDEX
+
+			This field indicates the index of the AST entry corresponding
+			 to this MPDU. It is provided by the GSE module instantiated
+			 in RXPCU.
+			A value of 0xFFFF indicates an invalid AST index, meaning
+			 that No AST entry was found or NO AST search was performed
+			
+			
+			In case of ndp or phy_err, this field will be set to 0xFFFF
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AST_INDEX_OFFSET                                               0x00000028
+#define RX_MPDU_INFO_AST_INDEX_LSB                                                  0
+#define RX_MPDU_INFO_AST_INDEX_MSB                                                  15
+#define RX_MPDU_INFO_AST_INDEX_MASK                                                 0x0000ffff
+
+
+/* Description		SW_PEER_ID
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			This field indicates a unique peer identifier. It is set
+			 equal to field 'sw_peer_id' from the AST entry
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_SW_PEER_ID_OFFSET                                              0x00000028
+#define RX_MPDU_INFO_SW_PEER_ID_LSB                                                 16
+#define RX_MPDU_INFO_SW_PEER_ID_MSB                                                 31
+#define RX_MPDU_INFO_SW_PEER_ID_MASK                                                0xffff0000
+
+
+/* Description		MPDU_FRAME_CONTROL_VALID
+
+			When set, the field Mpdu_Frame_control_field has valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_OFFSET                                0x0000002c
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_LSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_MSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_MASK                                  0x00000001
+
+
+/* Description		MPDU_DURATION_VALID
+
+			When set, the field Mpdu_duration_field has valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_OFFSET                                     0x0000002c
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_LSB                                        1
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_MSB                                        1
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_MASK                                       0x00000002
+
+
+/* Description		MAC_ADDR_AD1_VALID
+
+			When set, the fields mac_addr_ad1_..... have valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_LSB                                         2
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_MSB                                         2
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_MASK                                        0x00000004
+
+
+/* Description		MAC_ADDR_AD2_VALID
+
+			When set, the fields mac_addr_ad2_..... have valid information
+			
+			
+			For MPDUs without Address 2, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_LSB                                         3
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_MSB                                         3
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_MASK                                        0x00000008
+
+
+/* Description		MAC_ADDR_AD3_VALID
+
+			When set, the fields mac_addr_ad3_..... have valid information
+			
+			
+			For MPDUs without Address 3, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_LSB                                         4
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_MSB                                         4
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_MASK                                        0x00000010
+
+
+/* Description		MAC_ADDR_AD4_VALID
+
+			When set, the fields mac_addr_ad4_..... have valid information
+			
+			
+			For MPDUs without Address 4, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_LSB                                         5
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_MSB                                         5
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_MASK                                        0x00000020
+
+
+/* Description		MPDU_SEQUENCE_CONTROL_VALID
+
+			When set, the fields mpdu_sequence_control_field and mpdu_sequence_number
+			 have valid information as well as field 
+			
+			For MPDUs without a sequence control field, this field will
+			 not be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_OFFSET                             0x0000002c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_LSB                                6
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_MSB                                6
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_MASK                               0x00000040
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the field mpdu_qos_control_field has valid information
+			
+			
+			For MPDUs without a QoS control field, this field will not
+			 be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_OFFSET                                  0x0000002c
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_LSB                                     7
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_MSB                                     7
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_MASK                                    0x00000080
+
+
+/* Description		MPDU_HT_CONTROL_VALID
+
+			When set, the field mpdu_HT_control_field has valid information
+			
+			
+			For MPDUs without a HT control field, this field will not
+			 be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_OFFSET                                   0x0000002c
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_LSB                                      8
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_MSB                                      8
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_MASK                                     0x00000100
+
+
+/* Description		FRAME_ENCRYPTION_INFO_VALID
+
+			When set, the encryption related info fields, like IV and
+			 PN are valid
+			
+			For MPDUs that are not encrypted, this will not be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_OFFSET                             0x0000002c
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_LSB                                9
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_MSB                                9
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_MASK                               0x00000200
+
+
+/* Description		MPDU_FRAGMENT_NUMBER
+
+			Field only valid when Mpdu_sequence_control_valid is set
+			 AND Fragment_flag is set 
+			
+			The fragment number from the 802.11 header
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_OFFSET                                    0x0000002c
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_LSB                                       10
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_MSB                                       13
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_MASK                                      0x00003c00
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_LSB                                         14
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_MSB                                         14
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_MASK                                        0x00004000
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_11A_OFFSET                                            0x0000002c
+#define RX_MPDU_INFO_RESERVED_11A_LSB                                               15
+#define RX_MPDU_INFO_RESERVED_11A_MSB                                               15
+#define RX_MPDU_INFO_RESERVED_11A_MASK                                              0x00008000
+
+
+/* Description		FR_DS
+
+			Field only valid when Mpdu_frame_control_valid is set
+			
+			Set if the from DS bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_FR_DS_OFFSET                                                   0x0000002c
+#define RX_MPDU_INFO_FR_DS_LSB                                                      16
+#define RX_MPDU_INFO_FR_DS_MSB                                                      16
+#define RX_MPDU_INFO_FR_DS_MASK                                                     0x00010000
+
+
+/* Description		TO_DS
+
+			Field only valid when Mpdu_frame_control_valid is set 
+			
+			Set if the to DS bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_TO_DS_OFFSET                                                   0x0000002c
+#define RX_MPDU_INFO_TO_DS_LSB                                                      17
+#define RX_MPDU_INFO_TO_DS_MSB                                                      17
+#define RX_MPDU_INFO_TO_DS_MASK                                                     0x00020000
+
+
+/* Description		ENCRYPTED
+
+			Field only valid when Mpdu_frame_control_valid is set.
+			
+			Protected bit from the frame control.  
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_ENCRYPTED_OFFSET                                               0x0000002c
+#define RX_MPDU_INFO_ENCRYPTED_LSB                                                  18
+#define RX_MPDU_INFO_ENCRYPTED_MSB                                                  18
+#define RX_MPDU_INFO_ENCRYPTED_MASK                                                 0x00040000
+
+
+/* Description		MPDU_RETRY
+
+			Field only valid when Mpdu_frame_control_valid is set.
+			
+			Retry bit from the frame control.  Only valid when first_msdu
+			 is set.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_RETRY_OFFSET                                              0x0000002c
+#define RX_MPDU_INFO_MPDU_RETRY_LSB                                                 19
+#define RX_MPDU_INFO_MPDU_RETRY_MSB                                                 19
+#define RX_MPDU_INFO_MPDU_RETRY_MASK                                                0x00080000
+
+
+/* Description		MPDU_SEQUENCE_NUMBER
+
+			Field only valid when Mpdu_sequence_control_valid is set.
+			
+			
+			The sequence number from the 802.11 header.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_OFFSET                                    0x0000002c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_LSB                                       20
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_MSB                                       31
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_MASK                                      0xfff00000
+
+
+/* Description		KEY_ID_OCTET
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			The key ID octet from the IV.
+			
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_KEY_ID_OCTET_OFFSET                                            0x00000030
+#define RX_MPDU_INFO_KEY_ID_OCTET_LSB                                               0
+#define RX_MPDU_INFO_KEY_ID_OCTET_MSB                                               7
+#define RX_MPDU_INFO_KEY_ID_OCTET_MASK                                              0x000000ff
+
+
+/* Description		NEW_PEER_ENTRY
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Set if new RX_PEER_ENTRY TLV follows. If clear, RX_PEER_ENTRY
+			 doesn't follow so RX DECRYPTION module either uses old 
+			peer entry or not decrypt. 
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_OFFSET                                          0x00000030
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_LSB                                             8
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_MSB                                             8
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_MASK                                            0x00000100
+
+
+/* Description		DECRYPT_NEEDED
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Set if decryption is needed. 
+			
+			Note:
+			When RXPCU sets bit 'ast_index_not_found' and/or ast_index_timeout', 
+			RXPCU will also ensure that this bit is NOT set
+			CRYPTO for that reason only needs to evaluate this bit and
+			 non of the other ones.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_DECRYPT_NEEDED_OFFSET                                          0x00000030
+#define RX_MPDU_INFO_DECRYPT_NEEDED_LSB                                             9
+#define RX_MPDU_INFO_DECRYPT_NEEDED_MSB                                             9
+#define RX_MPDU_INFO_DECRYPT_NEEDED_MASK                                            0x00000200
+
+
+/* Description		DECAP_TYPE
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Used by the OLE during decapsulation.
+			
+			Indicates the decapsulation that HW will perform:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_DECAP_TYPE_OFFSET                                              0x00000030
+#define RX_MPDU_INFO_DECAP_TYPE_LSB                                                 10
+#define RX_MPDU_INFO_DECAP_TYPE_MSB                                                 11
+#define RX_MPDU_INFO_DECAP_TYPE_MASK                                                0x00000c00
+
+
+/* Description		RX_INSERT_VLAN_C_TAG_PADDING
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Insert 4 byte of all zeros as VLAN tag if the rx payload
+			 does not have VLAN. Used during decapsulation. 
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_OFFSET                            0x00000030
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_LSB                               12
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_MSB                               12
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_MASK                              0x00001000
+
+
+/* Description		RX_INSERT_VLAN_S_TAG_PADDING
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Insert 4 byte of all zeros as double VLAN tag if the rx 
+			payload does not have VLAN. Used during 
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_OFFSET                            0x00000030
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_LSB                               13
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_MSB                               13
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_MASK                              0x00002000
+
+
+/* Description		STRIP_VLAN_C_TAG_DECAP
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Strip the VLAN during decapsulation.  Used by the OLE.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_OFFSET                                  0x00000030
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_LSB                                     14
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_MSB                                     14
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_MASK                                    0x00004000
+
+
+/* Description		STRIP_VLAN_S_TAG_DECAP
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Strip the double VLAN during decapsulation.  Used by the
+			 OLE.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_OFFSET                                  0x00000030
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_LSB                                     15
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_MSB                                     15
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_MASK                                    0x00008000
+
+
+/* Description		PRE_DELIM_COUNT
+
+			The number of delimiters before this MPDU.  
+			
+			Note that this number is cleared at PPDU start.
+			
+			If this MPDU is the first received MPDU in the PPDU and 
+			this MPDU gets filtered-in, this field will indicate the
+			 number of delimiters located after the last MPDU in the
+			 previous PPDU.
+			
+			If this MPDU is located after the first received MPDU in
+			 an PPDU, this field will indicate the number of delimiters
+			 located between the previous MPDU and this MPDU.
+			
+			In case of ndp or phy_err, this field will indicate the 
+			number of delimiters located after the last MPDU in the 
+			previous PPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_OFFSET                                         0x00000030
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_LSB                                            16
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_MSB                                            27
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_MASK                                           0x0fff0000
+
+
+/* Description		AMPDU_FLAG
+
+			When set, received frame was part of an A-MPDU.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AMPDU_FLAG_OFFSET                                              0x00000030
+#define RX_MPDU_INFO_AMPDU_FLAG_LSB                                                 28
+#define RX_MPDU_INFO_AMPDU_FLAG_MSB                                                 28
+#define RX_MPDU_INFO_AMPDU_FLAG_MASK                                                0x10000000
+
+
+/* Description		BAR_FRAME
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, received frame is a BAR frame
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_BAR_FRAME_OFFSET                                               0x00000030
+#define RX_MPDU_INFO_BAR_FRAME_LSB                                                  29
+#define RX_MPDU_INFO_BAR_FRAME_MSB                                                  29
+#define RX_MPDU_INFO_BAR_FRAME_MASK                                                 0x20000000
+
+
+/* Description		RAW_MPDU
+
+			Consumer: SW
+			Producer: RXOLE
+			
+			RXPCU sets this field to 0 and RXOLE overwrites it.
+			
+			Set to 1 by RXOLE when it has not performed any 802.11 to
+			 Ethernet/Natvie WiFi header conversion on this MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RAW_MPDU_OFFSET                                                0x00000030
+#define RX_MPDU_INFO_RAW_MPDU_LSB                                                   30
+#define RX_MPDU_INFO_RAW_MPDU_MSB                                                   30
+#define RX_MPDU_INFO_RAW_MPDU_MASK                                                  0x40000000
+
+
+/* Description		RESERVED_12
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_12_OFFSET                                             0x00000030
+#define RX_MPDU_INFO_RESERVED_12_LSB                                                31
+#define RX_MPDU_INFO_RESERVED_12_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_12_MASK                                               0x80000000
+
+
+/* Description		MPDU_LENGTH
+
+			In case of ndp or phy_err this field will be set to 0
+			
+			MPDU length before decapsulation.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_LENGTH_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_MPDU_LENGTH_LSB                                                0
+#define RX_MPDU_INFO_MPDU_LENGTH_MSB                                                13
+#define RX_MPDU_INFO_MPDU_LENGTH_MASK                                               0x00003fff
+
+
+/* Description		FIRST_MPDU
+
+			See definition in RX attention descriptor
+			
+			In case of ndp or phy_err, this field will be set. Note 
+			however that there will not actually be any data contents
+			 in the MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_FIRST_MPDU_OFFSET                                              0x00000034
+#define RX_MPDU_INFO_FIRST_MPDU_LSB                                                 14
+#define RX_MPDU_INFO_FIRST_MPDU_MSB                                                 14
+#define RX_MPDU_INFO_FIRST_MPDU_MASK                                                0x00004000
+
+
+/* Description		MCAST_BCAST
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MCAST_BCAST_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_MCAST_BCAST_LSB                                                15
+#define RX_MPDU_INFO_MCAST_BCAST_MSB                                                15
+#define RX_MPDU_INFO_MCAST_BCAST_MASK                                               0x00008000
+
+
+/* Description		AST_INDEX_NOT_FOUND
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_OFFSET                                     0x00000034
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_LSB                                        16
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_MSB                                        16
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_MASK                                       0x00010000
+
+
+/* Description		AST_INDEX_TIMEOUT
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_OFFSET                                       0x00000034
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_LSB                                          17
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_MSB                                          17
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_MASK                                         0x00020000
+
+
+/* Description		POWER_MGMT
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_POWER_MGMT_OFFSET                                              0x00000034
+#define RX_MPDU_INFO_POWER_MGMT_LSB                                                 18
+#define RX_MPDU_INFO_POWER_MGMT_MSB                                                 18
+#define RX_MPDU_INFO_POWER_MGMT_MASK                                                0x00040000
+
+
+/* Description		NON_QOS
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 1
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_NON_QOS_OFFSET                                                 0x00000034
+#define RX_MPDU_INFO_NON_QOS_LSB                                                    19
+#define RX_MPDU_INFO_NON_QOS_MSB                                                    19
+#define RX_MPDU_INFO_NON_QOS_MASK                                                   0x00080000
+
+
+/* Description		NULL_DATA
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_NULL_DATA_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_NULL_DATA_LSB                                                  20
+#define RX_MPDU_INFO_NULL_DATA_MSB                                                  20
+#define RX_MPDU_INFO_NULL_DATA_MASK                                                 0x00100000
+
+
+/* Description		MGMT_TYPE
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MGMT_TYPE_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_MGMT_TYPE_LSB                                                  21
+#define RX_MPDU_INFO_MGMT_TYPE_MSB                                                  21
+#define RX_MPDU_INFO_MGMT_TYPE_MASK                                                 0x00200000
+
+
+/* Description		CTRL_TYPE
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_CTRL_TYPE_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_CTRL_TYPE_LSB                                                  22
+#define RX_MPDU_INFO_CTRL_TYPE_MSB                                                  22
+#define RX_MPDU_INFO_CTRL_TYPE_MASK                                                 0x00400000
+
+
+/* Description		MORE_DATA
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MORE_DATA_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_MORE_DATA_LSB                                                  23
+#define RX_MPDU_INFO_MORE_DATA_MSB                                                  23
+#define RX_MPDU_INFO_MORE_DATA_MASK                                                 0x00800000
+
+
+/* Description		EOSP
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_EOSP_OFFSET                                                    0x00000034
+#define RX_MPDU_INFO_EOSP_LSB                                                       24
+#define RX_MPDU_INFO_EOSP_MSB                                                       24
+#define RX_MPDU_INFO_EOSP_MASK                                                      0x01000000
+
+
+/* Description		FRAGMENT_FLAG
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_FRAGMENT_FLAG_OFFSET                                           0x00000034
+#define RX_MPDU_INFO_FRAGMENT_FLAG_LSB                                              25
+#define RX_MPDU_INFO_FRAGMENT_FLAG_MSB                                              25
+#define RX_MPDU_INFO_FRAGMENT_FLAG_MASK                                             0x02000000
+
+
+/* Description		ORDER
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_ORDER_OFFSET                                                   0x00000034
+#define RX_MPDU_INFO_ORDER_LSB                                                      26
+#define RX_MPDU_INFO_ORDER_MSB                                                      26
+#define RX_MPDU_INFO_ORDER_MASK                                                     0x04000000
+
+
+/* Description		U_APSD_TRIGGER
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_U_APSD_TRIGGER_OFFSET                                          0x00000034
+#define RX_MPDU_INFO_U_APSD_TRIGGER_LSB                                             27
+#define RX_MPDU_INFO_U_APSD_TRIGGER_MSB                                             27
+#define RX_MPDU_INFO_U_APSD_TRIGGER_MASK                                            0x08000000
+
+
+/* Description		ENCRYPT_REQUIRED
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_OFFSET                                        0x00000034
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_LSB                                           28
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_MSB                                           28
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_MASK                                          0x10000000
+
+
+/* Description		DIRECTED
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_DIRECTED_OFFSET                                                0x00000034
+#define RX_MPDU_INFO_DIRECTED_LSB                                                   29
+#define RX_MPDU_INFO_DIRECTED_MSB                                                   29
+#define RX_MPDU_INFO_DIRECTED_MASK                                                  0x20000000
+
+
+/* Description		AMSDU_PRESENT
+
+			Field only valid when Mpdu_qos_control_valid is set
+			
+			The 'amsdu_present' bit within the QoS control field of 
+			the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AMSDU_PRESENT_OFFSET                                           0x00000034
+#define RX_MPDU_INFO_AMSDU_PRESENT_LSB                                              30
+#define RX_MPDU_INFO_AMSDU_PRESENT_MSB                                              30
+#define RX_MPDU_INFO_AMSDU_PRESENT_MASK                                             0x40000000
+
+
+/* Description		RESERVED_13
+
+			Field only valid when Mpdu_qos_control_valid is set
+			
+			This indicates whether the 'Ack policy' field within the
+			 QoS control field of the MPDU indicates 'no-Ack.'
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_RESERVED_13_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_RESERVED_13_LSB                                                31
+#define RX_MPDU_INFO_RESERVED_13_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_13_MASK                                               0x80000000
+
+
+/* Description		MPDU_FRAME_CONTROL_FIELD
+
+			Field only valid when Mpdu_frame_control_valid is set
+			
+			The frame control field of this received MPDU.
+			
+			Field only valid when Ndp_frame and phy_err are NOT set
+			
+			Bytes 0 + 1 of the received MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_OFFSET                                0x00000038
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_LSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_MSB                                   15
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_MASK                                  0x0000ffff
+
+
+/* Description		MPDU_DURATION_FIELD
+
+			Field only valid when Mpdu_duration_valid is set
+			
+			The duration field of this received MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_OFFSET                                     0x00000038
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_LSB                                        16
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_MSB                                        31
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_MASK                                       0xffff0000
+
+
+/* Description		MAC_ADDR_AD1_31_0
+
+			Field only valid when mac_addr_ad1_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD1
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_OFFSET                                       0x0000003c
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_MASK                                         0xffffffff
+
+
+/* Description		MAC_ADDR_AD1_47_32
+
+			Field only valid when mac_addr_ad1_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD1
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_OFFSET                                      0x00000040
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_MASK                                        0x0000ffff
+
+
+/* Description		MAC_ADDR_AD2_15_0
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The Least Significant 2 bytes of the Received Frames MAC
+			 Address AD2
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_OFFSET                                       0x00000040
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_LSB                                          16
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_MASK                                         0xffff0000
+
+
+/* Description		MAC_ADDR_AD2_47_16
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The 4 most significant bytes of the Received Frames MAC 
+			Address AD2
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_OFFSET                                      0x00000044
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_MSB                                         31
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_MASK                                        0xffffffff
+
+
+/* Description		MAC_ADDR_AD3_31_0
+
+			Field only valid when mac_addr_ad3_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD3
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_OFFSET                                       0x00000048
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_MASK                                         0xffffffff
+
+
+/* Description		MAC_ADDR_AD3_47_32
+
+			Field only valid when mac_addr_ad3_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD3
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_OFFSET                                      0x0000004c
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_MASK                                        0x0000ffff
+
+
+/* Description		MPDU_SEQUENCE_CONTROL_FIELD
+
+			Field only valid when mpdu_sequence_control_valid is set
+			
+			
+			The sequence control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_OFFSET                             0x0000004c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_LSB                                16
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_MSB                                31
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_MASK                               0xffff0000
+
+
+/* Description		MAC_ADDR_AD4_31_0
+
+			Field only valid when mac_addr_ad4_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD4
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_OFFSET                                       0x00000050
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_MASK                                         0xffffffff
+
+
+/* Description		MAC_ADDR_AD4_47_32
+
+			Field only valid when mac_addr_ad4_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD4
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_OFFSET                                      0x00000054
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_MASK                                        0x0000ffff
+
+
+/* Description		MPDU_QOS_CONTROL_FIELD
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The sequence control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_OFFSET                                  0x00000054
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_LSB                                     16
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_MSB                                     31
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_MASK                                    0xffff0000
+
+
+/* Description		MPDU_HT_CONTROL_FIELD
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The HT control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_OFFSET                                   0x00000058
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_LSB                                      0
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_MSB                                      31
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_MASK                                     0xffffffff
+
+
+/* Description		VDEV_ID
+
+			Consumer: RXOLE
+			Producer: FW
+			
+			Virtual device associated with this peer
+			
+			RXOLE uses this to determine intra-BSS routing.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_VDEV_ID_OFFSET                                                 0x0000005c
+#define RX_MPDU_INFO_VDEV_ID_LSB                                                    0
+#define RX_MPDU_INFO_VDEV_ID_MSB                                                    7
+#define RX_MPDU_INFO_VDEV_ID_MASK                                                   0x000000ff
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_SERVICE_CODE_OFFSET                                            0x0000005c
+#define RX_MPDU_INFO_SERVICE_CODE_LSB                                               8
+#define RX_MPDU_INFO_SERVICE_CODE_MSB                                               16
+#define RX_MPDU_INFO_SERVICE_CODE_MASK                                              0x0001ff00
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_PRIORITY_VALID_OFFSET                                          0x0000005c
+#define RX_MPDU_INFO_PRIORITY_VALID_LSB                                             17
+#define RX_MPDU_INFO_PRIORITY_VALID_MSB                                             17
+#define RX_MPDU_INFO_PRIORITY_VALID_MASK                                            0x00020000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_SRC_INFO_OFFSET                                                0x0000005c
+#define RX_MPDU_INFO_SRC_INFO_LSB                                                   18
+#define RX_MPDU_INFO_SRC_INFO_MSB                                                   29
+#define RX_MPDU_INFO_SRC_INFO_MASK                                                  0x3ffc0000
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_23A_OFFSET                                            0x0000005c
+#define RX_MPDU_INFO_RESERVED_23A_LSB                                               30
+#define RX_MPDU_INFO_RESERVED_23A_MSB                                               30
+#define RX_MPDU_INFO_RESERVED_23A_MASK                                              0x40000000
+
+
+/* Description		MULTI_LINK_ADDR_AD1_AD2_VALID
+
+			If set, Rx OLE shall convert Address1 and Address2 of received
+			 data frames to multi-link addresses during decapsulation
+			 to Ethernet or Native WiFi
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_OFFSET                           0x0000005c
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_LSB                              31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_MSB                              31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_MASK                             0x80000000
+
+
+/* Description		MULTI_LINK_ADDR_AD1_31_0
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link receiver address (address1), bits [31:0]
+*/
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_OFFSET                                0x00000060
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_LSB                                   0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_MSB                                   31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_MASK                                  0xffffffff
+
+
+/* Description		MULTI_LINK_ADDR_AD1_47_32
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link receiver address (address1), bits [47:32]
+*/
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_OFFSET                               0x00000064
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_LSB                                  0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_MSB                                  15
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_MASK                                 0x0000ffff
+
+
+/* Description		MULTI_LINK_ADDR_AD2_15_0
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link transmitter address (address2), bits [15:0]
+*/
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_OFFSET                                0x00000064
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_LSB                                   16
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_MSB                                   31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_MASK                                  0xffff0000
+
+
+/* Description		MULTI_LINK_ADDR_AD2_47_16
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link transmitter address (address2), bits [47:16]
+*/
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_OFFSET                               0x00000068
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_LSB                                  0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_MSB                                  31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_MASK                                 0xffffffff
+
+
+/* Description		AUTHORIZED_TO_SEND_WDS
+
+			If not set, RXDMA shall perform error-routing for WDS packets
+			 as the sender is not authorized and might misuse WDS frame
+			 format to inject packets with arbitrary DA/SA.
+			<legal all>
+*/
+
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_OFFSET                                  0x0000006c
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_LSB                                     0
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_MSB                                     0
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_MASK                                    0x00000001
+
+
+/* Description		RESERVED_27A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_27A_OFFSET                                            0x0000006c
+#define RX_MPDU_INFO_RESERVED_27A_LSB                                               1
+#define RX_MPDU_INFO_RESERVED_27A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_27A_MASK                                              0xfffffffe
+
+
+/* Description		RESERVED_28A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_28A_OFFSET                                            0x00000070
+#define RX_MPDU_INFO_RESERVED_28A_LSB                                               0
+#define RX_MPDU_INFO_RESERVED_28A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_28A_MASK                                              0xffffffff
+
+
+/* Description		RESERVED_29A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_INFO_RESERVED_29A_OFFSET                                            0x00000074
+#define RX_MPDU_INFO_RESERVED_29A_LSB                                               0
+#define RX_MPDU_INFO_RESERVED_29A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_29A_MASK                                              0xffffffff
+
+
+
+#endif   // RX_MPDU_INFO
diff --git a/hw/qca5332/rx_mpdu_link_ptr.h b/hw/qca5332/rx_mpdu_link_ptr.h
new file mode 100644
index 0000000..24d2e4b
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_link_ptr.h
@@ -0,0 +1,186 @@
+
+/* 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 _RX_MPDU_LINK_PTR_H_
+#define _RX_MPDU_LINK_PTR_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_LINK_PTR 2
+
+
+struct rx_mpdu_link_ptr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          mpdu_link_desc_addr_info;
+#else
+             struct   buffer_addr_info                                          mpdu_link_desc_addr_info;
+#endif
+};
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET           0x00000000
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB              0
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB              31
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK             0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET          0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB             0
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB             7
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK            0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET      0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB         8
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB         11
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK        0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET           0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB              12
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB              31
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK             0xfffff000
+
+
+
+#endif   // RX_MPDU_LINK_PTR
diff --git a/hw/qca5332/rx_mpdu_start.h b/hw/qca5332/rx_mpdu_start.h
new file mode 100644
index 0000000..6680f21
--- /dev/null
+++ b/hw/qca5332/rx_mpdu_start.h
@@ -0,0 +1,2216 @@
+
+/* 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 _RX_MPDU_START_H_
+#define _RX_MPDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_START 30
+
+#define NUM_OF_QWORDS_RX_MPDU_START 15
+
+
+struct rx_mpdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_info                                              rx_mpdu_info_details;
+#else
+             struct   rx_mpdu_info                                              rx_mpdu_info_details;
+#endif
+};
+
+
+/* Description		RX_MPDU_INFO_DETAILS
+
+			Structure containing all the MPDU header details that might
+			 be needed for other modules further down the received path
+			
+*/
+
+
+/* Description		RXPT_CLASSIFY_INFO_DETAILS
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			RXOLE related classification info
+			<legal all
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			<enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x000000000000001f
+
+
+/* Description		LMAC_PEER_ID_MSB
+
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_'sb
+			 is 2'b00, Rx OLE uses a REO desination indicati'n of {1'b1, 
+			hash[3:0]} using the chosen Toeplitz hash from Common Parser
+			 if flow search fails.
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_msb
+			 's not 2'b00, Rx OLE uses a REO desination indication of
+			 {lmac_peer_id_msb, hash[2:0]} using the chosen Toeplitz
+			 hash from Common Parser if flow search fails.
+			This LMAC/peer-based routing is not supported in Hastings80
+			 and HastingsPrime.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_LSB 5
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MSB 6
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MASK 0x0000000000000060
+
+
+/* Description		USE_FLOW_ID_TOEPLITZ_CLFY
+
+			Indication to Rx OLE to enable REO destination routing based
+			 on the chosen Toeplitz hash from Common Parser, in case
+			 flow search fails
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MSB 7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x0000000000000080
+
+
+/* Description		PKT_SELECTION_FP_UCAST_DATA
+
+			Filter pass Unicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Unicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_LSB 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MSB 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MASK 0x0000000000000100
+
+
+/* Description		PKT_SELECTION_FP_MCAST_DATA
+
+			Filter pass Multicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Multicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_LSB 9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MSB 9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MASK 0x0000000000000200
+
+
+/* Description		PKT_SELECTION_FP_1000
+
+			Filter pass BAR frame (matching rxpcu_filter_pass and sw_frame_group_ctrl_1000) 
+			routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_LSB 10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MSB 10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MASK 0x0000000000000400
+
+
+/* Description		RXDMA0_SOURCE_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0 sw2rxdma0_0_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma0 buffer source 
+			ring.
+			<enum 1 fw2rxdma0_pmac0_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC0.
+			<enum 2 sw2rxdma0_1_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma1 buffer source 
+			ring.
+			<enum 3 no_buffer_rxdma0_ring> The frame shall not be written
+			 to any data buffer.
+			<enum 4 sw2rxdma0_exception_buf_source_ring> The data buffer
+			 for this frame shall be sourced by sw2rxdma_exception buffer
+			 source ring.
+			<enum 5 fw2rxdma0_pmac1_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC1.
+			
+			<legal 0-5>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_LSB 11
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MSB 13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MASK 0x0000000000003800
+
+
+/* Description		RXDMA0_DESTINATION_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0  rxdma_release_ring> RXDMA0 shall push the frame
+			 to the Release ring. Effectively this means the frame needs
+			 to be dropped.
+			<enum 1  rxdma2fw_pmac0_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC0.
+			<enum 2  rxdma2sw_ring> RXDMA0 shall push the frame to the
+			 SW ring.
+			<enum 3  rxdma2reo_ring> RXDMA0 shall push the frame to 
+			the REO entrance ring.
+			<enum 4  rxdma2fw_pmac1_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC1.
+			<enum 5 rxdma2reo_remote0_ring> RXDMA0 shall push the frame
+			 to the first MLO REO entrance ring.
+			<enum 6 rxdma2reo_remote1_ring> RXDMA0 shall push the frame
+			 to the second MLO REO entrance ring.
+			
+			<legal 0-6>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_LSB 14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MSB 16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x000000000001c000
+
+
+/* Description		MCAST_ECHO_DROP_ENABLE
+
+			If set, for multicast packets, multicast echo check (i.e. 
+			SA search with mcast_echo_check = 1) shall be performed 
+			by RXOLE, and any multicast echo packets should be indicated
+			 to RXDMA for release to WBM
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_LSB 17
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MSB 17
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MASK 0x0000000000020000
+
+
+/* Description		WDS_LEARNING_DETECT_EN
+
+			If set, WDS learning detection based on SA search and notification
+			 to FW (using RXDMA0 status ring) is enabled and the "timestamp" 
+			field in address search failure cache-only entry should 
+			be used to avoid multiple WDS learning notifications.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_LSB 18
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MSB 18
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MASK 0x0000000000040000
+
+
+/* Description		INTRABSS_CHECK_EN
+
+			If set, intra-BSS routing detection is enabled
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_LSB 19
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MSB 19
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MASK 0x0000000000080000
+
+
+/* Description		USE_PPE
+
+			Indicates to RXDMA to ignore the REO_destination_indication
+			 and use a programmed value corresponding to the REO2PPE
+			 ring
+			
+			This override to REO2PPE for packets requiring multiple 
+			buffers shall be disabled based on an RXDMA configuration, 
+			as PPE may not support such packets.
+			
+			Supported only in full AP chips like Waikiki, not in client/soft
+			 AP chips like Hamilton
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_LSB   20
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MSB   20
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MASK  0x0000000000100000
+
+
+/* Description		PPE_ROUTING_ENABLE
+
+			Global enable/disable bit for routing to PPE, used to disable
+			 PPE routing even if RXOLE CCE or flow search indicate 'Use_PPE'
+			
+			
+			This is set by SW for peers which are being handled by a
+			 host SW/accelerator subsystem that also handles packet 
+			buffer management for WiFi-to-PPE routing.
+			
+			This is cleared by SW for peers which are being handled 
+			by a different subsystem, completely disabling WiFi-to-PPE
+			 routing for such peers.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_LSB 21
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MSB 21
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MASK 0x0000000000200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_LSB 22
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MSB 31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MASK 0x00000000ffc00000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Address (lower 32 bits) of the REO queue descriptor. 
+			
+			If no Peer entry lookup happened for this frame, the value
+			 wil be set to 0, and the frame shall never be pushed to
+			 REO entrance ring.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET       0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_LSB          32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_MSB          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_MASK         0xffffffff00000000
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Address (upper 8 bits) of the REO queue descriptor. 
+			
+			If no Peer entry lookup happened for this frame, the value
+			 wil be set to 0, and the frame shall never be pushed to
+			 REO entrance ring.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET      0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_LSB         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_MSB         7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_MASK        0x00000000000000ff
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Indicates the MPDU queue ID to which this MPDU link descriptor
+			 belongs
+			Used for tracking and debugging
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_OFFSET              0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_LSB                 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_MSB                 23
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_MASK                0x0000000000ffff00
+
+
+/* Description		PRE_DELIM_ERR_WARNING
+
+			Indicates that a delimiter FCS error was found in between
+			 the Previous MPDU and this MPDU.
+			
+			Note that this is just a warning, and does not mean that
+			 this MPDU is corrupted in any way. If it is, there will
+			 be other errors indicated such as FCS or decrypt errors
+			
+			
+			In case of ndp or phy_err, this field will indicate at least
+			 one of delimiters located after the last MPDU in the previous
+			 PPDU has been corrupted.
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_OFFSET             0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_LSB                24
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_MSB                24
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_MASK               0x0000000001000000
+
+
+/* Description		FIRST_DELIM_ERR
+
+			Indicates that the first delimiter had a FCS failure.  Only
+			 valid when first_mpdu and first_msdu are set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_OFFSET                   0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_LSB                      25
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_MSB                      25
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_MASK                     0x0000000002000000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_OFFSET                       0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_LSB                          26
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_MSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_MASK                         0x00000000fc000000
+
+
+/* Description		PN_31_0
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [31:0] of the PN number extracted from the IV field
+			
+			WEP: IV = {key_id_octet, pn2, pn1, pn0}.  Only pn[23:0] 
+			is valid.
+			TKIP: IV = {pn5, pn4, pn3, pn2, key_id_octet, pn0, WEPSeed[1], 
+			pn1}.  Only pn[47:0] is valid.
+			AES-CCM: IV = {pn5, pn4, pn3, pn2, key_id_octet, 0x0, pn1, 
+			pn0}.  Only pn[47:0] is valid.
+			WAPI: IV = {key_id_octet, 0x0, pn15, pn14, pn13, pn12, pn11, 
+			pn10, pn9, pn8, pn7, pn6, pn5, pn4, pn3, pn2, pn1, pn0}. 
+			 pn[127:0] are valid.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_OFFSET                           0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_LSB                              32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_MSB                              63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_MASK                             0xffffffff00000000
+
+
+/* Description		PN_63_32
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [63:32] of the PN number.   See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_OFFSET                          0x0000000000000010
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_LSB                             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_MSB                             31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_MASK                            0x00000000ffffffff
+
+
+/* Description		PN_95_64
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [95:64] of the PN number.  See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_OFFSET                          0x0000000000000010
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_LSB                             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_MSB                             63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_MASK                            0xffffffff00000000
+
+
+/* Description		PN_127_96
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			Bits [127:96] of the PN number.  See description for pn_31_0.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_OFFSET                         0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_LSB                            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_MSB                            31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_MASK                           0x00000000ffffffff
+
+
+/* Description		EPD_EN
+
+			Field only valid when AST_based_lookup_valid == 1.
+			
+			
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			If set to one use EPD instead of LPD
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_OFFSET                            0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_LSB                               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_MSB                               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_MASK                              0x0000000100000000
+
+
+/* Description		ALL_FRAMES_SHALL_BE_ENCRYPTED
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, all frames (data only ?) shall be encrypted. If
+			 not, RX CRYPTO shall set an error flag.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_OFFSET     0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_LSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_MSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_MASK       0x0000000200000000
+
+
+/* Description		ENCRYPT_TYPE
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Indicates type of decrypt cipher used (as defined in the
+			 peer entry)
+			
+			<enum 0 wep_40> WEP 40-bit
+			<enum 1 wep_104> WEP 104-bit
+			<enum 2 tkip_no_mic> TKIP without MIC
+			<enum 3 wep_128> WEP 128-bit
+			<enum 4 tkip_with_mic> TKIP with MIC
+			<enum 5 wapi> WAPI
+			<enum 6 aes_ccmp_128> AES CCMP 128
+			<enum 7 no_cipher> No crypto
+			<enum 8 aes_ccmp_256> AES CCMP 256
+			<enum 9 aes_gcmp_128> AES CCMP 128
+			<enum 10 aes_gcmp_256> AES CCMP 256
+			<enum 11 wapi_gcm_sm4> WAPI GCM SM4
+			
+			<enum 12 wep_varied_width> WEP encryption. As for WEP per
+			 keyid the key bit width can vary, the key bit width for
+			 this MPDU will be indicated in field wep_key_width_for_variable
+			 key
+			<legal 0-12>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_OFFSET                      0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_LSB                         34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_MSB                         37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_MASK                        0x0000003c00000000
+
+
+/* Description		WEP_KEY_WIDTH_FOR_VARIABLE_KEY
+
+			Field only valid when key_type is set to wep_varied_width. 
+			
+			
+			This field indicates the size of the wep key for this MPDU.
+			
+			 
+			<enum 0 wep_varied_width_40> WEP 40-bit
+			<enum 1 wep_varied_width_104> WEP 104-bit
+			<enum 2 wep_varied_width_128> WEP 128-bit
+			
+			<legal 0-2>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_OFFSET    0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_LSB       38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MSB       39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MASK      0x000000c000000000
+
+
+/* Description		MESH_STA
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, this is a Mesh (11s) STA.
+			
+			The interpretation of the A-MSDU 'Length' field in the MPDU
+			 (if any) is decided by the e-numerations below.
+			
+			<enum 0 MESH_DISABLE>
+			<enum 1 MESH_Q2Q> A-MSDU 'Length' is big endian and includes
+			 the length of Mesh Control.
+			<enum 2 MESH_11S_BE> A-MSDU 'Length' is big endian and excludes
+			 the length of Mesh Control.
+			<enum 3 MESH_11S_LE> A-MSDU 'Length' is little endian and
+			 excludes the length of Mesh Control. This is 802.11s-compliant.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_OFFSET                          0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_LSB                             40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_MSB                             41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_MASK                            0x0000030000000000
+
+
+/* Description		BSSID_HIT
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, the BSSID of the incoming frame matched one of
+			 the 8 BSSID register values
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_OFFSET                         0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_LSB                            42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_MSB                            42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_MASK                           0x0000040000000000
+
+
+/* Description		BSSID_NUMBER
+
+			Field only valid when bssid_hit is set.
+			
+			This number indicates which one out of the 8 BSSID register
+			 values matched the incoming frame
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_OFFSET                      0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_LSB                         43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_MSB                         46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_MASK                        0x0000780000000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_OFFSET                               0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_LSB                                  47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_MSB                                  50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_MASK                                 0x0007800000000000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_OFFSET                       0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_LSB                          51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_MASK                         0xfff8000000000000
+
+
+/* Description		PEER_META_DATA
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_OFFSET                    0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_LSB                       0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_MSB                       31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_MASK                      0x00000000ffffffff
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			
+			Note: for ndp frame, if it was expected because the preceding
+			 NDPA was filter_pass, the setting  rxpcu_filter_pass will
+			 be used. This setting will also be used for every ndp frame
+			 in case Promiscuous mode is enabled.
+			
+			In case promiscuous is not enabled, and an NDP is not preceded
+			 by a NPDA filter pass frame, the only other setting that
+			 could appear here for the NDP is rxpcu_monitor_other. 
+			(rxpcu has a configuration bit specifically for this scenario)
+			
+			
+			Note: for 
+			<legal 0-3>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET     0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB        32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK       0x0000000300000000
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> Note: The corresponding
+			 Rxpcu_Mpdu_filter_in_category can be rxpcu_filter_pass 
+			or rxpcu_monitor_other
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0 
+			Note: The corresponding Rxpcu_Mpdu_filter_in_category can
+			 only be rxpcu_monitor_other
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			Note: The corresponding Rxpcu_Mpdu_filter_in_category can
+			 be rxpcu_filter_pass
+			
+			<legal 0-39>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_OFFSET                 0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_LSB                    34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_MSB                    40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_MASK                   0x000001fc00000000
+
+
+/* Description		NDP_FRAME
+
+			When set, the received frame was an NDP frame, and thus 
+			there will be no MPDU data.
+			TODO: Should this be extended to 2-bit e-num?
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_OFFSET                         0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_LSB                            41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_MSB                            41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_MASK                           0x0000020000000000
+
+
+/* Description		PHY_ERR
+
+			When set, a PHY error was received before MAC received any
+			 data, and thus there will be no MPDU data.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_OFFSET                           0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_LSB                              42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_MSB                              42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_MASK                             0x0000040000000000
+
+
+/* Description		PHY_ERR_DURING_MPDU_HEADER
+
+			When set, a PHY error was received before MAC received the
+			 complete MPDU header which was needed for proper decoding
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_OFFSET        0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_LSB           43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_MSB           43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_MASK          0x0000080000000000
+
+
+/* Description		PROTOCOL_VERSION_ERR
+
+			Set when RXPCU detected a version error in the Frame control
+			 field
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_OFFSET              0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_LSB                 44
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_MSB                 44
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_MASK                0x0000100000000000
+
+
+/* Description		AST_BASED_LOOKUP_VALID
+
+			When set, AST based lookup for this frame has found a valid
+			 result.
+			
+			Note that for NDP frame this will never be set
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_OFFSET            0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_LSB               45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_MSB               45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_MASK              0x0000200000000000
+
+
+/* Description		RANGING
+
+			When set, a ranging NDPA or a ranging NDP was received.
+			
+			This field is only for FW visibility. HW is not expected
+			 to take any action on this.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_OFFSET                           0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_LSB                              46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_MSB                              46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_MASK                             0x0000400000000000
+
+
+/* Description		RESERVED_9A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_OFFSET                       0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_LSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_MSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_MASK                         0x0000800000000000
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_OFFSET                       0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_LSB                          48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_MASK                         0xffff000000000000
+
+
+/* Description		AST_INDEX
+
+			This field indicates the index of the AST entry corresponding
+			 to this MPDU. It is provided by the GSE module instantiated
+			 in RXPCU.
+			A value of 0xFFFF indicates an invalid AST index, meaning
+			 that No AST entry was found or NO AST search was performed
+			
+			
+			In case of ndp or phy_err, this field will be set to 0xFFFF
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_OFFSET                         0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_LSB                            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_MSB                            15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_MASK                           0x000000000000ffff
+
+
+/* Description		SW_PEER_ID
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			This field indicates a unique peer identifier. It is set
+			 equal to field 'sw_peer_id' from the AST entry
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_OFFSET                        0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_LSB                           16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_MSB                           31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_MASK                          0x00000000ffff0000
+
+
+/* Description		MPDU_FRAME_CONTROL_VALID
+
+			When set, the field Mpdu_Frame_control_field has valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_OFFSET          0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_LSB             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_MSB             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_MASK            0x0000000100000000
+
+
+/* Description		MPDU_DURATION_VALID
+
+			When set, the field Mpdu_duration_field has valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_OFFSET               0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_LSB                  33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_MSB                  33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_MASK                 0x0000000200000000
+
+
+/* Description		MAC_ADDR_AD1_VALID
+
+			When set, the fields mac_addr_ad1_..... have valid information
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_LSB                   34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_MSB                   34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_MASK                  0x0000000400000000
+
+
+/* Description		MAC_ADDR_AD2_VALID
+
+			When set, the fields mac_addr_ad2_..... have valid information
+			
+			
+			For MPDUs without Address 2, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_LSB                   35
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_MSB                   35
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_MASK                  0x0000000800000000
+
+
+/* Description		MAC_ADDR_AD3_VALID
+
+			When set, the fields mac_addr_ad3_..... have valid information
+			
+			
+			For MPDUs without Address 3, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_LSB                   36
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_MSB                   36
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_MASK                  0x0000001000000000
+
+
+/* Description		MAC_ADDR_AD4_VALID
+
+			When set, the fields mac_addr_ad4_..... have valid information
+			
+			
+			For MPDUs without Address 4, this field will not be set.
+			
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_LSB                   37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_MSB                   37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_MASK                  0x0000002000000000
+
+
+/* Description		MPDU_SEQUENCE_CONTROL_VALID
+
+			When set, the fields mpdu_sequence_control_field and mpdu_sequence_number
+			 have valid information as well as field 
+			
+			For MPDUs without a sequence control field, this field will
+			 not be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_OFFSET       0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_LSB          38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_MSB          38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_MASK         0x0000004000000000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the field mpdu_qos_control_field has valid information
+			
+			
+			For MPDUs without a QoS control field, this field will not
+			 be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET            0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB               39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB               39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK              0x0000008000000000
+
+
+/* Description		MPDU_HT_CONTROL_VALID
+
+			When set, the field mpdu_HT_control_field has valid information
+			
+			
+			For MPDUs without a HT control field, this field will not
+			 be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_OFFSET             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_LSB                40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_MSB                40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_MASK               0x0000010000000000
+
+
+/* Description		FRAME_ENCRYPTION_INFO_VALID
+
+			When set, the encryption related info fields, like IV and
+			 PN are valid
+			
+			For MPDUs that are not encrypted, this will not be set.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_OFFSET       0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_LSB          41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_MSB          41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_MASK         0x0000020000000000
+
+
+/* Description		MPDU_FRAGMENT_NUMBER
+
+			Field only valid when Mpdu_sequence_control_valid is set
+			 AND Fragment_flag is set 
+			
+			The fragment number from the 802.11 header
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_OFFSET              0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_LSB                 42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_MSB                 45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_MASK                0x00003c0000000000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB                   46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB                   46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK                  0x0000400000000000
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_OFFSET                      0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_LSB                         47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_MSB                         47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_MASK                        0x0000800000000000
+
+
+/* Description		FR_DS
+
+			Field only valid when Mpdu_frame_control_valid is set
+			
+			Set if the from DS bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_OFFSET                             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_LSB                                48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_MSB                                48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_MASK                               0x0001000000000000
+
+
+/* Description		TO_DS
+
+			Field only valid when Mpdu_frame_control_valid is set 
+			
+			Set if the to DS bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_OFFSET                             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_LSB                                49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_MSB                                49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_MASK                               0x0002000000000000
+
+
+/* Description		ENCRYPTED
+
+			Field only valid when Mpdu_frame_control_valid is set.
+			
+			Protected bit from the frame control.  
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_OFFSET                         0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_LSB                            50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_MSB                            50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_MASK                           0x0004000000000000
+
+
+/* Description		MPDU_RETRY
+
+			Field only valid when Mpdu_frame_control_valid is set.
+			
+			Retry bit from the frame control.  Only valid when first_msdu
+			 is set.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_OFFSET                        0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_LSB                           51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_MSB                           51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_MASK                          0x0008000000000000
+
+
+/* Description		MPDU_SEQUENCE_NUMBER
+
+			Field only valid when Mpdu_sequence_control_valid is set.
+			
+			
+			The sequence number from the 802.11 header.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_OFFSET              0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_LSB                 52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_MSB                 63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_MASK                0xfff0000000000000
+
+
+/* Description		KEY_ID_OCTET
+
+			Field only valid when Frame_encryption_info_valid is set
+			
+			
+			The key ID octet from the IV.
+			
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_OFFSET                      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_LSB                         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_MSB                         7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_MASK                        0x00000000000000ff
+
+
+/* Description		NEW_PEER_ENTRY
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Set if new RX_PEER_ENTRY TLV follows. If clear, RX_PEER_ENTRY
+			 doesn't follow so RX DECRYPTION module either uses old 
+			peer entry or not decrypt. 
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_LSB                       8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_MSB                       8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_MASK                      0x0000000000000100
+
+
+/* Description		DECRYPT_NEEDED
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Set if decryption is needed. 
+			
+			Note:
+			When RXPCU sets bit 'ast_index_not_found' and/or ast_index_timeout', 
+			RXPCU will also ensure that this bit is NOT set
+			CRYPTO for that reason only needs to evaluate this bit and
+			 non of the other ones.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_LSB                       9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_MSB                       9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_MASK                      0x0000000000000200
+
+
+/* Description		DECAP_TYPE
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Used by the OLE during decapsulation.
+			
+			Indicates the decapsulation that HW will perform:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_LSB                           10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_MSB                           11
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_MASK                          0x0000000000000c00
+
+
+/* Description		RX_INSERT_VLAN_C_TAG_PADDING
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Insert 4 byte of all zeros as VLAN tag if the rx payload
+			 does not have VLAN. Used during decapsulation. 
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_OFFSET      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_LSB         12
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_MSB         12
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_MASK        0x0000000000001000
+
+
+/* Description		RX_INSERT_VLAN_S_TAG_PADDING
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Insert 4 byte of all zeros as double VLAN tag if the rx 
+			payload does not have VLAN. Used during 
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_OFFSET      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_LSB         13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_MSB         13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_MASK        0x0000000000002000
+
+
+/* Description		STRIP_VLAN_C_TAG_DECAP
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Strip the VLAN during decapsulation.  Used by the OLE.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_OFFSET            0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_LSB               14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_MSB               14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_MASK              0x0000000000004000
+
+
+/* Description		STRIP_VLAN_S_TAG_DECAP
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			Strip the double VLAN during decapsulation.  Used by the
+			 OLE.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_OFFSET            0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_LSB               15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_MSB               15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_MASK              0x0000000000008000
+
+
+/* Description		PRE_DELIM_COUNT
+
+			The number of delimiters before this MPDU.  
+			
+			Note that this number is cleared at PPDU start.
+			
+			If this MPDU is the first received MPDU in the PPDU and 
+			this MPDU gets filtered-in, this field will indicate the
+			 number of delimiters located after the last MPDU in the
+			 previous PPDU.
+			
+			If this MPDU is located after the first received MPDU in
+			 an PPDU, this field will indicate the number of delimiters
+			 located between the previous MPDU and this MPDU.
+			
+			In case of ndp or phy_err, this field will indicate the 
+			number of delimiters located after the last MPDU in the 
+			previous PPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_OFFSET                   0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_LSB                      16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_MSB                      27
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_MASK                     0x000000000fff0000
+
+
+/* Description		AMPDU_FLAG
+
+			When set, received frame was part of an A-MPDU.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_LSB                           28
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_MSB                           28
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_MASK                          0x0000000010000000
+
+
+/* Description		BAR_FRAME
+
+			In case of ndp or phy_err or AST_based_lookup_valid == 0, 
+			this field will be set to 0
+			
+			When set, received frame is a BAR frame
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_LSB                            29
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_MSB                            29
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_MASK                           0x0000000020000000
+
+
+/* Description		RAW_MPDU
+
+			Consumer: SW
+			Producer: RXOLE
+			
+			RXPCU sets this field to 0 and RXOLE overwrites it.
+			
+			Set to 1 by RXOLE when it has not performed any 802.11 to
+			 Ethernet/Natvie WiFi header conversion on this MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_OFFSET                          0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_LSB                             30
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_MSB                             30
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_MASK                            0x0000000040000000
+
+
+/* Description		RESERVED_12
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_LSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_MSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_MASK                         0x0000000080000000
+
+
+/* Description		MPDU_LENGTH
+
+			In case of ndp or phy_err this field will be set to 0
+			
+			MPDU length before decapsulation.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_LSB                          32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_MSB                          45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_MASK                         0x00003fff00000000
+
+
+/* Description		FIRST_MPDU
+
+			See definition in RX attention descriptor
+			
+			In case of ndp or phy_err, this field will be set. Note 
+			however that there will not actually be any data contents
+			 in the MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_LSB                           46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_MSB                           46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_MASK                          0x0000400000000000
+
+
+/* Description		MCAST_BCAST
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_LSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_MSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_MASK                         0x0000800000000000
+
+
+/* Description		AST_INDEX_NOT_FOUND
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_OFFSET               0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_LSB                  48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_MSB                  48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_MASK                 0x0001000000000000
+
+
+/* Description		AST_INDEX_TIMEOUT
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_OFFSET                 0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_LSB                    49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_MSB                    49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_MASK                   0x0002000000000000
+
+
+/* Description		POWER_MGMT
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_LSB                           50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_MSB                           50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_MASK                          0x0004000000000000
+
+
+/* Description		NON_QOS
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 1
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_OFFSET                           0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_LSB                              51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_MSB                              51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_MASK                             0x0008000000000000
+
+
+/* Description		NULL_DATA
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_LSB                            52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_MSB                            52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_MASK                           0x0010000000000000
+
+
+/* Description		MGMT_TYPE
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_LSB                            53
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_MSB                            53
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_MASK                           0x0020000000000000
+
+
+/* Description		CTRL_TYPE
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_LSB                            54
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_MSB                            54
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_MASK                           0x0040000000000000
+
+
+/* Description		MORE_DATA
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_LSB                            55
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_MSB                            55
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_MASK                           0x0080000000000000
+
+
+/* Description		EOSP
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_OFFSET                              0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_LSB                                 56
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_MSB                                 56
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_MASK                                0x0100000000000000
+
+
+/* Description		FRAGMENT_FLAG
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_OFFSET                     0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_LSB                        57
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_MSB                        57
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_MASK                       0x0200000000000000
+
+
+/* Description		ORDER
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_OFFSET                             0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_LSB                                58
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_MSB                                58
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_MASK                               0x0400000000000000
+
+
+/* Description		U_APSD_TRIGGER
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_LSB                       59
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_MSB                       59
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_MASK                      0x0800000000000000
+
+
+/* Description		ENCRYPT_REQUIRED
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_OFFSET                  0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_LSB                     60
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_MSB                     60
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_MASK                    0x1000000000000000
+
+
+/* Description		DIRECTED
+
+			In case of ndp or phy_err or Phy_err_during_mpdu_header 
+			this field will be set to 0
+			
+			See definition in RX attention descriptor
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_OFFSET                          0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_LSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_MSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_MASK                            0x2000000000000000
+
+
+/* Description		AMSDU_PRESENT
+
+			Field only valid when Mpdu_qos_control_valid is set
+			
+			The 'amsdu_present' bit within the QoS control field of 
+			the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_OFFSET                     0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_LSB                        62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_MSB                        62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_MASK                       0x4000000000000000
+
+
+/* Description		RESERVED_13
+
+			Field only valid when Mpdu_qos_control_valid is set
+			
+			This indicates whether the 'Ack policy' field within the
+			 QoS control field of the MPDU indicates 'no-Ack.'
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_LSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_MASK                         0x8000000000000000
+
+
+/* Description		MPDU_FRAME_CONTROL_FIELD
+
+			Field only valid when Mpdu_frame_control_valid is set
+			
+			The frame control field of this received MPDU.
+			
+			Field only valid when Ndp_frame and phy_err are NOT set
+			
+			Bytes 0 + 1 of the received MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_OFFSET          0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_LSB             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_MSB             15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_MASK            0x000000000000ffff
+
+
+/* Description		MPDU_DURATION_FIELD
+
+			Field only valid when Mpdu_duration_valid is set
+			
+			The duration field of this received MPDU.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_OFFSET               0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_LSB                  16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_MSB                  31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_MASK                 0x00000000ffff0000
+
+
+/* Description		MAC_ADDR_AD1_31_0
+
+			Field only valid when mac_addr_ad1_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD1
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_OFFSET                 0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_LSB                    32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_MSB                    63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_MASK                   0xffffffff00000000
+
+
+/* Description		MAC_ADDR_AD1_47_32
+
+			Field only valid when mac_addr_ad1_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD1
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_OFFSET                0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_LSB                   0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_MSB                   15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_MASK                  0x000000000000ffff
+
+
+/* Description		MAC_ADDR_AD2_15_0
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The Least Significant 2 bytes of the Received Frames MAC
+			 Address AD2
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_OFFSET                 0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_LSB                    16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_MASK                   0x00000000ffff0000
+
+
+/* Description		MAC_ADDR_AD2_47_16
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The 4 most significant bytes of the Received Frames MAC 
+			Address AD2
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_OFFSET                0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_MSB                   63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_MASK                  0xffffffff00000000
+
+
+/* Description		MAC_ADDR_AD3_31_0
+
+			Field only valid when mac_addr_ad3_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD3
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_OFFSET                 0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_LSB                    0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_MASK                   0x00000000ffffffff
+
+
+/* Description		MAC_ADDR_AD3_47_32
+
+			Field only valid when mac_addr_ad3_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD3
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_OFFSET                0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_MSB                   47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_MASK                  0x0000ffff00000000
+
+
+/* Description		MPDU_SEQUENCE_CONTROL_FIELD
+
+			Field only valid when mpdu_sequence_control_valid is set
+			
+			
+			The sequence control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_OFFSET       0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_LSB          48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_MSB          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_MASK         0xffff000000000000
+
+
+/* Description		MAC_ADDR_AD4_31_0
+
+			Field only valid when mac_addr_ad4_valid is set
+			
+			The Least Significant 4 bytes of the Received Frames MAC
+			 Address AD4
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_OFFSET                 0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_LSB                    0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_MASK                   0x00000000ffffffff
+
+
+/* Description		MAC_ADDR_AD4_47_32
+
+			Field only valid when mac_addr_ad4_valid is set
+			
+			The 2 most significant bytes of the Received Frames MAC 
+			Address AD4
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_OFFSET                0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_MSB                   47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_MASK                  0x0000ffff00000000
+
+
+/* Description		MPDU_QOS_CONTROL_FIELD
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The sequence control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_OFFSET            0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_LSB               48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_MSB               63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_MASK              0xffff000000000000
+
+
+/* Description		MPDU_HT_CONTROL_FIELD
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The HT control field of the MPDU
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_OFFSET             0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_LSB                0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_MSB                31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_MASK               0x00000000ffffffff
+
+
+/* Description		VDEV_ID
+
+			Consumer: RXOLE
+			Producer: FW
+			
+			Virtual device associated with this peer
+			
+			RXOLE uses this to determine intra-BSS routing.
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_OFFSET                           0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_LSB                              32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_MSB                              39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_MASK                             0x000000ff00000000
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_OFFSET                      0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_LSB                         40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_MSB                         48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_MASK                        0x0001ff0000000000
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_OFFSET                    0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_LSB                       49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_MSB                       49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_MASK                      0x0002000000000000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_OFFSET                          0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_LSB                             50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_MSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_MASK                            0x3ffc000000000000
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_OFFSET                      0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_LSB                         62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_MSB                         62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_MASK                        0x4000000000000000
+
+
+/* Description		MULTI_LINK_ADDR_AD1_AD2_VALID
+
+			If set, Rx OLE shall convert Address1 and Address2 of received
+			 data frames to multi-link addresses during decapsulation
+			 to Ethernet or Native WiFi
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_OFFSET     0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_LSB        63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_MSB        63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_MASK       0x8000000000000000
+
+
+/* Description		MULTI_LINK_ADDR_AD1_31_0
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link receiver address (address1), bits [31:0]
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_OFFSET          0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_LSB             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_MSB             31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_MASK            0x00000000ffffffff
+
+
+/* Description		MULTI_LINK_ADDR_AD1_47_32
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link receiver address (address1), bits [47:32]
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_OFFSET         0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_LSB            32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_MSB            47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_MASK           0x0000ffff00000000
+
+
+/* Description		MULTI_LINK_ADDR_AD2_15_0
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link transmitter address (address2), bits [15:0]
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_OFFSET          0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_LSB             48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_MSB             63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_MASK            0xffff000000000000
+
+
+/* Description		MULTI_LINK_ADDR_AD2_47_16
+
+			Field only valid if Multi_link_addr_ad1_ad2_valid is set
+			
+			
+			Multi-link transmitter address (address2), bits [47:16]
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_OFFSET         0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_LSB            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_MSB            31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_MASK           0x00000000ffffffff
+
+
+/* Description		AUTHORIZED_TO_SEND_WDS
+
+			If not set, RXDMA shall perform error-routing for WDS packets
+			 as the sender is not authorized and might misuse WDS frame
+			 format to inject packets with arbitrary DA/SA.
+			<legal all>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_OFFSET            0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_LSB               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_MSB               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_MASK              0x0000000100000000
+
+
+/* Description		RESERVED_27A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_OFFSET                      0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_LSB                         33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_MSB                         63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_MASK                        0xfffffffe00000000
+
+
+/* Description		RESERVED_28A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_OFFSET                      0x0000000000000070
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_LSB                         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_MSB                         31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_MASK                        0x00000000ffffffff
+
+
+/* Description		RESERVED_29A
+
+			<legal 0>
+*/
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_OFFSET                      0x0000000000000070
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_LSB                         32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_MSB                         63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_MASK                        0xffffffff00000000
+
+
+
+#endif   // RX_MPDU_START
diff --git a/hw/qca5332/rx_msdu_desc_info.h b/hw/qca5332/rx_msdu_desc_info.h
new file mode 100644
index 0000000..3dc4e07
--- /dev/null
+++ b/hw/qca5332/rx_msdu_desc_info.h
@@ -0,0 +1,370 @@
+
+/* 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 _RX_MSDU_DESC_INFO_H_
+#define _RX_MSDU_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_DESC_INFO 1
+
+
+struct rx_msdu_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t first_msdu_in_mpdu_flag                                 :  1, // [0:0]
+                      last_msdu_in_mpdu_flag                                  :  1, // [1:1]
+                      msdu_continuation                                       :  1, // [2:2]
+                      msdu_length                                             : 14, // [16:3]
+                      msdu_drop                                               :  1, // [17:17]
+                      sa_is_valid                                             :  1, // [18:18]
+                      da_is_valid                                             :  1, // [19:19]
+                      da_is_mcbc                                              :  1, // [20:20]
+                      l3_header_padding_msb                                   :  1, // [21:21]
+                      tcp_udp_chksum_fail                                     :  1, // [22:22]
+                      ip_chksum_fail                                          :  1, // [23:23]
+                      fr_ds                                                   :  1, // [24:24]
+                      to_ds                                                   :  1, // [25:25]
+                      intra_bss                                               :  1, // [26:26]
+                      dest_chip_id                                            :  2, // [28:27]
+                      decap_format                                            :  2, // [30:29]
+                      dest_chip_pmac_id                                       :  1; // [31:31]
+#else
+             uint32_t dest_chip_pmac_id                                       :  1, // [31:31]
+                      decap_format                                            :  2, // [30:29]
+                      dest_chip_id                                            :  2, // [28:27]
+                      intra_bss                                               :  1, // [26:26]
+                      to_ds                                                   :  1, // [25:25]
+                      fr_ds                                                   :  1, // [24:24]
+                      ip_chksum_fail                                          :  1, // [23:23]
+                      tcp_udp_chksum_fail                                     :  1, // [22:22]
+                      l3_header_padding_msb                                   :  1, // [21:21]
+                      da_is_mcbc                                              :  1, // [20:20]
+                      da_is_valid                                             :  1, // [19:19]
+                      sa_is_valid                                             :  1, // [18:18]
+                      msdu_drop                                               :  1, // [17:17]
+                      msdu_length                                             : 14, // [16:3]
+                      msdu_continuation                                       :  1, // [2:2]
+                      last_msdu_in_mpdu_flag                                  :  1, // [1:1]
+                      first_msdu_in_mpdu_flag                                 :  1; // [0:0]
+#endif
+};
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_OFFSET                            0x00000000
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_LSB                               0
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_MSB                               0
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_MASK                              0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_OFFSET                             0x00000000
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_LSB                                1
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_MSB                                1
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_MASK                               0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_OFFSET                                  0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_LSB                                     2
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_MSB                                     2
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_MASK                                    0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_LSB                                           3
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_MSB                                           16
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_MASK                                          0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_MSDU_DROP_OFFSET                                          0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_DROP_LSB                                             17
+#define RX_MSDU_DESC_INFO_MSDU_DROP_MSB                                             17
+#define RX_MSDU_DESC_INFO_MSDU_DROP_MASK                                            0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_LSB                                           18
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_MSB                                           18
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_MASK                                          0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_LSB                                           19
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_MSB                                           19
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_MASK                                          0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_OFFSET                                         0x00000000
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_LSB                                            20
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_MSB                                            20
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_MASK                                           0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_OFFSET                              0x00000000
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_LSB                                 21
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_MSB                                 21
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_MASK                                0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_OFFSET                                0x00000000
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_LSB                                   22
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_MSB                                   22
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_MASK                                  0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_OFFSET                                     0x00000000
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_LSB                                        23
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_MSB                                        23
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_MASK                                       0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_FR_DS_OFFSET                                              0x00000000
+#define RX_MSDU_DESC_INFO_FR_DS_LSB                                                 24
+#define RX_MSDU_DESC_INFO_FR_DS_MSB                                                 24
+#define RX_MSDU_DESC_INFO_FR_DS_MASK                                                0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_TO_DS_OFFSET                                              0x00000000
+#define RX_MSDU_DESC_INFO_TO_DS_LSB                                                 25
+#define RX_MSDU_DESC_INFO_TO_DS_MSB                                                 25
+#define RX_MSDU_DESC_INFO_TO_DS_MASK                                                0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_INTRA_BSS_OFFSET                                          0x00000000
+#define RX_MSDU_DESC_INFO_INTRA_BSS_LSB                                             26
+#define RX_MSDU_DESC_INFO_INTRA_BSS_MSB                                             26
+#define RX_MSDU_DESC_INFO_INTRA_BSS_MASK                                            0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_OFFSET                                       0x00000000
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_LSB                                          27
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_MSB                                          28
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_MASK                                         0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_OFFSET                                       0x00000000
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_LSB                                          29
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_MSB                                          30
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_MASK                                         0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_OFFSET                                  0x00000000
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_LSB                                     31
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_MSB                                     31
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_MASK                                    0x80000000
+
+
+
+#endif   // RX_MSDU_DESC_INFO
diff --git a/hw/qca5332/rx_msdu_details.h b/hw/qca5332/rx_msdu_details.h
new file mode 100644
index 0000000..bec3c41
--- /dev/null
+++ b/hw/qca5332/rx_msdu_details.h
@@ -0,0 +1,651 @@
+
+/* 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 _RX_MSDU_DETAILS_H_
+#define _RX_MSDU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_msdu_ext_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MSDU_DETAILS 4
+
+
+struct rx_msdu_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             struct   rx_msdu_ext_desc_info                                     rx_msdu_ext_desc_info_details;
+#else
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             struct   rx_msdu_ext_desc_info                                     rx_msdu_ext_desc_info_details;
+#endif
+};
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET            0x00000000
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB               0
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB               31
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK              0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET           0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB              0
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB              7
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK             0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET       0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB          8
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB          11
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK         0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET            0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB               12
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB               31
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK              0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET    0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB       0
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB       0
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK      0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET     0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB        1
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB        1
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK       0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET          0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB             2
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB             2
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK            0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB                   3
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB                   16
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK                  0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET                  0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                     17
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                     17
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                    0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB                   18
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB                   18
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK                  0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB                   19
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB                   19
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK                  0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET                 0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                    20
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                    20
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK                   0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB         21
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB         21
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK        0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET        0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB           22
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB           22
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK          0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET             0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB                23
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB                23
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK               0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                         24
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                         24
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                        0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                         25
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                         25
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                        0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET                  0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                     26
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                     26
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                    0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET               0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB                  27
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB                  28
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK                 0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET               0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB                  29
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB                  30
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK                 0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET          0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB             31
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB             31
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK            0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET           0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB              5
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB              13
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK             0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET         0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB            14
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB            14
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK           0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB               15
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB               26
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK              0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB               27
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB               29
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK              0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB               30
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB               31
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK              0xc0000000
+
+
+
+#endif   // RX_MSDU_DETAILS
diff --git a/hw/qca5332/rx_msdu_end.h b/hw/qca5332/rx_msdu_end.h
new file mode 100644
index 0000000..2a8a2d8
--- /dev/null
+++ b/hw/qca5332/rx_msdu_end.h
@@ -0,0 +1,2675 @@
+
+/* 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 _RX_MSDU_END_H_
+#define _RX_MSDU_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_END 32
+
+#define NUM_OF_QWORDS_RX_MSDU_END 16
+
+
+struct rx_msdu_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      reserved_0                                              :  7, // [15:9]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t ip_hdr_chksum                                           : 16, // [15:0]
+                      reported_mpdu_length                                    : 14, // [29:16]
+                      reserved_1a                                             :  2; // [31:30]
+             uint32_t reserved_2a                                             :  8, // [7:0]
+                      cce_super_rule                                          :  6, // [13:8]
+                      cce_classify_not_done_truncate                          :  1, // [14:14]
+                      cce_classify_not_done_cce_dis                           :  1, // [15:15]
+                      cumulative_l3_checksum                                  : 16; // [31:16]
+             uint32_t rule_indication_31_0                                    : 32; // [31:0]
+             uint32_t ipv6_options_crc                                        : 32; // [31:0]
+             uint32_t da_offset                                               :  6, // [5:0]
+                      sa_offset                                               :  6, // [11:6]
+                      da_offset_valid                                         :  1, // [12:12]
+                      sa_offset_valid                                         :  1, // [13:13]
+                      reserved_5a                                             :  2, // [15:14]
+                      l3_type                                                 : 16; // [31:16]
+             uint32_t rule_indication_63_32                                   : 32; // [31:0]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t tcp_ack_number                                          : 32; // [31:0]
+             uint32_t tcp_flag                                                :  9, // [8:0]
+                      lro_eligible                                            :  1, // [9:9]
+                      reserved_9a                                             :  6, // [15:10]
+                      window_size                                             : 16; // [31:16]
+             uint32_t sa_sw_peer_id                                           : 16, // [15:0]
+                      sa_idx_timeout                                          :  1, // [16:16]
+                      da_idx_timeout                                          :  1, // [17:17]
+                      to_ds                                                   :  1, // [18:18]
+                      tid                                                     :  4, // [22:19]
+                      sa_is_valid                                             :  1, // [23:23]
+                      da_is_valid                                             :  1, // [24:24]
+                      da_is_mcbc                                              :  1, // [25:25]
+                      l3_header_padding                                       :  2, // [27:26]
+                      first_msdu                                              :  1, // [28:28]
+                      last_msdu                                               :  1, // [29:29]
+                      fr_ds                                                   :  1, // [30:30]
+                      ip_chksum_fail_copy                                     :  1; // [31:31]
+             uint32_t sa_idx                                                  : 16, // [15:0]
+                      da_idx_or_sw_peer_id                                    : 16; // [31:16]
+             uint32_t msdu_drop                                               :  1, // [0:0]
+                      reo_destination_indication                              :  5, // [5:1]
+                      flow_idx                                                : 20, // [25:6]
+                      use_ppe                                                 :  1, // [26:26]
+                      mesh_sta                                                :  2, // [28:27]
+                      vlan_ctag_stripped                                      :  1, // [29:29]
+                      vlan_stag_stripped                                      :  1, // [30:30]
+                      fragment_flag                                           :  1; // [31:31]
+             uint32_t fse_metadata                                            : 32; // [31:0]
+             uint32_t cce_metadata                                            : 16, // [15:0]
+                      tcp_udp_chksum                                          : 16; // [31:16]
+             uint32_t aggregation_count                                       :  8, // [7:0]
+                      flow_aggregation_continuation                           :  1, // [8:8]
+                      fisa_timeout                                            :  1, // [9:9]
+                      tcp_udp_chksum_fail_copy                                :  1, // [10:10]
+                      msdu_limit_error                                        :  1, // [11:11]
+                      flow_idx_timeout                                        :  1, // [12:12]
+                      flow_idx_invalid                                        :  1, // [13:13]
+                      cce_match                                               :  1, // [14:14]
+                      amsdu_parser_error                                      :  1, // [15:15]
+                      cumulative_ip_length                                    : 16; // [31:16]
+             uint32_t key_id_octet                                            :  8, // [7:0]
+                      reserved_16a                                            : 24; // [31:8]
+             uint32_t reserved_17a                                            :  6, // [5:0]
+                      service_code                                            :  9, // [14:6]
+                      priority_valid                                          :  1, // [15:15]
+                      intra_bss                                               :  1, // [16:16]
+                      dest_chip_id                                            :  2, // [18:17]
+                      multicast_echo                                          :  1, // [19:19]
+                      wds_learning_event                                      :  1, // [20:20]
+                      wds_roaming_event                                       :  1, // [21:21]
+                      wds_keep_alive_event                                    :  1, // [22:22]
+                      dest_chip_pmac_id                                       :  1, // [23:23]
+                      reserved_17b                                            :  8; // [31:24]
+             uint32_t msdu_length                                             : 14, // [13:0]
+                      stbc                                                    :  1, // [14:14]
+                      ipsec_esp                                               :  1, // [15:15]
+                      l3_offset                                               :  7, // [22:16]
+                      ipsec_ah                                                :  1, // [23:23]
+                      l4_offset                                               :  8; // [31:24]
+             uint32_t msdu_number                                             :  8, // [7:0]
+                      decap_format                                            :  2, // [9:8]
+                      ipv4_proto                                              :  1, // [10:10]
+                      ipv6_proto                                              :  1, // [11:11]
+                      tcp_proto                                               :  1, // [12:12]
+                      udp_proto                                               :  1, // [13:13]
+                      ip_frag                                                 :  1, // [14:14]
+                      tcp_only_ack                                            :  1, // [15:15]
+                      da_is_bcast_mcast                                       :  1, // [16:16]
+                      toeplitz_hash_sel                                       :  2, // [18:17]
+                      ip_fixed_header_valid                                   :  1, // [19:19]
+                      ip_extn_header_valid                                    :  1, // [20:20]
+                      tcp_udp_header_valid                                    :  1, // [21:21]
+                      mesh_control_present                                    :  1, // [22:22]
+                      ldpc                                                    :  1, // [23:23]
+                      ip4_protocol_ip6_next_header                            :  8; // [31:24]
+             uint32_t vlan_ctag_ci                                            : 16, // [15:0]
+                      vlan_stag_ci                                            : 16; // [31:16]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+             uint32_t user_rssi                                               :  8, // [7:0]
+                      pkt_type                                                :  4, // [11:8]
+                      sgi                                                     :  2, // [13:12]
+                      rate_mcs                                                :  4, // [17:14]
+                      receive_bandwidth                                       :  3, // [20:18]
+                      reception_type                                          :  3, // [23:21]
+                      mimo_ss_bitmap                                          :  7, // [30:24]
+                      msdu_done_copy                                          :  1; // [31:31]
+             uint32_t flow_id_toeplitz                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t toeplitz_hash_2_or_4                                    : 32; // [31:0]
+             uint32_t reserved_28a                                            : 16, // [15:0]
+                      sa_15_0                                                 : 16; // [31:16]
+             uint32_t sa_47_16                                                : 32; // [31:0]
+             uint32_t first_mpdu                                              :  1, // [0:0]
+                      reserved_30a                                            :  1, // [1:1]
+                      mcast_bcast                                             :  1, // [2:2]
+                      ast_index_not_found                                     :  1, // [3:3]
+                      ast_index_timeout                                       :  1, // [4:4]
+                      power_mgmt                                              :  1, // [5:5]
+                      non_qos                                                 :  1, // [6:6]
+                      null_data                                               :  1, // [7:7]
+                      mgmt_type                                               :  1, // [8:8]
+                      ctrl_type                                               :  1, // [9:9]
+                      more_data                                               :  1, // [10:10]
+                      eosp                                                    :  1, // [11:11]
+                      a_msdu_error                                            :  1, // [12:12]
+                      reserved_30b                                            :  1, // [13:13]
+                      order                                                   :  1, // [14:14]
+                      wifi_parser_error                                       :  1, // [15:15]
+                      overflow_err                                            :  1, // [16:16]
+                      msdu_length_err                                         :  1, // [17:17]
+                      tcp_udp_chksum_fail                                     :  1, // [18:18]
+                      ip_chksum_fail                                          :  1, // [19:19]
+                      sa_idx_invalid                                          :  1, // [20:20]
+                      da_idx_invalid                                          :  1, // [21:21]
+                      amsdu_addr_mismatch                                     :  1, // [22:22]
+                      rx_in_tx_decrypt_byp                                    :  1, // [23:23]
+                      encrypt_required                                        :  1, // [24:24]
+                      directed                                                :  1, // [25:25]
+                      buffer_fragment                                         :  1, // [26:26]
+                      mpdu_length_err                                         :  1, // [27:27]
+                      tkip_mic_err                                            :  1, // [28:28]
+                      decrypt_err                                             :  1, // [29:29]
+                      unencrypted_frame_err                                   :  1, // [30:30]
+                      fcs_err                                                 :  1; // [31:31]
+             uint32_t reserved_31a                                            : 10, // [9:0]
+                      decrypt_status_code                                     :  3, // [12:10]
+                      rx_bitmap_not_updated                                   :  1, // [13:13]
+                      reserved_31b                                            : 17, // [30:14]
+                      msdu_done                                               :  1; // [31:31]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_0                                              :  7, // [15:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t reserved_1a                                             :  2, // [31:30]
+                      reported_mpdu_length                                    : 14, // [29:16]
+                      ip_hdr_chksum                                           : 16; // [15:0]
+             uint32_t cumulative_l3_checksum                                  : 16, // [31:16]
+                      cce_classify_not_done_cce_dis                           :  1, // [15:15]
+                      cce_classify_not_done_truncate                          :  1, // [14:14]
+                      cce_super_rule                                          :  6, // [13:8]
+                      reserved_2a                                             :  8; // [7:0]
+             uint32_t rule_indication_31_0                                    : 32; // [31:0]
+             uint32_t ipv6_options_crc                                        : 32; // [31:0]
+             uint32_t l3_type                                                 : 16, // [31:16]
+                      reserved_5a                                             :  2, // [15:14]
+                      sa_offset_valid                                         :  1, // [13:13]
+                      da_offset_valid                                         :  1, // [12:12]
+                      sa_offset                                               :  6, // [11:6]
+                      da_offset                                               :  6; // [5:0]
+             uint32_t rule_indication_63_32                                   : 32; // [31:0]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t tcp_ack_number                                          : 32; // [31:0]
+             uint32_t window_size                                             : 16, // [31:16]
+                      reserved_9a                                             :  6, // [15:10]
+                      lro_eligible                                            :  1, // [9:9]
+                      tcp_flag                                                :  9; // [8:0]
+             uint32_t ip_chksum_fail_copy                                     :  1, // [31:31]
+                      fr_ds                                                   :  1, // [30:30]
+                      last_msdu                                               :  1, // [29:29]
+                      first_msdu                                              :  1, // [28:28]
+                      l3_header_padding                                       :  2, // [27:26]
+                      da_is_mcbc                                              :  1, // [25:25]
+                      da_is_valid                                             :  1, // [24:24]
+                      sa_is_valid                                             :  1, // [23:23]
+                      tid                                                     :  4, // [22:19]
+                      to_ds                                                   :  1, // [18:18]
+                      da_idx_timeout                                          :  1, // [17:17]
+                      sa_idx_timeout                                          :  1, // [16:16]
+                      sa_sw_peer_id                                           : 16; // [15:0]
+             uint32_t da_idx_or_sw_peer_id                                    : 16, // [31:16]
+                      sa_idx                                                  : 16; // [15:0]
+             uint32_t fragment_flag                                           :  1, // [31:31]
+                      vlan_stag_stripped                                      :  1, // [30:30]
+                      vlan_ctag_stripped                                      :  1, // [29:29]
+                      mesh_sta                                                :  2, // [28:27]
+                      use_ppe                                                 :  1, // [26:26]
+                      flow_idx                                                : 20, // [25:6]
+                      reo_destination_indication                              :  5, // [5:1]
+                      msdu_drop                                               :  1; // [0:0]
+             uint32_t fse_metadata                                            : 32; // [31:0]
+             uint32_t tcp_udp_chksum                                          : 16, // [31:16]
+                      cce_metadata                                            : 16; // [15:0]
+             uint32_t cumulative_ip_length                                    : 16, // [31:16]
+                      amsdu_parser_error                                      :  1, // [15:15]
+                      cce_match                                               :  1, // [14:14]
+                      flow_idx_invalid                                        :  1, // [13:13]
+                      flow_idx_timeout                                        :  1, // [12:12]
+                      msdu_limit_error                                        :  1, // [11:11]
+                      tcp_udp_chksum_fail_copy                                :  1, // [10:10]
+                      fisa_timeout                                            :  1, // [9:9]
+                      flow_aggregation_continuation                           :  1, // [8:8]
+                      aggregation_count                                       :  8; // [7:0]
+             uint32_t reserved_16a                                            : 24, // [31:8]
+                      key_id_octet                                            :  8; // [7:0]
+             uint32_t reserved_17b                                            :  8, // [31:24]
+                      dest_chip_pmac_id                                       :  1, // [23:23]
+                      wds_keep_alive_event                                    :  1, // [22:22]
+                      wds_roaming_event                                       :  1, // [21:21]
+                      wds_learning_event                                      :  1, // [20:20]
+                      multicast_echo                                          :  1, // [19:19]
+                      dest_chip_id                                            :  2, // [18:17]
+                      intra_bss                                               :  1, // [16:16]
+                      priority_valid                                          :  1, // [15:15]
+                      service_code                                            :  9, // [14:6]
+                      reserved_17a                                            :  6; // [5:0]
+             uint32_t l4_offset                                               :  8, // [31:24]
+                      ipsec_ah                                                :  1, // [23:23]
+                      l3_offset                                               :  7, // [22:16]
+                      ipsec_esp                                               :  1, // [15:15]
+                      stbc                                                    :  1, // [14:14]
+                      msdu_length                                             : 14; // [13:0]
+             uint32_t ip4_protocol_ip6_next_header                            :  8, // [31:24]
+                      ldpc                                                    :  1, // [23:23]
+                      mesh_control_present                                    :  1, // [22:22]
+                      tcp_udp_header_valid                                    :  1, // [21:21]
+                      ip_extn_header_valid                                    :  1, // [20:20]
+                      ip_fixed_header_valid                                   :  1, // [19:19]
+                      toeplitz_hash_sel                                       :  2, // [18:17]
+                      da_is_bcast_mcast                                       :  1, // [16:16]
+                      tcp_only_ack                                            :  1, // [15:15]
+                      ip_frag                                                 :  1, // [14:14]
+                      udp_proto                                               :  1, // [13:13]
+                      tcp_proto                                               :  1, // [12:12]
+                      ipv6_proto                                              :  1, // [11:11]
+                      ipv4_proto                                              :  1, // [10:10]
+                      decap_format                                            :  2, // [9:8]
+                      msdu_number                                             :  8; // [7:0]
+             uint32_t vlan_stag_ci                                            : 16, // [31:16]
+                      vlan_ctag_ci                                            : 16; // [15:0]
+             uint32_t peer_meta_data                                          : 32; // [31:0]
+             uint32_t msdu_done_copy                                          :  1, // [31:31]
+                      mimo_ss_bitmap                                          :  7, // [30:24]
+                      reception_type                                          :  3, // [23:21]
+                      receive_bandwidth                                       :  3, // [20:18]
+                      rate_mcs                                                :  4, // [17:14]
+                      sgi                                                     :  2, // [13:12]
+                      pkt_type                                                :  4, // [11:8]
+                      user_rssi                                               :  8; // [7:0]
+             uint32_t flow_id_toeplitz                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t toeplitz_hash_2_or_4                                    : 32; // [31:0]
+             uint32_t sa_15_0                                                 : 16, // [31:16]
+                      reserved_28a                                            : 16; // [15:0]
+             uint32_t sa_47_16                                                : 32; // [31:0]
+             uint32_t fcs_err                                                 :  1, // [31:31]
+                      unencrypted_frame_err                                   :  1, // [30:30]
+                      decrypt_err                                             :  1, // [29:29]
+                      tkip_mic_err                                            :  1, // [28:28]
+                      mpdu_length_err                                         :  1, // [27:27]
+                      buffer_fragment                                         :  1, // [26:26]
+                      directed                                                :  1, // [25:25]
+                      encrypt_required                                        :  1, // [24:24]
+                      rx_in_tx_decrypt_byp                                    :  1, // [23:23]
+                      amsdu_addr_mismatch                                     :  1, // [22:22]
+                      da_idx_invalid                                          :  1, // [21:21]
+                      sa_idx_invalid                                          :  1, // [20:20]
+                      ip_chksum_fail                                          :  1, // [19:19]
+                      tcp_udp_chksum_fail                                     :  1, // [18:18]
+                      msdu_length_err                                         :  1, // [17:17]
+                      overflow_err                                            :  1, // [16:16]
+                      wifi_parser_error                                       :  1, // [15:15]
+                      order                                                   :  1, // [14:14]
+                      reserved_30b                                            :  1, // [13:13]
+                      a_msdu_error                                            :  1, // [12:12]
+                      eosp                                                    :  1, // [11:11]
+                      more_data                                               :  1, // [10:10]
+                      ctrl_type                                               :  1, // [9:9]
+                      mgmt_type                                               :  1, // [8:8]
+                      null_data                                               :  1, // [7:7]
+                      non_qos                                                 :  1, // [6:6]
+                      power_mgmt                                              :  1, // [5:5]
+                      ast_index_timeout                                       :  1, // [4:4]
+                      ast_index_not_found                                     :  1, // [3:3]
+                      mcast_bcast                                             :  1, // [2:2]
+                      reserved_30a                                            :  1, // [1:1]
+                      first_mpdu                                              :  1; // [0:0]
+             uint32_t msdu_done                                               :  1, // [31:31]
+                      reserved_31b                                            : 17, // [30:14]
+                      rx_bitmap_not_updated                                   :  1, // [13:13]
+                      decrypt_status_code                                     :  3, // [12:10]
+                      reserved_31a                                            : 10; // [9:0]
+#endif
+};
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			<legal 0-3>
+*/
+
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                            0x0000000000000000
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                               0
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                               1
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                              0x0000000000000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> 
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 >
+			 
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			
+			<legal 0-39>
+*/
+
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_OFFSET                                        0x0000000000000000
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_LSB                                           2
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_MSB                                           8
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_MASK                                          0x00000000000001fc
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_0_OFFSET                                               0x0000000000000000
+#define RX_MSDU_END_RESERVED_0_LSB                                                  9
+#define RX_MSDU_END_RESERVED_0_MSB                                                  15
+#define RX_MSDU_END_RESERVED_0_MASK                                                 0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_MSDU_END_PHY_PPDU_ID_OFFSET                                              0x0000000000000000
+#define RX_MSDU_END_PHY_PPDU_ID_LSB                                                 16
+#define RX_MSDU_END_PHY_PPDU_ID_MSB                                                 31
+#define RX_MSDU_END_PHY_PPDU_ID_MASK                                                0x00000000ffff0000
+
+
+/* Description		IP_HDR_CHKSUM
+
+			This can include the IP header checksum or the pseudo header
+			 checksum used by TCP/UDP checksum. 
+			(with the first byte in the MSB and the second byte in the
+			 LSB, i.e. requiring a byte-swap for little-endian FW/SW
+			 w.r.t. the byte order in a packet)
+*/
+
+#define RX_MSDU_END_IP_HDR_CHKSUM_OFFSET                                            0x0000000000000000
+#define RX_MSDU_END_IP_HDR_CHKSUM_LSB                                               32
+#define RX_MSDU_END_IP_HDR_CHKSUM_MSB                                               47
+#define RX_MSDU_END_IP_HDR_CHKSUM_MASK                                              0x0000ffff00000000
+
+
+/* Description		REPORTED_MPDU_LENGTH
+
+			MPDU length before decapsulation.  Only valid when first_msdu
+			 is set.  This field is taken directly from the length field
+			 of the A-MPDU delimiter or the preamble length field for
+			 non-A-MPDU frames.
+*/
+
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_OFFSET                                     0x0000000000000000
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_LSB                                        48
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_MSB                                        61
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_MASK                                       0x3fff000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_1A_OFFSET                                              0x0000000000000000
+#define RX_MSDU_END_RESERVED_1A_LSB                                                 62
+#define RX_MSDU_END_RESERVED_1A_MSB                                                 63
+#define RX_MSDU_END_RESERVED_1A_MASK                                                0xc000000000000000
+
+
+/* Description		RESERVED_2A
+
+			Hamilton v1 used this for 'key_id_octet.'
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_2A_OFFSET                                              0x0000000000000008
+#define RX_MSDU_END_RESERVED_2A_LSB                                                 0
+#define RX_MSDU_END_RESERVED_2A_MSB                                                 7
+#define RX_MSDU_END_RESERVED_2A_MASK                                                0x00000000000000ff
+
+
+/* Description		CCE_SUPER_RULE
+
+			Indicates the super filter rule 
+*/
+
+#define RX_MSDU_END_CCE_SUPER_RULE_OFFSET                                           0x0000000000000008
+#define RX_MSDU_END_CCE_SUPER_RULE_LSB                                              8
+#define RX_MSDU_END_CCE_SUPER_RULE_MSB                                              13
+#define RX_MSDU_END_CCE_SUPER_RULE_MASK                                             0x0000000000003f00
+
+
+/* Description		CCE_CLASSIFY_NOT_DONE_TRUNCATE
+
+			Classification failed due to truncated frame
+*/
+
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_OFFSET                           0x0000000000000008
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_LSB                              14
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_MSB                              14
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_MASK                             0x0000000000004000
+
+
+/* Description		CCE_CLASSIFY_NOT_DONE_CCE_DIS
+
+			Classification failed due to CCE global disable
+*/
+
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_OFFSET                            0x0000000000000008
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_LSB                               15
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_MSB                               15
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_MASK                              0x0000000000008000
+
+
+/* Description		CUMULATIVE_L3_CHECKSUM
+
+			FISA: IP header checksum including the total MSDU length
+			 that is part of this flow aggregated so far, reported if
+			 'RXOLE_R0_FISA_CTRL. CHKSUM_CUM_IP_LEN_EN' is set
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_OFFSET                                   0x0000000000000008
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_LSB                                      16
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_MSB                                      31
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_MASK                                     0x00000000ffff0000
+
+
+/* Description		RULE_INDICATION_31_0
+
+			Bitmap indicating which of rules 31-0 have matched
+			
+			In chips with more than 64 CCE rules, e.g. Waikiki, RXOLE
+			 shall have a configuration to report any two rule_indication_* 
+			in 'RX_MSDU_END.'
+*/
+
+#define RX_MSDU_END_RULE_INDICATION_31_0_OFFSET                                     0x0000000000000008
+#define RX_MSDU_END_RULE_INDICATION_31_0_LSB                                        32
+#define RX_MSDU_END_RULE_INDICATION_31_0_MSB                                        63
+#define RX_MSDU_END_RULE_INDICATION_31_0_MASK                                       0xffffffff00000000
+
+
+/* Description		IPV6_OPTIONS_CRC
+
+			32 bit CRC computed out of  IP v6 extension headers
+			Hamilton v1 used this for 'rule_indication_63_32.'
+*/
+
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_OFFSET                                         0x0000000000000010
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_LSB                                            0
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_MSB                                            31
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_MASK                                           0x00000000ffffffff
+
+
+/* Description		DA_OFFSET
+
+			Offset into MSDU buffer for DA
+*/
+
+#define RX_MSDU_END_DA_OFFSET_OFFSET                                                0x0000000000000010
+#define RX_MSDU_END_DA_OFFSET_LSB                                                   32
+#define RX_MSDU_END_DA_OFFSET_MSB                                                   37
+#define RX_MSDU_END_DA_OFFSET_MASK                                                  0x0000003f00000000
+
+
+/* Description		SA_OFFSET
+
+			Offset into MSDU buffer for SA
+*/
+
+#define RX_MSDU_END_SA_OFFSET_OFFSET                                                0x0000000000000010
+#define RX_MSDU_END_SA_OFFSET_LSB                                                   38
+#define RX_MSDU_END_SA_OFFSET_MSB                                                   43
+#define RX_MSDU_END_SA_OFFSET_MASK                                                  0x00000fc000000000
+
+
+/* Description		DA_OFFSET_VALID
+
+			da_offset field is valid. This will be set to 0 in case 
+			of a dynamic A-MSDU when DA is compressed
+*/
+
+#define RX_MSDU_END_DA_OFFSET_VALID_OFFSET                                          0x0000000000000010
+#define RX_MSDU_END_DA_OFFSET_VALID_LSB                                             44
+#define RX_MSDU_END_DA_OFFSET_VALID_MSB                                             44
+#define RX_MSDU_END_DA_OFFSET_VALID_MASK                                            0x0000100000000000
+
+
+/* Description		SA_OFFSET_VALID
+
+			sa_offset field is valid. This will be set to 0 in case 
+			of a dynamic A-MSDU when SA is compressed
+*/
+
+#define RX_MSDU_END_SA_OFFSET_VALID_OFFSET                                          0x0000000000000010
+#define RX_MSDU_END_SA_OFFSET_VALID_LSB                                             45
+#define RX_MSDU_END_SA_OFFSET_VALID_MSB                                             45
+#define RX_MSDU_END_SA_OFFSET_VALID_MASK                                            0x0000200000000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_5A_OFFSET                                              0x0000000000000010
+#define RX_MSDU_END_RESERVED_5A_LSB                                                 46
+#define RX_MSDU_END_RESERVED_5A_MSB                                                 47
+#define RX_MSDU_END_RESERVED_5A_MASK                                                0x0000c00000000000
+
+
+/* Description		L3_TYPE
+
+			The 16-bit type value indicating the type of L3 later extracted
+			 from LLC/SNAP, set to zero if SNAP is not available
+*/
+
+#define RX_MSDU_END_L3_TYPE_OFFSET                                                  0x0000000000000010
+#define RX_MSDU_END_L3_TYPE_LSB                                                     48
+#define RX_MSDU_END_L3_TYPE_MSB                                                     63
+#define RX_MSDU_END_L3_TYPE_MASK                                                    0xffff000000000000
+
+
+/* Description		RULE_INDICATION_63_32
+
+			Bitmap indicating which of rules 63-32 have matched
+			
+			In chips with more than 64 CCE rules, e.g. Waikiki, RXOLE
+			 shall have a configuration to report any two rule_indication_* 
+			in 'RX_MSDU_END.'
+			
+			Hamilton v1 used this for 'IPv6_options_crc.'
+*/
+
+#define RX_MSDU_END_RULE_INDICATION_63_32_OFFSET                                    0x0000000000000018
+#define RX_MSDU_END_RULE_INDICATION_63_32_LSB                                       0
+#define RX_MSDU_END_RULE_INDICATION_63_32_MSB                                       31
+#define RX_MSDU_END_RULE_INDICATION_63_32_MASK                                      0x00000000ffffffff
+
+
+/* Description		TCP_SEQ_NUMBER
+
+			TCP sequence number (as a number assembled from a TCP packet
+			 in big-endian order, i.e. requiring a byte-swap for little-endian
+			 FW/SW w.r.t. the byte order in a packet)
+			
+			In Pine, if 'RXOLE_R0_MISC_CONFIG. OVERRIDE_MSDU_END_FIELDS' 
+			is set, toeplitz_hash_2_or_4 from 'RX_MSDU_START' will be
+			 reported here:
+			Controlled by multiple RxOLE registers for TCP/UDP over 
+			IPv4/IPv6 - Either Toeplitz hash computed over 2-tuple IPv4
+			 or IPv6 src/dest addresses is reported; or, Toeplitz hash
+			 computed over 4-tuple IPv4 or IPv6 src/dest addresses and
+			 src/dest ports is reported. The Flow_id_toeplitz hash can
+			 also be reported here. Usually the hash reported here is
+			 the one used for hash-based REO routing (see use_flow_id_toeplitz_clfy
+			 in 'RXPT_CLASSIFY_INFO'). Optionally the 3-tuple Toeplitz
+			 hash over IPv4 or IPv6 src/dest addresses and L4 protocol
+			 can be reported here.
+			(Unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_TCP_SEQ_NUMBER_OFFSET                                           0x0000000000000018
+#define RX_MSDU_END_TCP_SEQ_NUMBER_LSB                                              32
+#define RX_MSDU_END_TCP_SEQ_NUMBER_MSB                                              63
+#define RX_MSDU_END_TCP_SEQ_NUMBER_MASK                                             0xffffffff00000000
+
+
+/* Description		TCP_ACK_NUMBER
+
+			TCP acknowledge number (as a number assembled from a TCP
+			 packet in big-endian order, i.e. requiring a byte-swap 
+			for little-endian FW/SW w.r.t. the byte order in a packet)
+			
+			
+			In Pine, if 'RXOLE_R0_MISC_CONFIG. OVERRIDE_MSDU_END_FIELDS' 
+			is set, flow_id_toeplitz from 'RX_MSDU_START' will be reported
+			 here:
+			Toeplitz hash of 5-tuple {IP source address, IP destination
+			 address, IP source port, IP destination port, L4 protocol} 
+			 in case of non-IPSec. In case of IPSec - Toeplitz hash 
+			of 4-tuple {IP source address, IP destination address, SPI, 
+			L4 protocol}. Optionally the 3-tuple Toeplitz hash over 
+			IPv4 or IPv6 src/dest addresses and L4 protocol can be reported
+			 here. 
+			The relevant Toeplitz key registers are provided in RxOLE's
+			 instance of common parser module. These registers are separate
+			 from the Toeplitz keys used by ASE/FSE modules inside RxOLE. 
+			The actual value will be passed on from common parser module
+			 to RxOLE in one of the WHO_* TLVs.
+			(Unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_TCP_ACK_NUMBER_OFFSET                                           0x0000000000000020
+#define RX_MSDU_END_TCP_ACK_NUMBER_LSB                                              0
+#define RX_MSDU_END_TCP_ACK_NUMBER_MSB                                              31
+#define RX_MSDU_END_TCP_ACK_NUMBER_MASK                                             0x00000000ffffffff
+
+
+/* Description		TCP_FLAG
+
+			TCP flags
+			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}(with the NS bit in
+			 bit 8 and the FIN bit in bit 0, i.e. in big-endian order, 
+			i.e. requiring a byte-swap for little-endian FW/SW w.r.t. 
+			the byte order in a packet)
+*/
+
+#define RX_MSDU_END_TCP_FLAG_OFFSET                                                 0x0000000000000020
+#define RX_MSDU_END_TCP_FLAG_LSB                                                    32
+#define RX_MSDU_END_TCP_FLAG_MSB                                                    40
+#define RX_MSDU_END_TCP_FLAG_MASK                                                   0x000001ff00000000
+
+
+/* Description		LRO_ELIGIBLE
+
+			Computed out of TCP and IP fields to indicate that this 
+			MSDU is eligible for  LRO
+*/
+
+#define RX_MSDU_END_LRO_ELIGIBLE_OFFSET                                             0x0000000000000020
+#define RX_MSDU_END_LRO_ELIGIBLE_LSB                                                41
+#define RX_MSDU_END_LRO_ELIGIBLE_MSB                                                41
+#define RX_MSDU_END_LRO_ELIGIBLE_MASK                                               0x0000020000000000
+
+
+/* Description		RESERVED_9A
+
+			NOTE: DO not assign a field... Internally used in RXOLE..
+			
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_9A_OFFSET                                              0x0000000000000020
+#define RX_MSDU_END_RESERVED_9A_LSB                                                 42
+#define RX_MSDU_END_RESERVED_9A_MSB                                                 47
+#define RX_MSDU_END_RESERVED_9A_MASK                                                0x0000fc0000000000
+
+
+/* Description		WINDOW_SIZE
+
+			TCP receive window size (as a number assembled from a TCP
+			 packet in big-endian order, i.e. requiring a byte-swap 
+			for little-endian FW/SW w.r.t. the byte order in a packet)
+			
+			
+			In Pine, if 'RXOLE_R0_MISC_CONFIG. OVERRIDE_MSDU_END_FIELDS' 
+			is set, msdu_length from 'RX_MSDU_START' will be reported
+			 in the 14 LSBs here:
+			MSDU length in bytes after decapsulation. This field is 
+			still valid for MPDU frames without A-MSDU.  It still represents
+			 MSDU length after decapsulation.
+			(Unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_WINDOW_SIZE_OFFSET                                              0x0000000000000020
+#define RX_MSDU_END_WINDOW_SIZE_LSB                                                 48
+#define RX_MSDU_END_WINDOW_SIZE_MSB                                                 63
+#define RX_MSDU_END_WINDOW_SIZE_MASK                                                0xffff000000000000
+
+
+/* Description		SA_SW_PEER_ID
+
+			sw_peer_id from the address search entry corresponding to
+			 the source address of the MSDU
+			
+			Hamilton v1 used this for 'tcp_udp_chksum.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_SA_SW_PEER_ID_OFFSET                                            0x0000000000000028
+#define RX_MSDU_END_SA_SW_PEER_ID_LSB                                               0
+#define RX_MSDU_END_SA_SW_PEER_ID_MSB                                               15
+#define RX_MSDU_END_SA_SW_PEER_ID_MASK                                              0x000000000000ffff
+
+
+/* Description		SA_IDX_TIMEOUT
+
+			Indicates an unsuccessful MAC source address search due 
+			to the expiring of the search timer.
+*/
+
+#define RX_MSDU_END_SA_IDX_TIMEOUT_OFFSET                                           0x0000000000000028
+#define RX_MSDU_END_SA_IDX_TIMEOUT_LSB                                              16
+#define RX_MSDU_END_SA_IDX_TIMEOUT_MSB                                              16
+#define RX_MSDU_END_SA_IDX_TIMEOUT_MASK                                             0x0000000000010000
+
+
+/* Description		DA_IDX_TIMEOUT
+
+			Indicates an unsuccessful MAC destination address search
+			 due to the expiring of the search timer.
+*/
+
+#define RX_MSDU_END_DA_IDX_TIMEOUT_OFFSET                                           0x0000000000000028
+#define RX_MSDU_END_DA_IDX_TIMEOUT_LSB                                              17
+#define RX_MSDU_END_DA_IDX_TIMEOUT_MSB                                              17
+#define RX_MSDU_END_DA_IDX_TIMEOUT_MASK                                             0x0000000000020000
+
+
+/* Description		TO_DS
+
+			Set if the to DS bit is set in the frame control.
+			
+			RXOLE copies this from the 'Struct RX_MPDU_INFO' in 'RX_MPDU_PCU_START.'
+			
+			
+			Hamilton v1 used this for 'msdu_limit_error.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_TO_DS_OFFSET                                                    0x0000000000000028
+#define RX_MSDU_END_TO_DS_LSB                                                       18
+#define RX_MSDU_END_TO_DS_MSB                                                       18
+#define RX_MSDU_END_TO_DS_MASK                                                      0x0000000000040000
+
+
+/* Description		TID
+
+			The TID field in the QoS control field
+			
+			Hamilton v1 used bit [19] for 'flow_idx_timeout,' bit [20] 
+			for 'flow_idx_invalid,' bit [21] for 'wifi_parser_error' 
+			and bit [22] for 'amsdu_parser_error.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_TID_OFFSET                                                      0x0000000000000028
+#define RX_MSDU_END_TID_LSB                                                         19
+#define RX_MSDU_END_TID_MSB                                                         22
+#define RX_MSDU_END_TID_MASK                                                        0x0000000000780000
+
+
+/* Description		SA_IS_VALID
+
+			Indicates that OLE found a valid SA entry
+*/
+
+#define RX_MSDU_END_SA_IS_VALID_OFFSET                                              0x0000000000000028
+#define RX_MSDU_END_SA_IS_VALID_LSB                                                 23
+#define RX_MSDU_END_SA_IS_VALID_MSB                                                 23
+#define RX_MSDU_END_SA_IS_VALID_MASK                                                0x0000000000800000
+
+
+/* Description		DA_IS_VALID
+
+			Indicates that OLE found a valid DA entry
+*/
+
+#define RX_MSDU_END_DA_IS_VALID_OFFSET                                              0x0000000000000028
+#define RX_MSDU_END_DA_IS_VALID_LSB                                                 24
+#define RX_MSDU_END_DA_IS_VALID_MSB                                                 24
+#define RX_MSDU_END_DA_IS_VALID_MASK                                                0x0000000001000000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address.
+			
+*/
+
+#define RX_MSDU_END_DA_IS_MCBC_OFFSET                                               0x0000000000000028
+#define RX_MSDU_END_DA_IS_MCBC_LSB                                                  25
+#define RX_MSDU_END_DA_IS_MCBC_MSB                                                  25
+#define RX_MSDU_END_DA_IS_MCBC_MASK                                                 0x0000000002000000
+
+
+/* Description		L3_HEADER_PADDING
+
+			Number of bytes padded  to make sure that the L3 header 
+			will always start of a Dword   boundary
+*/
+
+#define RX_MSDU_END_L3_HEADER_PADDING_OFFSET                                        0x0000000000000028
+#define RX_MSDU_END_L3_HEADER_PADDING_LSB                                           26
+#define RX_MSDU_END_L3_HEADER_PADDING_MSB                                           27
+#define RX_MSDU_END_L3_HEADER_PADDING_MASK                                          0x000000000c000000
+
+
+/* Description		FIRST_MSDU
+
+			Indicates the first MSDU of A-MSDU.  If both first_msdu 
+			and last_msdu are set in the MSDU then this is a non-aggregated
+			 MSDU frame: normal MPDU.  Interior MSDU in an A-MSDU shall
+			 have both first_mpdu and last_mpdu bits set to 0.
+*/
+
+#define RX_MSDU_END_FIRST_MSDU_OFFSET                                               0x0000000000000028
+#define RX_MSDU_END_FIRST_MSDU_LSB                                                  28
+#define RX_MSDU_END_FIRST_MSDU_MSB                                                  28
+#define RX_MSDU_END_FIRST_MSDU_MASK                                                 0x0000000010000000
+
+
+/* Description		LAST_MSDU
+
+			Indicates the last MSDU of the A-MSDU.  MPDU end status 
+			is only valid when last_msdu is set.
+*/
+
+#define RX_MSDU_END_LAST_MSDU_OFFSET                                                0x0000000000000028
+#define RX_MSDU_END_LAST_MSDU_LSB                                                   29
+#define RX_MSDU_END_LAST_MSDU_MSB                                                   29
+#define RX_MSDU_END_LAST_MSDU_MASK                                                  0x0000000020000000
+
+
+/* Description		FR_DS
+
+			Set if the from DS bit is set in the frame control.
+			
+			RXOLE copies this from the 'Struct RX_MPDU_INFO' in 'RX_MPDU_PCU_START.'
+			
+			
+			Hamilton v1 used this for 'tcp_udp_chksum_fail_copy.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_FR_DS_OFFSET                                                    0x0000000000000028
+#define RX_MSDU_END_FR_DS_LSB                                                       30
+#define RX_MSDU_END_FR_DS_MSB                                                       30
+#define RX_MSDU_END_FR_DS_MASK                                                      0x0000000040000000
+
+
+/* Description		IP_CHKSUM_FAIL_COPY
+
+			If 'RXOLE_R0_MISC_CONFIG. OVERRIDE_MSDU_END_FIELDS' is set, 
+			ip_chksum_fail from 'RX_ATTENTION' will be reported in the
+			 MSB here:
+			Indicates that the computed checksum (ip_hdr_chksum) did
+			 not match the checksum in the IP header.
+			(unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_OFFSET                                      0x0000000000000028
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_LSB                                         31
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_MSB                                         31
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_MASK                                        0x0000000080000000
+
+
+/* Description		SA_IDX
+
+			The offset in the address table which matches the MAC source
+			 address.
+*/
+
+#define RX_MSDU_END_SA_IDX_OFFSET                                                   0x0000000000000028
+#define RX_MSDU_END_SA_IDX_LSB                                                      32
+#define RX_MSDU_END_SA_IDX_MSB                                                      47
+#define RX_MSDU_END_SA_IDX_MASK                                                     0x0000ffff00000000
+
+
+/* Description		DA_IDX_OR_SW_PEER_ID
+
+			Based on a register configuration in RXOLE, this field will
+			 contain:
+			The offset in the address table which matches the MAC destination
+			 address
+			OR:
+			sw_peer_id from the address search entry corresponding to
+			 the destination address of the MSDU
+*/
+
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_OFFSET                                     0x0000000000000028
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_LSB                                        48
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_MSB                                        63
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_MASK                                       0xffff000000000000
+
+
+/* Description		MSDU_DROP
+
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_END_MSDU_DROP_OFFSET                                                0x0000000000000030
+#define RX_MSDU_END_MSDU_DROP_LSB                                                   0
+#define RX_MSDU_END_MSDU_DROP_MSB                                                   0
+#define RX_MSDU_END_MSDU_DROP_MASK                                                  0x0000000000000001
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			<enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_OFFSET                               0x0000000000000030
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_LSB                                  1
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_MSB                                  5
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_MASK                                 0x000000000000003e
+
+
+/* Description		FLOW_IDX
+
+			Flow table index
+			<legal all>
+*/
+
+#define RX_MSDU_END_FLOW_IDX_OFFSET                                                 0x0000000000000030
+#define RX_MSDU_END_FLOW_IDX_LSB                                                    6
+#define RX_MSDU_END_FLOW_IDX_MSB                                                    25
+#define RX_MSDU_END_FLOW_IDX_MASK                                                   0x0000000003ffffc0
+
+
+/* Description		USE_PPE
+
+			Indicates to RXDMA to ignore the REO_destination_indication
+			 and use a programmed value corresponding to the REO2PPE
+			 ring
+			
+			This override to REO2PPE for packets requiring multiple 
+			buffers shall be disabled based on an RXDMA configuration, 
+			as PPE may not support such packets.
+			<legal all>
+*/
+
+#define RX_MSDU_END_USE_PPE_OFFSET                                                  0x0000000000000030
+#define RX_MSDU_END_USE_PPE_LSB                                                     26
+#define RX_MSDU_END_USE_PPE_MSB                                                     26
+#define RX_MSDU_END_USE_PPE_MASK                                                    0x0000000004000000
+
+
+/* Description		MESH_STA
+
+			When set, this is a Mesh (11s) STA.
+			
+			The interpretation of the A-MSDU 'Length' field in the MPDU
+			 (if any) is decided by the e-numerations below.
+			
+			<enum 0 MESH_DISABLE>
+			<enum 1 MESH_Q2Q> A-MSDU 'Length' is big endian and includes
+			 the length of Mesh Control.
+			<enum 2 MESH_11S_BE> A-MSDU 'Length' is big endian and excludes
+			 the length of Mesh Control.
+			<enum 3 MESH_11S_LE> A-MSDU 'Length' is little endian and
+			 excludes the length of Mesh Control. This is 802.11s-compliant.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_MESH_STA_OFFSET                                                 0x0000000000000030
+#define RX_MSDU_END_MESH_STA_LSB                                                    27
+#define RX_MSDU_END_MESH_STA_MSB                                                    28
+#define RX_MSDU_END_MESH_STA_MASK                                                   0x0000000018000000
+
+
+/* Description		VLAN_CTAG_STRIPPED
+
+			Set by RXOLE if it stripped 4-bytes of C-VLAN Tag from the
+			 packet
+			<legal all>
+*/
+
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_OFFSET                                       0x0000000000000030
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_LSB                                          29
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_MSB                                          29
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_MASK                                         0x0000000020000000
+
+
+/* Description		VLAN_STAG_STRIPPED
+
+			Set by RXOLE if it stripped 4-bytes of S-VLAN Tag from the
+			 packet
+			<legal all>
+*/
+
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_OFFSET                                       0x0000000000000030
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_LSB                                          30
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_MSB                                          30
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_MASK                                         0x0000000040000000
+
+
+/* Description		FRAGMENT_FLAG
+
+			Indicates that this is an 802.11 fragment frame.  This is
+			 set when either the more_frag bit is set in the frame control
+			 or the fragment number is not zero.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_MSDU_END_FRAGMENT_FLAG_OFFSET                                            0x0000000000000030
+#define RX_MSDU_END_FRAGMENT_FLAG_LSB                                               31
+#define RX_MSDU_END_FRAGMENT_FLAG_MSB                                               31
+#define RX_MSDU_END_FRAGMENT_FLAG_MASK                                              0x0000000080000000
+
+
+/* Description		FSE_METADATA
+
+			FSE related meta data:
+			<legal all>
+*/
+
+#define RX_MSDU_END_FSE_METADATA_OFFSET                                             0x0000000000000030
+#define RX_MSDU_END_FSE_METADATA_LSB                                                32
+#define RX_MSDU_END_FSE_METADATA_MSB                                                63
+#define RX_MSDU_END_FSE_METADATA_MASK                                               0xffffffff00000000
+
+
+/* Description		CCE_METADATA
+
+			CCE related meta data:
+			<legal all>
+*/
+
+#define RX_MSDU_END_CCE_METADATA_OFFSET                                             0x0000000000000038
+#define RX_MSDU_END_CCE_METADATA_LSB                                                0
+#define RX_MSDU_END_CCE_METADATA_MSB                                                15
+#define RX_MSDU_END_CCE_METADATA_MASK                                               0x000000000000ffff
+
+
+/* Description		TCP_UDP_CHKSUM
+
+			The value of the computed TCP/UDP checksum.  A mode bit 
+			selects whether this checksum is the full checksum or the
+			 partial checksum which does not include the pseudo header. (with
+			 the first byte in the MSB and the second byte in the LSB, 
+			i.e. requiring a byte-swap for little-endian FW/SW w.r.t. 
+			the byte order in a packet)
+			
+			Hamilton v1 used this for 'sa_sw_peer_id.'
+*/
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_OFFSET                                           0x0000000000000038
+#define RX_MSDU_END_TCP_UDP_CHKSUM_LSB                                              16
+#define RX_MSDU_END_TCP_UDP_CHKSUM_MSB                                              31
+#define RX_MSDU_END_TCP_UDP_CHKSUM_MASK                                             0x00000000ffff0000
+
+
+/* Description		AGGREGATION_COUNT
+
+			FISA: Number of MSDU's aggregated so far
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_MSDU_END_AGGREGATION_COUNT_OFFSET                                        0x0000000000000038
+#define RX_MSDU_END_AGGREGATION_COUNT_LSB                                           32
+#define RX_MSDU_END_AGGREGATION_COUNT_MSB                                           39
+#define RX_MSDU_END_AGGREGATION_COUNT_MASK                                          0x000000ff00000000
+
+
+/* Description		FLOW_AGGREGATION_CONTINUATION
+
+			FISA: To indicate that this MSDU can be aggregated with 
+			the previous packet with the same flow id
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_OFFSET                            0x0000000000000038
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_LSB                               40
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_MSB                               40
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_MASK                              0x0000010000000000
+
+
+/* Description		FISA_TIMEOUT
+
+			FISA: To indicate that the aggregation has restarted for
+			 this flow due to timeout
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_MSDU_END_FISA_TIMEOUT_OFFSET                                             0x0000000000000038
+#define RX_MSDU_END_FISA_TIMEOUT_LSB                                                41
+#define RX_MSDU_END_FISA_TIMEOUT_MSB                                                41
+#define RX_MSDU_END_FISA_TIMEOUT_MASK                                               0x0000020000000000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL_COPY
+
+			if 'RXOLE_R0_MISC_CONFIG. OVERRIDE_MSDU_END_FIELDS' is set, 
+			tcp_udp_chksum_fail from 'RX_ATTENTION' will be reported
+			 here:
+			Indicates that the computed checksum (tcp_udp_chksum) did
+			 not match the checksum in the TCP/UDP header.
+			(unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_OFFSET                                 0x0000000000000038
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_LSB                                    42
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_MSB                                    42
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_MASK                                   0x0000040000000000
+
+
+/* Description		MSDU_LIMIT_ERROR
+
+			Indicates that the MSDU threshold was exceeded and thus 
+			all the rest of the MSDUs will not be scattered and will
+			 not be decapsulated but will be DMA'ed in RAW format as
+			 a single MSDU buffer
+*/
+
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_LSB                                            43
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_MSB                                            43
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_MASK                                           0x0000080000000000
+
+
+/* Description		FLOW_IDX_TIMEOUT
+
+			Indicates an unsuccessful flow search due to the expiring
+			 of the search timer.
+			<legal all>
+*/
+
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_LSB                                            44
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_MSB                                            44
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_MASK                                           0x0000100000000000
+
+
+/* Description		FLOW_IDX_INVALID
+
+			flow id is not valid
+			<legal all>
+*/
+
+#define RX_MSDU_END_FLOW_IDX_INVALID_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_FLOW_IDX_INVALID_LSB                                            45
+#define RX_MSDU_END_FLOW_IDX_INVALID_MSB                                            45
+#define RX_MSDU_END_FLOW_IDX_INVALID_MASK                                           0x0000200000000000
+
+
+/* Description		CCE_MATCH
+
+			Indicates that this status has a corresponding MSDU that
+			 requires FW processing.  The OLE will have classification
+			 ring mask registers which will indicate the ring(s) for
+			 packets and descriptors which need FW attention.
+*/
+
+#define RX_MSDU_END_CCE_MATCH_OFFSET                                                0x0000000000000038
+#define RX_MSDU_END_CCE_MATCH_LSB                                                   46
+#define RX_MSDU_END_CCE_MATCH_MSB                                                   46
+#define RX_MSDU_END_CCE_MATCH_MASK                                                  0x0000400000000000
+
+
+/* Description		AMSDU_PARSER_ERROR
+
+			A-MSDU could not be properly de-agregated.
+			<legal all>
+*/
+
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_OFFSET                                       0x0000000000000038
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_LSB                                          47
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_MSB                                          47
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_MASK                                         0x0000800000000000
+
+
+/* Description		CUMULATIVE_IP_LENGTH
+
+			FISA: Total MSDU length that is part of this flow aggregated
+			 so far
+			
+			Set to zero in chips not supporting FISA, e.g. Pine
+			<legal all>
+*/
+
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_OFFSET                                     0x0000000000000038
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_LSB                                        48
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_MSB                                        63
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_MASK                                       0xffff000000000000
+
+
+/* Description		KEY_ID_OCTET
+
+			The key ID octet from the IV.  Only valid when first_msdu
+			 is set.
+*/
+
+#define RX_MSDU_END_KEY_ID_OCTET_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_KEY_ID_OCTET_LSB                                                0
+#define RX_MSDU_END_KEY_ID_OCTET_MSB                                                7
+#define RX_MSDU_END_KEY_ID_OCTET_MASK                                               0x00000000000000ff
+
+
+/* Description		RESERVED_16A
+
+			Hamilton v1 used bits [31:16] for 'cumulative_IP_length.'
+			
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_16A_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_16A_LSB                                                8
+#define RX_MSDU_END_RESERVED_16A_MSB                                                31
+#define RX_MSDU_END_RESERVED_16A_MASK                                               0x00000000ffffff00
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_17A_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_17A_LSB                                                32
+#define RX_MSDU_END_RESERVED_17A_MSB                                                37
+#define RX_MSDU_END_RESERVED_17A_MASK                                               0x0000003f00000000
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_SERVICE_CODE_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_SERVICE_CODE_LSB                                                38
+#define RX_MSDU_END_SERVICE_CODE_MSB                                                46
+#define RX_MSDU_END_SERVICE_CODE_MASK                                               0x00007fc000000000
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_PRIORITY_VALID_OFFSET                                           0x0000000000000040
+#define RX_MSDU_END_PRIORITY_VALID_LSB                                              47
+#define RX_MSDU_END_PRIORITY_VALID_MSB                                              47
+#define RX_MSDU_END_PRIORITY_VALID_MASK                                             0x0000800000000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_INTRA_BSS_OFFSET                                                0x0000000000000040
+#define RX_MSDU_END_INTRA_BSS_LSB                                                   48
+#define RX_MSDU_END_INTRA_BSS_MSB                                                   48
+#define RX_MSDU_END_INTRA_BSS_MASK                                                  0x0001000000000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_DEST_CHIP_ID_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_DEST_CHIP_ID_LSB                                                49
+#define RX_MSDU_END_DEST_CHIP_ID_MSB                                                50
+#define RX_MSDU_END_DEST_CHIP_ID_MASK                                               0x0006000000000000
+
+
+/* Description		MULTICAST_ECHO
+
+			If set, this packet is a multicast echo, i.e. the DA is 
+			multicast and Rx OLE SA search with mcast_echo_check = 1
+			 passed. RXDMA should release such packets to WBM.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_MULTICAST_ECHO_OFFSET                                           0x0000000000000040
+#define RX_MSDU_END_MULTICAST_ECHO_LSB                                              51
+#define RX_MSDU_END_MULTICAST_ECHO_MSB                                              51
+#define RX_MSDU_END_MULTICAST_ECHO_MASK                                             0x0008000000000000
+
+
+/* Description		WDS_LEARNING_EVENT
+
+			If set, this packet has an SA search failure with WDS learning
+			 enabled for the peer. RXOLE should route this TLV to the
+			 RXDMA0 status ring to notify FW.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_WDS_LEARNING_EVENT_OFFSET                                       0x0000000000000040
+#define RX_MSDU_END_WDS_LEARNING_EVENT_LSB                                          52
+#define RX_MSDU_END_WDS_LEARNING_EVENT_MSB                                          52
+#define RX_MSDU_END_WDS_LEARNING_EVENT_MASK                                         0x0010000000000000
+
+
+/* Description		WDS_ROAMING_EVENT
+
+			If set, this packet's SA 'Sw_peer_id' mismatches the 'Sw_peer_id' 
+			of the peer through which the packet was got, indicating
+			 the SA node has roamed. RXOLE should route this TLV to 
+			the RXDMA0 status ring to notify FW.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_WDS_ROAMING_EVENT_OFFSET                                        0x0000000000000040
+#define RX_MSDU_END_WDS_ROAMING_EVENT_LSB                                           53
+#define RX_MSDU_END_WDS_ROAMING_EVENT_MSB                                           53
+#define RX_MSDU_END_WDS_ROAMING_EVENT_MASK                                          0x0020000000000000
+
+
+/* Description		WDS_KEEP_ALIVE_EVENT
+
+			If set, the AST timestamp for this packet's SA is older 
+			than the current timestamp by more than a threshold programmed
+			 in RXOLE. RXOLE should route this TLV to the RXDMA0 status
+			 ring to notify FW to keep the AST entry for the SA alive.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_OFFSET                                     0x0000000000000040
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_LSB                                        54
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_MSB                                        54
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_MASK                                       0x0040000000000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_OFFSET                                        0x0000000000000040
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_LSB                                           55
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_MSB                                           55
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_MASK                                          0x0080000000000000
+
+
+/* Description		RESERVED_17B
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_17B_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_17B_LSB                                                56
+#define RX_MSDU_END_RESERVED_17B_MSB                                                63
+#define RX_MSDU_END_RESERVED_17B_MASK                                               0xff00000000000000
+
+
+/* Description		MSDU_LENGTH
+
+			Words 18 - 26 are from Lithium 'RX_MSDU_START.'
+			
+			MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation
+*/
+
+#define RX_MSDU_END_MSDU_LENGTH_OFFSET                                              0x0000000000000048
+#define RX_MSDU_END_MSDU_LENGTH_LSB                                                 0
+#define RX_MSDU_END_MSDU_LENGTH_MSB                                                 13
+#define RX_MSDU_END_MSDU_LENGTH_MASK                                                0x0000000000003fff
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define RX_MSDU_END_STBC_OFFSET                                                     0x0000000000000048
+#define RX_MSDU_END_STBC_LSB                                                        14
+#define RX_MSDU_END_STBC_MSB                                                        14
+#define RX_MSDU_END_STBC_MASK                                                       0x0000000000004000
+
+
+/* Description		IPSEC_ESP
+
+			Set if IPv4/v6 packet is using IPsec ESP
+*/
+
+#define RX_MSDU_END_IPSEC_ESP_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_IPSEC_ESP_LSB                                                   15
+#define RX_MSDU_END_IPSEC_ESP_MSB                                                   15
+#define RX_MSDU_END_IPSEC_ESP_MASK                                                  0x0000000000008000
+
+
+/* Description		L3_OFFSET
+
+			Depending upon mode bit, this field either indicates the
+			 L3 offset in bytes from the start of the RX_HEADER or the
+			 IP offset in bytes from the start of the packet after decapsulation. 
+			 The latter is only valid if ipv4_proto or ipv6_proto is
+			 set.
+*/
+
+#define RX_MSDU_END_L3_OFFSET_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_L3_OFFSET_LSB                                                   16
+#define RX_MSDU_END_L3_OFFSET_MSB                                                   22
+#define RX_MSDU_END_L3_OFFSET_MASK                                                  0x00000000007f0000
+
+
+/* Description		IPSEC_AH
+
+			Set if IPv4/v6 packet is using IPsec AH
+*/
+
+#define RX_MSDU_END_IPSEC_AH_OFFSET                                                 0x0000000000000048
+#define RX_MSDU_END_IPSEC_AH_LSB                                                    23
+#define RX_MSDU_END_IPSEC_AH_MSB                                                    23
+#define RX_MSDU_END_IPSEC_AH_MASK                                                   0x0000000000800000
+
+
+/* Description		L4_OFFSET
+
+			Depending upon mode bit, this field either indicates the
+			 L4 offset nin bytes from the start of RX_HEADER(only valid
+			 if either ipv4_proto or ipv6_proto is set to 1) or indicates
+			 the offset in bytes to the start of TCP or UDP header from
+			 the start of the IP header after decapsulation(Only valid
+			 if tcp_proto or udp_proto is set).  The value 0 indicates
+			 that the offset is longer than 127 bytes.
+*/
+
+#define RX_MSDU_END_L4_OFFSET_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_L4_OFFSET_LSB                                                   24
+#define RX_MSDU_END_L4_OFFSET_MSB                                                   31
+#define RX_MSDU_END_L4_OFFSET_MASK                                                  0x00000000ff000000
+
+
+/* Description		MSDU_NUMBER
+
+			Indicates the MSDU number within a MPDU.  This value is 
+			reset to zero at the start of each MPDU.  If the number 
+			of MSDU exceeds 255 this number will wrap using modulo 256.
+			
+*/
+
+#define RX_MSDU_END_MSDU_NUMBER_OFFSET                                              0x0000000000000048
+#define RX_MSDU_END_MSDU_NUMBER_LSB                                                 32
+#define RX_MSDU_END_MSDU_NUMBER_MSB                                                 39
+#define RX_MSDU_END_MSDU_NUMBER_MASK                                                0x000000ff00000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_DECAP_FORMAT_OFFSET                                             0x0000000000000048
+#define RX_MSDU_END_DECAP_FORMAT_LSB                                                40
+#define RX_MSDU_END_DECAP_FORMAT_MSB                                                41
+#define RX_MSDU_END_DECAP_FORMAT_MASK                                               0x0000030000000000
+
+
+/* Description		IPV4_PROTO
+
+			Set if L2 layer indicates IPv4 protocol.
+*/
+
+#define RX_MSDU_END_IPV4_PROTO_OFFSET                                               0x0000000000000048
+#define RX_MSDU_END_IPV4_PROTO_LSB                                                  42
+#define RX_MSDU_END_IPV4_PROTO_MSB                                                  42
+#define RX_MSDU_END_IPV4_PROTO_MASK                                                 0x0000040000000000
+
+
+/* Description		IPV6_PROTO
+
+			Set if L2 layer indicates IPv6 protocol.
+*/
+
+#define RX_MSDU_END_IPV6_PROTO_OFFSET                                               0x0000000000000048
+#define RX_MSDU_END_IPV6_PROTO_LSB                                                  43
+#define RX_MSDU_END_IPV6_PROTO_MSB                                                  43
+#define RX_MSDU_END_IPV6_PROTO_MASK                                                 0x0000080000000000
+
+
+/* Description		TCP_PROTO
+
+			Set if the ipv4_proto or ipv6_proto are set and the IP protocol
+			 indicates TCP.
+*/
+
+#define RX_MSDU_END_TCP_PROTO_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_TCP_PROTO_LSB                                                   44
+#define RX_MSDU_END_TCP_PROTO_MSB                                                   44
+#define RX_MSDU_END_TCP_PROTO_MASK                                                  0x0000100000000000
+
+
+/* Description		UDP_PROTO
+
+			Set if the ipv4_proto or ipv6_proto are set and the IP protocol
+			 indicates UDP.
+*/
+
+#define RX_MSDU_END_UDP_PROTO_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_UDP_PROTO_LSB                                                   45
+#define RX_MSDU_END_UDP_PROTO_MSB                                                   45
+#define RX_MSDU_END_UDP_PROTO_MASK                                                  0x0000200000000000
+
+
+/* Description		IP_FRAG
+
+			Indicates that either the IP More frag bit is set or IP 
+			frag number is non-zero.  If set indicates that this is 
+			a fragmented IP packet.
+*/
+
+#define RX_MSDU_END_IP_FRAG_OFFSET                                                  0x0000000000000048
+#define RX_MSDU_END_IP_FRAG_LSB                                                     46
+#define RX_MSDU_END_IP_FRAG_MSB                                                     46
+#define RX_MSDU_END_IP_FRAG_MASK                                                    0x0000400000000000
+
+
+/* Description		TCP_ONLY_ACK
+
+			Set if only the TCP Ack bit is set in the TCP flags and 
+			if the TCP payload is 0.
+*/
+
+#define RX_MSDU_END_TCP_ONLY_ACK_OFFSET                                             0x0000000000000048
+#define RX_MSDU_END_TCP_ONLY_ACK_LSB                                                47
+#define RX_MSDU_END_TCP_ONLY_ACK_MSB                                                47
+#define RX_MSDU_END_TCP_ONLY_ACK_MASK                                               0x0000800000000000
+
+
+/* Description		DA_IS_BCAST_MCAST
+
+			The destination address is broadcast or multicast.
+*/
+
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_OFFSET                                        0x0000000000000048
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_LSB                                           48
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_MSB                                           48
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_MASK                                          0x0001000000000000
+
+
+/* Description		TOEPLITZ_HASH_SEL
+
+			Actual choosen Hash.
+			
+			0 -> Toeplitz hash of 2-tuple (IP source address, IP destination
+			 address)1 -> Toeplitz hash of 4-tuple (IP source address, 
+			IP destination address, L4 (TCP/UDP) source port, L4 (TCP/UDP) 
+			destination port)
+			2 -> Toeplitz of flow_id
+			3 -> "Zero" is used
+			<legal all>
+*/
+
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_OFFSET                                        0x0000000000000048
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_LSB                                           49
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_MSB                                           50
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_MASK                                          0x0006000000000000
+
+
+/* Description		IP_FIXED_HEADER_VALID
+
+			Fixed 20-byte IPv4 header or 40-byte IPv6 header parsed 
+			fully within first 256 bytes of the packet
+*/
+
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_OFFSET                                    0x0000000000000048
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_LSB                                       51
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_MSB                                       51
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_MASK                                      0x0008000000000000
+
+
+/* Description		IP_EXTN_HEADER_VALID
+
+			IPv6/IPv6 header, including IPv4 options and recognizable
+			 extension headers parsed fully within first 256 bytes of
+			 the packet
+*/
+
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_LSB                                        52
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_MSB                                        52
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_MASK                                       0x0010000000000000
+
+
+/* Description		TCP_UDP_HEADER_VALID
+
+			Fixed 20-byte TCP (excluding TCP options) or 8-byte UDP 
+			header parsed fully within first 256 bytes of the packet
+			
+*/
+
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_LSB                                        53
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_MSB                                        53
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_MASK                                       0x0020000000000000
+
+
+/* Description		MESH_CONTROL_PRESENT
+
+			When set, this MSDU includes the 'Mesh Control' field
+			<legal all>
+*/
+
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_LSB                                        54
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_MSB                                        54
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_MASK                                       0x0040000000000000
+
+
+/* Description		LDPC
+
+			When set, indicates that LDPC coding was used.
+			<legal all>
+*/
+
+#define RX_MSDU_END_LDPC_OFFSET                                                     0x0000000000000048
+#define RX_MSDU_END_LDPC_LSB                                                        55
+#define RX_MSDU_END_LDPC_MSB                                                        55
+#define RX_MSDU_END_LDPC_MASK                                                       0x0080000000000000
+
+
+/* Description		IP4_PROTOCOL_IP6_NEXT_HEADER
+
+			For IPv4 this is the 8 bit protocol field (when ipv4_proto
+			 is set).  For IPv6 this is the 8 bit next_header field (when
+			 ipv6_proto is set).
+*/
+
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_OFFSET                             0x0000000000000048
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_LSB                                56
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_MSB                                63
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_MASK                               0xff00000000000000
+
+
+/* Description		VLAN_CTAG_CI
+
+			2 bytes of C-VLAN Tag Control Information from WHO_L2_LLC
+			
+			
+			Hamilton v1 used this for 'toeplitz_hash_2_or_4.'
+*/
+
+#define RX_MSDU_END_VLAN_CTAG_CI_OFFSET                                             0x0000000000000050
+#define RX_MSDU_END_VLAN_CTAG_CI_LSB                                                0
+#define RX_MSDU_END_VLAN_CTAG_CI_MSB                                                15
+#define RX_MSDU_END_VLAN_CTAG_CI_MASK                                               0x000000000000ffff
+
+
+/* Description		VLAN_STAG_CI
+
+			Words 18 - 26 are from Lithium 'RX_MSDU_START.'
+			
+			2 bytes of S-VLAN Tag Control Information from WHO_L2_LLC
+			 in case of double VLAN
+			
+			Hamilton v1 used this for 'toeplitz_hash_2_or_4.'
+*/
+
+#define RX_MSDU_END_VLAN_STAG_CI_OFFSET                                             0x0000000000000050
+#define RX_MSDU_END_VLAN_STAG_CI_LSB                                                16
+#define RX_MSDU_END_VLAN_STAG_CI_MSB                                                31
+#define RX_MSDU_END_VLAN_STAG_CI_MASK                                               0x00000000ffff0000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			
+			RXOLE copies this from the 'Struct RX_MPDU_INFO' in 'RX_MPDU_PCU_START.'
+			
+			
+			Hamilton v1 used this for 'Flow_id_toeplitz.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_PEER_META_DATA_OFFSET                                           0x0000000000000050
+#define RX_MSDU_END_PEER_META_DATA_LSB                                              32
+#define RX_MSDU_END_PEER_META_DATA_MSB                                              63
+#define RX_MSDU_END_PEER_META_DATA_MASK                                             0xffffffff00000000
+
+
+/* Description		USER_RSSI
+
+			RSSI for this user
+			<legal all>
+*/
+
+#define RX_MSDU_END_USER_RSSI_OFFSET                                                0x0000000000000058
+#define RX_MSDU_END_USER_RSSI_LSB                                                   0
+#define RX_MSDU_END_USER_RSSI_MSB                                                   7
+#define RX_MSDU_END_USER_RSSI_MASK                                                  0x00000000000000ff
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_MSDU_END_PKT_TYPE_OFFSET                                                 0x0000000000000058
+#define RX_MSDU_END_PKT_TYPE_LSB                                                    8
+#define RX_MSDU_END_PKT_TYPE_MSB                                                    11
+#define RX_MSDU_END_PKT_TYPE_MASK                                                   0x0000000000000f00
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RX_MSDU_END_SGI_OFFSET                                                      0x0000000000000058
+#define RX_MSDU_END_SGI_LSB                                                         12
+#define RX_MSDU_END_SGI_MSB                                                         13
+#define RX_MSDU_END_SGI_MASK                                                        0x0000000000003000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define RX_MSDU_END_RATE_MCS_OFFSET                                                 0x0000000000000058
+#define RX_MSDU_END_RATE_MCS_LSB                                                    14
+#define RX_MSDU_END_RATE_MCS_MSB                                                    17
+#define RX_MSDU_END_RATE_MCS_MASK                                                   0x000000000003c000
+
+
+/* Description		RECEIVE_BANDWIDTH
+
+			Full receive 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 RX_MSDU_END_RECEIVE_BANDWIDTH_OFFSET                                        0x0000000000000058
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_LSB                                           18
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_MSB                                           20
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_MASK                                          0x00000000001c0000
+
+
+/* Description		RECEPTION_TYPE
+
+			Indicates what type of reception this is.
+			<enum 0     reception_type_SU > Basic SU reception (not 
+			part of OFDMA or MIMO)
+			<enum 1     reception_type_MU_MIMO > This is related to 
+			DL type of reception
+			<enum 2     reception_type_MU_OFDMA >  This is related to
+			 DL type of reception
+			<enum 3     reception_type_MU_OFDMA_MIMO >  This is related
+			 to DL type of reception
+			<enum 4     reception_type_UL_MU_MIMO > This is related 
+			to UL type of reception
+			<enum 5     reception_type_UL_MU_OFDMA >  This is related
+			 to UL type of reception
+			<enum 6     reception_type_UL_MU_OFDMA_MIMO >  This is related
+			 to UL type of reception
+			
+			<legal 0-6>
+*/
+
+#define RX_MSDU_END_RECEPTION_TYPE_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_RECEPTION_TYPE_LSB                                              21
+#define RX_MSDU_END_RECEPTION_TYPE_MSB                                              23
+#define RX_MSDU_END_RECEPTION_TYPE_MASK                                             0x0000000000e00000
+
+
+/* Description		MIMO_SS_BITMAP
+
+			Field only valid when Reception_type for the MPDU from this
+			 STA is some form of MIMO reception
+			
+			Bitmap, with each bit indicating if the related spatial 
+			stream is used for this STA
+			LSB related to SS 0
+			
+			0: spatial stream not used for this reception
+			1: spatial stream used for this reception
+			
+			Note: Only 7 bits are reported here to accommodate field
+			 'msdu_done_copy.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_MIMO_SS_BITMAP_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_MIMO_SS_BITMAP_LSB                                              24
+#define RX_MSDU_END_MIMO_SS_BITMAP_MSB                                              30
+#define RX_MSDU_END_MIMO_SS_BITMAP_MASK                                             0x000000007f000000
+
+
+/* Description		MSDU_DONE_COPY
+
+			If set indicates that the RX packet data, RX header data, 
+			RX PPDU start descriptor, RX MPDU start/end descriptor, 
+			RX MSDU start/end descriptors and RX Attention descriptor
+			 are all valid.  This bit is in the last 64-bit of the descriptor
+			 expected to be subscribed to in Waikiki and Hamilton v2.
+			
+			<legal 1>
+*/
+
+#define RX_MSDU_END_MSDU_DONE_COPY_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_MSDU_DONE_COPY_LSB                                              31
+#define RX_MSDU_END_MSDU_DONE_COPY_MSB                                              31
+#define RX_MSDU_END_MSDU_DONE_COPY_MASK                                             0x0000000080000000
+
+
+/* Description		FLOW_ID_TOEPLITZ
+
+			Toeplitz hash of 5-tuple 
+			{IP source address, IP destination address, IP source port, 
+			IP destination port, L4 protocol}  in case of non-IPSec.
+			
+			In case of IPSec - Toeplitz hash of 4-tuple 
+			{IP source address, IP destination address, SPI, L4 protocol}
+			
+			
+			In Pine, optionally the 3-tuple Toeplitz hash over IPv4 
+			or IPv6 src/dest addresses and L4 protocol can be reported
+			 here. (Unsupported in HastingsPrime)
+			
+			The relevant Toeplitz key registers are provided in RxOLE's
+			 instance of common parser module. These registers are separate
+			 from the Toeplitz keys used by ASE/FSE modules inside RxOLE.The
+			 actual value will be passed on from common parser module
+			 to RxOLE in one of the WHO_* TLVs.
+			
+			Hamilton v1 used this for 'ppdu_start_timestamp_31_0.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_OFFSET                                         0x0000000000000058
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_LSB                                            32
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_MSB                                            63
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_MASK                                           0xffffffff00000000
+
+
+/* Description		PPDU_START_TIMESTAMP_63_32
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, upper 32 bits
+			<legal all>
+*/
+
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_OFFSET                               0x0000000000000060
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_LSB                                  0
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_MSB                                  31
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_MASK                                 0x00000000ffffffff
+
+
+/* Description		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.
+			<legal all>
+*/
+
+#define RX_MSDU_END_SW_PHY_META_DATA_OFFSET                                         0x0000000000000060
+#define RX_MSDU_END_SW_PHY_META_DATA_LSB                                            32
+#define RX_MSDU_END_SW_PHY_META_DATA_MSB                                            63
+#define RX_MSDU_END_SW_PHY_META_DATA_MASK                                           0xffffffff00000000
+
+
+/* Description		PPDU_START_TIMESTAMP_31_0
+
+			Words 18 - 26 are from Lithium 'RX_MSDU_START.'
+			
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, lower 32 bits
+			
+			Hamilton v1 used bits [15:0] for 'vlan_ctag_ci and bits [31:16] 
+			for 'vlan_stag_ci.'
+			<legal all>
+*/
+
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_OFFSET                                0x0000000000000068
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_LSB                                   0
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_MSB                                   31
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_MASK                                  0x00000000ffffffff
+
+
+/* Description		TOEPLITZ_HASH_2_OR_4
+
+			Controlled by multiple RxOLE registers for TCP/UDP over 
+			IPv4/IPv6 - Either, Toeplitz hash computed over 2-tuple 
+			IPv4 or IPv6 src/dest addresses is reported; or, Toeplitz
+			 hash computed over 4-tuple IPv4 or IPv6 src/dest addresses
+			 and src/dest ports is reported. The Flow_id_toeplitz hash
+			 can also be reported here. Usually the hash reported here
+			 is the one used for hash-based REO routing (see use_flow_id_toeplitz_clfy
+			 in 'RXPT_CLASSIFY_INFO').
+			
+			In Pine, optionally the 3-tuple Toeplitz hash over IPv4 
+			or IPv6 src/dest addresses and L4 protocol can be reported
+			 here. (Unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_OFFSET                                     0x0000000000000068
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_LSB                                        32
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_MSB                                        63
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_MASK                                       0xffffffff00000000
+
+
+/* Description		RESERVED_28A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_28A_OFFSET                                             0x0000000000000070
+#define RX_MSDU_END_RESERVED_28A_LSB                                                0
+#define RX_MSDU_END_RESERVED_28A_MSB                                                15
+#define RX_MSDU_END_RESERVED_28A_MASK                                               0x000000000000ffff
+
+
+/* Description		SA_15_0
+
+			Source MAC address bits [15:0] (with the fifth byte in the
+			 MSB and the last byte in the LSB, i.e. requiring a byte-swap
+			 for little-endian FW)
+*/
+
+#define RX_MSDU_END_SA_15_0_OFFSET                                                  0x0000000000000070
+#define RX_MSDU_END_SA_15_0_LSB                                                     16
+#define RX_MSDU_END_SA_15_0_MSB                                                     31
+#define RX_MSDU_END_SA_15_0_MASK                                                    0x00000000ffff0000
+
+
+/* Description		SA_47_16
+
+			Source MAC address bits [47:16] (with the first byte in 
+			the MSB and the fourth byte in the LSB, i.e. requiring a
+			 byte-swap for little-endian FW)
+*/
+
+#define RX_MSDU_END_SA_47_16_OFFSET                                                 0x0000000000000070
+#define RX_MSDU_END_SA_47_16_LSB                                                    32
+#define RX_MSDU_END_SA_47_16_MSB                                                    63
+#define RX_MSDU_END_SA_47_16_MASK                                                   0xffffffff00000000
+
+
+/* Description		FIRST_MPDU
+
+			Words 30 - 31 are from Lithium 'RX_ATTENTION.'
+			
+			Indicates the first MSDU of the PPDU.  If both first_mpdu
+			 and last_mpdu are set in the MSDU then this is a not an
+			 A-MPDU frame but a stand alone MPDU.  Interior MPDU in 
+			an A-MPDU shall have both first_mpdu and last_mpdu bits 
+			set to 0.  The PPDU start status will only be valid when
+			 this bit is set.
+*/
+
+#define RX_MSDU_END_FIRST_MPDU_OFFSET                                               0x0000000000000078
+#define RX_MSDU_END_FIRST_MPDU_LSB                                                  0
+#define RX_MSDU_END_FIRST_MPDU_MSB                                                  0
+#define RX_MSDU_END_FIRST_MPDU_MASK                                                 0x0000000000000001
+
+
+/* Description		RESERVED_30A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_30A_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_30A_LSB                                                1
+#define RX_MSDU_END_RESERVED_30A_MSB                                                1
+#define RX_MSDU_END_RESERVED_30A_MASK                                               0x0000000000000002
+
+
+/* Description		MCAST_BCAST
+
+			Multicast / broadcast indicator.  Only set when the MAC 
+			address 1 bit 0 is set indicating mcast/bcast and the BSSID
+			 matches one of the 4 BSSID registers. Only set when first_msdu
+			 is set.
+*/
+
+#define RX_MSDU_END_MCAST_BCAST_OFFSET                                              0x0000000000000078
+#define RX_MSDU_END_MCAST_BCAST_LSB                                                 2
+#define RX_MSDU_END_MCAST_BCAST_MSB                                                 2
+#define RX_MSDU_END_MCAST_BCAST_MASK                                                0x0000000000000004
+
+
+/* Description		AST_INDEX_NOT_FOUND
+
+			Only valid when first_msdu is set.
+			
+			Indicates no AST matching entries within the the max search
+			 count.  
+*/
+
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_LSB                                         3
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_MSB                                         3
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_MASK                                        0x0000000000000008
+
+
+/* Description		AST_INDEX_TIMEOUT
+
+			Only valid when first_msdu is set.
+			
+			Indicates an unsuccessful search in the address seach table
+			 due to timeout.  
+*/
+
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_OFFSET                                        0x0000000000000078
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_LSB                                           4
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_MSB                                           4
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_MASK                                          0x0000000000000010
+
+
+/* Description		POWER_MGMT
+
+			Power management bit set in the 802.11 header.  Only set
+			 when first_msdu is set.
+*/
+
+#define RX_MSDU_END_POWER_MGMT_OFFSET                                               0x0000000000000078
+#define RX_MSDU_END_POWER_MGMT_LSB                                                  5
+#define RX_MSDU_END_POWER_MGMT_MSB                                                  5
+#define RX_MSDU_END_POWER_MGMT_MASK                                                 0x0000000000000020
+
+
+/* Description		NON_QOS
+
+			Set if packet is not a non-QoS data frame.  Only set when
+			 first_msdu is set.
+*/
+
+#define RX_MSDU_END_NON_QOS_OFFSET                                                  0x0000000000000078
+#define RX_MSDU_END_NON_QOS_LSB                                                     6
+#define RX_MSDU_END_NON_QOS_MSB                                                     6
+#define RX_MSDU_END_NON_QOS_MASK                                                    0x0000000000000040
+
+
+/* Description		NULL_DATA
+
+			Set if frame type indicates either null data or QoS null
+			 data format.  Only set when first_msdu is set.
+*/
+
+#define RX_MSDU_END_NULL_DATA_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_NULL_DATA_LSB                                                   7
+#define RX_MSDU_END_NULL_DATA_MSB                                                   7
+#define RX_MSDU_END_NULL_DATA_MASK                                                  0x0000000000000080
+
+
+/* Description		MGMT_TYPE
+
+			Set if packet is a management packet.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_MSDU_END_MGMT_TYPE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MGMT_TYPE_LSB                                                   8
+#define RX_MSDU_END_MGMT_TYPE_MSB                                                   8
+#define RX_MSDU_END_MGMT_TYPE_MASK                                                  0x0000000000000100
+
+
+/* Description		CTRL_TYPE
+
+			Set if packet is a control packet.  Only set when first_msdu
+			 is set.
+*/
+
+#define RX_MSDU_END_CTRL_TYPE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_CTRL_TYPE_LSB                                                   9
+#define RX_MSDU_END_CTRL_TYPE_MSB                                                   9
+#define RX_MSDU_END_CTRL_TYPE_MASK                                                  0x0000000000000200
+
+
+/* Description		MORE_DATA
+
+			Set if more bit in frame control is set.  Only set when 
+			first_msdu is set.
+*/
+
+#define RX_MSDU_END_MORE_DATA_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MORE_DATA_LSB                                                   10
+#define RX_MSDU_END_MORE_DATA_MSB                                                   10
+#define RX_MSDU_END_MORE_DATA_MASK                                                  0x0000000000000400
+
+
+/* Description		EOSP
+
+			Set if the EOSP (end of service period) bit in the QoS control
+			 field is set.  Only set when first_msdu is set.
+*/
+
+#define RX_MSDU_END_EOSP_OFFSET                                                     0x0000000000000078
+#define RX_MSDU_END_EOSP_LSB                                                        11
+#define RX_MSDU_END_EOSP_MSB                                                        11
+#define RX_MSDU_END_EOSP_MASK                                                       0x0000000000000800
+
+
+/* Description		A_MSDU_ERROR
+
+			Set if number of MSDUs in A-MSDU is above a threshold or
+			 if the size of the MSDU is invalid.  This receive buffer
+			 will contain all of the remainder of the MSDUs in this 
+			MPDU without decapsulation.
+*/
+
+#define RX_MSDU_END_A_MSDU_ERROR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_A_MSDU_ERROR_LSB                                                12
+#define RX_MSDU_END_A_MSDU_ERROR_MSB                                                12
+#define RX_MSDU_END_A_MSDU_ERROR_MASK                                               0x0000000000001000
+
+
+/* Description		RESERVED_30B
+
+			Hamilton v1 used this for 'Fragment_flag.'
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_30B_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_30B_LSB                                                13
+#define RX_MSDU_END_RESERVED_30B_MSB                                                13
+#define RX_MSDU_END_RESERVED_30B_MASK                                               0x0000000000002000
+
+
+/* Description		ORDER
+
+			Set if the order bit in the frame control is set.  Only 
+			set when first_msdu is set.
+*/
+
+#define RX_MSDU_END_ORDER_OFFSET                                                    0x0000000000000078
+#define RX_MSDU_END_ORDER_LSB                                                       14
+#define RX_MSDU_END_ORDER_MSB                                                       14
+#define RX_MSDU_END_ORDER_MASK                                                      0x0000000000004000
+
+
+/* Description		WIFI_PARSER_ERROR
+
+			Indicates that the WiFi frame has one of the following errors
+			
+			o has less than minimum allowed bytes as per standard
+			o has incomplete VLAN LLC/SNAP (only for non A-MSDUs)
+			<legal all>
+*/
+
+#define RX_MSDU_END_WIFI_PARSER_ERROR_OFFSET                                        0x0000000000000078
+#define RX_MSDU_END_WIFI_PARSER_ERROR_LSB                                           15
+#define RX_MSDU_END_WIFI_PARSER_ERROR_MSB                                           15
+#define RX_MSDU_END_WIFI_PARSER_ERROR_MASK                                          0x0000000000008000
+
+
+/* Description		OVERFLOW_ERR
+
+			RXPCU Receive FIFO ran out of space to receive the full 
+			MPDU. Therefor this MPDU is terminated early and is thus
+			 corrupted.  
+			
+			This MPDU will not be ACKed.
+			RXPCU might still be able to correctly receive the following
+			 MPDUs in the PPDU if enough fifo space became available
+			 in time
+*/
+
+#define RX_MSDU_END_OVERFLOW_ERR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_OVERFLOW_ERR_LSB                                                16
+#define RX_MSDU_END_OVERFLOW_ERR_MSB                                                16
+#define RX_MSDU_END_OVERFLOW_ERR_MASK                                               0x0000000000010000
+
+
+/* Description		MSDU_LENGTH_ERR
+
+			Indicates that the MSDU length from the 802.3 encapsulated
+			 length field extends beyond the MPDU boundary or if the
+			 length is less than 14 bytes.
+			Merged with original "other_msdu_err": Indicates that the
+			 MSDU threshold was exceeded and thus all the rest of the
+			 MSDUs will not be scattered and will not be decasulated
+			 but will be DMA'ed in RAW format as a single MSDU buffer
+			
+*/
+
+#define RX_MSDU_END_MSDU_LENGTH_ERR_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_MSDU_LENGTH_ERR_LSB                                             17
+#define RX_MSDU_END_MSDU_LENGTH_ERR_MSB                                             17
+#define RX_MSDU_END_MSDU_LENGTH_ERR_MASK                                            0x0000000000020000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Indicates that the computed checksum (tcp_udp_chksum in 'RX_MSDU_END') 
+			did not match the checksum in the TCP/UDP header.
+*/
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_LSB                                         18
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_MSB                                         18
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_MASK                                        0x0000000000040000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Indicates that the computed checksum (ip_hdr_chksum in 'RX_MSDU_END') 
+			did not match the checksum in the IP header.
+*/
+
+#define RX_MSDU_END_IP_CHKSUM_FAIL_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_IP_CHKSUM_FAIL_LSB                                              19
+#define RX_MSDU_END_IP_CHKSUM_FAIL_MSB                                              19
+#define RX_MSDU_END_IP_CHKSUM_FAIL_MASK                                             0x0000000000080000
+
+
+/* Description		SA_IDX_INVALID
+
+			Indicates no matching entry was found in the address search
+			 table for the source MAC address.
+*/
+
+#define RX_MSDU_END_SA_IDX_INVALID_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_SA_IDX_INVALID_LSB                                              20
+#define RX_MSDU_END_SA_IDX_INVALID_MSB                                              20
+#define RX_MSDU_END_SA_IDX_INVALID_MASK                                             0x0000000000100000
+
+
+/* Description		DA_IDX_INVALID
+
+			Indicates no matching entry was found in the address search
+			 table for the destination MAC address.
+*/
+
+#define RX_MSDU_END_DA_IDX_INVALID_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_DA_IDX_INVALID_LSB                                              21
+#define RX_MSDU_END_DA_IDX_INVALID_MSB                                              21
+#define RX_MSDU_END_DA_IDX_INVALID_MASK                                             0x0000000000200000
+
+
+/* Description		AMSDU_ADDR_MISMATCH
+
+			Indicates that an A-MSDU with 'from DS = 0' had an SA mismatching
+			 TA or an A-MDU with 'to DS = 0' had a DA mismatching RA
+			
+*/
+
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_LSB                                         22
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_MSB                                         22
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_MASK                                        0x0000000000400000
+
+
+/* Description		RX_IN_TX_DECRYPT_BYP
+
+			Indicates that RX packet is not decrypted as Crypto is busy
+			 with TX packet processing.
+*/
+
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_OFFSET                                     0x0000000000000078
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_LSB                                        23
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_MSB                                        23
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_MASK                                       0x0000000000800000
+
+
+/* Description		ENCRYPT_REQUIRED
+
+			Indicates that this data type frame is not encrypted even
+			 if the policy for this MPDU requires encryption as indicated
+			 in the peer entry key type.
+*/
+
+#define RX_MSDU_END_ENCRYPT_REQUIRED_OFFSET                                         0x0000000000000078
+#define RX_MSDU_END_ENCRYPT_REQUIRED_LSB                                            24
+#define RX_MSDU_END_ENCRYPT_REQUIRED_MSB                                            24
+#define RX_MSDU_END_ENCRYPT_REQUIRED_MASK                                           0x0000000001000000
+
+
+/* Description		DIRECTED
+
+			MPDU is a directed packet which means that the RA matched
+			 our STA addresses.  In proxySTA it means that the TA matched
+			 an entry in our address search table with the corresponding
+			 "no_ack" bit is the address search entry cleared.
+*/
+
+#define RX_MSDU_END_DIRECTED_OFFSET                                                 0x0000000000000078
+#define RX_MSDU_END_DIRECTED_LSB                                                    25
+#define RX_MSDU_END_DIRECTED_MSB                                                    25
+#define RX_MSDU_END_DIRECTED_MASK                                                   0x0000000002000000
+
+
+/* Description		BUFFER_FRAGMENT
+
+			Indicates that at least one of the rx buffers has been fragmented. 
+			 If set the FW should look at the rx_frag_info descriptor
+			 described below.
+*/
+
+#define RX_MSDU_END_BUFFER_FRAGMENT_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_BUFFER_FRAGMENT_LSB                                             26
+#define RX_MSDU_END_BUFFER_FRAGMENT_MSB                                             26
+#define RX_MSDU_END_BUFFER_FRAGMENT_MASK                                            0x0000000004000000
+
+
+/* Description		MPDU_LENGTH_ERR
+
+			Indicates that the MPDU was pre-maturely terminated resulting
+			 in a truncated MPDU.  Don't trust the MPDU length field.
+			
+*/
+
+#define RX_MSDU_END_MPDU_LENGTH_ERR_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_MPDU_LENGTH_ERR_LSB                                             27
+#define RX_MSDU_END_MPDU_LENGTH_ERR_MSB                                             27
+#define RX_MSDU_END_MPDU_LENGTH_ERR_MASK                                            0x0000000008000000
+
+
+/* Description		TKIP_MIC_ERR
+
+			Indicates that the MPDU Michael integrity check failed
+*/
+
+#define RX_MSDU_END_TKIP_MIC_ERR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_TKIP_MIC_ERR_LSB                                                28
+#define RX_MSDU_END_TKIP_MIC_ERR_MSB                                                28
+#define RX_MSDU_END_TKIP_MIC_ERR_MASK                                               0x0000000010000000
+
+
+/* Description		DECRYPT_ERR
+
+			Indicates that the MPDU decrypt integrity check failed or
+			 CRYPTO received an encrypted frame, but did not get a valid
+			 corresponding key id in the peer entry.
+*/
+
+#define RX_MSDU_END_DECRYPT_ERR_OFFSET                                              0x0000000000000078
+#define RX_MSDU_END_DECRYPT_ERR_LSB                                                 29
+#define RX_MSDU_END_DECRYPT_ERR_MSB                                                 29
+#define RX_MSDU_END_DECRYPT_ERR_MASK                                                0x0000000020000000
+
+
+/* Description		UNENCRYPTED_FRAME_ERR
+
+			Copied here by RX OLE from the RX_MPDU_END TLV
+*/
+
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_OFFSET                                    0x0000000000000078
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_LSB                                       30
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_MSB                                       30
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_MASK                                      0x0000000040000000
+
+
+/* Description		FCS_ERR
+
+			Indicates that the MPDU FCS check failed
+*/
+
+#define RX_MSDU_END_FCS_ERR_OFFSET                                                  0x0000000000000078
+#define RX_MSDU_END_FCS_ERR_LSB                                                     31
+#define RX_MSDU_END_FCS_ERR_MSB                                                     31
+#define RX_MSDU_END_FCS_ERR_MASK                                                    0x0000000080000000
+
+
+/* Description		RESERVED_31A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_31A_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_31A_LSB                                                32
+#define RX_MSDU_END_RESERVED_31A_MSB                                                41
+#define RX_MSDU_END_RESERVED_31A_MASK                                               0x000003ff00000000
+
+
+/* Description		DECRYPT_STATUS_CODE
+
+			Field provides insight into the decryption performed
+			
+			<enum 0 decrypt_ok> Frame had protection enabled and decrypted
+			 properly 
+			<enum 1 decrypt_unprotected_frame > Frame is unprotected
+			 and hence bypassed 
+			<enum 2 decrypt_data_err > Frame has protection enabled 
+			and could not be properly d   ecrypted due to MIC/ICV mismatch
+			 etc. 
+			<enum 3 decrypt_key_invalid > Frame has protection enabled
+			 but the key that was required to decrypt this frame was
+			 not valid 
+			<enum 4 decrypt_peer_entry_invalid > Frame has protection
+			 enabled but the key that was required to decrypt this frame
+			 was not valid
+			<enum 5 decrypt_other > Reserved for other indications
+			
+			<legal 0 - 5>
+*/
+
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_LSB                                         42
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_MSB                                         44
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_MASK                                        0x00001c0000000000
+
+
+/* Description		RX_BITMAP_NOT_UPDATED
+
+			Frame is received, but RXPCU could not update the receive
+			 bitmap due to (temporary) fifo contraints.
+			<legal all>
+*/
+
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_OFFSET                                    0x0000000000000078
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_LSB                                       45
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_MSB                                       45
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_MASK                                      0x0000200000000000
+
+
+/* Description		RESERVED_31B
+
+			<legal 0>
+*/
+
+#define RX_MSDU_END_RESERVED_31B_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_31B_LSB                                                46
+#define RX_MSDU_END_RESERVED_31B_MSB                                                62
+#define RX_MSDU_END_RESERVED_31B_MASK                                               0x7fffc00000000000
+
+
+/* Description		MSDU_DONE
+
+			Words 27 - 28 are from Lithium 'RX_ATTENTION.'
+			
+			If set indicates that the RX packet data, RX header data, 
+			RX PPDU start descriptor, RX MPDU start/end descriptor, 
+			RX MSDU start/end descriptors and RX Attention descriptor
+			 are all valid.  This bit must be in the last octet of the
+			 descriptor.
+*/
+
+#define RX_MSDU_END_MSDU_DONE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MSDU_DONE_LSB                                                   63
+#define RX_MSDU_END_MSDU_DONE_MSB                                                   63
+#define RX_MSDU_END_MSDU_DONE_MASK                                                  0x8000000000000000
+
+
+
+#endif   // RX_MSDU_END
diff --git a/hw/qca5332/rx_msdu_ext_desc_info.h b/hw/qca5332/rx_msdu_ext_desc_info.h
new file mode 100644
index 0000000..4fad5ea
--- /dev/null
+++ b/hw/qca5332/rx_msdu_ext_desc_info.h
@@ -0,0 +1,194 @@
+
+/* 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 _RX_MSDU_EXT_DESC_INFO_H_
+#define _RX_MSDU_EXT_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_EXT_DESC_INFO 1
+
+
+struct rx_msdu_ext_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_destination_indication                              :  5, // [4:0]
+                      service_code                                            :  9, // [13:5]
+                      priority_valid                                          :  1, // [14:14]
+                      data_offset                                             : 12, // [26:15]
+                      src_link_id                                             :  3, // [29:27]
+                      reserved_0a                                             :  2; // [31:30]
+#else
+             uint32_t reserved_0a                                             :  2, // [31:30]
+                      src_link_id                                             :  3, // [29:27]
+                      data_offset                                             : 12, // [26:15]
+                      priority_valid                                          :  1, // [14:14]
+                      service_code                                            :  9, // [13:5]
+                      reo_destination_indication                              :  5; // [4:0]
+#endif
+};
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_OFFSET                     0x00000000
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_LSB                        0
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_MSB                        4
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_MASK                       0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_OFFSET                                   0x00000000
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_LSB                                      5
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_MSB                                      13
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_MASK                                     0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_OFFSET                                 0x00000000
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_LSB                                    14
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_MSB                                    14
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_MASK                                   0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_LSB                                       15
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_MSB                                       26
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_MASK                                      0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_LSB                                       27
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_MSB                                       29
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_MASK                                      0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_LSB                                       30
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_MSB                                       31
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_MASK                                      0xc0000000
+
+
+
+#endif   // RX_MSDU_EXT_DESC_INFO
diff --git a/hw/qca5332/rx_msdu_link.h b/hw/qca5332/rx_msdu_link.h
new file mode 100644
index 0000000..50b5ffe
--- /dev/null
+++ b/hw/qca5332/rx_msdu_link.h
@@ -0,0 +1,4038 @@
+
+/* 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 _RX_MSDU_LINK_H_
+#define _RX_MSDU_LINK_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#include "buffer_addr_info.h"
+#include "rx_msdu_details.h"
+#define NUM_OF_DWORDS_RX_MSDU_LINK 32
+
+
+struct rx_msdu_link {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             struct   buffer_addr_info                                          next_msdu_link_desc_addr_info;
+             uint32_t receive_queue_number                                    : 16, // [15:0]
+                      first_rx_msdu_link_struct                               :  1, // [16:16]
+                      reserved_3a                                             : 15; // [31:17]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             struct   rx_msdu_details                                           msdu_0;
+             struct   rx_msdu_details                                           msdu_1;
+             struct   rx_msdu_details                                           msdu_2;
+             struct   rx_msdu_details                                           msdu_3;
+             struct   rx_msdu_details                                           msdu_4;
+             struct   rx_msdu_details                                           msdu_5;
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             struct   buffer_addr_info                                          next_msdu_link_desc_addr_info;
+             uint32_t reserved_3a                                             : 15, // [31:17]
+                      first_rx_msdu_link_struct                               :  1, // [16:16]
+                      receive_queue_number                                    : 16; // [15:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             struct   rx_msdu_details                                           msdu_0;
+             struct   rx_msdu_details                                           msdu_1;
+             struct   rx_msdu_details                                           msdu_2;
+             struct   rx_msdu_details                                           msdu_3;
+             struct   rx_msdu_details                                           msdu_4;
+             struct   rx_msdu_details                                           msdu_5;
+#endif
+};
+
+
+/* Description		DESCRIPTOR_HEADER
+
+			Details about which module owns this struct.
+			Note that sub field "Buffer_type" shall be set to "Receive_MSDU_Link_descriptor"
+			
+*/
+
+
+/* Description		OWNER
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			The owner of this data structure:
+			<enum 0 WBM_owned> Buffer Manager currently owns this data
+			 structure.
+			<enum 1 SW_OR_FW_owned> Software of FW currently owns this
+			 data structure.
+			<enum 2 TQM_owned> Transmit Queue Manager currently owns
+			 this data structure.
+			<enum 3 RXDMA_owned> Receive DMA currently owns this data
+			 structure.
+			<enum 4 REO_owned> Reorder currently owns this data structure.
+			
+			<enum 5 SWITCH_owned> SWITCH currently owns this data structure.
+			
+			
+			<legal 0-5> 
+*/
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_OFFSET                                 0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_LSB                                    0
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_MSB                                    3
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_MASK                                   0x0000000f
+
+
+/* Description		BUFFER_TYPE
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			Field describing what contents format is of this descriptor
+			
+			
+			<enum 0 Transmit_MSDU_Link_descriptor> 
+			<enum 1 Transmit_MPDU_Link_descriptor> 
+			<enum 2 Transmit_MPDU_Queue_head_descriptor>
+			<enum 3 Transmit_MPDU_Queue_ext_descriptor>
+			<enum 4 Transmit_flow_descriptor>
+			<enum 5 Transmit_buffer> NOT TO BE USED: 
+			
+			<enum 6 Receive_MSDU_Link_descriptor>
+			<enum 7 Receive_MPDU_Link_descriptor>
+			<enum 8 Receive_REO_queue_descriptor>
+			<enum 9 Receive_REO_queue_1k_descriptor>
+			<enum 10 Receive_REO_queue_ext_descriptor>
+			
+			<enum 11 Receive_buffer>
+			
+			<enum 12 Idle_link_list_entry>
+			
+			<legal 0-12> 
+*/
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                           0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                              4
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                              7
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                             0x000000f0
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                           0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_LSB                              8
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_MSB                              31
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_MASK                             0xffffff00
+
+
+/* Description		NEXT_MSDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of the next MSDU link descriptor
+			 that contains info about additional MSDUs that are part
+			 of this MPDU.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET          0x00000004
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB             0
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB             31
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK            0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET         0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB            0
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB            7
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK           0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET     0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB        8
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB        11
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK       0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET          0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB             12
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB             31
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK            0xfffff000
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			Indicates the Receive queue to which this MPDU descriptor
+			 belongs
+			Used for tracking, finding bugs and debugging.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x0000000c
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_LSB                                       0
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_MSB                                       15
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_MASK                                      0x0000ffff
+
+
+/* Description		FIRST_RX_MSDU_LINK_STRUCT
+
+			When set, this RX_MSDU_link descriptor is the first one 
+			in the MSDU link list. Field MSDU_0 points to the very first
+			 MSDU buffer descriptor in the MPDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_OFFSET                               0x0000000c
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_LSB                                  16
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_MSB                                  16
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_MASK                                 0x00010000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_RESERVED_3A_OFFSET                                             0x0000000c
+#define RX_MSDU_LINK_RESERVED_3A_LSB                                                17
+#define RX_MSDU_LINK_RESERVED_3A_MSB                                                31
+#define RX_MSDU_LINK_RESERVED_3A_MASK                                               0xfffe0000
+
+
+/* Description		PN_31_0
+
+			Field only valid when First_RX_MSDU_link_struct  is set.
+			
+			
+			31-0 bits of the 256-bit packet number bitmap.  
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_PN_31_0_OFFSET                                                 0x00000010
+#define RX_MSDU_LINK_PN_31_0_LSB                                                    0
+#define RX_MSDU_LINK_PN_31_0_MSB                                                    31
+#define RX_MSDU_LINK_PN_31_0_MASK                                                   0xffffffff
+
+
+/* Description		PN_63_32
+
+			Field only valid when First_RX_MSDU_link_struct  is set.
+			
+			
+			63-32 bits of the 256-bit packet number bitmap.  
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_PN_63_32_OFFSET                                                0x00000014
+#define RX_MSDU_LINK_PN_63_32_LSB                                                   0
+#define RX_MSDU_LINK_PN_63_32_MSB                                                   31
+#define RX_MSDU_LINK_PN_63_32_MASK                                                  0xffffffff
+
+
+/* Description		PN_95_64
+
+			Field only valid when First_RX_MSDU_link_struct  is set.
+			
+			
+			95-64 bits of the 256-bit packet number bitmap. 
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_PN_95_64_OFFSET                                                0x00000018
+#define RX_MSDU_LINK_PN_95_64_LSB                                                   0
+#define RX_MSDU_LINK_PN_95_64_MSB                                                   31
+#define RX_MSDU_LINK_PN_95_64_MASK                                                  0xffffffff
+
+
+/* Description		PN_127_96
+
+			Field only valid when First_RX_MSDU_link_struct  is set.
+			
+			
+			127-96 bits of the 256-bit packet number bitmap. 
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_PN_127_96_OFFSET                                               0x0000001c
+#define RX_MSDU_LINK_PN_127_96_LSB                                                  0
+#define RX_MSDU_LINK_PN_127_96_MSB                                                  31
+#define RX_MSDU_LINK_PN_127_96_MASK                                                 0xffffffff
+
+
+/* Description		MSDU_0
+
+			When First_RX_MSDU_link_struct  is set, this MSDU is the
+			 first in the MPDU
+			
+			When First_RX_MSDU_link_struct  is NOT set, this MSDU follows
+			 the last MSDU in the previous RX_MSDU_link data structure
+			
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000020
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+/* Description		MSDU_1
+
+			Details of next MSDU in this (MSDU flow) linked list
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000030
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+/* Description		MSDU_2
+
+			Details of next MSDU in this (MSDU flow) linked list
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000040
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+/* Description		MSDU_3
+
+			Details of next MSDU in this (MSDU flow) linked list
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000050
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+/* Description		MSDU_4
+
+			Details of next MSDU in this (MSDU flow) linked list
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000060
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+/* Description		MSDU_5
+
+			Details of next MSDU in this (MSDU flow) linked list
+*/
+
+
+/* Description		BUFFER_ADDR_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Details of the physical address of the buffer containing
+			 an MSDU (or entire MPDU)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000070
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			General information related to the MSDU that should be passed
+			 on from RXDMA all the way to to the REO destination ring.
+			
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RX_MSDU_EXT_DESC_INFO_DETAILS
+
+			Consumer: REO/SW
+			Producer: RXDMA
+			
+			Extended information related to the MSDU that is passed 
+			on from RXDMA to REO but not part of the REO destination
+			 ring. Some fields are passed on to PPE.
+*/
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine) 
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			 <enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+/* Description		SERVICE_CODE
+
+			Opaque service code between PPE and Wi-Fi
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+/* Description		PRIORITY_VALID
+
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+/* Description		DATA_OFFSET
+
+			The offset to Rx packet data within the buffer (including
+			 Rx DMA offset programming and L3 header padding inserted
+			 by Rx OLE).
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+/* Description		SRC_LINK_ID
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Set to the link ID of the PMAC that received the frame
+			<legal all>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+
+#endif   // RX_MSDU_LINK
diff --git a/hw/qca5332/rx_msdu_start.h b/hw/qca5332/rx_msdu_start.h
new file mode 100644
index 0000000..8ec8a26
--- /dev/null
+++ b/hw/qca5332/rx_msdu_start.h
@@ -0,0 +1,777 @@
+
+/* 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 _RX_MSDU_START_H_
+#define _RX_MSDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_START 10
+
+#define NUM_OF_QWORDS_RX_MSDU_START 5
+
+
+struct rx_msdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      reserved_0                                              :  7, // [15:9]
+                      phy_ppdu_id                                             : 16; // [31:16]
+             uint32_t msdu_length                                             : 14, // [13:0]
+                      stbc                                                    :  1, // [14:14]
+                      ipsec_esp                                               :  1, // [15:15]
+                      l3_offset                                               :  7, // [22:16]
+                      ipsec_ah                                                :  1, // [23:23]
+                      l4_offset                                               :  8; // [31:24]
+             uint32_t msdu_number                                             :  8, // [7:0]
+                      decap_format                                            :  2, // [9:8]
+                      ipv4_proto                                              :  1, // [10:10]
+                      ipv6_proto                                              :  1, // [11:11]
+                      tcp_proto                                               :  1, // [12:12]
+                      udp_proto                                               :  1, // [13:13]
+                      ip_frag                                                 :  1, // [14:14]
+                      tcp_only_ack                                            :  1, // [15:15]
+                      da_is_bcast_mcast                                       :  1, // [16:16]
+                      toeplitz_hash_sel                                       :  2, // [18:17]
+                      ip_fixed_header_valid                                   :  1, // [19:19]
+                      ip_extn_header_valid                                    :  1, // [20:20]
+                      tcp_udp_header_valid                                    :  1, // [21:21]
+                      mesh_control_present                                    :  1, // [22:22]
+                      ldpc                                                    :  1, // [23:23]
+                      ip4_protocol_ip6_next_header                            :  8; // [31:24]
+             uint32_t toeplitz_hash_2_or_4                                    : 32; // [31:0]
+             uint32_t flow_id_toeplitz                                        : 32; // [31:0]
+             uint32_t user_rssi                                               :  8, // [7:0]
+                      pkt_type                                                :  4, // [11:8]
+                      sgi                                                     :  2, // [13:12]
+                      rate_mcs                                                :  4, // [17:14]
+                      receive_bandwidth                                       :  3, // [20:18]
+                      reception_type                                          :  3, // [23:21]
+                      mimo_ss_bitmap                                          :  8; // [31:24]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t vlan_ctag_ci                                            : 16, // [15:0]
+                      vlan_stag_ci                                            : 16; // [31:16]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_0                                              :  7, // [15:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t l4_offset                                               :  8, // [31:24]
+                      ipsec_ah                                                :  1, // [23:23]
+                      l3_offset                                               :  7, // [22:16]
+                      ipsec_esp                                               :  1, // [15:15]
+                      stbc                                                    :  1, // [14:14]
+                      msdu_length                                             : 14; // [13:0]
+             uint32_t ip4_protocol_ip6_next_header                            :  8, // [31:24]
+                      ldpc                                                    :  1, // [23:23]
+                      mesh_control_present                                    :  1, // [22:22]
+                      tcp_udp_header_valid                                    :  1, // [21:21]
+                      ip_extn_header_valid                                    :  1, // [20:20]
+                      ip_fixed_header_valid                                   :  1, // [19:19]
+                      toeplitz_hash_sel                                       :  2, // [18:17]
+                      da_is_bcast_mcast                                       :  1, // [16:16]
+                      tcp_only_ack                                            :  1, // [15:15]
+                      ip_frag                                                 :  1, // [14:14]
+                      udp_proto                                               :  1, // [13:13]
+                      tcp_proto                                               :  1, // [12:12]
+                      ipv6_proto                                              :  1, // [11:11]
+                      ipv4_proto                                              :  1, // [10:10]
+                      decap_format                                            :  2, // [9:8]
+                      msdu_number                                             :  8; // [7:0]
+             uint32_t toeplitz_hash_2_or_4                                    : 32; // [31:0]
+             uint32_t flow_id_toeplitz                                        : 32; // [31:0]
+             uint32_t mimo_ss_bitmap                                          :  8, // [31:24]
+                      reception_type                                          :  3, // [23:21]
+                      receive_bandwidth                                       :  3, // [20:18]
+                      rate_mcs                                                :  4, // [17:14]
+                      sgi                                                     :  2, // [13:12]
+                      pkt_type                                                :  4, // [11:8]
+                      user_rssi                                               :  8; // [7:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t vlan_stag_ci                                            : 16, // [31:16]
+                      vlan_ctag_ci                                            : 16; // [15:0]
+#endif
+};
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that this MPDU frame
+			 was allowed to come into the receive path by RXPCU
+			<enum 0 rxpcu_filter_pass> This MPDU passed the normal frame
+			 filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
+			 regular frame filter and would have been dropped, were 
+			it not for the frame fitting into the 'monitor_client' category.
+			
+			<enum 2 rxpcu_monitor_other> This MPDU did NOT pass the 
+			regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> This MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			<legal 0-3>
+*/
+
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                          0x0000000000000000
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                             0
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                             1
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                            0x0000000000000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification this MPDU is 
+			mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> 
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			Hamilton v1 included QoS Data Null as well here.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			
+			<legal 0-39>
+*/
+
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_OFFSET                                      0x0000000000000000
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_LSB                                         2
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_MSB                                         8
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_MASK                                        0x00000000000001fc
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_MSDU_START_RESERVED_0_OFFSET                                             0x0000000000000000
+#define RX_MSDU_START_RESERVED_0_LSB                                                9
+#define RX_MSDU_START_RESERVED_0_MSB                                                15
+#define RX_MSDU_START_RESERVED_0_MASK                                               0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_MSDU_START_PHY_PPDU_ID_OFFSET                                            0x0000000000000000
+#define RX_MSDU_START_PHY_PPDU_ID_LSB                                               16
+#define RX_MSDU_START_PHY_PPDU_ID_MSB                                               31
+#define RX_MSDU_START_PHY_PPDU_ID_MASK                                              0x00000000ffff0000
+
+
+/* Description		MSDU_LENGTH
+
+			MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation
+*/
+
+#define RX_MSDU_START_MSDU_LENGTH_OFFSET                                            0x0000000000000000
+#define RX_MSDU_START_MSDU_LENGTH_LSB                                               32
+#define RX_MSDU_START_MSDU_LENGTH_MSB                                               45
+#define RX_MSDU_START_MSDU_LENGTH_MASK                                              0x00003fff00000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define RX_MSDU_START_STBC_OFFSET                                                   0x0000000000000000
+#define RX_MSDU_START_STBC_LSB                                                      46
+#define RX_MSDU_START_STBC_MSB                                                      46
+#define RX_MSDU_START_STBC_MASK                                                     0x0000400000000000
+
+
+/* Description		IPSEC_ESP
+
+			Set if IPv4/v6 packet is using IPsec ESP
+*/
+
+#define RX_MSDU_START_IPSEC_ESP_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_IPSEC_ESP_LSB                                                 47
+#define RX_MSDU_START_IPSEC_ESP_MSB                                                 47
+#define RX_MSDU_START_IPSEC_ESP_MASK                                                0x0000800000000000
+
+
+/* Description		L3_OFFSET
+
+			Depending upon mode bit, this field either indicates the
+			 L3 offset in bytes from the start of the RX_HEADER or the
+			 IP offset in bytes from the start of the packet after decapsulation. 
+			 The latter is only valid if ipv4_proto or ipv6_proto is
+			 set.
+*/
+
+#define RX_MSDU_START_L3_OFFSET_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_L3_OFFSET_LSB                                                 48
+#define RX_MSDU_START_L3_OFFSET_MSB                                                 54
+#define RX_MSDU_START_L3_OFFSET_MASK                                                0x007f000000000000
+
+
+/* Description		IPSEC_AH
+
+			Set if IPv4/v6 packet is using IPsec AH
+*/
+
+#define RX_MSDU_START_IPSEC_AH_OFFSET                                               0x0000000000000000
+#define RX_MSDU_START_IPSEC_AH_LSB                                                  55
+#define RX_MSDU_START_IPSEC_AH_MSB                                                  55
+#define RX_MSDU_START_IPSEC_AH_MASK                                                 0x0080000000000000
+
+
+/* Description		L4_OFFSET
+
+			Depending upon mode bit, this field either indicates the
+			 L4 offset nin bytes from the start of RX_HEADER(only valid
+			 if either ipv4_proto or ipv6_proto is set to 1) or indicates
+			 the offset in bytes to the start of TCP or UDP header from
+			 the start of the IP header after decapsulation(Only valid
+			 if tcp_proto or udp_proto is set).  The value 0 indicates
+			 that the offset is longer than 127 bytes.
+*/
+
+#define RX_MSDU_START_L4_OFFSET_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_L4_OFFSET_LSB                                                 56
+#define RX_MSDU_START_L4_OFFSET_MSB                                                 63
+#define RX_MSDU_START_L4_OFFSET_MASK                                                0xff00000000000000
+
+
+/* Description		MSDU_NUMBER
+
+			Indicates the MSDU number within a MPDU.  This value is 
+			reset to zero at the start of each MPDU.  If the number 
+			of MSDU exceeds 255 this number will wrap using modulo 256.
+			
+*/
+
+#define RX_MSDU_START_MSDU_NUMBER_OFFSET                                            0x0000000000000008
+#define RX_MSDU_START_MSDU_NUMBER_LSB                                               0
+#define RX_MSDU_START_MSDU_NUMBER_MSB                                               7
+#define RX_MSDU_START_MSDU_NUMBER_MASK                                              0x00000000000000ff
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define RX_MSDU_START_DECAP_FORMAT_OFFSET                                           0x0000000000000008
+#define RX_MSDU_START_DECAP_FORMAT_LSB                                              8
+#define RX_MSDU_START_DECAP_FORMAT_MSB                                              9
+#define RX_MSDU_START_DECAP_FORMAT_MASK                                             0x0000000000000300
+
+
+/* Description		IPV4_PROTO
+
+			Set if L2 layer indicates IPv4 protocol.
+*/
+
+#define RX_MSDU_START_IPV4_PROTO_OFFSET                                             0x0000000000000008
+#define RX_MSDU_START_IPV4_PROTO_LSB                                                10
+#define RX_MSDU_START_IPV4_PROTO_MSB                                                10
+#define RX_MSDU_START_IPV4_PROTO_MASK                                               0x0000000000000400
+
+
+/* Description		IPV6_PROTO
+
+			Set if L2 layer indicates IPv6 protocol.
+*/
+
+#define RX_MSDU_START_IPV6_PROTO_OFFSET                                             0x0000000000000008
+#define RX_MSDU_START_IPV6_PROTO_LSB                                                11
+#define RX_MSDU_START_IPV6_PROTO_MSB                                                11
+#define RX_MSDU_START_IPV6_PROTO_MASK                                               0x0000000000000800
+
+
+/* Description		TCP_PROTO
+
+			Set if the ipv4_proto or ipv6_proto are set and the IP protocol
+			 indicates TCP.
+*/
+
+#define RX_MSDU_START_TCP_PROTO_OFFSET                                              0x0000000000000008
+#define RX_MSDU_START_TCP_PROTO_LSB                                                 12
+#define RX_MSDU_START_TCP_PROTO_MSB                                                 12
+#define RX_MSDU_START_TCP_PROTO_MASK                                                0x0000000000001000
+
+
+/* Description		UDP_PROTO
+
+			Set if the ipv4_proto or ipv6_proto are set and the IP protocol
+			 indicates UDP.
+*/
+
+#define RX_MSDU_START_UDP_PROTO_OFFSET                                              0x0000000000000008
+#define RX_MSDU_START_UDP_PROTO_LSB                                                 13
+#define RX_MSDU_START_UDP_PROTO_MSB                                                 13
+#define RX_MSDU_START_UDP_PROTO_MASK                                                0x0000000000002000
+
+
+/* Description		IP_FRAG
+
+			Indicates that either the IP More frag bit is set or IP 
+			frag number is non-zero.  If set indicates that this is 
+			a fragmented IP packet.
+*/
+
+#define RX_MSDU_START_IP_FRAG_OFFSET                                                0x0000000000000008
+#define RX_MSDU_START_IP_FRAG_LSB                                                   14
+#define RX_MSDU_START_IP_FRAG_MSB                                                   14
+#define RX_MSDU_START_IP_FRAG_MASK                                                  0x0000000000004000
+
+
+/* Description		TCP_ONLY_ACK
+
+			Set if only the TCP Ack bit is set in the TCP flags and 
+			if the TCP payload is 0.
+*/
+
+#define RX_MSDU_START_TCP_ONLY_ACK_OFFSET                                           0x0000000000000008
+#define RX_MSDU_START_TCP_ONLY_ACK_LSB                                              15
+#define RX_MSDU_START_TCP_ONLY_ACK_MSB                                              15
+#define RX_MSDU_START_TCP_ONLY_ACK_MASK                                             0x0000000000008000
+
+
+/* Description		DA_IS_BCAST_MCAST
+
+			The destination address is broadcast or multicast.
+*/
+
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_OFFSET                                      0x0000000000000008
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_LSB                                         16
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_MSB                                         16
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_MASK                                        0x0000000000010000
+
+
+/* Description		TOEPLITZ_HASH_SEL
+
+			Actual choosen Hash.
+			
+			0 -> Toeplitz hash of 2-tuple (IP source address, IP destination
+			 address)1 -> Toeplitz hash of 4-tuple (IP source address, 
+			IP destination address, L4 (TCP/UDP) source port, L4 (TCP/UDP) 
+			destination port)
+			2 -> Toeplitz of flow_id
+			3 -> "Zero" is used
+			<legal all>
+*/
+
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_OFFSET                                      0x0000000000000008
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_LSB                                         17
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_MSB                                         18
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_MASK                                        0x0000000000060000
+
+
+/* Description		IP_FIXED_HEADER_VALID
+
+			Fixed 20-byte IPv4 header or 40-byte IPv6 header parsed 
+			fully within first 256 bytes of the packet
+*/
+
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_OFFSET                                  0x0000000000000008
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_LSB                                     19
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_MSB                                     19
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_MASK                                    0x0000000000080000
+
+
+/* Description		IP_EXTN_HEADER_VALID
+
+			IPv6/IPv6 header, including IPv4 options and recognizable
+			 extension headers parsed fully within first 256 bytes of
+			 the packet
+*/
+
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_LSB                                      20
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_MSB                                      20
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_MASK                                     0x0000000000100000
+
+
+/* Description		TCP_UDP_HEADER_VALID
+
+			Fixed 20-byte TCP (excluding TCP options) or 8-byte UDP 
+			header parsed fully within first 256 bytes of the packet
+			
+*/
+
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_LSB                                      21
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_MSB                                      21
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_MASK                                     0x0000000000200000
+
+
+/* Description		MESH_CONTROL_PRESENT
+
+			When set, this MSDU includes the 'Mesh Control' field
+			<legal all>
+*/
+
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_LSB                                      22
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_MSB                                      22
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_MASK                                     0x0000000000400000
+
+
+/* Description		LDPC
+
+			When set, indicates that LDPC coding was used.
+			<legal all>
+*/
+
+#define RX_MSDU_START_LDPC_OFFSET                                                   0x0000000000000008
+#define RX_MSDU_START_LDPC_LSB                                                      23
+#define RX_MSDU_START_LDPC_MSB                                                      23
+#define RX_MSDU_START_LDPC_MASK                                                     0x0000000000800000
+
+
+/* Description		IP4_PROTOCOL_IP6_NEXT_HEADER
+
+			For IPv4 this is the 8 bit protocol field (when ipv4_proto
+			 is set).  For IPv6 this is the 8 bit next_header field (when
+			 ipv6_proto is set).
+*/
+
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_OFFSET                           0x0000000000000008
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_LSB                              24
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_MSB                              31
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_MASK                             0x00000000ff000000
+
+
+/* Description		TOEPLITZ_HASH_2_OR_4
+
+			Controlled by multiple RxOLE registers for TCP/UDP over 
+			IPv4/IPv6 - Either, Toeplitz hash computed over 2-tuple 
+			IPv4 or IPv6 src/dest addresses is reported; or, Toeplitz
+			 hash computed over 4-tuple IPv4 or IPv6 src/dest addresses
+			 and src/dest ports is reported. The Flow_id_toeplitz hash
+			 can also be reported here. Usually the hash reported here
+			 is the one used for hash-based REO routing (see use_flow_id_toeplitz_clfy
+			 in 'RXPT_CLASSIFY_INFO').
+			
+			In Pine, optionally the 3-tuple Toeplitz hash over IPv4 
+			or IPv6 src/dest addresses and L4 protocol can be reported
+			 here. (Unsupported in HastingsPrime)
+*/
+
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_LSB                                      32
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_MSB                                      63
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_MASK                                     0xffffffff00000000
+
+
+/* Description		FLOW_ID_TOEPLITZ
+
+			Toeplitz hash of 5-tuple 
+			{IP source address, IP destination address, IP source port, 
+			IP destination port, L4 protocol}  in case of non-IPSec.
+			
+			In case of IPSec - Toeplitz hash of 4-tuple 
+			{IP source address, IP destination address, SPI, L4 protocol}
+			
+			
+			In Pine, optionally the 3-tuple Toeplitz hash over IPv4 
+			or IPv6 src/dest addresses and L4 protocol can be reported
+			 here. (Unsupported in HastingsPrime)
+			
+			The relevant Toeplitz key registers are provided in RxOLE's
+			 instance of common parser module. These registers are separate
+			 from the Toeplitz keys used by ASE/FSE modules inside RxOLE.The
+			 actual value will be passed on from common parser module
+			 to RxOLE in one of the WHO_* TLVs.
+			<legal all>
+*/
+
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_OFFSET                                       0x0000000000000010
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_LSB                                          0
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_MSB                                          31
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_MASK                                         0x00000000ffffffff
+
+
+/* Description		USER_RSSI
+
+			RSSI for this user
+			<legal all>
+*/
+
+#define RX_MSDU_START_USER_RSSI_OFFSET                                              0x0000000000000010
+#define RX_MSDU_START_USER_RSSI_LSB                                                 32
+#define RX_MSDU_START_USER_RSSI_MSB                                                 39
+#define RX_MSDU_START_USER_RSSI_MASK                                                0x000000ff00000000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_MSDU_START_PKT_TYPE_OFFSET                                               0x0000000000000010
+#define RX_MSDU_START_PKT_TYPE_LSB                                                  40
+#define RX_MSDU_START_PKT_TYPE_MSB                                                  43
+#define RX_MSDU_START_PKT_TYPE_MASK                                                 0x00000f0000000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RX_MSDU_START_SGI_OFFSET                                                    0x0000000000000010
+#define RX_MSDU_START_SGI_LSB                                                       44
+#define RX_MSDU_START_SGI_MSB                                                       45
+#define RX_MSDU_START_SGI_MASK                                                      0x0000300000000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define RX_MSDU_START_RATE_MCS_OFFSET                                               0x0000000000000010
+#define RX_MSDU_START_RATE_MCS_LSB                                                  46
+#define RX_MSDU_START_RATE_MCS_MSB                                                  49
+#define RX_MSDU_START_RATE_MCS_MASK                                                 0x0003c00000000000
+
+
+/* Description		RECEIVE_BANDWIDTH
+
+			Full receive 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 RX_MSDU_START_RECEIVE_BANDWIDTH_OFFSET                                      0x0000000000000010
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_LSB                                         50
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_MSB                                         52
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_MASK                                        0x001c000000000000
+
+
+/* Description		RECEPTION_TYPE
+
+			Indicates what type of reception this is.
+			<enum 0     reception_type_SU > Basic SU reception (not 
+			part of OFDMA or MIMO)
+			<enum 1     reception_type_MU_MIMO > This is related to 
+			DL type of reception
+			<enum 2     reception_type_MU_OFDMA >  This is related to
+			 DL type of reception
+			<enum 3     reception_type_MU_OFDMA_MIMO >  This is related
+			 to DL type of reception
+			<enum 4     reception_type_UL_MU_MIMO > This is related 
+			to UL type of reception
+			<enum 5     reception_type_UL_MU_OFDMA >  This is related
+			 to UL type of reception
+			<enum 6     reception_type_UL_MU_OFDMA_MIMO >  This is related
+			 to UL type of reception
+			
+			<legal 0-6>
+*/
+
+#define RX_MSDU_START_RECEPTION_TYPE_OFFSET                                         0x0000000000000010
+#define RX_MSDU_START_RECEPTION_TYPE_LSB                                            53
+#define RX_MSDU_START_RECEPTION_TYPE_MSB                                            55
+#define RX_MSDU_START_RECEPTION_TYPE_MASK                                           0x00e0000000000000
+
+
+/* Description		MIMO_SS_BITMAP
+
+			Field only valid when Reception_type for the MPDU from this
+			 STA is some form of MIMO reception
+			
+			Bitmap, with each bit indicating if the related spatial 
+			stream is used for this STA
+			LSB related to SS 0
+			
+			0: spatial stream not used for this reception
+			1: spatial stream used for this reception
+			
+			<legal all>
+*/
+
+#define RX_MSDU_START_MIMO_SS_BITMAP_OFFSET                                         0x0000000000000010
+#define RX_MSDU_START_MIMO_SS_BITMAP_LSB                                            56
+#define RX_MSDU_START_MIMO_SS_BITMAP_MSB                                            63
+#define RX_MSDU_START_MIMO_SS_BITMAP_MASK                                           0xff00000000000000
+
+
+/* Description		PPDU_START_TIMESTAMP_31_0
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, lower 32 bits
+			<legal all>
+*/
+
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_OFFSET                              0x0000000000000018
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_LSB                                 0
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_MSB                                 31
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_MASK                                0x00000000ffffffff
+
+
+/* Description		PPDU_START_TIMESTAMP_63_32
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, upper 32 bits
+			<legal all>
+*/
+
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_OFFSET                             0x0000000000000018
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_LSB                                32
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_MSB                                63
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_MASK                               0xffffffff00000000
+
+
+/* Description		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.
+			<legal all>
+*/
+
+#define RX_MSDU_START_SW_PHY_META_DATA_OFFSET                                       0x0000000000000020
+#define RX_MSDU_START_SW_PHY_META_DATA_LSB                                          0
+#define RX_MSDU_START_SW_PHY_META_DATA_MSB                                          31
+#define RX_MSDU_START_SW_PHY_META_DATA_MASK                                         0x00000000ffffffff
+
+
+/* Description		VLAN_CTAG_CI
+
+			2 bytes of C-VLAN Tag Control Information from WHO_L2_LLC
+			
+*/
+
+#define RX_MSDU_START_VLAN_CTAG_CI_OFFSET                                           0x0000000000000020
+#define RX_MSDU_START_VLAN_CTAG_CI_LSB                                              32
+#define RX_MSDU_START_VLAN_CTAG_CI_MSB                                              47
+#define RX_MSDU_START_VLAN_CTAG_CI_MASK                                             0x0000ffff00000000
+
+
+/* Description		VLAN_STAG_CI
+
+			2 bytes of S-VLAN Tag Control Information from WHO_L2_LLC
+			 in case of double VLAN
+*/
+
+#define RX_MSDU_START_VLAN_STAG_CI_OFFSET                                           0x0000000000000020
+#define RX_MSDU_START_VLAN_STAG_CI_LSB                                              48
+#define RX_MSDU_START_VLAN_STAG_CI_MSB                                              63
+#define RX_MSDU_START_VLAN_STAG_CI_MASK                                             0xffff000000000000
+
+
+
+#endif   // RX_MSDU_START
diff --git a/hw/qca5332/rx_ppdu_ack_report.h b/hw/qca5332/rx_ppdu_ack_report.h
new file mode 100644
index 0000000..72d2139
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_ack_report.h
@@ -0,0 +1,191 @@
+
+/* 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 _RX_PPDU_ACK_REPORT_H_
+#define _RX_PPDU_ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "ack_report.h"
+#define NUM_OF_DWORDS_RX_PPDU_ACK_REPORT 2
+
+#define NUM_OF_QWORDS_RX_PPDU_ACK_REPORT 1
+
+
+struct rx_ppdu_ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   ack_report                                                ack_report_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             struct   ack_report                                                ack_report_details;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		ACK_REPORT_DETAILS
+
+			Info indicating why the received frame needed a SIFS response.
+			
+*/
+
+
+/* Description		SELFGEN_RESPONSE_REASON
+
+			Field that indicates why the received frame needs a response
+			 in SIFS time. The possible responses are listed in order.
+			
+			
+			<enum 0     CTS_frame> 
+			<enum 1     ACK_frame> 
+			<enum 2     BA_frame > 
+			<enum 3     Qboost_trigger> Qboost trigger received
+			<enum 4     PSPOLL_trigger> PSPOLL trigger received
+			<enum 5     UAPSD_trigger > Unscheduled APSD  trigger received
+			 
+			<enum 6     CBF_frame> the CBF frame needs to be send as
+			 a result of NDP or BRPOLL
+			<enum 7     ax_su_trigger> 11ax trigger received for this
+			 device
+			<enum 8     ax_wildcard_trigger> 11ax wildcardtrigger has
+			 been received 
+			<enum 9     ax_unassoc_wildcard_trigger> 11ax wildcard trigger
+			 for unassociated STAs has been received
+			<enum 12     eht_su_trigger> EHT R1 trigger received for
+			 this device
+			
+			<enum 10     MU_UL_response_to_response>
+			
+			<enum 11     Ranging_NDP_LMR_frames> Ranging NDP + LMR need
+			 to be sent in response to ranging NDPA + NDP
+			
+			<legal 0-12>
+*/
+
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_OFFSET        0x0000000000000000
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_LSB           0
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_MSB           3
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_MASK          0x000000000000000f
+
+
+/* Description		AX_TRIGGER_TYPE
+
+			Field Only valid when selfgen_response_reason is an 11ax
+			 related trigger
+			
+			The 11AX trigger type/ trigger number:
+			It identifies which trigger was received.
+			<enum 0 ax_trigger_basic>
+			<enum 1 ax_trigger_brpoll>
+			<enum 2 ax_trigger_mu_bar>
+			<enum 3 ax_trigger_mu_rts>
+			<enum 4 ax_trigger_buffer_size>
+			<enum 5 ax_trigger_gcr_mu_bar>
+			<enum 6 ax_trigger_BQRP> 
+			<enum 7 ax_trigger_NDP_fb_report_poll> 
+			<enum 8 ax_tb_ranging_trigger>
+			<enum 9 ax_trigger_reserved_9>
+			<enum 10 ax_trigger_reserved_10>
+			<enum 11 ax_trigger_reserved_11>
+			<enum 12 ax_trigger_reserved_12>
+			<enum 13 ax_trigger_reserved_13>
+			<enum 14 ax_trigger_reserved_14>
+			<enum 15 ax_trigger_reserved_15>
+			
+			<legal all>
+*/
+
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_AX_TRIGGER_TYPE_OFFSET                0x0000000000000000
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_AX_TRIGGER_TYPE_LSB                   4
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_AX_TRIGGER_TYPE_MSB                   7
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_AX_TRIGGER_TYPE_MASK                  0x00000000000000f0
+
+
+/* Description		SR_PPDU
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			Indicates if the received frame was sent using SRP as indicated
+			 by the 'SR PPDU' bit in the 'CAS Control' in the 'HE A-Control' 
+			in one of the MPDUs received
+			<legal all>
+*/
+
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SR_PPDU_OFFSET                        0x0000000000000000
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SR_PPDU_LSB                           8
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SR_PPDU_MSB                           8
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_SR_PPDU_MASK                          0x0000000000000100
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_RESERVED_OFFSET                       0x0000000000000000
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_RESERVED_LSB                          9
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_RESERVED_MSB                          15
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_RESERVED_MASK                         0x000000000000fe00
+
+
+/* Description		FRAME_CONTROL
+
+			Field not valid when selfgen_response_reason is MU_UL_response_to_response
+			
+			
+			For SU receptions:
+			frame control field of the received frame
+			
+			In 11ah Mode of Operation, for non-NDP frames the BW information
+			 is extracted from Frame Control fields [11:8].
+			
+			Decode is as follows 
+			
+			Bits[11] - Dynamic/Static 
+			Bits[10:8] - Channel BW
+*/
+
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_FRAME_CONTROL_OFFSET                  0x0000000000000000
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_FRAME_CONTROL_LSB                     16
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_FRAME_CONTROL_MSB                     31
+#define RX_PPDU_ACK_REPORT_ACK_REPORT_DETAILS_FRAME_CONTROL_MASK                    0x00000000ffff0000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_PPDU_ACK_REPORT_TLV64_PADDING_OFFSET                                     0x0000000000000000
+#define RX_PPDU_ACK_REPORT_TLV64_PADDING_LSB                                        32
+#define RX_PPDU_ACK_REPORT_TLV64_PADDING_MSB                                        63
+#define RX_PPDU_ACK_REPORT_TLV64_PADDING_MASK                                       0xffffffff00000000
+
+
+
+#endif   // RX_PPDU_ACK_REPORT
diff --git a/hw/qca5332/rx_ppdu_end_user_stats.h b/hw/qca5332/rx_ppdu_end_user_stats.h
new file mode 100644
index 0000000..3a67e78
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_end_user_stats.h
@@ -0,0 +1,1851 @@
+
+/* 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 _RX_PPDU_END_USER_STATS_H_
+#define _RX_PPDU_END_USER_STATS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_rxpcu_classification_overview.h"
+#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 30
+
+#define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS 15
+
+
+struct rx_ppdu_end_user_stats {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t sta_full_aid                                            : 13, // [12:0]
+                      mcs                                                     :  4, // [16:13]
+                      nss                                                     :  3, // [19:17]
+                      expected_response_ack_or_ba                             :  1, // [20:20]
+                      reserved_1a                                             : 11; // [31:21]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      mpdu_cnt_fcs_err                                        : 11, // [26:16]
+                      sw2rxdma0_buf_source_used                               :  1, // [27:27]
+                      fw2rxdma_pmac0_buf_source_used                          :  1, // [28:28]
+                      sw2rxdma1_buf_source_used                               :  1, // [29:29]
+                      sw2rxdma_exception_buf_source_used                      :  1, // [30:30]
+                      fw2rxdma_pmac1_buf_source_used                          :  1; // [31:31]
+             uint32_t mpdu_cnt_fcs_ok                                         : 11, // [10:0]
+                      frame_control_info_valid                                :  1, // [11:11]
+                      qos_control_info_valid                                  :  1, // [12:12]
+                      ht_control_info_valid                                   :  1, // [13:13]
+                      data_sequence_control_info_valid                        :  1, // [14:14]
+                      ht_control_info_null_valid                              :  1, // [15:15]
+                      rxdma2fw_pmac1_ring_used                                :  1, // [16:16]
+                      rxdma2reo_ring_used                                     :  1, // [17:17]
+                      rxdma2fw_pmac0_ring_used                                :  1, // [18:18]
+                      rxdma2sw_ring_used                                      :  1, // [19:19]
+                      rxdma_release_ring_used                                 :  1, // [20:20]
+                      ht_control_field_pkt_type                               :  4, // [24:21]
+                      rxdma2reo_remote0_ring_used                             :  1, // [25:25]
+                      rxdma2reo_remote1_ring_used                             :  1, // [26:26]
+                      reserved_3b                                             :  5; // [31:27]
+             uint32_t ast_index                                               : 16, // [15:0]
+                      frame_control_field                                     : 16; // [31:16]
+             uint32_t first_data_seq_ctrl                                     : 16, // [15:0]
+                      qos_control_field                                       : 16; // [31:16]
+             uint32_t ht_control_field                                        : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_31_0                                      : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_63_32                                     : 32; // [31:0]
+             uint32_t udp_msdu_count                                          : 16, // [15:0]
+                      tcp_msdu_count                                          : 16; // [31:16]
+             uint32_t other_msdu_count                                        : 16, // [15:0]
+                      tcp_ack_msdu_count                                      : 16; // [31:16]
+             uint32_t sw_response_reference_ptr                               : 32; // [31:0]
+             uint32_t received_qos_data_tid_bitmap                            : 16, // [15:0]
+                      received_qos_data_tid_eosp_bitmap                       : 16; // [31:16]
+             uint32_t qosctrl_15_8_tid0                                       :  8, // [7:0]
+                      qosctrl_15_8_tid1                                       :  8, // [15:8]
+                      qosctrl_15_8_tid2                                       :  8, // [23:16]
+                      qosctrl_15_8_tid3                                       :  8; // [31:24]
+             uint32_t qosctrl_15_8_tid4                                       :  8, // [7:0]
+                      qosctrl_15_8_tid5                                       :  8, // [15:8]
+                      qosctrl_15_8_tid6                                       :  8, // [23:16]
+                      qosctrl_15_8_tid7                                       :  8; // [31:24]
+             uint32_t qosctrl_15_8_tid8                                       :  8, // [7:0]
+                      qosctrl_15_8_tid9                                       :  8, // [15:8]
+                      qosctrl_15_8_tid10                                      :  8, // [23:16]
+                      qosctrl_15_8_tid11                                      :  8; // [31:24]
+             uint32_t qosctrl_15_8_tid12                                      :  8, // [7:0]
+                      qosctrl_15_8_tid13                                      :  8, // [15:8]
+                      qosctrl_15_8_tid14                                      :  8, // [23:16]
+                      qosctrl_15_8_tid15                                      :  8; // [31:24]
+             uint32_t mpdu_ok_byte_count                                      : 25, // [24:0]
+                      ampdu_delim_ok_count_6_0                                :  7; // [31:25]
+             uint32_t ampdu_delim_err_count                                   : 25, // [24:0]
+                      ampdu_delim_ok_count_13_7                               :  7; // [31:25]
+             uint32_t mpdu_err_byte_count                                     : 25, // [24:0]
+                      ampdu_delim_ok_count_20_14                              :  7; // [31:25]
+             uint32_t non_consecutive_delimiter_err                           : 16, // [15:0]
+                      retried_msdu_count                                      : 16; // [31:16]
+             uint32_t ht_control_null_field                                   : 32; // [31:0]
+             uint32_t sw_response_reference_ptr_ext                           : 32; // [31:0]
+             uint32_t corrupted_due_to_fifo_delay                             :  1, // [0:0]
+                      frame_control_info_null_valid                           :  1, // [1:1]
+                      frame_control_field_null                                : 16, // [17:2]
+                      retried_mpdu_count                                      : 11, // [28:18]
+                      reserved_23a                                            :  3; // [31:29]
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2, // [1:0]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      reserved_24a                                            :  4, // [12:9]
+                      frame_control_info_mgmt_ctrl_valid                      :  1, // [13:13]
+                      mac_addr_ad2_valid                                      :  1, // [14:14]
+                      mcast_bcast                                             :  1, // [15:15]
+                      frame_control_field_mgmt_ctrl                           : 16; // [31:16]
+             uint32_t user_ppdu_len                                           : 24, // [23:0]
+                      reserved_25a                                            :  8; // [31:24]
+             uint32_t mac_addr_ad2_31_0                                       : 32; // [31:0]
+             uint32_t mac_addr_ad2_47_32                                      : 16, // [15:0]
+                      amsdu_msdu_count                                        : 16; // [31:16]
+             uint32_t non_amsdu_msdu_count                                    : 16, // [15:0]
+                      ucast_msdu_count                                        : 16; // [31:16]
+             uint32_t mcast_msdu_count                                        : 16, // [15:0]
+                      mcast_bcast_msdu_count                                  : 16; // [31:16]
+#else
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t reserved_1a                                             : 11, // [31:21]
+                      expected_response_ack_or_ba                             :  1, // [20:20]
+                      nss                                                     :  3, // [19:17]
+                      mcs                                                     :  4, // [16:13]
+                      sta_full_aid                                            : 13; // [12:0]
+             uint32_t fw2rxdma_pmac1_buf_source_used                          :  1, // [31:31]
+                      sw2rxdma_exception_buf_source_used                      :  1, // [30:30]
+                      sw2rxdma1_buf_source_used                               :  1, // [29:29]
+                      fw2rxdma_pmac0_buf_source_used                          :  1, // [28:28]
+                      sw2rxdma0_buf_source_used                               :  1, // [27:27]
+                      mpdu_cnt_fcs_err                                        : 11, // [26:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t reserved_3b                                             :  5, // [31:27]
+                      rxdma2reo_remote1_ring_used                             :  1, // [26:26]
+                      rxdma2reo_remote0_ring_used                             :  1, // [25:25]
+                      ht_control_field_pkt_type                               :  4, // [24:21]
+                      rxdma_release_ring_used                                 :  1, // [20:20]
+                      rxdma2sw_ring_used                                      :  1, // [19:19]
+                      rxdma2fw_pmac0_ring_used                                :  1, // [18:18]
+                      rxdma2reo_ring_used                                     :  1, // [17:17]
+                      rxdma2fw_pmac1_ring_used                                :  1, // [16:16]
+                      ht_control_info_null_valid                              :  1, // [15:15]
+                      data_sequence_control_info_valid                        :  1, // [14:14]
+                      ht_control_info_valid                                   :  1, // [13:13]
+                      qos_control_info_valid                                  :  1, // [12:12]
+                      frame_control_info_valid                                :  1, // [11:11]
+                      mpdu_cnt_fcs_ok                                         : 11; // [10:0]
+             uint32_t frame_control_field                                     : 16, // [31:16]
+                      ast_index                                               : 16; // [15:0]
+             uint32_t qos_control_field                                       : 16, // [31:16]
+                      first_data_seq_ctrl                                     : 16; // [15:0]
+             uint32_t ht_control_field                                        : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_31_0                                      : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_63_32                                     : 32; // [31:0]
+             uint32_t tcp_msdu_count                                          : 16, // [31:16]
+                      udp_msdu_count                                          : 16; // [15:0]
+             uint32_t tcp_ack_msdu_count                                      : 16, // [31:16]
+                      other_msdu_count                                        : 16; // [15:0]
+             uint32_t sw_response_reference_ptr                               : 32; // [31:0]
+             uint32_t received_qos_data_tid_eosp_bitmap                       : 16, // [31:16]
+                      received_qos_data_tid_bitmap                            : 16; // [15:0]
+             uint32_t qosctrl_15_8_tid3                                       :  8, // [31:24]
+                      qosctrl_15_8_tid2                                       :  8, // [23:16]
+                      qosctrl_15_8_tid1                                       :  8, // [15:8]
+                      qosctrl_15_8_tid0                                       :  8; // [7:0]
+             uint32_t qosctrl_15_8_tid7                                       :  8, // [31:24]
+                      qosctrl_15_8_tid6                                       :  8, // [23:16]
+                      qosctrl_15_8_tid5                                       :  8, // [15:8]
+                      qosctrl_15_8_tid4                                       :  8; // [7:0]
+             uint32_t qosctrl_15_8_tid11                                      :  8, // [31:24]
+                      qosctrl_15_8_tid10                                      :  8, // [23:16]
+                      qosctrl_15_8_tid9                                       :  8, // [15:8]
+                      qosctrl_15_8_tid8                                       :  8; // [7:0]
+             uint32_t qosctrl_15_8_tid15                                      :  8, // [31:24]
+                      qosctrl_15_8_tid14                                      :  8, // [23:16]
+                      qosctrl_15_8_tid13                                      :  8, // [15:8]
+                      qosctrl_15_8_tid12                                      :  8; // [7:0]
+             uint32_t ampdu_delim_ok_count_6_0                                :  7, // [31:25]
+                      mpdu_ok_byte_count                                      : 25; // [24:0]
+             uint32_t ampdu_delim_ok_count_13_7                               :  7, // [31:25]
+                      ampdu_delim_err_count                                   : 25; // [24:0]
+             uint32_t ampdu_delim_ok_count_20_14                              :  7, // [31:25]
+                      mpdu_err_byte_count                                     : 25; // [24:0]
+             uint32_t retried_msdu_count                                      : 16, // [31:16]
+                      non_consecutive_delimiter_err                           : 16; // [15:0]
+             uint32_t ht_control_null_field                                   : 32; // [31:0]
+             uint32_t sw_response_reference_ptr_ext                           : 32; // [31:0]
+             uint32_t reserved_23a                                            :  3, // [31:29]
+                      retried_mpdu_count                                      : 11, // [28:18]
+                      frame_control_field_null                                : 16, // [17:2]
+                      frame_control_info_null_valid                           :  1, // [1:1]
+                      corrupted_due_to_fifo_delay                             :  1; // [0:0]
+             uint32_t frame_control_field_mgmt_ctrl                           : 16, // [31:16]
+                      mcast_bcast                                             :  1, // [15:15]
+                      mac_addr_ad2_valid                                      :  1, // [14:14]
+                      frame_control_info_mgmt_ctrl_valid                      :  1, // [13:13]
+                      reserved_24a                                            :  4, // [12:9]
+                      sw_frame_group_id                                       :  7, // [8:2]
+                      rxpcu_mpdu_filter_in_category                           :  2; // [1:0]
+             uint32_t reserved_25a                                            :  8, // [31:24]
+                      user_ppdu_len                                           : 24; // [23:0]
+             uint32_t mac_addr_ad2_31_0                                       : 32; // [31:0]
+             uint32_t amsdu_msdu_count                                        : 16, // [31:16]
+                      mac_addr_ad2_47_32                                      : 16; // [15:0]
+             uint32_t ucast_msdu_count                                        : 16, // [31:16]
+                      non_amsdu_msdu_count                                    : 16; // [15:0]
+             uint32_t mcast_bcast_msdu_count                                  : 16, // [31:16]
+                      mcast_msdu_count                                        : 16; // [15:0]
+#endif
+};
+
+
+/* Description		RXPCU_CLASSIFICATION_DETAILS
+
+			Details related to what RXPCU classification types of MPDUs
+			 have been received
+*/
+
+
+/* Description		FILTER_PASS_MPDUS
+
+			When set, at least one Filter Pass MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB   0
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB   0
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK  0x0000000000000001
+
+
+/* Description		FILTER_PASS_MPDUS_FCS_OK
+
+			When set, at least one Filter Pass MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
+
+
+/* Description		MONITOR_DIRECT_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
+
+
+/* Description		MONITOR_DIRECT_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
+
+
+/* Description		MONITOR_OTHER_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
+
+
+/* Description		MONITOR_OTHER_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
+
+
+/* Description		PHYRX_ABORT_RECEIVED
+
+			When set, PPDU reception was aborted by the PHY
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received. FCS might or might not have been passing.
+			
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET       0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB          9
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB          15
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK         0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET      0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB         16
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB         31
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK        0x00000000ffff0000
+
+
+/* Description		STA_FULL_AID
+
+			Consumer: FW
+			Producer: RXPCU
+			
+			The full AID of this station. 
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_OFFSET                                  0x0000000000000000
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_LSB                                     32
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MSB                                     44
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MASK                                    0x00001fff00000000
+
+
+/* Description		MCS
+
+			MCS of the received frame
+			
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MCS_OFFSET                                           0x0000000000000000
+#define RX_PPDU_END_USER_STATS_MCS_LSB                                              45
+#define RX_PPDU_END_USER_STATS_MCS_MSB                                              48
+#define RX_PPDU_END_USER_STATS_MCS_MASK                                             0x0001e00000000000
+
+
+/* Description		NSS
+
+			Number of spatial streams.
+			
+			NOTE: RXPCU derives this from the 'Mimo_ss_bitmap'
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define RX_PPDU_END_USER_STATS_NSS_OFFSET                                           0x0000000000000000
+#define RX_PPDU_END_USER_STATS_NSS_LSB                                              49
+#define RX_PPDU_END_USER_STATS_NSS_MSB                                              51
+#define RX_PPDU_END_USER_STATS_NSS_MASK                                             0x000e000000000000
+
+
+/* Description		EXPECTED_RESPONSE_ACK_OR_BA
+
+			When set, it indicates an Ack or BA matching 'EXPECTED_RESPONSE' 
+			from TXPCU
+*/
+
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_OFFSET                   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_LSB                      52
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MSB                      52
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MASK                     0x0010000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_OFFSET                                   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_LSB                                      53
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_MSB                                      63
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_MASK                                     0xffe0000000000000
+
+
+/* Description		SW_PEER_ID
+
+			This field indicates a unique peer identifier, set from 
+			the field 'sw_peer_id' in the AST entry corresponding to
+			 this MPDU. It is provided by RXPCU.
+			A value of 0xFFFF indicates no AST entry was found or no
+			 AST search was performed.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_OFFSET                                    0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_LSB                                       0
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MSB                                       15
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MASK                                      0x000000000000ffff
+
+
+/* Description		MPDU_CNT_FCS_ERR
+
+			The number of MPDUs received from this STA in this PPDU 
+			with FCS errors
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_OFFSET                              0x0000000000000008
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_LSB                                 16
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MSB                                 26
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MASK                                0x0000000007ff0000
+
+
+/* Description		SW2RXDMA0_BUF_SOURCE_USED
+
+			Field filled in by RXDMA
+			
+			When set, RXDMA has used the sw2rxdma0 buffer ring as source
+			 for at least one of the frames in this PPDU.
+*/
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_LSB                        27
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MSB                        27
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MASK                       0x0000000008000000
+
+
+/* Description		FW2RXDMA_PMAC0_BUF_SOURCE_USED
+
+			Field filled in by RXDMA
+			
+			When set, RXDMA has used the fw2rxdma buffer ring for PMAC0
+			 as source for at least one of the frames in this PPDU.
+*/
+
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_OFFSET                0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_LSB                   28
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MSB                   28
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MASK                  0x0000000010000000
+
+
+/* Description		SW2RXDMA1_BUF_SOURCE_USED
+
+			Field filled in by RXDMA
+			
+			When set, RXDMA has used the sw2rxdma1 buffer ring as source
+			 for at least one of the frames in this PPDU.
+*/
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_LSB                        29
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MSB                        29
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MASK                       0x0000000020000000
+
+
+/* Description		SW2RXDMA_EXCEPTION_BUF_SOURCE_USED
+
+			Field filled in by RXDMA
+			
+			When set, RXDMA has used the sw2rxdma_exception buffer ring
+			 as source for at least one of the frames in this PPDU.
+*/
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_OFFSET            0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_LSB               30
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MSB               30
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MASK              0x0000000040000000
+
+
+/* Description		FW2RXDMA_PMAC1_BUF_SOURCE_USED
+
+			Field filled in by RXDMA
+			
+			When set, RXDMA has used the fw2rxdma buffer ring for PMAC1
+			 as source for at least one of the frames in this PPDU.
+*/
+
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_OFFSET                0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_LSB                   31
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MSB                   31
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MASK                  0x0000000080000000
+
+
+/* Description		MPDU_CNT_FCS_OK
+
+			The number of MPDUs received from this STA in this PPDU 
+			with correct FCS
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_OFFSET                               0x0000000000000008
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_LSB                                  32
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MSB                                  42
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MASK                                 0x000007ff00000000
+
+
+/* Description		FRAME_CONTROL_INFO_VALID
+
+			When set, the frame_control_info field contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_LSB                         43
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MSB                         43
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MASK                        0x0000080000000000
+
+
+/* Description		QOS_CONTROL_INFO_VALID
+
+			When set, the QoS_control_info field contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_OFFSET                        0x0000000000000008
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_LSB                           44
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MSB                           44
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MASK                          0x0000100000000000
+
+
+/* Description		HT_CONTROL_INFO_VALID
+
+			When set, the HT_control_field contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_OFFSET                         0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_LSB                            45
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MSB                            45
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MASK                           0x0000200000000000
+
+
+/* Description		DATA_SEQUENCE_CONTROL_INFO_VALID
+
+			When set, the First_data_seq_ctrl field contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET              0x0000000000000008
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB                 46
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MSB                 46
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK                0x0000400000000000
+
+
+/* Description		HT_CONTROL_INFO_NULL_VALID
+
+			When set, the HT_control_NULL_field contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_OFFSET                    0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_LSB                       47
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MSB                       47
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MASK                      0x0000800000000000
+
+
+/* Description		RXDMA2FW_PMAC1_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_LSB                         48
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MSB                         48
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MASK                        0x0001000000000000
+
+
+/* Description		RXDMA2REO_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_OFFSET                           0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_LSB                              49
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MSB                              49
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MASK                             0x0002000000000000
+
+
+/* Description		RXDMA2FW_PMAC0_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_LSB                         50
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MSB                         50
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MASK                        0x0004000000000000
+
+
+/* Description		RXDMA2SW_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_OFFSET                            0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_LSB                               51
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MSB                               51
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MASK                              0x0008000000000000
+
+
+/* Description		RXDMA_RELEASE_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_OFFSET                       0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_LSB                          52
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MSB                          52
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MASK                         0x0010000000000000
+
+
+/* Description		HT_CONTROL_FIELD_PKT_TYPE
+
+			Field only valid when HT_control_info_valid or HT_control_info_NULL_valid
+			    is set.
+			
+			Indicates what the PHY receive type was for receiving this
+			 frame. Can help determine if the HT_CONTROL field shall
+			 be interpreted as HT/VHT or HE.
+			
+			NOTE: later on in the 11ax IEEE spec a bit within the HT
+			 control field was introduced that explicitly indicated 
+			how to interpret the HT control field.... As HT, VHT, or
+			 HE.
+			
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_LSB                        53
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MSB                        56
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MASK                       0x01e0000000000000
+
+
+/* Description		RXDMA2REO_REMOTE0_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_OFFSET                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_LSB                      57
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MSB                      57
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MASK                     0x0200000000000000
+
+
+/* Description		RXDMA2REO_REMOTE1_RING_USED
+
+			Field filled in by RXDMA
+			
+			Set when at least one frame during this PPDU got pushed 
+			to this ring by RXDMA
+*/
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_OFFSET                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_LSB                      58
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MSB                      58
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MASK                     0x0400000000000000
+
+
+/* Description		RESERVED_3B
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_OFFSET                                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_LSB                                      59
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_MSB                                      63
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_MASK                                     0xf800000000000000
+
+
+/* Description		AST_INDEX
+
+			This field indicates the index of the AST entry corresponding
+			 to this MPDU. It is provided by the GSE module instantiated
+			 in RXPCU.
+			A value of 0xFFFF indicates an invalid AST index, meaning
+			 that No AST entry was found or NO AST search was performed
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AST_INDEX_OFFSET                                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_AST_INDEX_LSB                                        0
+#define RX_PPDU_END_USER_STATS_AST_INDEX_MSB                                        15
+#define RX_PPDU_END_USER_STATS_AST_INDEX_MASK                                       0x000000000000ffff
+
+
+/* Description		FRAME_CONTROL_FIELD
+
+			Field only valid when Frame_control_info_valid is set.
+			
+			Last successfully received Frame_control field of data frame
+			 (excluding Data NULL/ QoS Null) for this user
+			Mainly used to track the PM state of the transmitted device
+			
+			
+			NOTE: only data frame info is needed, as control and management
+			 frames are already routed to the FW.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_OFFSET                           0x0000000000000010
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_LSB                              16
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MSB                              31
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MASK                             0x00000000ffff0000
+
+
+/* Description		FIRST_DATA_SEQ_CTRL
+
+			Field only valid when Data_sequence_control_info_valid is
+			 set.
+			
+			Sequence control field of the first data frame (excluding
+			 Data NULL or QoS Data null) received for this user with
+			 correct FCS
+			
+			NOTE: only data frame info is needed, as control and management
+			 frames are already routed to the FW.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_OFFSET                           0x0000000000000010
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_LSB                              32
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MSB                              47
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MASK                             0x0000ffff00000000
+
+
+/* Description		QOS_CONTROL_FIELD
+
+			Field only valid when QoS_control_info_valid is set.
+			
+			Last successfully received QoS_control field of data frame
+			 (excluding Data NULL/ QoS Null) for this user
+			
+			Note that in case of multi TID, this field can only reflect
+			 the last properly received MPDU, and thus can not indicate
+			 all potentially different TIDs that had been received earlier. 
+			
+			
+			There are however per TID fields, that will contain among
+			 other things all buffer status info: See
+			QoSCtrl_15_8_tid???
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_OFFSET                             0x0000000000000010
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_LSB                                48
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MSB                                63
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MASK                               0xffff000000000000
+
+
+/* Description		HT_CONTROL_FIELD
+
+			Field only valid when HT_control_info_valid is set.
+			
+			Last successfully received HT_CONTROL/VHT_CONTROL/HE_CONTROL
+			  field of data frames, excluding QoS Null frames for this
+			 user. 
+			
+			NOTE: HT control fields  from QoS Null frames are captured
+			 in field HT_control_NULL_field
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_OFFSET                              0x0000000000000018
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_LSB                                 0
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MSB                                 31
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MASK                                0x00000000ffffffff
+
+
+/* Description		FCS_OK_BITMAP_31_0
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_OFFSET                            0x0000000000000018
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_LSB                               32
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MSB                               63
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MASK                              0xffffffff00000000
+
+
+/* Description		FCS_OK_BITMAP_63_32
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			
+			NOTE: for users 0, 1, 2 and 3, additional bitmap info (up
+			 to 256 bitmap window) is provided in RX_PPDU_END_USER_STATS_EXT
+			 TLV
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_OFFSET                           0x0000000000000020
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_LSB                              0
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MSB                              31
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MASK                             0x00000000ffffffff
+
+
+/* Description		UDP_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error, 
+			that contain UDP frames.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_OFFSET                                0x0000000000000020
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_LSB                                   32
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MSB                                   47
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MASK                                  0x0000ffff00000000
+
+
+/* Description		TCP_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error, 
+			that contain TCP frames.
+			
+			(Note: This does NOT include TCP-ACK)
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_OFFSET                                0x0000000000000020
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_LSB                                   48
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MSB                                   63
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MASK                                  0xffff000000000000
+
+
+/* Description		OTHER_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error, 
+			that contain neither UDP or TCP frames.
+			
+			Includes Management and control frames.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_OFFSET                              0x0000000000000028
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_LSB                                 0
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MSB                                 15
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MASK                                0x000000000000ffff
+
+
+/* Description		TCP_ACK_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error, 
+			that contain TCP ack frames.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_OFFSET                            0x0000000000000028
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_LSB                               16
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MSB                               31
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MASK                              0x00000000ffff0000
+
+
+/* Description		SW_RESPONSE_REFERENCE_PTR
+
+			Pointer that SW uses to refer back to an expected response
+			 reception. Used for Rate adaptation purposes.
+			When a reception occurs that is not tied to an expected 
+			response, this field is set to 0x0.
+			
+			Note: further on in this TLV there is also the field: Sw_response_reference_ptr_ext.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET                     0x0000000000000028
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_LSB                        32
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MSB                        63
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MASK                       0xffffffff00000000
+
+
+/* Description		RECEIVED_QOS_DATA_TID_BITMAP
+
+			Whenever a frame is received that contains a QoS control
+			 field (that includes QoS Data and/or QoS Null), the bit
+			 in this field that corresponds to the received TID shall
+			 be set.
+			...Bitmap[0] = TID0
+			...Bitmap[1] = TID1
+			Etc.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET                  0x0000000000000030
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_LSB                     0
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MSB                     15
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MASK                    0x000000000000ffff
+
+
+/* Description		RECEIVED_QOS_DATA_TID_EOSP_BITMAP
+
+			Field initialized to 0
+			For every QoS Data frame that is correctly received, the
+			 EOSP bit of that frame is copied over into the corresponding
+			 TID related field.
+			Note that this implies that the bits here represent the 
+			EOSP bit status for each TID of the last MPDU received for
+			 that TID.
+			
+			received TID shall be set.
+			...eosp_bitmap[0] = eosp of TID0
+			...eosp_bitmap[1] = eosp of TID1
+			Etc.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB                16
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MSB                31
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK               0x00000000ffff0000
+
+
+/* Description		QOSCTRL_15_8_TID0
+
+			Field only valid when Received_qos_data_tid_bitmap[0] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 0
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_LSB                                32
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MSB                                39
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MASK                               0x000000ff00000000
+
+
+/* Description		QOSCTRL_15_8_TID1
+
+			Field only valid when Received_qos_data_tid_bitmap[1] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 1
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_LSB                                40
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MSB                                47
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MASK                               0x0000ff0000000000
+
+
+/* Description		QOSCTRL_15_8_TID2
+
+			Field only valid when Received_qos_data_tid_bitmap[2] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 2
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_LSB                                48
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MSB                                55
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MASK                               0x00ff000000000000
+
+
+/* Description		QOSCTRL_15_8_TID3
+
+			Field only valid when Received_qos_data_tid_bitmap[3] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 3
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_LSB                                56
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MSB                                63
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MASK                               0xff00000000000000
+
+
+/* Description		QOSCTRL_15_8_TID4
+
+			Field only valid when Received_qos_data_tid_bitmap[4] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 4
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_LSB                                0
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MSB                                7
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MASK                               0x00000000000000ff
+
+
+/* Description		QOSCTRL_15_8_TID5
+
+			Field only valid when Received_qos_data_tid_bitmap[5] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 5
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_LSB                                8
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MSB                                15
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MASK                               0x000000000000ff00
+
+
+/* Description		QOSCTRL_15_8_TID6
+
+			Field only valid when Received_qos_data_tid_bitmap[6] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 6
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_LSB                                16
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MSB                                23
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MASK                               0x0000000000ff0000
+
+
+/* Description		QOSCTRL_15_8_TID7
+
+			Field only valid when Received_qos_data_tid_bitmap[7] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 7
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_LSB                                24
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MSB                                31
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MASK                               0x00000000ff000000
+
+
+/* Description		QOSCTRL_15_8_TID8
+
+			Field only valid when Received_qos_data_tid_bitmap[8] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 8
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_LSB                                32
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MSB                                39
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MASK                               0x000000ff00000000
+
+
+/* Description		QOSCTRL_15_8_TID9
+
+			Field only valid when Received_qos_data_tid_bitmap[9] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 9
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_LSB                                40
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MSB                                47
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MASK                               0x0000ff0000000000
+
+
+/* Description		QOSCTRL_15_8_TID10
+
+			Field only valid when Received_qos_data_tid_bitmap[10] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 10
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_OFFSET                            0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_LSB                               48
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MSB                               55
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MASK                              0x00ff000000000000
+
+
+/* Description		QOSCTRL_15_8_TID11
+
+			Field only valid when Received_qos_data_tid_bitmap[11] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 11
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_OFFSET                            0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_LSB                               56
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MSB                               63
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MASK                              0xff00000000000000
+
+
+/* Description		QOSCTRL_15_8_TID12
+
+			Field only valid when Received_qos_data_tid_bitmap[12] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 12
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_LSB                               0
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MSB                               7
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MASK                              0x00000000000000ff
+
+
+/* Description		QOSCTRL_15_8_TID13
+
+			Field only valid when Received_qos_data_tid_bitmap[13] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 13
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_LSB                               8
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MSB                               15
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MASK                              0x000000000000ff00
+
+
+/* Description		QOSCTRL_15_8_TID14
+
+			Field only valid when Received_qos_data_tid_bitmap[14] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 14
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_LSB                               16
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MSB                               23
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MASK                              0x0000000000ff0000
+
+
+/* Description		QOSCTRL_15_8_TID15
+
+			Field only valid when Received_qos_data_tid_bitmap[15] is
+			 set
+			
+			QoS control field bits 15-8 of the last properly received
+			 MPDU with a QoS control field embedded, with  TID == 15
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_LSB                               24
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MSB                               31
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MASK                              0x00000000ff000000
+
+
+/* Description		MPDU_OK_BYTE_COUNT
+
+			The number of bytes received within an MPDU for this user
+			 with correct FCS. This includes the FCS field
+			
+			NOTE:
+			The sum of the four fields.....
+			Mpdu_ok_byte_count +
+			mpdu_err_byte_count +
+			(Ampdu_delim_ok_count x 4) + (Ampdu_delim_err_count x 4)
+			
+			.....is the total number of bytes that were received for
+			 this user from the PHY.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_LSB                               32
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MSB                               56
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MASK                              0x01ffffff00000000
+
+
+/* Description		AMPDU_DELIM_OK_COUNT_6_0
+
+			Number of AMPDU delimiter received with correct structure
+			
+			LSB 7 bits from this counter
+			
+			Note that this is a delimiter count and not byte count. 
+			To get to the number of bytes occupied by these delimiters, 
+			multiply this number by 4
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_OFFSET                      0x0000000000000040
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_LSB                         57
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MSB                         63
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MASK                        0xfe00000000000000
+
+
+/* Description		AMPDU_DELIM_ERR_COUNT
+
+			The number of MPDU delimiter errors counted for this user.
+			
+			
+			Note that this is a delimiter count and not byte count. 
+			To get to the number of bytes occupied by these delimiters, 
+			multiply this number by 4
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_OFFSET                         0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_LSB                            0
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MSB                            24
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MASK                           0x0000000001ffffff
+
+
+/* Description		AMPDU_DELIM_OK_COUNT_13_7
+
+			Number of AMPDU delimiters received with correct structure
+			
+			Bits 13-7 from this counter
+			
+			Note that this is a delimiter count and not byte count. 
+			To get to the number of bytes occupied by these delimiters, 
+			multiply this number by 4
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_OFFSET                     0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_LSB                        25
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MSB                        31
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MASK                       0x00000000fe000000
+
+
+/* Description		MPDU_ERR_BYTE_COUNT
+
+			The number of bytes belonging to MPDUs with an FCS error. 
+			This includes the FCS field.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_OFFSET                           0x0000000000000048
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_LSB                              32
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MSB                              56
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MASK                             0x01ffffff00000000
+
+
+/* Description		AMPDU_DELIM_OK_COUNT_20_14
+
+			Number of AMPDU delimiters received with correct structure
+			
+			Bits 20-14 from this counter
+			
+			Note that this is a delimiter count and not byte count. 
+			To get to the number of bytes occupied by these delimiters, 
+			multiply this number by 4
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_OFFSET                    0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_LSB                       57
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MSB                       63
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MASK                      0xfe00000000000000
+
+
+/* Description		NON_CONSECUTIVE_DELIMITER_ERR
+
+			The number of times an MPDU delimiter error is detected 
+			that is not immediately preceded by another MPDU delimiter
+			 also with FCS error.
+			
+			The counter saturates at 0xFFFF
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET                 0x0000000000000050
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_LSB                    0
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MSB                    15
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MASK                   0x000000000000ffff
+
+
+/* Description		RETRIED_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error, 
+			that have the retry bit set.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_OFFSET                            0x0000000000000050
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_LSB                               16
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MSB                               31
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MASK                              0x00000000ffff0000
+
+
+/* Description		HT_CONTROL_NULL_FIELD
+
+			Field only valid when HT_control_info_NULL_valid is set.
+			
+			
+			Last successfully received HT_CONTROL/VHT_CONTROL/HE_CONTROL
+			  field from QoS Null frame for this user. 
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_OFFSET                         0x0000000000000050
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_LSB                            32
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MSB                            63
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MASK                           0xffffffff00000000
+
+
+/* Description		SW_RESPONSE_REFERENCE_PTR_EXT
+
+			Extended Pointer info that SW uses to refer back to an expected
+			 response transmission. Used for Rate adaptation purposes.
+			
+			When a reception occurs that is not tied to an expected 
+			response, this field is set to 0x0.
+			
+			Note: earlier on in this TLV there is also the field: Sw_response_reference_ptr.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET                 0x0000000000000058
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_LSB                    0
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MSB                    31
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MASK                   0x00000000ffffffff
+
+
+/* Description		CORRUPTED_DUE_TO_FIFO_DELAY
+
+			Set if Rx PCU avoided a hang due to SFM delays by writing
+			 a corrupted 'RX_PPDU_END_USER_STATS*' and/or 'RX_PPDU_END.'
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET                   0x0000000000000058
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                      32
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                      32
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                     0x0000000100000000
+
+
+/* Description		FRAME_CONTROL_INFO_NULL_VALID
+
+			When set, Frame_control_field_null contains valid information
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_OFFSET                 0x0000000000000058
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_LSB                    33
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MSB                    33
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MASK                   0x0000000200000000
+
+
+/* Description		FRAME_CONTROL_FIELD_NULL
+
+			Field only valid when Frame_control_info_null_valid is set.
+			
+			 
+			Last successfully received Frame_control field of Data Null/QoS
+			 Null for this user, mainly used to track the PM state of
+			 the transmitted device
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_OFFSET                      0x0000000000000058
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_LSB                         34
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MSB                         49
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MASK                        0x0003fffc00000000
+
+
+/* Description		RETRIED_MPDU_COUNT
+
+			Field filled in by RXPCU
+			
+			The number of MPDUs without FCS error, that have the retry
+			 bit set.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_OFFSET                            0x0000000000000058
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_LSB                               50
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MSB                               60
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MASK                              0x1ffc000000000000
+
+
+/* Description		RESERVED_23A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_LSB                                     61
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_MSB                                     63
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_MASK                                    0xe000000000000000
+
+
+/* Description		RXPCU_MPDU_FILTER_IN_CATEGORY
+
+			Field indicates what the reason was that the last successfully
+			 received MPDU was allowed to come into the receive path
+			 by RXPCU.
+			<enum 0 rxpcu_filter_pass> The last MPDU passed the normal
+			 frame filter programming of rxpcu
+			<enum 1 rxpcu_monitor_client> The last MPDU did NOT pass
+			 the regular frame filter and would have been dropped, were
+			 it not for the frame fitting into the 'monitor_client' 
+			category.
+			<enum 2 rxpcu_monitor_other> The last MPDU did NOT pass 
+			the regular frame filter and also did not pass the rxpcu_monitor_client
+			 filter. It would have been dropped accept that it did pass
+			 the 'monitor_other' category.
+			<enum 3 rxpcu_filter_pass_monitor_ovrd> The last MPDU passed
+			 the normal frame filter programming of RXPCU but additionally
+			 fit into the 'monitor_override_client' category.
+			
+			Hamilton and Waikiki did not include this (and any subsequent) 
+			word.
+			<legal 0-3>
+*/
+
+#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                 0x0000000000000060
+#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                    0
+#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                    1
+#define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                   0x0000000000000003
+
+
+/* Description		SW_FRAME_GROUP_ID
+
+			SW processes frames based on certain classifications. This
+			 field indicates to what sw classification the last successfully
+			 received MPDU is mapped.
+			The classification is given in priority order
+			
+			<enum 0 sw_frame_group_NDP_frame> 
+			
+			<enum 1 sw_frame_group_Multicast_data> 
+			<enum 2 sw_frame_group_Unicast_data> 
+			<enum 3 sw_frame_group_Null_data > This includes mpdus of
+			 type Data Null.
+			<enum 38 sw_frame_group_QoS_Null_data> This includes QoS
+			 Null frames except in UL MU or TB PPDUs.
+			<enum 39 sw_frame_group_QoS_Null_data_TB> This includes 
+			QoS Null frames in UL MU or TB PPDUs.
+			
+			<enum 4 sw_frame_group_mgmt_0000 > 
+			<enum 5 sw_frame_group_mgmt_0001 > 
+			<enum 6 sw_frame_group_mgmt_0010 > 
+			<enum 7 sw_frame_group_mgmt_0011 > 
+			<enum 8 sw_frame_group_mgmt_0100 > 
+			<enum 9 sw_frame_group_mgmt_0101 > 
+			<enum 10 sw_frame_group_mgmt_0110 > 
+			<enum 11 sw_frame_group_mgmt_0111 > 
+			<enum 12 sw_frame_group_mgmt_1000 > 
+			<enum 13 sw_frame_group_mgmt_1001 > 
+			<enum 14 sw_frame_group_mgmt_1010 > 
+			<enum 15 sw_frame_group_mgmt_1011 > 
+			<enum 16 sw_frame_group_mgmt_1100 > 
+			<enum 17 sw_frame_group_mgmt_1101 > 
+			<enum 18 sw_frame_group_mgmt_1110 > 
+			<enum 19 sw_frame_group_mgmt_1111 > 
+			
+			<enum 20 sw_frame_group_ctrl_0000 > 
+			<enum 21 sw_frame_group_ctrl_0001 > 
+			<enum 22 sw_frame_group_ctrl_0010 > 
+			<enum 23 sw_frame_group_ctrl_0011 > 
+			<enum 24 sw_frame_group_ctrl_0100 > 
+			<enum 25 sw_frame_group_ctrl_0101 > 
+			<enum 26 sw_frame_group_ctrl_0110 > 
+			<enum 27 sw_frame_group_ctrl_0111 > 
+			<enum 28 sw_frame_group_ctrl_1000 > 
+			<enum 29 sw_frame_group_ctrl_1001 > 
+			<enum 30 sw_frame_group_ctrl_1010 > 
+			<enum 31 sw_frame_group_ctrl_1011 > 
+			<enum 32 sw_frame_group_ctrl_1100 > 
+			<enum 33 sw_frame_group_ctrl_1101 > 
+			<enum 34 sw_frame_group_ctrl_1110 > 
+			<enum 35 sw_frame_group_ctrl_1111 > 
+			
+			<enum 36 sw_frame_group_unsupported> This covers type 3 
+			and protocol version != 0
+			
+			<enum 37 sw_frame_group_phy_error> PHY reported an error
+			
+			
+			<legal 0-39>
+*/
+
+#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_OFFSET                             0x0000000000000060
+#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_LSB                                2
+#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MSB                                8
+#define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MASK                               0x00000000000001fc
+
+
+/* Description		RESERVED_24A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RESERVED_24A_OFFSET                                  0x0000000000000060
+#define RX_PPDU_END_USER_STATS_RESERVED_24A_LSB                                     9
+#define RX_PPDU_END_USER_STATS_RESERVED_24A_MSB                                     12
+#define RX_PPDU_END_USER_STATS_RESERVED_24A_MASK                                    0x0000000000001e00
+
+
+/* Description		FRAME_CONTROL_INFO_MGMT_CTRL_VALID
+
+			When set, Frame_control_field_mgmt_ctrl contains valid information.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_OFFSET            0x0000000000000060
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_LSB               13
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MSB               13
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MASK              0x0000000000002000
+
+
+/* Description		MAC_ADDR_AD2_VALID
+
+			When set, the fields mac_addr_ad2_... contain valid information.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_OFFSET                            0x0000000000000060
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_LSB                               14
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MSB                               14
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MASK                              0x0000000000004000
+
+
+/* Description		MCAST_BCAST
+
+			Multicast / broadcast indicator
+			
+			Only set when the MAC address 1 bit 0 is set indicating 
+			mcast/bcast and the BSSID matches one of the BSSID registers, 
+			for the last successfully received MPDU
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_OFFSET                                   0x0000000000000060
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_LSB                                      15
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSB                                      15
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MASK                                     0x0000000000008000
+
+
+/* Description		FRAME_CONTROL_FIELD_MGMT_CTRL
+
+			Field only valid when Frame_control_info_mgmt_ctrl_valid
+			 is set
+			
+			Last successfully received 'Frame control' field of control
+			 or management frames for this user, mainly used in Rx monitor
+			 mode
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_OFFSET                 0x0000000000000060
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_LSB                    16
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MSB                    31
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MASK                   0x00000000ffff0000
+
+
+/* Description		USER_PPDU_LEN
+
+			The sum of the mpdu_length fields of all the 'RX_MPDU_START' 
+			TLVs generated for this user  for this PPDU
+*/
+
+#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_OFFSET                                 0x0000000000000060
+#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_LSB                                    32
+#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MSB                                    55
+#define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MASK                                   0x00ffffff00000000
+
+
+/* Description		RESERVED_25A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_RESERVED_25A_OFFSET                                  0x0000000000000060
+#define RX_PPDU_END_USER_STATS_RESERVED_25A_LSB                                     56
+#define RX_PPDU_END_USER_STATS_RESERVED_25A_MSB                                     63
+#define RX_PPDU_END_USER_STATS_RESERVED_25A_MASK                                    0xff00000000000000
+
+
+/* Description		MAC_ADDR_AD2_31_0
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The least significant 4 bytes of the last successfully received
+			 frame's MAC Address AD2
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_OFFSET                             0x0000000000000068
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_LSB                                0
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MSB                                31
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MASK                               0x00000000ffffffff
+
+
+/* Description		MAC_ADDR_AD2_47_32
+
+			Field only valid when mac_addr_ad2_valid is set
+			
+			The 2 most significant bytes of the last successfully received
+			 frame's MAC Address AD2
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_OFFSET                            0x0000000000000068
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_LSB                               32
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MSB                               47
+#define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MASK                              0x0000ffff00000000
+
+
+/* Description		AMSDU_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of A-MSDUs that are part
+			 of MPDUs without FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_OFFSET                              0x0000000000000068
+#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_LSB                                 48
+#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MSB                                 63
+#define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MASK                                0xffff000000000000
+
+
+/* Description		NON_AMSDU_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are not part of A-MSDUs that are
+			 part of MPDUs without FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_OFFSET                          0x0000000000000070
+#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_LSB                             0
+#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MSB                             15
+#define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MASK                            0x000000000000ffff
+
+
+/* Description		UCAST_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error
+			
+			TODO: unicast AD1 or DA?
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_OFFSET                              0x0000000000000070
+#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_LSB                                 16
+#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MSB                                 31
+#define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MASK                                0x00000000ffff0000
+
+
+/* Description		MCAST_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error
+			
+			TODO: multicast AD1 or DA?
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MCAST_MSDU_COUNT_OFFSET                              0x0000000000000070
+#define RX_PPDU_END_USER_STATS_MCAST_MSDU_COUNT_LSB                                 32
+#define RX_PPDU_END_USER_STATS_MCAST_MSDU_COUNT_MSB                                 47
+#define RX_PPDU_END_USER_STATS_MCAST_MSDU_COUNT_MASK                                0x0000ffff00000000
+
+
+/* Description		MCAST_BCAST_MSDU_COUNT
+
+			Field filled in by RX OLE
+			Set to 0 by RXPCU
+			
+			The number of MSDUs that are part of MPDUs without FCS error
+			
+			TODO: multicast/broadcast AD1 or DA?
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_OFFSET                        0x0000000000000070
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_LSB                           48
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MSB                           63
+#define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MASK                          0xffff000000000000
+
+
+
+#endif   // RX_PPDU_END_USER_STATS
diff --git a/hw/qca5332/rx_ppdu_end_user_stats_ext.h b/hw/qca5332/rx_ppdu_end_user_stats_ext.h
new file mode 100644
index 0000000..733c6af
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_end_user_stats_ext.h
@@ -0,0 +1,352 @@
+
+/* 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 _RX_PPDU_END_USER_STATS_EXT_H_
+#define _RX_PPDU_END_USER_STATS_EXT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_rxpcu_classification_overview.h"
+#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS_EXT 8
+
+#define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS_EXT 4
+
+
+struct rx_ppdu_end_user_stats_ext {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t fcs_ok_bitmap_95_64                                     : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_127_96                                    : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_159_128                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_191_160                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_223_192                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_255_224                                   : 32; // [31:0]
+             uint32_t corrupted_due_to_fifo_delay                             :  1, // [0:0]
+                      reserved_7a                                             : 31; // [31:1]
+#else
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t fcs_ok_bitmap_95_64                                     : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_127_96                                    : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_159_128                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_191_160                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_223_192                                   : 32; // [31:0]
+             uint32_t fcs_ok_bitmap_255_224                                   : 32; // [31:0]
+             uint32_t reserved_7a                                             : 31, // [31:1]
+                      corrupted_due_to_fifo_delay                             :  1; // [0:0]
+#endif
+};
+
+
+/* Description		RXPCU_CLASSIFICATION_DETAILS
+
+			Details related to what RXPCU classification types of MPDUs
+			 have been received
+*/
+
+
+/* Description		FILTER_PASS_MPDUS
+
+			When set, at least one Filter Pass MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x0000000000000001
+
+
+/* Description		FILTER_PASS_MPDUS_FCS_OK
+
+			When set, at least one Filter Pass MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
+
+
+/* Description		MONITOR_DIRECT_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
+
+
+/* Description		MONITOR_DIRECT_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
+
+
+/* Description		MONITOR_OTHER_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
+
+
+/* Description		MONITOR_OTHER_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
+
+
+/* Description		PHYRX_ABORT_RECEIVED
+
+			When set, PPDU reception was aborted by the PHY
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received. FCS might or might not have been passing.
+			
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB      9
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB      15
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK     0x000000000000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET  0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB     16
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB     31
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK    0x00000000ffff0000
+
+
+/* Description		FCS_OK_BITMAP_95_64
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_OFFSET                       0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_LSB                          32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MSB                          63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MASK                         0xffffffff00000000
+
+
+/* Description		FCS_OK_BITMAP_127_96
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_LSB                         0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MSB                         31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MASK                        0x00000000ffffffff
+
+
+/* Description		FCS_OK_BITMAP_159_128
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_LSB                        32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MSB                        63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MASK                       0xffffffff00000000
+
+
+/* Description		FCS_OK_BITMAP_191_160
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_OFFSET                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_LSB                        0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MSB                        31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MASK                       0x00000000ffffffff
+
+
+/* Description		FCS_OK_BITMAP_223_192
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_OFFSET                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_LSB                        32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MSB                        63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MASK                       0xffffffff00000000
+
+
+/* Description		FCS_OK_BITMAP_255_224
+
+			Bitmap indicates in order of received MPDUs, which MPDUs
+			 had an passing FCS or had an error.
+			1: FCS OK
+			0: FCS error
+			<legal all>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_OFFSET                     0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_LSB                        0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MSB                        31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MASK                       0x00000000ffffffff
+
+
+/* Description		CORRUPTED_DUE_TO_FIFO_DELAY
+
+			Set if Rx PCU avoided a hang due to SFM delays by writing
+			 a corrupted 'RX_PPDU_END_USER_STATS*' and/or 'RX_PPDU_END.'
+			
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET               0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                  32
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                  32
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                 0x0000000100000000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_OFFSET                               0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_LSB                                  33
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MSB                                  63
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MASK                                 0xfffffffe00000000
+
+
+
+#endif   // RX_PPDU_END_USER_STATS_EXT
diff --git a/hw/qca5332/rx_ppdu_no_ack_report.h b/hw/qca5332/rx_ppdu_no_ack_report.h
new file mode 100644
index 0000000..62137ce
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_no_ack_report.h
@@ -0,0 +1,306 @@
+
+/* 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 _RX_PPDU_NO_ACK_REPORT_H_
+#define _RX_PPDU_NO_ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "no_ack_report.h"
+#define NUM_OF_DWORDS_RX_PPDU_NO_ACK_REPORT 4
+
+#define NUM_OF_QWORDS_RX_PPDU_NO_ACK_REPORT 2
+
+
+struct rx_ppdu_no_ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   no_ack_report                                             no_ack_report_details;
+#else
+             struct   no_ack_report                                             no_ack_report_details;
+#endif
+};
+
+
+/* Description		NO_ACK_REPORT_DETAILS
+
+			Info indicating why frame did not require a response transmission
+			 in SIFS time.
+*/
+
+
+/* Description		NO_ACK_TRANSMIT_REASON
+
+			Field that indicates why the received frame is not needing
+			 any transmit response in SIFS time. 
+			
+			The possible responses are listed in order.
+			
+			<enum 0     NO_ACK_FCS_errors > All received frames have
+			 FCS errors.
+			<enum 1     Unicast_no_ack_frame_received > All received
+			 frames did not require a response.
+			<enum 2     NO_ACK_Broadcast> Broadcast frame received
+			<enum 3     NO_ACK_Multicast> Multicast frame received
+			<enum 4     Not_directed> Frames received are not directed
+			 to this device (based on addr1)
+			<enum 5     AST_no_ack> The AST entry indicated that NO 
+			ACK shall be send
+			<enum 6     PHY_GID_mismatch> PHY dropped the incoming frame
+			 dur to GID mismatch
+			<enum 7     PHY_AID_mismatch> PHY dropped the incoming frame
+			 dur to AID mismatch
+			<enum 8     NO_ACK_PHY_error> PHY reported an error during
+			 reception. For details, see the 'phy_error...' fields
+			<enum 9     RTS_bw_not_available> The requested BW for the
+			 CTS response frame is not available
+			<enum 10     NDPA_Frame> An NDPA frame got received
+			<enum 11     NDP_Frame> An NDP frame got received
+			<enum 12     Trigger_NAV_blocked> a trigger frame was received, 
+			but due to NAV setting, no response could be generated
+			<enum 13     Trigger_no_AID> A trigger frame was received, 
+			but this device's AID was not in the list
+			<enum 14     NO_ACK_MAC_ABORT_REQ > No ACK is needed as 
+			SW asked RXPCU to send a abort_request to the PHYRX
+			<enum 15     no_response_other> placeholder in case non 
+			of the above properly cover the reasons
+			
+			Also see the field SR_PPDU_during_OBSS.
+			<legal 0-15>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_NO_ACK_TRANSMIT_REASON_OFFSET   0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_NO_ACK_TRANSMIT_REASON_LSB      0
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_NO_ACK_TRANSMIT_REASON_MSB      3
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_NO_ACK_TRANSMIT_REASON_MASK     0x000000000000000f
+
+
+/* Description		MACRX_ABORT_REASON
+
+			Field only valid when No_ack_transmit_reason is set to NO_ACK_MAC_ABORT_REQ
+			
+			
+			Error field received from MACRX_ABORT_REQUEST.Macrx_abort_reason[2:0]
+			
+			 <Legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_MACRX_ABORT_REASON_OFFSET       0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_MACRX_ABORT_REASON_LSB          4
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_MACRX_ABORT_REASON_MSB          7
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_MACRX_ABORT_REASON_MASK         0x00000000000000f0
+
+
+/* Description		PHYRX_ABORT_REASON
+
+			Field only valid when No_ack_transmit_reason is set to NO_ACK_PHY_error
+			
+			
+			Error field received from PHYRX_ABORT_REQUEST.Phyrx_abort_reason
+			
+			
+			<Legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PHYRX_ABORT_REASON_OFFSET       0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PHYRX_ABORT_REASON_LSB          8
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PHYRX_ABORT_REASON_MSB          15
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PHYRX_ABORT_REASON_MASK         0x000000000000ff00
+
+
+/* Description		FRAME_CONTROL
+
+			frame control field of the received (first properly received) 
+			frame
+			
+			<Legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FRAME_CONTROL_OFFSET            0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FRAME_CONTROL_LSB               16
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FRAME_CONTROL_MSB               31
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FRAME_CONTROL_MASK              0x00000000ffff0000
+
+
+/* Description		RX_PPDU_DURATION
+
+			The length of this PPDU reception in us 
+			<Legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RX_PPDU_DURATION_OFFSET         0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RX_PPDU_DURATION_LSB            32
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RX_PPDU_DURATION_MSB            55
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RX_PPDU_DURATION_MASK           0x00ffffff00000000
+
+
+/* Description		SR_PPDU_DURING_OBSS
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			Indicates that the received frame was sent using SRP as 
+			indicated by the 'SR PPDU' bit in the 'CAS Control' in the
+			 'HE A-Control' in one of the MPDUs received, and that the
+			 response could not be generated due to OBSS traffic setting
+			 the NAV
+			<legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SR_PPDU_DURING_OBSS_OFFSET      0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SR_PPDU_DURING_OBSS_LSB         56
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SR_PPDU_DURING_OBSS_MSB         56
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SR_PPDU_DURING_OBSS_MASK        0x0100000000000000
+
+
+/* Description		SELFGEN_RESPONSE_REASON_TO_SR_PPDU
+
+			Field only valid with SRP Responder support (not PoR in 
+			Moselle/Maple/Spruce)
+			
+			This field indicates why the received SR PPDU needs a response
+			 in SIFS time. The e-num used is the same as in the field
+			 selfgen_response_reason in 'ACK_REPORT' structure although
+			 some of these will be unused in case of an SR PPDU.
+			
+			<enum 0     CTS_frame>
+			<enum 1     ACK_frame>
+			<enum 2     BA_frame >
+			<enum 3     Qboost_trigger> Qboost trigger received
+			<enum 4     PSPOLL_trigger> PSPOLL trigger received
+			<enum 5     UAPSD_trigger > Unscheduled APSD  trigger received
+			
+			<enum 6     CBF_frame> the CBF frame needs to be send as
+			 a result of NDP or BRPOLL
+			<enum 7     ax_su_trigger> 11ax trigger received for this
+			 device
+			<enum 8     ax_wildcard_trigger> 11ax wildcardtrigger has
+			 been received
+			<enum 9     ax_unassoc_wildcard_trigger> 11ax wildcard trigger
+			 for unassociated STAs has been received
+			<enum 12     eht_su_trigger> EHT R1 trigger received for
+			 this device
+			<enum 10     MU_UL_response_to_response>
+			
+			<enum 11     Ranging_NDP_LMR_frames> Ranging NDP + LMR need
+			 to be sent in response to ranging NDPA + NDP
+			
+			<legal 0-12>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_OFFSET 0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_LSB 57
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MSB 60
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MASK 0x1e00000000000000
+
+
+/* Description		RESERVED_1
+
+			<legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_1_OFFSET               0x0000000000000000
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_1_LSB                  61
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_1_MSB                  63
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_1_MASK                 0xe000000000000000
+
+
+/* Description		PRE_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the first received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			After power up, this field is all initialized to 0
+			
+			Bits: [31:28]: always 0
+			
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000008
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PRE_BT_BROADCAST_STATUS_DETAILS_LSB 0
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PRE_BT_BROADCAST_STATUS_DETAILS_MSB 11
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_PRE_BT_BROADCAST_STATUS_DETAILS_MASK 0x0000000000000fff
+
+
+/* Description		FIRST_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the first received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no COEX_STATUS_BROADCAST tlv is received during this 
+			PPDU reception, this field will be set to 0
+			<legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000008
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB 12
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB 23
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK 0x0000000000fff000
+
+
+/* Description		RESERVED_2
+
+			<legal 0>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_2_OFFSET               0x0000000000000008
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_2_LSB                  24
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_2_MSB                  31
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_2_MASK                 0x00000000ff000000
+
+
+/* Description		SECOND_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the second received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no second COEX_STATUS_BROADCAST tlv is received during
+			 this PPDU reception, this field will be set to 0
+			<legal all>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000008
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB 32
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB 43
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000fff00000000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_3_OFFSET               0x0000000000000008
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_3_LSB                  44
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_3_MSB                  63
+#define RX_PPDU_NO_ACK_REPORT_NO_ACK_REPORT_DETAILS_RESERVED_3_MASK                 0xfffff00000000000
+
+
+
+#endif   // RX_PPDU_NO_ACK_REPORT
diff --git a/hw/qca5332/rx_ppdu_start.h b/hw/qca5332/rx_ppdu_start.h
new file mode 100644
index 0000000..5e4b161
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_start.h
@@ -0,0 +1,175 @@
+
+/* 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 _RX_PPDU_START_H_
+#define _RX_PPDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_PPDU_START 6
+
+#define NUM_OF_QWORDS_RX_PPDU_START 3
+
+
+struct rx_ppdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      preamble_time_to_rxframe                                :  8, // [23:16]
+                      reserved_0a                                             :  8; // [31:24]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t rxframe_assert_timestamp                                : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             :  8, // [31:24]
+                      preamble_time_to_rxframe                                :  8, // [23:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+             uint32_t sw_phy_meta_data                                        : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_31_0                               : 32; // [31:0]
+             uint32_t ppdu_start_timestamp_63_32                              : 32; // [31:0]
+             uint32_t rxframe_assert_timestamp                                : 32; // [31:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_PPDU_START_PHY_PPDU_ID_OFFSET                                            0x0000000000000000
+#define RX_PPDU_START_PHY_PPDU_ID_LSB                                               0
+#define RX_PPDU_START_PHY_PPDU_ID_MSB                                               15
+#define RX_PPDU_START_PHY_PPDU_ID_MASK                                              0x000000000000ffff
+
+
+/* Description		PREAMBLE_TIME_TO_RXFRAME
+
+			The amount of time (in us) of the frame being put on the
+			 medium, and PHY raising rx_frame
+			
+			From  'PHYRX_RSSI_LEGACY. Preamble_time_to_rx_frame'
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_OFFSET                               0x0000000000000000
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_LSB                                  16
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_MSB                                  23
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_MASK                                 0x0000000000ff0000
+
+
+/* Description		RESERVED_0A
+
+			Reserved
+			<legal 0>
+*/
+
+#define RX_PPDU_START_RESERVED_0A_OFFSET                                            0x0000000000000000
+#define RX_PPDU_START_RESERVED_0A_LSB                                               24
+#define RX_PPDU_START_RESERVED_0A_MSB                                               31
+#define RX_PPDU_START_RESERVED_0A_MASK                                              0x00000000ff000000
+
+
+/* Description		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.
+			
+			From  'PHYRX_RSSI_LEGACY.Sw_phy_meta_data'
+*/
+
+#define RX_PPDU_START_SW_PHY_META_DATA_OFFSET                                       0x0000000000000000
+#define RX_PPDU_START_SW_PHY_META_DATA_LSB                                          32
+#define RX_PPDU_START_SW_PHY_META_DATA_MSB                                          63
+#define RX_PPDU_START_SW_PHY_META_DATA_MASK                                         0xffffffff00000000
+
+
+/* Description		PPDU_START_TIMESTAMP_31_0
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, lower 32 bits.
+			
+			The timestamp is captured by the PHY and given to the MAC
+			 in 'PHYRX_RSSI_LEGACY.ppdu_start_timestamp_*.'
+			<legal all>
+*/
+
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_OFFSET                              0x0000000000000008
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_LSB                                 0
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_MSB                                 31
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_MASK                                0x00000000ffffffff
+
+
+/* Description		PPDU_START_TIMESTAMP_63_32
+
+			Timestamp that indicates when the PPDU that contained this
+			 MPDU started on the medium, upper 32 bits.
+			
+			The timestamp is captured by the PHY and given to the MAC
+			 in 'PHYRX_RSSI_LEGACY.ppdu_start_timestamp_*.'
+			<legal all>
+*/
+
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_OFFSET                             0x0000000000000008
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_LSB                                32
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_MSB                                63
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_MASK                               0xffffffff00000000
+
+
+/* Description		RXFRAME_ASSERT_TIMESTAMP
+
+			MAC timer Timestamp that indicates when PHY asserted the
+			 'rx_frame' signal for the reception of this PPDU
+			<legal all>
+*/
+
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_OFFSET                               0x0000000000000010
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_LSB                                  0
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_MSB                                  31
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_MASK                                 0x00000000ffffffff
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_PPDU_START_TLV64_PADDING_OFFSET                                          0x0000000000000010
+#define RX_PPDU_START_TLV64_PADDING_LSB                                             32
+#define RX_PPDU_START_TLV64_PADDING_MSB                                             63
+#define RX_PPDU_START_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // RX_PPDU_START
diff --git a/hw/qca5332/rx_ppdu_start_user_info.h b/hw/qca5332/rx_ppdu_start_user_info.h
new file mode 100644
index 0000000..4e7fd53
--- /dev/null
+++ b/hw/qca5332/rx_ppdu_start_user_info.h
@@ -0,0 +1,636 @@
+
+/* 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 _RX_PPDU_START_USER_INFO_H_
+#define _RX_PPDU_START_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_user_info.h"
+#define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 8
+
+#define NUM_OF_QWORDS_RX_PPDU_START_USER_INFO 4
+
+
+struct rx_ppdu_start_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   receive_user_info                                         receive_user_info_details;
+#else
+             struct   receive_user_info                                         receive_user_info_details;
+#endif
+};
+
+
+/* Description		RECEIVE_USER_INFO_DETAILS
+
+			Overview of receive parameters that the MAC needs to prepend
+			 to every received MSDU/MPDU.
+*/
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB           0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MSB           15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK          0x000000000000ffff
+
+
+/* Description		USER_RSSI
+
+			RSSI for this user
+			Frequency domain RSSI measurement for this user. Based on
+			 the channel estimate.  
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET          0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB             16
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MSB             23
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK            0x0000000000ff0000
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			
+			<enum_type PKT_TYPE_ENUM>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET           0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB              24
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MSB              27
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK             0x000000000f000000
+
+
+/* Description		STBC
+
+			When set, use STBC transmission rates
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET               0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_LSB                  28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MSB                  28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MASK                 0x0000000010000000
+
+
+/* Description		RECEPTION_TYPE
+
+			Indicates what type of reception this is.
+			<enum 0     reception_type_SU > Basic SU reception (not 
+			part of OFDMA or MU-MIMO)
+			<enum 1     reception_type_MU_MIMO > This is related to 
+			DL type of reception
+			<enum 2     reception_type_MU_OFDMA >  This is related to
+			 DL type of reception
+			<enum 3     reception_type_MU_OFDMA_MIMO >  This is related
+			 to DL type of reception
+			<enum 4     reception_type_UL_MU_MIMO > This is related 
+			to UL type of reception
+			<enum 5     reception_type_UL_MU_OFDMA >  This is related
+			 to UL type of reception
+			<enum 6     reception_type_UL_MU_OFDMA_MIMO >  This is related
+			 to UL type of reception
+			
+			<legal 0-6>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB        29
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MSB        31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK       0x00000000e0000000
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET           0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB              32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MSB              35
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK             0x0000000f00000000
+
+
+/* Description		SGI
+
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			<enum 0     gi_0_8_us > Legacy normal GI.  Can also be used
+			 for HE
+			<enum 1     gi_0_4_us > Legacy short GI.  Can also be used
+			 for HE
+			<enum 2     gi_1_6_us > HE related GI
+			<enum 3     gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET                0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_LSB                   36
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MSB                   37
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MASK                  0x0000003000000000
+
+
+/* Description		HE_RANGING_NDP
+
+			Set to 1 for expected HE TB ranging NDP Rx in response to
+			 sounding/secure sounding ranging Trigger Tx
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_LSB        38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MSB        38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MASK       0x0000004000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_LSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MASK          0x0000008000000000
+
+
+/* Description		MIMO_SS_BITMAP
+
+			Bitmap, with each bit indicating if the related spatial 
+			stream is used for this STA
+			LSB related to SS 0
+			
+			0: spatial stream not used for this reception
+			1: spatial stream used for this reception
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB        40
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MSB        47
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK       0x0000ff0000000000
+
+
+/* Description		RECEIVE_BANDWIDTH
+
+			Full receive Bandwidth
+			
+			<enum_type BW_ENUM>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET  0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB     48
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MSB     50
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK    0x0007000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_LSB           51
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MSB           55
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MASK          0x00f8000000000000
+
+
+/* Description		DL_OFDMA_USER_INDEX
+
+			Field only valid in the of DL MU OFDMA reception
+			
+			The user number within the RU_allocation.
+			
+			This is needed for SW to determine the exact RU position
+			 within the reception.
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_OFFSET 0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_LSB   56
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MSB   63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MASK  0xff00000000000000
+
+
+/* Description		DL_OFDMA_CONTENT_CHANNEL
+
+			Field only valid in the of DL MU OFDMA/MIMO reception
+			
+			In case of DL MU reception, this field indicates the content
+			 channel number where PHY found the RU information for this
+			 user
+			
+			This is needed for SW to determine the exact RU position
+			 within the reception.
+			
+			<enum 0      content_channel_1>
+			<enum 1      content_channel_2> 
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_LSB 0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MSB 0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MASK 0x0000000000000001
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB           1
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MSB           7
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK          0x00000000000000fe
+
+
+/* Description		NSS
+
+			Field only valid in case of Uplink_receive_type == mimo_only
+			 OR ofdma_mimo
+			
+			Number of Spatial Streams occupied by the User
+			
+			<enum_type SS_COUNT_ENUM>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_OFFSET                0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_LSB                   8
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MSB                   10
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MASK                  0x0000000000000700
+
+
+/* Description		STREAM_OFFSET
+
+			Field only valid in case of Uplink_receive_type == mimo_only
+			 OR ofdma_mimo
+			
+			Stream Offset from which the User occupies the Streams
+			
+			Note MAC:
+			directly from pdg_fes_setup, based on BW
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_OFFSET      0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_LSB         11
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MSB         13
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MASK        0x0000000000003800
+
+
+/* Description		STA_DCM
+
+			Indicates whether dual sub-carrier modulation is applied
+			
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_OFFSET            0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_LSB               14
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MSB               14
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MASK              0x0000000000004000
+
+
+/* Description		LDPC
+
+			When set, use LDPC transmission rates were used.
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET               0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_LSB                  15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MSB                  15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MASK                 0x0000000000008000
+
+
+/* Description		RU_TYPE_80_0
+
+			Indicates the size of the RU in the first 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_LSB          16
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MSB          19
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MASK         0x00000000000f0000
+
+
+/* Description		RU_TYPE_80_1
+
+			Indicates the size of the RU in the second 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_LSB          20
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MSB          23
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MASK         0x0000000000f00000
+
+
+/* Description		RU_TYPE_80_2
+
+			Indicates the size of the RU in the third 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_LSB          24
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MSB          27
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MASK         0x000000000f000000
+
+
+/* Description		RU_TYPE_80_3
+
+			Indicates the size of the RU in the fourth 80 MHz sub-band
+			
+			<enum 0 RU_26_per80>
+			<enum 1 RU_52_per80>
+			<enum 2 RU_78_per80>
+			<enum 3 RU_106_per80>
+			<enum 4 RU_132_per80>
+			<enum 5 RU_242_per80>
+			<enum 6 RU_484_per80>
+			<enum 7 RU_726_per80>
+			<enum 8 RU_996_per80>
+			<enum 9 RU_996x2>
+			<enum 10 RU_996x3>
+			<enum 11 RU_996x4>
+			<enum 12 RU_rsvd0> DO NOT USE
+			<enum 13 RU_rsvd1> DO NOT USE
+			<enum 14 RU_rsvd2> DO NOT USE
+			<enum 15 RU_NONE> No RUs in this 80 MHz
+			<legal 0-15>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_LSB          28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MSB          31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MASK         0x00000000f0000000
+
+
+/* Description		RU_START_INDEX_80_0
+
+			RU index number to which User is assigned in the first 80
+			 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_LSB   32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MSB   37
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MASK  0x0000003f00000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_LSB           38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MASK          0x000000c000000000
+
+
+/* Description		RU_START_INDEX_80_1
+
+			RU index number to which User is assigned in the second 
+			80 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_LSB   40
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MSB   45
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MASK  0x00003f0000000000
+
+
+/* Description		RESERVED_3B
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_LSB           46
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MSB           47
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MASK          0x0000c00000000000
+
+
+/* Description		RU_START_INDEX_80_2
+
+			RU index number to which User is assigned in the third 80
+			 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_LSB   48
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MSB   53
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MASK  0x003f000000000000
+
+
+/* Description		RESERVED_3C
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_LSB           54
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MSB           55
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MASK          0x00c0000000000000
+
+
+/* Description		RU_START_INDEX_80_3
+
+			RU index number to which User is assigned in the fourth 
+			80 MHz
+			RU numbering is over the entire BW, starting from 0 and 
+			in increasing frequency order and not primary-secondary 
+			order
+			<legal 0-36>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_LSB   56
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MSB   61
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MASK  0x3f00000000000000
+
+
+/* Description		RESERVED_3D
+
+			<legal 0>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_LSB           62
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MSB           63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MASK          0xc000000000000000
+
+
+/* Description		USER_FD_RSSI_SEG0
+
+			Frequency domain RSSI measurement for the lowest 80 MHz 
+			subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_OFFSET  0x0000000000000010
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_LSB     0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MSB     31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MASK    0x00000000ffffffff
+
+
+/* Description		USER_FD_RSSI_SEG1
+
+			Frequency domain RSSI measurement for the second lowest 
+			80 MHz subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_OFFSET  0x0000000000000010
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_LSB     32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MSB     63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MASK    0xffffffff00000000
+
+
+/* Description		USER_FD_RSSI_SEG2
+
+			Frequency domain RSSI measurement for the third lowest 80
+			 MHz subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_OFFSET  0x0000000000000018
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_LSB     0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MSB     31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MASK    0x00000000ffffffff
+
+
+/* Description		USER_FD_RSSI_SEG3
+
+			Frequency domain RSSI measurement for the highest 80 MHz
+			 subband of this user, per spatial stream
+			[7:0]: first spatial stream
+			...
+			[31:24]: fourth spatial stream
+			
+			In Hamilton v1 this structure had 4 more (32-bit) words 
+			after this field.
+			<legal all>
+*/
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_OFFSET  0x0000000000000018
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_LSB     32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MSB     63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MASK    0xffffffff00000000
+
+
+
+#endif   // RX_PPDU_START_USER_INFO
diff --git a/hw/qca5332/rx_preamble.h b/hw/qca5332/rx_preamble.h
new file mode 100644
index 0000000..f82ea2d
--- /dev/null
+++ b/hw/qca5332/rx_preamble.h
@@ -0,0 +1,125 @@
+
+/* 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 _RX_PREAMBLE_H_
+#define _RX_PREAMBLE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_PREAMBLE 2
+
+#define NUM_OF_QWORDS_RX_PREAMBLE 1
+
+
+struct rx_preamble {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t num_users                                               :  6, // [5:0]
+                      pkt_type                                                :  4, // [9:6]
+                      direction                                               :  1, // [10:10]
+                      reserved_0a                                             : 21; // [31:11]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             : 21, // [31:11]
+                      direction                                               :  1, // [10:10]
+                      pkt_type                                                :  4, // [9:6]
+                      num_users                                               :  6; // [5:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		NUM_USERS
+
+			The number of users in the receiving OFDMA frame.
+*/
+
+#define RX_PREAMBLE_NUM_USERS_OFFSET                                                0x0000000000000000
+#define RX_PREAMBLE_NUM_USERS_LSB                                                   0
+#define RX_PREAMBLE_NUM_USERS_MSB                                                   5
+#define RX_PREAMBLE_NUM_USERS_MASK                                                  0x000000000000003f
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_PREAMBLE_PKT_TYPE_OFFSET                                                 0x0000000000000000
+#define RX_PREAMBLE_PKT_TYPE_LSB                                                    6
+#define RX_PREAMBLE_PKT_TYPE_MSB                                                    9
+#define RX_PREAMBLE_PKT_TYPE_MASK                                                   0x00000000000003c0
+
+
+/* Description		DIRECTION
+
+			Field only valid in case of pkt_type = dot11ax
+			
+			<enum 0     direction_uplink_reception>
+			<enum 1     direction_downlink_reception>
+			<legal all>
+*/
+
+#define RX_PREAMBLE_DIRECTION_OFFSET                                                0x0000000000000000
+#define RX_PREAMBLE_DIRECTION_LSB                                                   10
+#define RX_PREAMBLE_DIRECTION_MSB                                                   10
+#define RX_PREAMBLE_DIRECTION_MASK                                                  0x0000000000000400
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_PREAMBLE_RESERVED_0A_OFFSET                                              0x0000000000000000
+#define RX_PREAMBLE_RESERVED_0A_LSB                                                 11
+#define RX_PREAMBLE_RESERVED_0A_MSB                                                 31
+#define RX_PREAMBLE_RESERVED_0A_MASK                                                0x00000000fffff800
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_PREAMBLE_TLV64_PADDING_OFFSET                                            0x0000000000000000
+#define RX_PREAMBLE_TLV64_PADDING_LSB                                               32
+#define RX_PREAMBLE_TLV64_PADDING_MSB                                               63
+#define RX_PREAMBLE_TLV64_PADDING_MASK                                              0xffffffff00000000
+
+
+
+#endif   // RX_PREAMBLE
diff --git a/hw/qca5332/rx_reo_queue.h b/hw/qca5332/rx_reo_queue.h
new file mode 100644
index 0000000..db806ca
--- /dev/null
+++ b/hw/qca5332/rx_reo_queue.h
@@ -0,0 +1,1255 @@
+
+/* 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 _RX_REO_QUEUE_H_
+#define _RX_REO_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE 32
+
+
+struct rx_reo_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t receive_queue_number                                    : 16, // [15:0]
+                      reserved_1b                                             : 16; // [31:16]
+             uint32_t vld                                                     :  1, // [0:0]
+                      associated_link_descriptor_counter                      :  2, // [2:1]
+                      disable_duplicate_detection                             :  1, // [3:3]
+                      soft_reorder_enable                                     :  1, // [4:4]
+                      ac                                                      :  2, // [6:5]
+                      bar                                                     :  1, // [7:7]
+                      rty                                                     :  1, // [8:8]
+                      chk_2k_mode                                             :  1, // [9:9]
+                      oor_mode                                                :  1, // [10:10]
+                      ba_window_size                                          : 10, // [20:11]
+                      pn_check_needed                                         :  1, // [21:21]
+                      pn_shall_be_even                                        :  1, // [22:22]
+                      pn_shall_be_uneven                                      :  1, // [23:23]
+                      pn_handling_enable                                      :  1, // [24:24]
+                      pn_size                                                 :  2, // [26:25]
+                      ignore_ampdu_flag                                       :  1, // [27:27]
+                      reserved_2b                                             :  4; // [31:28]
+             uint32_t svld                                                    :  1, // [0:0]
+                      ssn                                                     : 12, // [12:1]
+                      current_index                                           : 10, // [22:13]
+                      seq_2k_error_detected_flag                              :  1, // [23:23]
+                      pn_error_detected_flag                                  :  1, // [24:24]
+                      reserved_3a                                             :  6, // [30:25]
+                      pn_valid                                                :  1; // [31:31]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
+             uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
+             uint32_t ptr_to_next_aging_queue_31_0                            : 32; // [31:0]
+             uint32_t ptr_to_next_aging_queue_39_32                           :  8, // [7:0]
+                      reserved_11a                                            : 24; // [31:8]
+             uint32_t ptr_to_previous_aging_queue_31_0                        : 32; // [31:0]
+             uint32_t ptr_to_previous_aging_queue_39_32                       :  8, // [7:0]
+                      statistics_counter_index                                :  6, // [13:8]
+                      reserved_13a                                            : 18; // [31:14]
+             uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t current_mpdu_count                                      :  7, // [6:0]
+                      current_msdu_count                                      : 25; // [31:7]
+             uint32_t last_sn_reg_index                                       :  4, // [3:0]
+                      timeout_count                                           :  6, // [9:4]
+                      forward_due_to_bar_count                                :  6, // [15:10]
+                      duplicate_count                                         : 16; // [31:16]
+             uint32_t frames_in_order_count                                   : 24, // [23:0]
+                      bar_received_count                                      :  8; // [31:24]
+             uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t msdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t total_processed_byte_count                              : 32; // [31:0]
+             uint32_t late_receive_mpdu_count                                 : 12, // [11:0]
+                      window_jump_2k                                          :  4, // [15:12]
+                      hole_count                                              : 16; // [31:16]
+             uint32_t aging_drop_mpdu_count                                   : 16, // [15:0]
+                      aging_drop_interval                                     :  8, // [23:16]
+                      reserved_30                                             :  8; // [31:24]
+             uint32_t reserved_31                                             : 32; // [31:0]
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1b                                             : 16, // [31:16]
+                      receive_queue_number                                    : 16; // [15:0]
+             uint32_t reserved_2b                                             :  4, // [31:28]
+                      ignore_ampdu_flag                                       :  1, // [27:27]
+                      pn_size                                                 :  2, // [26:25]
+                      pn_handling_enable                                      :  1, // [24:24]
+                      pn_shall_be_uneven                                      :  1, // [23:23]
+                      pn_shall_be_even                                        :  1, // [22:22]
+                      pn_check_needed                                         :  1, // [21:21]
+                      ba_window_size                                          : 10, // [20:11]
+                      oor_mode                                                :  1, // [10:10]
+                      chk_2k_mode                                             :  1, // [9:9]
+                      rty                                                     :  1, // [8:8]
+                      bar                                                     :  1, // [7:7]
+                      ac                                                      :  2, // [6:5]
+                      soft_reorder_enable                                     :  1, // [4:4]
+                      disable_duplicate_detection                             :  1, // [3:3]
+                      associated_link_descriptor_counter                      :  2, // [2:1]
+                      vld                                                     :  1; // [0:0]
+             uint32_t pn_valid                                                :  1, // [31:31]
+                      reserved_3a                                             :  6, // [30:25]
+                      pn_error_detected_flag                                  :  1, // [24:24]
+                      seq_2k_error_detected_flag                              :  1, // [23:23]
+                      current_index                                           : 10, // [22:13]
+                      ssn                                                     : 12, // [12:1]
+                      svld                                                    :  1; // [0:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_63_32                                                : 32; // [31:0]
+             uint32_t pn_95_64                                                : 32; // [31:0]
+             uint32_t pn_127_96                                               : 32; // [31:0]
+             uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
+             uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
+             uint32_t ptr_to_next_aging_queue_31_0                            : 32; // [31:0]
+             uint32_t reserved_11a                                            : 24, // [31:8]
+                      ptr_to_next_aging_queue_39_32                           :  8; // [7:0]
+             uint32_t ptr_to_previous_aging_queue_31_0                        : 32; // [31:0]
+             uint32_t reserved_13a                                            : 18, // [31:14]
+                      statistics_counter_index                                :  6, // [13:8]
+                      ptr_to_previous_aging_queue_39_32                       :  8; // [7:0]
+             uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t current_msdu_count                                      : 25, // [31:7]
+                      current_mpdu_count                                      :  7; // [6:0]
+             uint32_t duplicate_count                                         : 16, // [31:16]
+                      forward_due_to_bar_count                                :  6, // [15:10]
+                      timeout_count                                           :  6, // [9:4]
+                      last_sn_reg_index                                       :  4; // [3:0]
+             uint32_t bar_received_count                                      :  8, // [31:24]
+                      frames_in_order_count                                   : 24; // [23:0]
+             uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t msdu_frames_processed_count                             : 32; // [31:0]
+             uint32_t total_processed_byte_count                              : 32; // [31:0]
+             uint32_t hole_count                                              : 16, // [31:16]
+                      window_jump_2k                                          :  4, // [15:12]
+                      late_receive_mpdu_count                                 : 12; // [11:0]
+             uint32_t reserved_30                                             :  8, // [31:24]
+                      aging_drop_interval                                     :  8, // [23:16]
+                      aging_drop_mpdu_count                                   : 16; // [15:0]
+             uint32_t reserved_31                                             : 32; // [31:0]
+#endif
+};
+
+
+/* Description		DESCRIPTOR_HEADER
+
+			Details about which module owns this struct.
+			Note that sub field "Buffer_type" shall be set to "Receive_REO_queue_descriptor"
+			
+*/
+
+
+/* Description		OWNER
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			The owner of this data structure:
+			<enum 0 WBM_owned> Buffer Manager currently owns this data
+			 structure.
+			<enum 1 SW_OR_FW_owned> Software of FW currently owns this
+			 data structure.
+			<enum 2 TQM_owned> Transmit Queue Manager currently owns
+			 this data structure.
+			<enum 3 RXDMA_owned> Receive DMA currently owns this data
+			 structure.
+			<enum 4 REO_owned> Reorder currently owns this data structure.
+			
+			<enum 5 SWITCH_owned> SWITCH currently owns this data structure.
+			
+			
+			<legal 0-5> 
+*/
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_OFFSET                                 0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_LSB                                    0
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_MSB                                    3
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_MASK                                   0x0000000f
+
+
+/* Description		BUFFER_TYPE
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			Field describing what contents format is of this descriptor
+			
+			
+			<enum 0 Transmit_MSDU_Link_descriptor> 
+			<enum 1 Transmit_MPDU_Link_descriptor> 
+			<enum 2 Transmit_MPDU_Queue_head_descriptor>
+			<enum 3 Transmit_MPDU_Queue_ext_descriptor>
+			<enum 4 Transmit_flow_descriptor>
+			<enum 5 Transmit_buffer> NOT TO BE USED: 
+			
+			<enum 6 Receive_MSDU_Link_descriptor>
+			<enum 7 Receive_MPDU_Link_descriptor>
+			<enum 8 Receive_REO_queue_descriptor>
+			<enum 9 Receive_REO_queue_1k_descriptor>
+			<enum 10 Receive_REO_queue_ext_descriptor>
+			
+			<enum 11 Receive_buffer>
+			
+			<enum 12 Idle_link_list_entry>
+			
+			<legal 0-12> 
+*/
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                           0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                              4
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                              7
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                             0x000000f0
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                           0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_LSB                              8
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_MSB                              31
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_MASK                             0xffffff00
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			Indicates the MPDU queue ID to which this MPDU link descriptor
+			 belongs
+			Used for tracking and debugging
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_LSB                                       0
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MSB                                       15
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MASK                                      0x0000ffff
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_1B_OFFSET                                             0x00000004
+#define RX_REO_QUEUE_RESERVED_1B_LSB                                                16
+#define RX_REO_QUEUE_RESERVED_1B_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_1B_MASK                                               0xffff0000
+
+
+/* Description		VLD
+
+			Valid bit indicating a session is established and the queue
+			 descriptor is valid(Filled by SW)
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_VLD_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_VLD_LSB                                                        0
+#define RX_REO_QUEUE_VLD_MSB                                                        0
+#define RX_REO_QUEUE_VLD_MASK                                                       0x00000001
+
+
+/* Description		ASSOCIATED_LINK_DESCRIPTOR_COUNTER
+
+			Indicates which of the 3 link descriptor counters shall 
+			be incremented or decremented when link descriptors are 
+			added or removed from this flow queue.
+			MSDU link descriptors related with MPDUs stored in the re-order
+			 buffer shall also be included in this count.
+			
+			<legal 0-2>
+*/
+
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET                      0x00000008
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB                         1
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB                         2
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK                        0x00000006
+
+
+/* Description		DISABLE_DUPLICATE_DETECTION
+
+			When set, do not perform any duplicate detection.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_OFFSET                             0x00000008
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_LSB                                3
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MSB                                3
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MASK                               0x00000008
+
+
+/* Description		SOFT_REORDER_ENABLE
+
+			When set, REO has been instructed to not perform the actual
+			 re-ordering of frames for this queue, but just to insert
+			 the reorder opcodes.
+			
+			Note that this implies that REO is also not going to perform
+			 any MSDU level operations, and the entire MPDU (and thus
+			 pointer to the MSDU link descriptor) will be pushed to 
+			a destination ring that SW has programmed in a SW programmable
+			 configuration register in REO
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_OFFSET                                     0x00000008
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_LSB                                        4
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_MSB                                        4
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_MASK                                       0x00000010
+
+
+/* Description		AC
+
+			Indicates which access category the queue descriptor belongs
+			 to(filled by SW)
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_AC_OFFSET                                                      0x00000008
+#define RX_REO_QUEUE_AC_LSB                                                         5
+#define RX_REO_QUEUE_AC_MSB                                                         6
+#define RX_REO_QUEUE_AC_MASK                                                        0x00000060
+
+
+/* Description		BAR
+
+			Indicates if  BAR has been received (mostly used for debug
+			 purpose and this is filled by REO)
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_BAR_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_BAR_LSB                                                        7
+#define RX_REO_QUEUE_BAR_MSB                                                        7
+#define RX_REO_QUEUE_BAR_MASK                                                       0x00000080
+
+
+/* Description		RTY
+
+			Retry bit is checked if this bit is set.  
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RTY_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_RTY_LSB                                                        8
+#define RX_REO_QUEUE_RTY_MSB                                                        8
+#define RX_REO_QUEUE_RTY_MASK                                                       0x00000100
+
+
+/* Description		CHK_2K_MODE
+
+			Indicates what type of operation is expected from Reo when
+			 the received frame SN falls within the 2K window
+			
+			See REO MLD document for programming details.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_CHK_2K_MODE_OFFSET                                             0x00000008
+#define RX_REO_QUEUE_CHK_2K_MODE_LSB                                                9
+#define RX_REO_QUEUE_CHK_2K_MODE_MSB                                                9
+#define RX_REO_QUEUE_CHK_2K_MODE_MASK                                               0x00000200
+
+
+/* Description		OOR_MODE
+
+			Out of Order mode:
+			Indicates what type of operation is expected when the received
+			 frame falls within the OOR window.
+			
+			See REO MLD document for programming details.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_OOR_MODE_OFFSET                                                0x00000008
+#define RX_REO_QUEUE_OOR_MODE_LSB                                                   10
+#define RX_REO_QUEUE_OOR_MODE_MSB                                                   10
+#define RX_REO_QUEUE_OOR_MODE_MASK                                                  0x00000400
+
+
+/* Description		BA_WINDOW_SIZE
+
+			Indicates the negotiated (window size + 1). 
+			It can go up to Max of 256bits.
+			
+			A value 255 means 256 bitmap, 63 means 64 bitmap, 0 (means
+			 non-BA session, with window size of 0). The 3 values here
+			 are the main values validated, but other values should 
+			work as well.
+			
+			A value 1023 means 1024 bitmap, 511 means 512 bitmap. The
+			 2 values here are the main values validated for 1k-bitmap
+			 support, but other values should work as well.
+			
+			A BA window size of 0 (=> one frame entry bitmap), means
+			 that there is NO RX_REO_QUEUE_EXT descriptor following 
+			this RX_REO_QUEUE STRUCT in memory
+			
+			A BA window size of 1 - 105 means that there is 1 RX_REO_QUEUE_EXT
+			 descriptor directly following this RX_REO_QUEUE STRUCT 
+			in memory.
+			
+			A BA window size of 106 - 210 means that there are 2 RX_REO_QUEUE_EXT
+			 descriptors directly following this RX_REO_QUEUE STRUCT
+			 in memory
+			
+			A BA window size of 211 - 256 means that there are 3 RX_REO_QUEUE_EXT
+			 descriptors directly following this RX_REO_QUEUE STRUCT
+			 in memory
+			
+			A BA window size of 257 - 315 means that there is one RX_REO_QUEUE_1K
+			 descriptor followed by 3 RX_REO_QUEUE_EXT descriptors directly
+			 following this RX_REO_QUEUE STRUCT in memory
+			
+			A BA window size of 316 - 420 means that there is one RX_REO_QUEUE_1K
+			 descriptor followed by 4 RX_REO_QUEUE_EXT descriptors directly
+			 following this RX_REO_QUEUE STRUCT in memory
+			...
+			A BA window size of 946 - 1024 means that there is one RX_REO_QUEUE_1K
+			 descriptor followed by 10 RX_REO_QUEUE_EXT descriptors 
+			directly following this RX_REO_QUEUE STRUCT in memory
+			
+			TODO: Should the above text use '255' and '1023' instead
+			 of '256' and '1024'?
+			<legal 0 - 1023>
+*/
+
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_OFFSET                                          0x00000008
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_LSB                                             11
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_MSB                                             20
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_MASK                                            0x001ff800
+
+
+/* Description		PN_CHECK_NEEDED
+
+			When set, REO shall perform the PN increment check
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_OFFSET                                         0x00000008
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_LSB                                            21
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_MSB                                            21
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_MASK                                           0x00200000
+
+
+/* Description		PN_SHALL_BE_EVEN
+
+			Field only valid when 'pn_check_needed' is set.
+			
+			When set, REO shall confirm that the received PN number 
+			is not only incremented, but also always an even number
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_OFFSET                                        0x00000008
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_LSB                                           22
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_MSB                                           22
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_MASK                                          0x00400000
+
+
+/* Description		PN_SHALL_BE_UNEVEN
+
+			Field only valid when 'pn_check_needed' is set.
+			
+			When set, REO shall confirm that the received PN number 
+			is not only incremented, but also always an uneven number
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_OFFSET                                      0x00000008
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_LSB                                         23
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MSB                                         23
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MASK                                        0x00800000
+
+
+/* Description		PN_HANDLING_ENABLE
+
+			Field only valid when 'pn_check_needed' is set.
+			
+			When set, and REO detected a PN error, HW shall set the 'pn_error_detected_flag'.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_OFFSET                                      0x00000008
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_LSB                                         24
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_MSB                                         24
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_MASK                                        0x01000000
+
+
+/* Description		PN_SIZE
+
+			Size of the PN field check.
+			Needed for wrap around handling...
+			
+			<enum 0     pn_size_24>
+			<enum 1     pn_size_48>
+			<enum 2     pn_size_128>
+			
+			<legal 0-2>
+*/
+
+#define RX_REO_QUEUE_PN_SIZE_OFFSET                                                 0x00000008
+#define RX_REO_QUEUE_PN_SIZE_LSB                                                    25
+#define RX_REO_QUEUE_PN_SIZE_MSB                                                    26
+#define RX_REO_QUEUE_PN_SIZE_MASK                                                   0x06000000
+
+
+/* Description		IGNORE_AMPDU_FLAG
+
+			When set, REO shall ignore the ampdu_flag on the entrance
+			 descriptor for this queue.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_OFFSET                                       0x00000008
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_LSB                                          27
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MSB                                          27
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MASK                                         0x08000000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_2B_OFFSET                                             0x00000008
+#define RX_REO_QUEUE_RESERVED_2B_LSB                                                28
+#define RX_REO_QUEUE_RESERVED_2B_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_2B_MASK                                               0xf0000000
+
+
+/* Description		SVLD
+
+			Sequence number in next field is valid one. It can be filled
+			 by SW if the want to fill in the any negotiated SSN, otherwise
+			 REO will fill the sequence number of first received packet
+			 and set this bit to 1.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_SVLD_OFFSET                                                    0x0000000c
+#define RX_REO_QUEUE_SVLD_LSB                                                       0
+#define RX_REO_QUEUE_SVLD_MSB                                                       0
+#define RX_REO_QUEUE_SVLD_MASK                                                      0x00000001
+
+
+/* Description		SSN
+
+			Starting Sequence number of the session, this changes whenever
+			 window moves. (can be filled by SW then maintained by REO)
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_SSN_OFFSET                                                     0x0000000c
+#define RX_REO_QUEUE_SSN_LSB                                                        1
+#define RX_REO_QUEUE_SSN_MSB                                                        12
+#define RX_REO_QUEUE_SSN_MASK                                                       0x00001ffe
+
+
+/* Description		CURRENT_INDEX
+
+			Points to last forwarded packet
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_CURRENT_INDEX_OFFSET                                           0x0000000c
+#define RX_REO_QUEUE_CURRENT_INDEX_LSB                                              13
+#define RX_REO_QUEUE_CURRENT_INDEX_MSB                                              22
+#define RX_REO_QUEUE_CURRENT_INDEX_MASK                                             0x007fe000
+
+
+/* Description		SEQ_2K_ERROR_DETECTED_FLAG
+
+			Set by REO, can only be cleared by SW
+			
+			When set, REO has detected a 2k error jump in the sequence
+			 number and from that moment forward, all new frames are
+			 forwarded directly to FW, without duplicate detect, reordering, 
+			etc.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET                              0x0000000c
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_LSB                                 23
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MSB                                 23
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MASK                                0x00800000
+
+
+/* Description		PN_ERROR_DETECTED_FLAG
+
+			Set by REO, can only be cleared by SW
+			
+			When set, REO has detected a PN error and from that moment
+			 forward, all new frames are forwarded directly to FW, without
+			 duplicate detect, reordering, etc.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_OFFSET                                  0x0000000c
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_LSB                                     24
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MSB                                     24
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MASK                                    0x01000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_3A_OFFSET                                             0x0000000c
+#define RX_REO_QUEUE_RESERVED_3A_LSB                                                25
+#define RX_REO_QUEUE_RESERVED_3A_MSB                                                30
+#define RX_REO_QUEUE_RESERVED_3A_MASK                                               0x7e000000
+
+
+/* Description		PN_VALID
+
+			PN number in next fields are valid. It can be filled by 
+			SW if it wants to fill in the any negotiated SSN, otherwise
+			 REO will fill the pn based on the first received packet
+			 and set this bit to 1.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_VALID_OFFSET                                                0x0000000c
+#define RX_REO_QUEUE_PN_VALID_LSB                                                   31
+#define RX_REO_QUEUE_PN_VALID_MSB                                                   31
+#define RX_REO_QUEUE_PN_VALID_MASK                                                  0x80000000
+
+
+/* Description		PN_31_0
+
+			Bits [31:0] of the PN number extracted from the IV field
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_31_0_OFFSET                                                 0x00000010
+#define RX_REO_QUEUE_PN_31_0_LSB                                                    0
+#define RX_REO_QUEUE_PN_31_0_MSB                                                    31
+#define RX_REO_QUEUE_PN_31_0_MASK                                                   0xffffffff
+
+
+/* Description		PN_63_32
+
+			Bits [63:32] of the PN number.  
+			<legal all> 
+*/
+
+#define RX_REO_QUEUE_PN_63_32_OFFSET                                                0x00000014
+#define RX_REO_QUEUE_PN_63_32_LSB                                                   0
+#define RX_REO_QUEUE_PN_63_32_MSB                                                   31
+#define RX_REO_QUEUE_PN_63_32_MASK                                                  0xffffffff
+
+
+/* Description		PN_95_64
+
+			Bits [95:64] of the PN number.  
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_95_64_OFFSET                                                0x00000018
+#define RX_REO_QUEUE_PN_95_64_LSB                                                   0
+#define RX_REO_QUEUE_PN_95_64_MSB                                                   31
+#define RX_REO_QUEUE_PN_95_64_MASK                                                  0xffffffff
+
+
+/* Description		PN_127_96
+
+			Bits [127:96] of the PN number.  
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PN_127_96_OFFSET                                               0x0000001c
+#define RX_REO_QUEUE_PN_127_96_LSB                                                  0
+#define RX_REO_QUEUE_PN_127_96_MSB                                                  31
+#define RX_REO_QUEUE_PN_127_96_MASK                                                 0xffffffff
+
+
+/* Description		LAST_RX_ENQUEUE_TIMESTAMP
+
+			This timestamp is updated when an MPDU is received and accesses
+			 this Queue Descriptor. It does not include the access due
+			 to Command TLVs or Aging (which will be updated in Last_rx_dequeue_timestamp).
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET                               0x00000020
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_LSB                                  0
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_MSB                                  31
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_MASK                                 0xffffffff
+
+
+/* Description		LAST_RX_DEQUEUE_TIMESTAMP
+
+			This timestamp is used for Aging. When an MPDU or multiple
+			 MPDUs are forwarded, either due to window movement, bar, 
+			aging or command flush, this timestamp is updated. Also 
+			when the bitmap is all zero and the first time an MPDU is
+			 queued (opcode=QCUR), this timestamp is updated for aging.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET                               0x00000024
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_LSB                                  0
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_MSB                                  31
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_MASK                                 0xffffffff
+
+
+/* Description		PTR_TO_NEXT_AGING_QUEUE_31_0
+
+			Address  (address bits 31-0)of next RX_REO_QUEUE descriptor
+			 in the 'receive timestamp' ordered list.
+			From it the Position of this queue descriptor in the per
+			 AC aging waitlist  can be derived.
+			Value 0x0 indicates the 'NULL' pointer which implies that
+			 this is the last entry in the list.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_OFFSET                            0x00000028
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_LSB                               0
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_MSB                               31
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_MASK                              0xffffffff
+
+
+/* Description		PTR_TO_NEXT_AGING_QUEUE_39_32
+
+			Address  (address bits 39-32)of next RX_REO_QUEUE descriptor
+			 in the 'receive timestamp' ordered list.
+			From it the Position of this queue descriptor in the per
+			 AC aging waitlist  can be derived.
+			Value 0x0 indicates the 'NULL' pointer which implies that
+			 this is the last entry in the list.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_OFFSET                           0x0000002c
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_LSB                              0
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_MSB                              7
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_MASK                             0x000000ff
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_11A_OFFSET                                            0x0000002c
+#define RX_REO_QUEUE_RESERVED_11A_LSB                                               8
+#define RX_REO_QUEUE_RESERVED_11A_MSB                                               31
+#define RX_REO_QUEUE_RESERVED_11A_MASK                                              0xffffff00
+
+
+/* Description		PTR_TO_PREVIOUS_AGING_QUEUE_31_0
+
+			Address  (address bits 31-0)of next RX_REO_QUEUE descriptor
+			 in the 'receive timestamp' ordered list.
+			From it the Position of this queue descriptor in the per
+			 AC aging waitlist  can be derived.
+			Value 0x0 indicates the 'NULL' pointer which implies that
+			 this is the first entry in the list.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_OFFSET                        0x00000030
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_LSB                           0
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_MSB                           31
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_MASK                          0xffffffff
+
+
+/* Description		PTR_TO_PREVIOUS_AGING_QUEUE_39_32
+
+			Address  (address bits 39-32)of next RX_REO_QUEUE descriptor
+			 in the 'receive timestamp' ordered list.
+			From it the Position of this queue descriptor in the per
+			 AC aging waitlist  can be derived.
+			Value 0x0 indicates the 'NULL' pointer which implies that
+			 this is the first entry in the list.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_OFFSET                       0x00000034
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_LSB                          0
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_MSB                          7
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_MASK                         0x000000ff
+
+
+/* Description		STATISTICS_COUNTER_INDEX
+
+			This is used to select one of the REO register sets for 
+			tracking statistics—MSDU count and MSDU byte count in 
+			Waikiki (Not supported in Hamilton).
+			
+			Usually all the queues pertaining to one virtual device 
+			use one statistics register set, and each virtual device
+			 maps to a different set in case of not too many virtual
+			 devices.
+			<legal 0-47>
+*/
+
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_OFFSET                                0x00000034
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_LSB                                   8
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_MSB                                   13
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_MASK                                  0x00003f00
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_13A_OFFSET                                            0x00000034
+#define RX_REO_QUEUE_RESERVED_13A_LSB                                               14
+#define RX_REO_QUEUE_RESERVED_13A_MSB                                               31
+#define RX_REO_QUEUE_RESERVED_13A_MASK                                              0xffffc000
+
+
+/* Description		RX_BITMAP_31_0
+
+			When a bit is set, the corresponding frame is currently 
+			held in the re-order queue.
+			The bitmap  is Fully managed by HW. 
+			SW shall init this to 0, and then never ever change it
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_31_0_OFFSET                                          0x00000038
+#define RX_REO_QUEUE_RX_BITMAP_31_0_LSB                                             0
+#define RX_REO_QUEUE_RX_BITMAP_31_0_MSB                                             31
+#define RX_REO_QUEUE_RX_BITMAP_31_0_MASK                                            0xffffffff
+
+
+/* Description		RX_BITMAP_63_32
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_63_32_OFFSET                                         0x0000003c
+#define RX_REO_QUEUE_RX_BITMAP_63_32_LSB                                            0
+#define RX_REO_QUEUE_RX_BITMAP_63_32_MSB                                            31
+#define RX_REO_QUEUE_RX_BITMAP_63_32_MASK                                           0xffffffff
+
+
+/* Description		RX_BITMAP_95_64
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_95_64_OFFSET                                         0x00000040
+#define RX_REO_QUEUE_RX_BITMAP_95_64_LSB                                            0
+#define RX_REO_QUEUE_RX_BITMAP_95_64_MSB                                            31
+#define RX_REO_QUEUE_RX_BITMAP_95_64_MASK                                           0xffffffff
+
+
+/* Description		RX_BITMAP_127_96
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_127_96_OFFSET                                        0x00000044
+#define RX_REO_QUEUE_RX_BITMAP_127_96_LSB                                           0
+#define RX_REO_QUEUE_RX_BITMAP_127_96_MSB                                           31
+#define RX_REO_QUEUE_RX_BITMAP_127_96_MASK                                          0xffffffff
+
+
+/* Description		RX_BITMAP_159_128
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_159_128_OFFSET                                       0x00000048
+#define RX_REO_QUEUE_RX_BITMAP_159_128_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_159_128_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_159_128_MASK                                         0xffffffff
+
+
+/* Description		RX_BITMAP_191_160
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_191_160_OFFSET                                       0x0000004c
+#define RX_REO_QUEUE_RX_BITMAP_191_160_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_191_160_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_191_160_MASK                                         0xffffffff
+
+
+/* Description		RX_BITMAP_223_192
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_223_192_OFFSET                                       0x00000050
+#define RX_REO_QUEUE_RX_BITMAP_223_192_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_223_192_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_223_192_MASK                                         0xffffffff
+
+
+/* Description		RX_BITMAP_255_224
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_255_224_OFFSET                                       0x00000054
+#define RX_REO_QUEUE_RX_BITMAP_255_224_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_255_224_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_255_224_MASK                                         0xffffffff
+
+
+/* Description		RX_BITMAP_287_256
+
+			See Rx_bitmap_31_0 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_RX_BITMAP_287_256_OFFSET                                       0x00000058
+#define RX_REO_QUEUE_RX_BITMAP_287_256_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_287_256_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_287_256_MASK                                         0xffffffff
+
+
+/* Description		CURRENT_MPDU_COUNT
+
+			The number of MPDUs in the queue.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_OFFSET                                      0x0000005c
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_LSB                                         0
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_MSB                                         6
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_MASK                                        0x0000007f
+
+
+/* Description		CURRENT_MSDU_COUNT
+
+			The number of MSDUs in the queue.
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_OFFSET                                      0x0000005c
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_LSB                                         7
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_MSB                                         31
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_MASK                                        0xffffff80
+
+
+/* Description		LAST_SN_REG_INDEX
+
+			REO has registers to save the last SN seen in up to 9 REO
+			 queues, to support "leaky APs."
+			
+			This field gives the register number to use for saving the
+			 last SN of this REO queue.
+			<legal 0-8>
+*/
+
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_OFFSET                                       0x00000060
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_LSB                                          0
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_MSB                                          3
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_MASK                                         0x0000000f
+
+
+/* Description		TIMEOUT_COUNT
+
+			The number of times that REO started forwarding frames even
+			 though there is a hole in the bitmap. Forwarding reason
+			 is Timeout
+			
+			The counter saturates and freezes at 0x3F
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_TIMEOUT_COUNT_OFFSET                                           0x00000060
+#define RX_REO_QUEUE_TIMEOUT_COUNT_LSB                                              4
+#define RX_REO_QUEUE_TIMEOUT_COUNT_MSB                                              9
+#define RX_REO_QUEUE_TIMEOUT_COUNT_MASK                                             0x000003f0
+
+
+/* Description		FORWARD_DUE_TO_BAR_COUNT
+
+			The number of times that REO started forwarding frames even
+			 though there is a hole in the bitmap. Forwarding reason
+			 is reception of BAR frame.
+			
+			The counter saturates and freezes at 0x3F
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_OFFSET                                0x00000060
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_LSB                                   10
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_MSB                                   15
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_MASK                                  0x0000fc00
+
+
+/* Description		DUPLICATE_COUNT
+
+			The number of duplicate frames that have been detected
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_DUPLICATE_COUNT_OFFSET                                         0x00000060
+#define RX_REO_QUEUE_DUPLICATE_COUNT_LSB                                            16
+#define RX_REO_QUEUE_DUPLICATE_COUNT_MSB                                            31
+#define RX_REO_QUEUE_DUPLICATE_COUNT_MASK                                           0xffff0000
+
+
+/* Description		FRAMES_IN_ORDER_COUNT
+
+			The number of frames that have been received in order (without
+			 a hole that prevented them from being forwarded immediately)
+			
+			
+			This corresponds to the Reorder opcodes:
+			'FWDCUR' and 'FWD BUF'
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_OFFSET                                   0x00000064
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_LSB                                      0
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_MSB                                      23
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_MASK                                     0x00ffffff
+
+
+/* Description		BAR_RECEIVED_COUNT
+
+			The number of times a BAR frame is received.
+			
+			This corresponds to the Reorder opcodes with 'DROP'
+			
+			The counter saturates and freezes at 0xFF
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_OFFSET                                      0x00000064
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_LSB                                         24
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_MSB                                         31
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_MASK                                        0xff000000
+
+
+/* Description		MPDU_FRAMES_PROCESSED_COUNT
+
+			The total number of MPDU frames that have been processed
+			 by REO. 'Processing' here means that REO has received them
+			 out of the entrance ring, and retrieved the corresponding
+			 RX_REO_QUEUE Descriptor. 
+			
+			Note that this count includes duplicates, frames that later
+			 had errors, etc.
+			
+			Note that field 'Duplicate_count' indicates how many of 
+			these MPDUs were duplicates.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_OFFSET                             0x00000068
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_LSB                                0
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_MSB                                31
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_MASK                               0xffffffff
+
+
+/* Description		MSDU_FRAMES_PROCESSED_COUNT
+
+			The total number of MSDU frames that have been processed
+			 by REO. 'Processing' here means that REO has received them
+			 out of the entrance ring, and retrieved the corresponding
+			 RX_REO_QUEUE Descriptor. 
+			
+			Note that this count includes duplicates, frames that later
+			 had errors, etc.
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_OFFSET                             0x0000006c
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_LSB                                0
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_MSB                                31
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_MASK                               0xffffffff
+
+
+/* Description		TOTAL_PROCESSED_BYTE_COUNT
+
+			An approximation of the number of bytes processed for this
+			 queue. 
+			'Processing' here means that REO has received them out of
+			 the entrance ring, and retrieved the corresponding RX_REO_QUEUE
+			 Descriptor. 
+			
+			Note that this count includes duplicates, frames that later
+			 had errors, etc.
+			
+			In 64 byte units
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_OFFSET                              0x00000070
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_LSB                                 0
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_MSB                                 31
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_MASK                                0xffffffff
+
+
+/* Description		LATE_RECEIVE_MPDU_COUNT
+
+			The number of MPDUs received after the window had already
+			 moved on. The 'late' sequence window is defined as (Window
+			 SSN - 256) - (Window SSN - 1)
+			
+			This corresponds with Out of order detection in duplicate
+			 detect FSM
+			
+			The counter saturates and freezes at 0xFFF
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_OFFSET                                 0x00000074
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_LSB                                    0
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_MSB                                    11
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_MASK                                   0x00000fff
+
+
+/* Description		WINDOW_JUMP_2K
+
+			The number of times the window moved more then 2K
+			
+			The counter saturates and freezes at 0xF
+			
+			(Note: field name can not start with number: previous 2k_window_jump)
+			
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_OFFSET                                          0x00000074
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_LSB                                             12
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_MSB                                             15
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_MASK                                            0x0000f000
+
+
+/* Description		HOLE_COUNT
+
+			The number of times a hole was created in the receive bitmap.
+			
+			
+			This corresponds to the Reorder opcodes with 'QCUR'
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_HOLE_COUNT_OFFSET                                              0x00000074
+#define RX_REO_QUEUE_HOLE_COUNT_LSB                                                 16
+#define RX_REO_QUEUE_HOLE_COUNT_MSB                                                 31
+#define RX_REO_QUEUE_HOLE_COUNT_MASK                                                0xffff0000
+
+
+/* Description		AGING_DROP_MPDU_COUNT
+
+			The number of holes in the bitmap that moved due to aging
+			 counter expiry
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_OFFSET                                   0x00000078
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_LSB                                      0
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_MSB                                      15
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_MASK                                     0x0000ffff
+
+
+/* Description		AGING_DROP_INTERVAL
+
+			The number of times holes got removed from the bitmap due
+			 to aging counter expiry
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_OFFSET                                     0x00000078
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_LSB                                        16
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_MSB                                        23
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_MASK                                       0x00ff0000
+
+
+/* Description		RESERVED_30
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_30_OFFSET                                             0x00000078
+#define RX_REO_QUEUE_RESERVED_30_LSB                                                24
+#define RX_REO_QUEUE_RESERVED_30_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_30_MASK                                               0xff000000
+
+
+/* Description		RESERVED_31
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_RESERVED_31_OFFSET                                             0x0000007c
+#define RX_REO_QUEUE_RESERVED_31_LSB                                                0
+#define RX_REO_QUEUE_RESERVED_31_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_31_MASK                                               0xffffffff
+
+
+
+#endif   // RX_REO_QUEUE
diff --git a/hw/qca5332/rx_reo_queue_1k.h b/hw/qca5332/rx_reo_queue_1k.h
new file mode 100644
index 0000000..0f4d5a5
--- /dev/null
+++ b/hw/qca5332/rx_reo_queue_1k.h
@@ -0,0 +1,555 @@
+
+/* 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 _RX_REO_QUEUE_1K_H_
+#define _RX_REO_QUEUE_1K_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE_1K 32
+
+
+struct rx_reo_queue_1k {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t rx_bitmap_319_288                                       : 32; // [31:0]
+             uint32_t rx_bitmap_351_320                                       : 32; // [31:0]
+             uint32_t rx_bitmap_383_352                                       : 32; // [31:0]
+             uint32_t rx_bitmap_415_384                                       : 32; // [31:0]
+             uint32_t rx_bitmap_447_416                                       : 32; // [31:0]
+             uint32_t rx_bitmap_479_448                                       : 32; // [31:0]
+             uint32_t rx_bitmap_511_480                                       : 32; // [31:0]
+             uint32_t rx_bitmap_543_512                                       : 32; // [31:0]
+             uint32_t rx_bitmap_575_544                                       : 32; // [31:0]
+             uint32_t rx_bitmap_607_576                                       : 32; // [31:0]
+             uint32_t rx_bitmap_639_608                                       : 32; // [31:0]
+             uint32_t rx_bitmap_671_640                                       : 32; // [31:0]
+             uint32_t rx_bitmap_703_672                                       : 32; // [31:0]
+             uint32_t rx_bitmap_735_704                                       : 32; // [31:0]
+             uint32_t rx_bitmap_767_736                                       : 32; // [31:0]
+             uint32_t rx_bitmap_799_768                                       : 32; // [31:0]
+             uint32_t rx_bitmap_831_800                                       : 32; // [31:0]
+             uint32_t rx_bitmap_863_832                                       : 32; // [31:0]
+             uint32_t rx_bitmap_895_864                                       : 32; // [31:0]
+             uint32_t rx_bitmap_927_896                                       : 32; // [31:0]
+             uint32_t rx_bitmap_959_928                                       : 32; // [31:0]
+             uint32_t rx_bitmap_991_960                                       : 32; // [31:0]
+             uint32_t rx_bitmap_1023_992                                      : 32; // [31:0]
+             uint32_t reserved_24                                             : 32; // [31:0]
+             uint32_t reserved_25                                             : 32; // [31:0]
+             uint32_t reserved_26                                             : 32; // [31:0]
+             uint32_t reserved_27                                             : 32; // [31:0]
+             uint32_t reserved_28                                             : 32; // [31:0]
+             uint32_t reserved_29                                             : 32; // [31:0]
+             uint32_t reserved_30                                             : 32; // [31:0]
+             uint32_t reserved_31                                             : 32; // [31:0]
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t rx_bitmap_319_288                                       : 32; // [31:0]
+             uint32_t rx_bitmap_351_320                                       : 32; // [31:0]
+             uint32_t rx_bitmap_383_352                                       : 32; // [31:0]
+             uint32_t rx_bitmap_415_384                                       : 32; // [31:0]
+             uint32_t rx_bitmap_447_416                                       : 32; // [31:0]
+             uint32_t rx_bitmap_479_448                                       : 32; // [31:0]
+             uint32_t rx_bitmap_511_480                                       : 32; // [31:0]
+             uint32_t rx_bitmap_543_512                                       : 32; // [31:0]
+             uint32_t rx_bitmap_575_544                                       : 32; // [31:0]
+             uint32_t rx_bitmap_607_576                                       : 32; // [31:0]
+             uint32_t rx_bitmap_639_608                                       : 32; // [31:0]
+             uint32_t rx_bitmap_671_640                                       : 32; // [31:0]
+             uint32_t rx_bitmap_703_672                                       : 32; // [31:0]
+             uint32_t rx_bitmap_735_704                                       : 32; // [31:0]
+             uint32_t rx_bitmap_767_736                                       : 32; // [31:0]
+             uint32_t rx_bitmap_799_768                                       : 32; // [31:0]
+             uint32_t rx_bitmap_831_800                                       : 32; // [31:0]
+             uint32_t rx_bitmap_863_832                                       : 32; // [31:0]
+             uint32_t rx_bitmap_895_864                                       : 32; // [31:0]
+             uint32_t rx_bitmap_927_896                                       : 32; // [31:0]
+             uint32_t rx_bitmap_959_928                                       : 32; // [31:0]
+             uint32_t rx_bitmap_991_960                                       : 32; // [31:0]
+             uint32_t rx_bitmap_1023_992                                      : 32; // [31:0]
+             uint32_t reserved_24                                             : 32; // [31:0]
+             uint32_t reserved_25                                             : 32; // [31:0]
+             uint32_t reserved_26                                             : 32; // [31:0]
+             uint32_t reserved_27                                             : 32; // [31:0]
+             uint32_t reserved_28                                             : 32; // [31:0]
+             uint32_t reserved_29                                             : 32; // [31:0]
+             uint32_t reserved_30                                             : 32; // [31:0]
+             uint32_t reserved_31                                             : 32; // [31:0]
+#endif
+};
+
+
+/* Description		DESCRIPTOR_HEADER
+
+			Details about which module owns this struct.
+			Note that sub field "Buffer_type" shall be set to "Receive_REO_queue_1k_descriptor"
+			
+*/
+
+
+/* Description		OWNER
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			The owner of this data structure:
+			<enum 0 WBM_owned> Buffer Manager currently owns this data
+			 structure.
+			<enum 1 SW_OR_FW_owned> Software of FW currently owns this
+			 data structure.
+			<enum 2 TQM_owned> Transmit Queue Manager currently owns
+			 this data structure.
+			<enum 3 RXDMA_owned> Receive DMA currently owns this data
+			 structure.
+			<enum 4 REO_owned> Reorder currently owns this data structure.
+			
+			<enum 5 SWITCH_owned> SWITCH currently owns this data structure.
+			
+			
+			<legal 0-5> 
+*/
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_OFFSET                              0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_LSB                                 0
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_MSB                                 3
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_MASK                                0x0000000f
+
+
+/* Description		BUFFER_TYPE
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			Field describing what contents format is of this descriptor
+			
+			
+			<enum 0 Transmit_MSDU_Link_descriptor> 
+			<enum 1 Transmit_MPDU_Link_descriptor> 
+			<enum 2 Transmit_MPDU_Queue_head_descriptor>
+			<enum 3 Transmit_MPDU_Queue_ext_descriptor>
+			<enum 4 Transmit_flow_descriptor>
+			<enum 5 Transmit_buffer> NOT TO BE USED: 
+			
+			<enum 6 Receive_MSDU_Link_descriptor>
+			<enum 7 Receive_MPDU_Link_descriptor>
+			<enum 8 Receive_REO_queue_descriptor>
+			<enum 9 Receive_REO_queue_1k_descriptor>
+			<enum 10 Receive_REO_queue_ext_descriptor>
+			
+			<enum 11 Receive_buffer>
+			
+			<enum 12 Idle_link_list_entry>
+			
+			<legal 0-12> 
+*/
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                        0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                           4
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                           7
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                          0x000000f0
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                        0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_LSB                           8
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_MSB                           31
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_MASK                          0xffffff00
+
+
+/* Description		RX_BITMAP_319_288
+
+			When a bit is set, the corresponding frame is currently 
+			held in the re-order queue.
+			The bitmap  is Fully managed by HW. 
+			SW shall init this to 0, and then never ever change it
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_351_320
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_OFFSET                                    0x00000008
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_383_352
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_OFFSET                                    0x0000000c
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_415_384
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_OFFSET                                    0x00000010
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_447_416
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_OFFSET                                    0x00000014
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_479_448
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_OFFSET                                    0x00000018
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_511_480
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_OFFSET                                    0x0000001c
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_543_512
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_OFFSET                                    0x00000020
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_575_544
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_OFFSET                                    0x00000024
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_607_576
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_OFFSET                                    0x00000028
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_639_608
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_OFFSET                                    0x0000002c
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_671_640
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_OFFSET                                    0x00000030
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_703_672
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_OFFSET                                    0x00000034
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_735_704
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_OFFSET                                    0x00000038
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_767_736
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_OFFSET                                    0x0000003c
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_799_768
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_OFFSET                                    0x00000040
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_831_800
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_OFFSET                                    0x00000044
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_863_832
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_OFFSET                                    0x00000048
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_895_864
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_OFFSET                                    0x0000004c
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_927_896
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_OFFSET                                    0x00000050
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_959_928
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_OFFSET                                    0x00000054
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_991_960
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_OFFSET                                    0x00000058
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_MASK                                      0xffffffff
+
+
+/* Description		RX_BITMAP_1023_992
+
+			See Rx_bitmap_319_288 description
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_OFFSET                                   0x0000005c
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_LSB                                      0
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_MSB                                      31
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_MASK                                     0xffffffff
+
+
+/* Description		RESERVED_24
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_24_OFFSET                                          0x00000060
+#define RX_REO_QUEUE_1K_RESERVED_24_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_24_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_24_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_25
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_25_OFFSET                                          0x00000064
+#define RX_REO_QUEUE_1K_RESERVED_25_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_25_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_25_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_26
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_26_OFFSET                                          0x00000068
+#define RX_REO_QUEUE_1K_RESERVED_26_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_26_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_26_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_27
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_27_OFFSET                                          0x0000006c
+#define RX_REO_QUEUE_1K_RESERVED_27_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_27_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_27_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_28
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_28_OFFSET                                          0x00000070
+#define RX_REO_QUEUE_1K_RESERVED_28_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_28_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_28_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_29
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_29_OFFSET                                          0x00000074
+#define RX_REO_QUEUE_1K_RESERVED_29_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_29_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_29_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_30
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_30_OFFSET                                          0x00000078
+#define RX_REO_QUEUE_1K_RESERVED_30_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_30_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_30_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_31
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_1K_RESERVED_31_OFFSET                                          0x0000007c
+#define RX_REO_QUEUE_1K_RESERVED_31_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_31_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_31_MASK                                            0xffffffff
+
+
+
+#endif   // RX_REO_QUEUE_1K
diff --git a/hw/qca5332/rx_reo_queue_ext.h b/hw/qca5332/rx_reo_queue_ext.h
new file mode 100644
index 0000000..454d0e0
--- /dev/null
+++ b/hw/qca5332/rx_reo_queue_ext.h
@@ -0,0 +1,2435 @@
+
+/* 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 _RX_REO_QUEUE_EXT_H_
+#define _RX_REO_QUEUE_EXT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_link_ptr.h"
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE_EXT 32
+
+
+struct rx_reo_queue_ext {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1a                                             : 32; // [31:0]
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_0;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_1;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_2;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_3;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_4;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_5;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_6;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_7;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_8;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_9;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_10;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_11;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_12;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_13;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_14;
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1a                                             : 32; // [31:0]
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_0;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_1;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_2;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_3;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_4;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_5;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_6;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_7;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_8;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_9;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_10;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_11;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_12;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_13;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_14;
+#endif
+};
+
+
+/* Description		DESCRIPTOR_HEADER
+
+			Details about which module owns this struct.
+			Note that sub field "Buffer_type" shall be set to "Receive_REO_queue_ext_descriptor"
+			
+*/
+
+
+/* Description		OWNER
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			The owner of this data structure:
+			<enum 0 WBM_owned> Buffer Manager currently owns this data
+			 structure.
+			<enum 1 SW_OR_FW_owned> Software of FW currently owns this
+			 data structure.
+			<enum 2 TQM_owned> Transmit Queue Manager currently owns
+			 this data structure.
+			<enum 3 RXDMA_owned> Receive DMA currently owns this data
+			 structure.
+			<enum 4 REO_owned> Reorder currently owns this data structure.
+			
+			<enum 5 SWITCH_owned> SWITCH currently owns this data structure.
+			
+			
+			<legal 0-5> 
+*/
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_OFFSET                             0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_LSB                                0
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_MSB                                3
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_MASK                               0x0000000f
+
+
+/* Description		BUFFER_TYPE
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			Field describing what contents format is of this descriptor
+			
+			
+			<enum 0 Transmit_MSDU_Link_descriptor> 
+			<enum 1 Transmit_MPDU_Link_descriptor> 
+			<enum 2 Transmit_MPDU_Queue_head_descriptor>
+			<enum 3 Transmit_MPDU_Queue_ext_descriptor>
+			<enum 4 Transmit_flow_descriptor>
+			<enum 5 Transmit_buffer> NOT TO BE USED: 
+			
+			<enum 6 Receive_MSDU_Link_descriptor>
+			<enum 7 Receive_MPDU_Link_descriptor>
+			<enum 8 Receive_REO_queue_descriptor>
+			<enum 9 Receive_REO_queue_1k_descriptor>
+			<enum 10 Receive_REO_queue_ext_descriptor>
+			
+			<enum 11 Receive_buffer>
+			
+			<enum 12 Idle_link_list_entry>
+			
+			<legal 0-12> 
+*/
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                       0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                          4
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                          7
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                         0x000000f0
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                       0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_LSB                          8
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_MSB                          31
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_MASK                         0xffffff00
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_EXT_RESERVED_1A_OFFSET                                         0x00000004
+#define RX_REO_QUEUE_EXT_RESERVED_1A_LSB                                            0
+#define RX_REO_QUEUE_EXT_RESERVED_1A_MSB                                            31
+#define RX_REO_QUEUE_EXT_RESERVED_1A_MASK                                           0xffffffff
+
+
+/* Description		MPDU_LINK_POINTER_0
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000008
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_1
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000010
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_2
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000018
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_3
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000020
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_4
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000028
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_5
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000030
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_6
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000038
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_7
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000040
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_8
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000048
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_9
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000050
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_10
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000058
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_11
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000060
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_12
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000068
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_13
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000070
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		MPDU_LINK_POINTER_14
+
+			Consumer: REO
+			Producer: REO
+			
+			Pointer to the next MPDU_link descriptor in the MPDU queue
+			
+*/
+
+
+/* Description		MPDU_LINK_DESC_ADDR_INFO
+
+			Details of the physical address of an MPDU link descriptor
+			
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000078
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+
+#endif   // RX_REO_QUEUE_EXT
diff --git a/hw/qca5332/rx_reo_queue_reference.h b/hw/qca5332/rx_reo_queue_reference.h
new file mode 100644
index 0000000..6d27e61
--- /dev/null
+++ b/hw/qca5332/rx_reo_queue_reference.h
@@ -0,0 +1,105 @@
+
+/* 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 _RX_REO_QUEUE_REFERENCE_H_
+#define _RX_REO_QUEUE_REFERENCE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_REO_QUEUE_REFERENCE 2
+
+
+struct rx_reo_queue_reference {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8, // [7:0]
+                      reserved_1                                              :  8, // [15:8]
+                      receive_queue_number                                    : 16; // [31:16]
+#else
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32; // [31:0]
+             uint32_t receive_queue_number                                    : 16, // [31:16]
+                      reserved_1                                              :  8, // [15:8]
+                      rx_reo_queue_desc_addr_39_32                            :  8; // [7:0]
+#endif
+};
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_31_0
+
+			Consumer: RXDMA
+			Producer: RXOLE
+			
+			Address (lower 32 bits) of the REO queue descriptor. 
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                   0x00000000
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                      0
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                      31
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                     0xffffffff
+
+
+/* Description		RX_REO_QUEUE_DESC_ADDR_39_32
+
+			Consumer: RXDMA
+			Producer: RXOLE
+			
+			Address (upper 8 bits) of the REO queue descriptor. 
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                  0x00000004
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                     0
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                     7
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                    0x000000ff
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_LSB                                       8
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_MSB                                       15
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_MASK                                      0x0000ff00
+
+
+/* Description		RECEIVE_QUEUE_NUMBER
+
+			Indicates the MPDU queue ID to which this MPDU link descriptor
+			 belongs
+			Used for tracking and debugging
+			<legal all>
+*/
+
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_OFFSET                          0x00000004
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_LSB                             16
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_MSB                             31
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_MASK                            0xffff0000
+
+
+
+#endif   // RX_REO_QUEUE_REFERENCE
diff --git a/hw/qca5332/rx_response_required_info.h b/hw/qca5332/rx_response_required_info.h
new file mode 100644
index 0000000..452c096
--- /dev/null
+++ b/hw/qca5332/rx_response_required_info.h
@@ -0,0 +1,2112 @@
+
+/* 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 _RX_RESPONSE_REQUIRED_INFO_H_
+#define _RX_RESPONSE_REQUIRED_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "mlo_sta_id_details.h"
+#define NUM_OF_DWORDS_RX_RESPONSE_REQUIRED_INFO 16
+
+#define NUM_OF_QWORDS_RX_RESPONSE_REQUIRED_INFO 8
+
+
+struct rx_response_required_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      su_or_uplink_mu_reception                               :  1, // [16:16]
+                      trigger_frame_received                                  :  1, // [17:17]
+                      ftm_tm                                                  :  2, // [19:18]
+                      tb_ranging_response_required                            :  2, // [21:20]
+                      mac_security                                            :  1, // [22:22]
+                      filter_pass_monitor_ovrd                                :  1, // [23:23]
+                      ast_search_incomplete                                   :  1, // [24:24]
+                      r2r_end_status_to_follow                                :  1, // [25:25]
+                      reserved_0a                                             :  2, // [27:26]
+                      three_or_more_type_subtypes                             :  1, // [28:28]
+                      wait_sifs_config_valid                                  :  1, // [29:29]
+                      wait_sifs                                               :  2; // [31:30]
+             uint32_t general_frame_control                                   : 16, // [15:0]
+                      second_frame_control                                    : 16; // [31:16]
+             uint32_t duration                                                : 16, // [15:0]
+                      pkt_type                                                :  4, // [19:16]
+                      dot11ax_su_extended                                     :  1, // [20:20]
+                      rate_mcs                                                :  4, // [24:21]
+                      sgi                                                     :  2, // [26:25]
+                      stbc                                                    :  1, // [27:27]
+                      ldpc                                                    :  1, // [28:28]
+                      ampdu                                                   :  1, // [29:29]
+                      vht_ack                                                 :  1, // [30:30]
+                      rts_ta_grp_bit                                          :  1; // [31:31]
+             uint32_t ctrl_frame_soliciting_resp                              :  1, // [0:0]
+                      ast_fail_for_dot11ax_su_ext                             :  1, // [1:1]
+                      service_dynamic                                         :  1, // [2:2]
+                      m_pkt                                                   :  1, // [3:3]
+                      sta_partial_aid                                         : 12, // [15:4]
+                      group_id                                                :  6, // [21:16]
+                      ctrl_resp_pwr_mgmt                                      :  1, // [22:22]
+                      response_indication                                     :  2, // [24:23]
+                      ndp_indication                                          :  1, // [25:25]
+                      ndp_frame_type                                          :  3, // [28:26]
+                      second_frame_control_valid                              :  1, // [29:29]
+                      reserved_3a                                             :  2; // [31:30]
+             uint32_t ack_id                                                  : 16, // [15:0]
+                      ack_id_ext                                              : 10, // [25:16]
+                      agc_cbw                                                 :  3, // [28:26]
+                      service_cbw                                             :  3; // [31:29]
+             uint32_t response_sta_count                                      :  7, // [6:0]
+                      reserved                                                :  4, // [10:7]
+                      ht_vht_sig_cbw                                          :  3, // [13:11]
+                      cts_cbw                                                 :  3, // [16:14]
+                      response_ack_count                                      :  7, // [23:17]
+                      response_assoc_ack_count                                :  7, // [30:24]
+                      txop_duration_all_ones                                  :  1; // [31:31]
+             uint32_t response_ba32_count                                     :  7, // [6:0]
+                      response_ba64_count                                     :  7, // [13:7]
+                      response_ba128_count                                    :  7, // [20:14]
+                      response_ba256_count                                    :  7, // [27:21]
+                      multi_tid                                               :  1, // [28:28]
+                      sw_response_tlv_from_crypto                             :  1, // [29:29]
+                      dot11ax_dl_ul_flag                                      :  1, // [30:30]
+                      reserved_6a                                             :  1; // [31:31]
+             uint32_t sw_response_frame_length                                : 16, // [15:0]
+                      response_ba512_count                                    :  7, // [22:16]
+                      response_ba1024_count                                   :  7, // [29:23]
+                      reserved_7a                                             :  2; // [31:30]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr1_47_32                                             : 16, // [15:0]
+                      addr2_15_0                                              : 16; // [31:16]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t dot11ax_received_format_indication                      :  1, // [0:0]
+                      dot11ax_received_dl_ul_flag                             :  1, // [1:1]
+                      dot11ax_received_bss_color_id                           :  6, // [7:2]
+                      dot11ax_received_spatial_reuse                          :  4, // [11:8]
+                      dot11ax_received_cp_size                                :  2, // [13:12]
+                      dot11ax_received_ltf_size                               :  2, // [15:14]
+                      dot11ax_received_coding                                 :  1, // [16:16]
+                      dot11ax_received_dcm                                    :  1, // [17:17]
+                      dot11ax_received_doppler_indication                     :  1, // [18:18]
+                      dot11ax_received_ext_ru_size                            :  4, // [22:19]
+                      ftm_fields_valid                                        :  1, // [23:23]
+                      ftm_pe_nss                                              :  3, // [26:24]
+                      ftm_pe_ltf_size                                         :  2, // [28:27]
+                      ftm_pe_content                                          :  1, // [29:29]
+                      ftm_chain_csd_en                                        :  1, // [30:30]
+                      ftm_pe_chain_csd_en                                     :  1; // [31:31]
+             uint32_t dot11ax_response_rate_source                            :  8, // [7:0]
+                      dot11ax_ext_response_rate_source                        :  8, // [15:8]
+                      sw_peer_id                                              : 16; // [31:16]
+             uint32_t dot11be_puncture_bitmap                                 : 16, // [15:0]
+                      dot11be_response                                        :  1, // [16:16]
+                      punctured_response                                      :  1, // [17:17]
+                      eht_duplicate_mode                                      :  2, // [19:18]
+                      force_extra_symbol                                      :  1, // [20:20]
+                      reserved_13a                                            :  5, // [25:21]
+                      u_sig_puncture_pattern_encoding                         :  6; // [31:26]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint16_t he_a_control_response_time                              : 12, // [27:16]
+                      reserved_after_struct16                                 :  4; // [31:28]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t wait_sifs                                               :  2, // [31:30]
+                      wait_sifs_config_valid                                  :  1, // [29:29]
+                      three_or_more_type_subtypes                             :  1, // [28:28]
+                      reserved_0a                                             :  2, // [27:26]
+                      r2r_end_status_to_follow                                :  1, // [25:25]
+                      ast_search_incomplete                                   :  1, // [24:24]
+                      filter_pass_monitor_ovrd                                :  1, // [23:23]
+                      mac_security                                            :  1, // [22:22]
+                      tb_ranging_response_required                            :  2, // [21:20]
+                      ftm_tm                                                  :  2, // [19:18]
+                      trigger_frame_received                                  :  1, // [17:17]
+                      su_or_uplink_mu_reception                               :  1, // [16:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+             uint32_t second_frame_control                                    : 16, // [31:16]
+                      general_frame_control                                   : 16; // [15:0]
+             uint32_t rts_ta_grp_bit                                          :  1, // [31:31]
+                      vht_ack                                                 :  1, // [30:30]
+                      ampdu                                                   :  1, // [29:29]
+                      ldpc                                                    :  1, // [28:28]
+                      stbc                                                    :  1, // [27:27]
+                      sgi                                                     :  2, // [26:25]
+                      rate_mcs                                                :  4, // [24:21]
+                      dot11ax_su_extended                                     :  1, // [20:20]
+                      pkt_type                                                :  4, // [19:16]
+                      duration                                                : 16; // [15:0]
+             uint32_t reserved_3a                                             :  2, // [31:30]
+                      second_frame_control_valid                              :  1, // [29:29]
+                      ndp_frame_type                                          :  3, // [28:26]
+                      ndp_indication                                          :  1, // [25:25]
+                      response_indication                                     :  2, // [24:23]
+                      ctrl_resp_pwr_mgmt                                      :  1, // [22:22]
+                      group_id                                                :  6, // [21:16]
+                      sta_partial_aid                                         : 12, // [15:4]
+                      m_pkt                                                   :  1, // [3:3]
+                      service_dynamic                                         :  1, // [2:2]
+                      ast_fail_for_dot11ax_su_ext                             :  1, // [1:1]
+                      ctrl_frame_soliciting_resp                              :  1; // [0:0]
+             uint32_t service_cbw                                             :  3, // [31:29]
+                      agc_cbw                                                 :  3, // [28:26]
+                      ack_id_ext                                              : 10, // [25:16]
+                      ack_id                                                  : 16; // [15:0]
+             uint32_t txop_duration_all_ones                                  :  1, // [31:31]
+                      response_assoc_ack_count                                :  7, // [30:24]
+                      response_ack_count                                      :  7, // [23:17]
+                      cts_cbw                                                 :  3, // [16:14]
+                      ht_vht_sig_cbw                                          :  3, // [13:11]
+                      reserved                                                :  4, // [10:7]
+                      response_sta_count                                      :  7; // [6:0]
+             uint32_t reserved_6a                                             :  1, // [31:31]
+                      dot11ax_dl_ul_flag                                      :  1, // [30:30]
+                      sw_response_tlv_from_crypto                             :  1, // [29:29]
+                      multi_tid                                               :  1, // [28:28]
+                      response_ba256_count                                    :  7, // [27:21]
+                      response_ba128_count                                    :  7, // [20:14]
+                      response_ba64_count                                     :  7, // [13:7]
+                      response_ba32_count                                     :  7; // [6:0]
+             uint32_t reserved_7a                                             :  2, // [31:30]
+                      response_ba1024_count                                   :  7, // [29:23]
+                      response_ba512_count                                    :  7, // [22:16]
+                      sw_response_frame_length                                : 16; // [15:0]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr2_15_0                                              : 16, // [31:16]
+                      addr1_47_32                                             : 16; // [15:0]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t ftm_pe_chain_csd_en                                     :  1, // [31:31]
+                      ftm_chain_csd_en                                        :  1, // [30:30]
+                      ftm_pe_content                                          :  1, // [29:29]
+                      ftm_pe_ltf_size                                         :  2, // [28:27]
+                      ftm_pe_nss                                              :  3, // [26:24]
+                      ftm_fields_valid                                        :  1, // [23:23]
+                      dot11ax_received_ext_ru_size                            :  4, // [22:19]
+                      dot11ax_received_doppler_indication                     :  1, // [18:18]
+                      dot11ax_received_dcm                                    :  1, // [17:17]
+                      dot11ax_received_coding                                 :  1, // [16:16]
+                      dot11ax_received_ltf_size                               :  2, // [15:14]
+                      dot11ax_received_cp_size                                :  2, // [13:12]
+                      dot11ax_received_spatial_reuse                          :  4, // [11:8]
+                      dot11ax_received_bss_color_id                           :  6, // [7:2]
+                      dot11ax_received_dl_ul_flag                             :  1, // [1:1]
+                      dot11ax_received_format_indication                      :  1; // [0:0]
+             uint32_t sw_peer_id                                              : 16, // [31:16]
+                      dot11ax_ext_response_rate_source                        :  8, // [15:8]
+                      dot11ax_response_rate_source                            :  8; // [7:0]
+             uint32_t u_sig_puncture_pattern_encoding                         :  6, // [31:26]
+                      reserved_13a                                            :  5, // [25:21]
+                      force_extra_symbol                                      :  1, // [20:20]
+                      eht_duplicate_mode                                      :  2, // [19:18]
+                      punctured_response                                      :  1, // [17:17]
+                      dot11be_response                                        :  1, // [16:16]
+                      dot11be_puncture_bitmap                                 : 16; // [15:0]
+             uint32_t reserved_after_struct16                                 :  4, // [31:28]
+                      he_a_control_response_time                              : 12; // [27:16]
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_OFFSET                                0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_LSB                                   0
+#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MSB                                   15
+#define RX_RESPONSE_REQUIRED_INFO_PHY_PPDU_ID_MASK                                  0x000000000000ffff
+
+
+/* Description		SU_OR_UPLINK_MU_RECEPTION
+
+			<enum 0 Reception_is_SU>  This TLV is the result of an SU
+			 reception. Note that this can be regular SU reception or
+			 an SU reception as part of a downlink MU - MIMO/OFDMA transmission.
+			
+			
+			<enum 1 Reception_is_MU> This TLV is the result of an MU_OFDMA
+			 uplink reception or MU_MIMO uplink reception
+			
+			NOTE:When a STA receives a downlink MU-MIMO or DL MU_OFDMA, 
+			this field shall still be set to Reception_is_SU. From the
+			 STA perspective, it is only receiving from one other device.
+			
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_OFFSET                  0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_LSB                     16
+#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MSB                     16
+#define RX_RESPONSE_REQUIRED_INFO_SU_OR_UPLINK_MU_RECEPTION_MASK                    0x0000000000010000
+
+
+/* Description		TRIGGER_FRAME_RECEIVED
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			When set, this TLV has been sent because a trigger frame
+			 has been received.
+			
+			Note that in case there were other frames received as well
+			 that required an immediate response, like data or management
+			 frames, this will still be indicated here in this TLV with
+			 the fields "Response_..._count".
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_OFFSET                     0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_LSB                        17
+#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MSB                        17
+#define RX_RESPONSE_REQUIRED_INFO_TRIGGER_FRAME_RECEIVED_MASK                       0x0000000000020000
+
+
+/* Description		FTM_TM
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field Indicates if the response is related to receiving
+			 a TM or FTM frame
+			
+			0: no TM and no FTM frame => there is NO measurement done
+			
+			1: FTM frame
+			2: TM frame
+			3: reserved
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_OFFSET                                     0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_LSB                                        18
+#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MSB                                        19
+#define RX_RESPONSE_REQUIRED_INFO_FTM_TM_MASK                                       0x00000000000c0000
+
+
+/* Description		TB_RANGING_RESPONSE_REQUIRED
+
+			Field only valid in case of TB Ranging
+			<enum 0 No_TB_Ranging_Resp>
+			<enum 1 CTS2S_Resp_to_TF_poll > TXPCU to generate CTS-to-self
+			 in TB response
+			<enum 2 LMR_Resp_to_TF_report> TXPCU to generate LMR in 
+			TB response
+			<enum 3 NDP_Resp_to_TF_sound> DO NOT USE.
+			<legal 0-3>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET               0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB                  20
+#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB                  21
+#define RX_RESPONSE_REQUIRED_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK                 0x0000000000300000
+
+
+/* Description		MAC_SECURITY
+
+			Field only valid if TB_Ranging_response_required = LMR_Resp_to_TF_report
+			
+			
+			Indicates whether MAC security is enabled for LMR
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_OFFSET                               0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_LSB                                  22
+#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MSB                                  22
+#define RX_RESPONSE_REQUIRED_INFO_MAC_SECURITY_MASK                                 0x0000000000400000
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD
+
+			Consumer: TXMON/SW
+			Producer: RXPCU
+			
+			This indicates that the Rx MPDU passed the 'normal' frame
+			 filter programming of RXPCU and additionally the MAC address
+			 search matched an 'ADDR_SEARCH_ENTRY' of a 'Monitor_override_sta.'
+			
+			
+			When enabled in TXMON, it will discard the upstream response
+			 TLVs for cases not matching the 'Filter_pass_Monitor_ovrd' 
+			criterion.
+			
+			If RXPCU is generating this TLV before the address search
+			 is complete, it shall fill this bit based on a register
+			 configuration 'FILTER_PASS_OVRD_AST_NOT_DONE.'
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_OFFSET                   0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_LSB                      23
+#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MSB                      23
+#define RX_RESPONSE_REQUIRED_INFO_FILTER_PASS_MONITOR_OVRD_MASK                     0x0000000000800000
+
+
+/* Description		AST_SEARCH_INCOMPLETE
+
+			Consumer: SW
+			Producer: RXPCU
+			
+			If RXPCU is generating this TLV before the address search
+			 is complete, it shall set this bit. This is to indicate
+			 to SW (via TXMON) that the Filter_pass_Monitor_ovrd bit
+			 is unreliable and SW may have to add their own filtering
+			 logic.
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_OFFSET                      0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_LSB                         24
+#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MSB                         24
+#define RX_RESPONSE_REQUIRED_INFO_AST_SEARCH_INCOMPLETE_MASK                        0x0000000001000000
+
+
+/* Description		R2R_END_STATUS_TO_FOLLOW
+
+			Consumer: TXMON
+			Producer: TXPCU
+			
+			When set, TXPCU will generate an R2R frame (typically M-BA), 
+			and the 'R2R_STATUS_END' TLV.
+			
+			TXMON uses this to identify the continuation of a Tx sequence
+			 (typically including Trigger frames) with R2R Tx.
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_OFFSET                   0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_LSB                      25
+#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MSB                      25
+#define RX_RESPONSE_REQUIRED_INFO_R2R_END_STATUS_TO_FOLLOW_MASK                     0x0000000002000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_OFFSET                                0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_LSB                                   26
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MSB                                   27
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_0A_MASK                                  0x000000000c000000
+
+
+/* Description		THREE_OR_MORE_TYPE_SUBTYPES
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			When set, there are 3 or more different frame type/subtypes
+			 received that all required a response.
+			Note that the HW will only report the very first two that
+			 have been seen
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_OFFSET                0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_LSB                   28
+#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MSB                   28
+#define RX_RESPONSE_REQUIRED_INFO_THREE_OR_MORE_TYPE_SUBTYPES_MASK                  0x0000000010000000
+
+
+/* Description		WAIT_SIFS_CONFIG_VALID
+
+			When set, TXPCU shall follow the wait_sifs configuration.
+			
+			
+			Field added to be backwards compatible, and transition to
+			 the new signalling.
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET                     0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_LSB                        29
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MSB                        29
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_CONFIG_VALID_MASK                       0x0000000020000000
+
+
+/* Description		WAIT_SIFS
+
+			Indicates to the TXPCU how precise the SIFS the response
+			 timing shall be...
+			
+			The configuration for this is coming from SW programmable
+			 register in RXPCU
+			
+			<enum 0 NO_SIFS_TIMING> Transmission shall start with the
+			 normal delay in PHY after receiving this notification
+			<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made 
+			at the SIFS boundary. If shall never start before SIFS boundary, 
+			but if it a little later, it is not ideal and should be 
+			flagged, but transmission shall not be aborted.
+			<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
+			 at exactly SIFS boundary. If this notification is received
+			 by the PHY after SIFS boundary already passed, the PHY 
+			shall abort the transmission
+			<legal 0-2>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_OFFSET                                  0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_LSB                                     30
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MSB                                     31
+#define RX_RESPONSE_REQUIRED_INFO_WAIT_SIFS_MASK                                    0x00000000c0000000
+
+
+/* Description		GENERAL_FRAME_CONTROL
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			In case only a single frame is receive, this field will 
+			always contain the frame control field of the received frame.
+			
+			
+			In case multiple frames are received that require a response, 
+			and one of those frames is not a data frame, this field 
+			will always contain the frame control field of that received
+			 frame.
+			
+			In case multiple frames are received that require a response, 
+			but all have them have the same type/subtype, this field
+			 will contain the very first one of them.
+			
+			Note: In case of a BAR frame reception, the 'response_ack_...' 
+			fields will indicate for how many TIDs a BA is needed, as
+			 well as their individual sizes.
+			
+			Used by TXPCU to determine the type of response that is 
+			needed
+			
+			TODO: Look at table below for all the possible combination
+			 of frames types reported here and in the next field: Second_frame_control
+			
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_OFFSET                      0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_LSB                         32
+#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MSB                         47
+#define RX_RESPONSE_REQUIRED_INFO_GENERAL_FRAME_CONTROL_MASK                        0x0000ffff00000000
+
+
+/* Description		SECOND_FRAME_CONTROL
+
+			Field only valid when Second_frame_control_valid ==1
+			
+			In case multiple frames of different frame type/subtype 
+			are received that require a response, this field will always
+			 contain the frame control field remaining after the 'frame_control
+			 ' field has been filled in.
+			
+			NOTE: in case more then 2 different frame type/subtypes 
+			are received (which only happens if the transmitter did 
+			something wrong), only the first two frame types are reported
+			 in this and the General_frame_control field. All the other
+			 ones are ignored, but bit 'three_or_more_type_subtypes' 
+			shall be set.
+			
+			Note: In case of a BAR frame reception, the 'response_ack_...' 
+			fields will indicate for how many TIDs a BA is needed, as
+			 well as their individual sizes.
+			
+			Used by TXPCU to determine the type of response that is 
+			needed
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_OFFSET                       0x0000000000000000
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_LSB                          48
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MSB                          63
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_MASK                         0xffff000000000000
+
+
+/* Description		DURATION
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			duration field of the received frame
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DURATION_OFFSET                                   0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_DURATION_LSB                                      0
+#define RX_RESPONSE_REQUIRED_INFO_DURATION_MSB                                      15
+#define RX_RESPONSE_REQUIRED_INFO_DURATION_MASK                                     0x000000000000ffff
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			
+			Note that for MU UL reception, this field can only be set
+			 to dot11ax.
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_OFFSET                                   0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_LSB                                      16
+#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MSB                                      19
+#define RX_RESPONSE_REQUIRED_INFO_PKT_TYPE_MASK                                     0x00000000000f0000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be
+			
+			When set, the 11ax or 11be reception was an extended range
+			 SU 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_OFFSET                        0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_LSB                           20
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MSB                           20
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_SU_EXTENDED_MASK                          0x0000000000100000
+
+
+/* Description		RATE_MCS
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_OFFSET                                   0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_LSB                                      21
+#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MSB                                      24
+#define RX_RESPONSE_REQUIRED_INFO_RATE_MCS_MASK                                     0x0000000001e00000
+
+
+/* Description		SGI
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Field only valid when pkt type is HT, VHT or HE.
+			
+			Specify the right GI for HE-Ranging NDPs (11az).
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			
+			<legal 0 - 3>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SGI_OFFSET                                        0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_SGI_LSB                                           25
+#define RX_RESPONSE_REQUIRED_INFO_SGI_MSB                                           26
+#define RX_RESPONSE_REQUIRED_INFO_SGI_MASK                                          0x0000000006000000
+
+
+/* Description		STBC
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Indicate STBC
+			
+			In 11ah mode of Operation, this bit indicates the STBC bit
+			 setting in the SIG Preamble.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_STBC_OFFSET                                       0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_STBC_LSB                                          27
+#define RX_RESPONSE_REQUIRED_INFO_STBC_MSB                                          27
+#define RX_RESPONSE_REQUIRED_INFO_STBC_MASK                                         0x0000000008000000
+
+
+/* Description		LDPC
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Indicate LDPC
+			
+			In 11ah mode of Operation, this bit indicates the LDPC bit
+			 setting in the SIG Preamble.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_LDPC_OFFSET                                       0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_LDPC_LSB                                          28
+#define RX_RESPONSE_REQUIRED_INFO_LDPC_MSB                                          28
+#define RX_RESPONSE_REQUIRED_INFO_LDPC_MASK                                         0x0000000010000000
+
+
+/* Description		AMPDU
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Field indicates if the received frame was in ampdu format
+			 or not. If set, it implies the reception was 11n, aggregation, 
+			11ac or 11ax.
+			
+			Within TXPCU it is used to determine if the response will
+			 have to be BA format or not. Note that there are some exceptions
+			 where received frame was A-MPDU format, but the response
+			 will still be just an ACK frame.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_AMPDU_OFFSET                                      0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_AMPDU_LSB                                         29
+#define RX_RESPONSE_REQUIRED_INFO_AMPDU_MSB                                         29
+#define RX_RESPONSE_REQUIRED_INFO_AMPDU_MASK                                        0x0000000020000000
+
+
+/* Description		VHT_ACK
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			set when ACK is required to be generated
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_OFFSET                                    0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_LSB                                       30
+#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MSB                                       30
+#define RX_RESPONSE_REQUIRED_INFO_VHT_ACK_MASK                                      0x0000000040000000
+
+
+/* Description		RTS_TA_GRP_BIT
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			frame is rts and TA G/I bit is set
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_OFFSET                             0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_LSB                                31
+#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MSB                                31
+#define RX_RESPONSE_REQUIRED_INFO_RTS_TA_GRP_BIT_MASK                               0x0000000080000000
+
+
+/* Description		CTRL_FRAME_SOLICITING_RESP
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			frame is rts, bar or ps_poll and TA G/I bit is set
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_OFFSET                 0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_LSB                    32
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MSB                    32
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_FRAME_SOLICITING_RESP_MASK                   0x0000000100000000
+
+
+/* Description		AST_FAIL_FOR_DOT11AX_SU_EXT
+
+			Field only valid in case of
+			dot11ax_su_extended = 1
+			
+			When set, the just finished reception had address search
+			 failure (e.g. unassociated STA).
+			This field can be used to determine special response rates
+			 for those types of STAs.
+			This field shall be analyzed in combination with pkt_type
+			 and dot11ax_su_extended settings.
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_OFFSET                0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_LSB                   33
+#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MSB                   33
+#define RX_RESPONSE_REQUIRED_INFO_AST_FAIL_FOR_DOT11AX_SU_EXT_MASK                  0x0000000200000000
+
+
+/* Description		SERVICE_DYNAMIC
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Dynamic field extracted from Service field
+			
+			Reserved for 11ah. Should be populated to zero by RxPCU
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_OFFSET                            0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_LSB                               34
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MSB                               34
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_DYNAMIC_MASK                              0x0000000400000000
+
+
+/* Description		M_PKT
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Indicates that RXPCU has detected a 802.11v M packet.  The
+			 TXPCU should generate a TX_FREEZE_CAPTURE_CHANNEL message
+			 to the PHY so that the PHY will hold the current channel
+			 capture so FW can read the channel capture memory over 
+			APB.
+			Reserved for 11ah. Should be populated to zero by RxPCU
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_M_PKT_OFFSET                                      0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_M_PKT_LSB                                         35
+#define RX_RESPONSE_REQUIRED_INFO_M_PKT_MSB                                         35
+#define RX_RESPONSE_REQUIRED_INFO_M_PKT_MASK                                        0x0000000800000000
+
+
+/* Description		STA_PARTIAL_AID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Specifies the partial AID of response frames transmitted
+			 at VHT rates.
+			
+			In 11ah mode of operation, this field is used to populate
+			 the RA/partial BSSID filed in the NDP CTS response frame. 
+			Please refer to the 802.11 spec for details on the NDP CTS
+			 frame format.
+			
+			Reserved for 11ah. 
+			Should be populated to zero by RxPCU 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_OFFSET                            0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_LSB                               36
+#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MSB                               47
+#define RX_RESPONSE_REQUIRED_INFO_STA_PARTIAL_AID_MASK                              0x0000fff000000000
+
+
+/* Description		GROUP_ID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Reserved for 11ah. 
+			Should be populated to zero by RxPCU
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_OFFSET                                   0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_LSB                                      48
+#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MSB                                      53
+#define RX_RESPONSE_REQUIRED_INFO_GROUP_ID_MASK                                     0x003f000000000000
+
+
+/* Description		CTRL_RESP_PWR_MGMT
+
+			Field valid in case of both  SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			AND
+			SU_or_uplink_MU_reception = Reception_is_MU
+			
+			RX PCU passes this bit (coming from the peer entry) setting
+			 on to TX PCU, where the setting of this bit is inserted
+			 in the pwr_mgt bit in the control field of the SIFS response
+			 control frames: ACK, CTS, BA
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_OFFSET                         0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_LSB                            54
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MSB                            54
+#define RX_RESPONSE_REQUIRED_INFO_CTRL_RESP_PWR_MGMT_MASK                           0x0040000000000000
+
+
+/* Description		RESPONSE_INDICATION
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			<enum 0     no_response>
+			<enum 1     ndp_response>
+			<enum 2     normal_response>
+			<enum 3     long_response>
+			<legal  0-3>
+			
+			This field indicates the Response Indication of the received
+			 PPDU. RxPCU populates this field using the Response Indication
+			 bits extracted from the SIG in the received PPDU. 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_OFFSET                        0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_LSB                           55
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MSB                           56
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_INDICATION_MASK                          0x0180000000000000
+
+
+/* Description		NDP_INDICATION
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is valid in 11ah mode of opearation only.  In
+			 non-11ah mode, this bit is reserved and RxPCU populates
+			 this bit to Zero.
+			
+			NDP Indication bit. 
+			
+			This field is set if the received SIG has the NDP Indication
+			 bit set. 
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_OFFSET                             0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_LSB                                57
+#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MSB                                57
+#define RX_RESPONSE_REQUIRED_INFO_NDP_INDICATION_MASK                               0x0200000000000000
+
+
+/* Description		NDP_FRAME_TYPE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Include the ndp_frame_type encoding.
+			
+			This field is valid in 11ah mode of opearation only.  In
+			 non-11ah mode, this bit is reserved and RxPCU populates
+			 this bit to Zero.
+			
+			The ndp_frame_type filed form the SIG is extracted and is
+			 populated in this field by RxPCU. TxPCU can decode the 
+			NDP frame type. 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_OFFSET                             0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_LSB                                58
+#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MSB                                60
+#define RX_RESPONSE_REQUIRED_INFO_NDP_FRAME_TYPE_MASK                               0x1c00000000000000
+
+
+/* Description		SECOND_FRAME_CONTROL_VALID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			When set, the second frame control field is valid.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_OFFSET                 0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_LSB                    61
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MSB                    61
+#define RX_RESPONSE_REQUIRED_INFO_SECOND_FRAME_CONTROL_VALID_MASK                   0x2000000000000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_OFFSET                                0x0000000000000008
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_LSB                                   62
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MSB                                   63
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_3A_MASK                                  0xc000000000000000
+
+
+/* Description		ACK_ID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Indicates the  ACD_ID to be used in NDP response frames (NDP
+			 ACK and NDP Modified ACK). 
+			
+			For NDP ACK 
+			ACK_ID (16bits)= {Scrambler Initialization[0:6], FCS[23:31} 
+			  for 2MHz 
+			ACK_ID (9bits)= { Scrambler Initialization[0:6], FCS[30:31]} 
+			for 1MHz. Bits[15:9] should be filled with Zero by RxPCU
+			
+			
+			For NDP Modified ACK
+			ACK_ID (16bits)= {CRC[0:3],TA[0:8],RA[6:8]}   for 2MHz 
+			ACK_ID (9bits)= { CRC[0:3], TA[4:8]} for 1MHz; Bits[15:9] 
+			should be filled with Zero by RxPCU. 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_OFFSET                                     0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_LSB                                        0
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MSB                                        15
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_MASK                                       0x000000000000ffff
+
+
+/* Description		ACK_ID_EXT
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This is populated by RxPCU when the Duration Indication 
+			Bit is set to Zero in the Received NDP PS-Poll Frame.  
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_OFFSET                                 0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_LSB                                    16
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MSB                                    25
+#define RX_RESPONSE_REQUIRED_INFO_ACK_ID_EXT_MASK                                   0x0000000003ff0000
+
+
+/* Description		AGC_CBW
+
+			BW as detected by the AGC 
+			
+			<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 RX_RESPONSE_REQUIRED_INFO_AGC_CBW_OFFSET                                    0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_LSB                                       26
+#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MSB                                       28
+#define RX_RESPONSE_REQUIRED_INFO_AGC_CBW_MASK                                      0x000000001c000000
+
+
+/* Description		SERVICE_CBW
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field reflects the BW extracted from the Serivce Field
+			 for 11ac mode of operation and from the FC portion of the
+			 MAC header in 11ah mode of operation. This field is used
+			 in the context of Dynamic/Static BW evaluation purposes
+			 in TxPCU
+			CBW field extracted from Service field by RXPCU and populates
+			 this
+			
+			<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 RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_OFFSET                                0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_LSB                                   29
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MSB                                   31
+#define RX_RESPONSE_REQUIRED_INFO_SERVICE_CBW_MASK                                  0x00000000e0000000
+
+
+/* Description		RESPONSE_STA_COUNT
+
+			The number of STAs to which the responses need to be sent.
+			
+			
+			In case of multiple ACKs/BAs to be send, TXPCU uses this
+			 field to determine what address formatting to use for the
+			 response frame: This could be broadcast or unicast.
+			
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_OFFSET                         0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_LSB                            32
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MSB                            38
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_STA_COUNT_MASK                           0x0000007f00000000
+
+
+/* Description		RESERVED
+
+			<legal 0> 
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_OFFSET                                   0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_LSB                                      39
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_MSB                                      42
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_MASK                                     0x0000078000000000
+
+
+/* Description		HT_VHT_SIG_CBW
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Bandwidth of the received frame from either the HT-SIG or
+			 VHT-SIG-A or HE-SIG. For HT-SIG, this bandwidth can be 
+			20 MHz or 40 MHz, For VHT or HE, this bandwidth can be 20, 
+			40, 80, or 160 MHz:
+			
+			<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 RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_OFFSET                             0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_LSB                                43
+#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MSB                                45
+#define RX_RESPONSE_REQUIRED_INFO_HT_VHT_SIG_CBW_MASK                               0x0000380000000000
+
+
+/* Description		CTS_CBW
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Calculated bandwidth for the CTS response frame
+			
+			<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 RX_RESPONSE_REQUIRED_INFO_CTS_CBW_OFFSET                                    0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_LSB                                       46
+#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MSB                                       48
+#define RX_RESPONSE_REQUIRED_INFO_CTS_CBW_MASK                                      0x0001c00000000000
+
+
+/* Description		RESPONSE_ACK_COUNT
+
+			Field valid for both SU and MU reception
+			
+			ACK Count for management action frames, PS_POLL frames, 
+			single data frame and the general "ACK ALL". For this last
+			 one, a single "ACK" should be interpreted by the receiver
+			 that all transmitted frames have been properly received.
+			
+			
+			For SU:
+			Max count can be 1
+			Note that Response_ba64_count and/or Response_ba256_count
+			 can be > 0, which implies that both an ACK and BA needs
+			 to be send back.
+			
+			For MU:
+			The number of users that need an 'ACK' response.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_OFFSET                         0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_LSB                            49
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MSB                            55
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ACK_COUNT_MASK                           0x00fe000000000000
+
+
+/* Description		RESPONSE_ASSOC_ACK_COUNT
+
+			Field ONLY valid for Reception_is_MU. This count can only
+			 be set to > 0, when there were wildcards send in the trigger
+			 frame.
+			
+			ACK Count to be generated for Management frames from STAs
+			 that are not yet associated to this device. These STAs 
+			can only send this type of response when the trigger frame
+			 included some wildcards.
+			
+			Note that in the MBA frame, this "ack" has a special format, 
+			and includes more bytes then the normal "ack". For that 
+			reason TXPCU needs to be able to differentiate between the
+			 'normal acks' and these association request acks...
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_OFFSET                   0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_LSB                      56
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MSB                      62
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_ASSOC_ACK_COUNT_MASK                     0x7f00000000000000
+
+
+/* Description		TXOP_DURATION_ALL_ONES
+
+			When set, either the TXOP_DURATION of the received frame
+			 was set to all 1s or there is a BSS color collision. The
+			 TXOP_DURATION of the transmit response should be forced
+			 to all 1s.
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_OFFSET                     0x0000000000000010
+#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_LSB                        63
+#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MSB                        63
+#define RX_RESPONSE_REQUIRED_INFO_TXOP_DURATION_ALL_ONES_MASK                       0x8000000000000000
+
+
+/* Description		RESPONSE_BA32_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '32 bitmap BA' responses for this one user.
+			
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 ) > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '32 bitmap BA' responses shared between 
+			all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_OFFSET                        0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_LSB                           0
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MSB                           6
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA32_COUNT_MASK                          0x000000000000007f
+
+
+/* Description		RESPONSE_BA64_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '64 bitmap BA' responses for this one user.
+			
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 ) > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '64 bitmap BA' responses shared between 
+			all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_OFFSET                        0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_LSB                           7
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MSB                           13
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA64_COUNT_MASK                          0x0000000000003f80
+
+
+/* Description		RESPONSE_BA128_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '128 bitmap BA' responses for this one user.
+			
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 ) > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '128 bitmap BA' responses shared between
+			 all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_OFFSET                       0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_LSB                          14
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MSB                          20
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA128_COUNT_MASK                         0x00000000001fc000
+
+
+/* Description		RESPONSE_BA256_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '256 bitmap BA' responses for this one user.
+			
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 ) > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '256 bitmap BA' responses shared between
+			 all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_OFFSET                       0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_LSB                          21
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MSB                          27
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA256_COUNT_MASK                         0x000000000fe00000
+
+
+/* Description		MULTI_TID
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			When set, RXPCU has for at least one user multiple bitmaps
+			 available (which corresponds to multiple TIDs)
+			
+			Note that the sum of Response_ack_count, 
+			response_ba32_count, response_ba64_count, 
+			response_ba128_count, response_ba256_count is larger then
+			 the total number of users.
+			
+			Note: There is no restriction on TXPCU to retrieve all the
+			 bitmaps using explicit_user_request mode or not.
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_OFFSET                                  0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_LSB                                     28
+#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MSB                                     28
+#define RX_RESPONSE_REQUIRED_INFO_MULTI_TID_MASK                                    0x0000000010000000
+
+
+/* Description		SW_RESPONSE_TLV_FROM_CRYPTO
+
+			Field can only be set by MAC mitigation logic
+			
+			The idea is here that normally TXPCU generates the BA frame.
+			
+			But as a backup scenario, in case of a last moment BA format
+			 change or some other issue, the BA frame could be fully
+			 generated in the MAC micro CPU and pushed into TXPCU through
+			 the Crypto - TXPCU TLV interface.
+			This feature can be used for any response frame generation. 
+			From TXPCU perspective, all interaction with PDG remains
+			 exactly the same, accept that the frame length is now coming
+			 from field SW_Response_frame_length and the response frame
+			 is pushed into TXPCU over the CRYPTO - TXPCU TLV interface
+			
+			
+			When set, this feature kick in
+			When clear, this feature is not enabled
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET                0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB                   29
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB                   29
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK                  0x0000000020000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			DL_UL_flag to be used for response frame sent to this device.
+			
+			
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			Note: this setting can also come from response look-up table
+			 in TXPCU...
+			The selection is SW programmable
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_OFFSET                         0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_LSB                            30
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MSB                            30
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_DL_UL_FLAG_MASK                           0x0000000040000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_OFFSET                                0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_LSB                                   31
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MSB                                   31
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_6A_MASK                                  0x0000000080000000
+
+
+/* Description		SW_RESPONSE_FRAME_LENGTH
+
+			Field only valid when SW_Response_tlv_from_crypto is set
+			
+			
+			This is the size of the frame that SW will generate as the
+			 response frame. In those scenarios where TXPCU needs to
+			 indicate a frame_length in the PDG_RESPONSE TLV, this will
+			 be the value that TXPCU needs to use.
+			
+			Note that this value shall always be such that when PDG 
+			calculates the LSIG duration field, the calculated value
+			 is less then the max time duration that the LSIG length
+			 can hold.
+			
+			Note that the MAX range here for 
+			11ax, MCS 11, BW 180, might not be reached. But as this 
+			is just for 'normal HW generated response' frames, the range
+			 is size here is more then enough. 
+			Also not that this field is NOT used for trigger responses.
+			
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET                   0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_LSB                      32
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MSB                      47
+#define RX_RESPONSE_REQUIRED_INFO_SW_RESPONSE_FRAME_LENGTH_MASK                     0x0000ffff00000000
+
+
+/* Description		RESPONSE_BA512_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '512 bitmap BA' responses for this one user.
+			
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '512 bitmap BA' responses shared between
+			 all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_OFFSET                       0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_LSB                          48
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MSB                          54
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA512_COUNT_MASK                         0x007f000000000000
+
+
+/* Description		RESPONSE_BA1024_COUNT
+
+			Field valid for both Reception_is_SU and Reception_is_MU
+			
+			
+			For SU:
+			Total number of '1024 bitmap BA' responses for this one 
+			user.
+			If this value is > 1, in implies that multi TID response
+			 is needed. Also, if the sum of all the Response_ba??? Counts
+			 > 1, a multi TID response is needed.
+			
+			For MU:
+			Total number of '1024 bitmap BA' responses shared between
+			 all the users.
+			<legal 0-36>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_OFFSET                      0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_LSB                         55
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MSB                         61
+#define RX_RESPONSE_REQUIRED_INFO_RESPONSE_BA1024_COUNT_MASK                        0x3f80000000000000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_OFFSET                                0x0000000000000018
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_LSB                                   62
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MSB                                   63
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_7A_MASK                                  0xc000000000000000
+
+
+/* Description		ADDR1_31_0
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			lower 32 bits of addr1 of the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_OFFSET                                 0x0000000000000020
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_LSB                                    0
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MSB                                    31
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_31_0_MASK                                   0x00000000ffffffff
+
+
+/* Description		ADDR1_47_32
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			upper 16 bits of addr1 of the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_OFFSET                                0x0000000000000020
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_LSB                                   32
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MSB                                   47
+#define RX_RESPONSE_REQUIRED_INFO_ADDR1_47_32_MASK                                  0x0000ffff00000000
+
+
+/* Description		ADDR2_15_0
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			lower 16 bits of addr2 of the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_OFFSET                                 0x0000000000000020
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_LSB                                    48
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MSB                                    63
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_15_0_MASK                                   0xffff000000000000
+
+
+/* Description		ADDR2_47_16
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			upper 32 bits of addr2 of the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_OFFSET                                0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_LSB                                   0
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MSB                                   31
+#define RX_RESPONSE_REQUIRED_INFO_ADDR2_47_16_MASK                                  0x00000000ffffffff
+
+
+/* Description		DOT11AX_RECEIVED_FORMAT_INDICATION
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			Format_Indication from the received frame.
+			
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET         0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB            32
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB            32
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK           0x0000000100000000
+
+
+/* Description		DOT11AX_RECEIVED_DL_UL_FLAG
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			DL_UL_flag from the received frame
+			
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET                0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB                   33
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB                   33
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK                  0x0000000200000000
+
+
+/* Description		DOT11AX_RECEIVED_BSS_COLOR_ID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			BSS_color_id from the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET              0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB                 34
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB                 39
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK                0x000000fc00000000
+
+
+/* Description		DOT11AX_RECEIVED_SPATIAL_REUSE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			Spatial reuse from the received frame
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET             0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB                40
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB                43
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK               0x00000f0000000000
+
+
+/* Description		DOT11AX_RECEIVED_CP_SIZE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			CP size of the received frame
+			
+			Specify the right GI for HE-Ranging NDPs (11az).
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET                   0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB                      44
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB                      45
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK                     0x0000300000000000
+
+
+/* Description		DOT11AX_RECEIVED_LTF_SIZE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			LTF size of the received frame
+			
+			Specify the right LTF-size for HE-Ranging NDPs (11az).
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET                  0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB                     46
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB                     47
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK                    0x0000c00000000000
+
+
+/* Description		DOT11AX_RECEIVED_CODING
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			Coding from the received frame
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_OFFSET                    0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_LSB                       48
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MSB                       48
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_CODING_MASK                      0x0001000000000000
+
+
+/* Description		DOT11AX_RECEIVED_DCM
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			DCM from the received frame
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_OFFSET                       0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_LSB                          49
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MSB                          49
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DCM_MASK                         0x0002000000000000
+
+
+/* Description		DOT11AX_RECEIVED_DOPPLER_INDICATION
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax
+			
+			Doppler_indication from the received frame
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET        0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB           50
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB           50
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK          0x0004000000000000
+
+
+/* Description		DOT11AX_RECEIVED_EXT_RU_SIZE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be AND dot11ax_su_extended is set
+			The number of (basic) RUs in this extended range reception
+			
+			
+			RXPCU gets this from the received HE_SIG_A
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET               0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB                  51
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB                  54
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK                 0x0078000000000000
+
+
+/* Description		FTM_FIELDS_VALID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Field only valid in case ftm_en is set.
+			
+			When set, the other ftm_ fields are valid and TXCPU shall
+			 use these in the response frame instead of the response
+			 table based fields with a similar name.
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_OFFSET                           0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_LSB                              55
+#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MSB                              55
+#define RX_RESPONSE_REQUIRED_INFO_FTM_FIELDS_VALID_MASK                             0x0080000000000000
+
+
+/* Description		FTM_PE_NSS
+
+			Field only valid in case ftm_fields_valid is set.
+			
+			Number of active spatial streams during packet extension
+			 for ftm related frame exchanges
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_OFFSET                                 0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_LSB                                    56
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MSB                                    58
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_NSS_MASK                                   0x0700000000000000
+
+
+/* Description		FTM_PE_LTF_SIZE
+
+			Field only valid in case ftm_fields_valid is set.
+			
+			LTF size to be used during packet extention for ftm related
+			 frame exchanges.
+			
+			0-1x
+			1-2x (unsupported un HWK-1)
+			2-4x (unsupported un HWK-1) 
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_OFFSET                            0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_LSB                               59
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MSB                               60
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_LTF_SIZE_MASK                              0x1800000000000000
+
+
+/* Description		FTM_PE_CONTENT
+
+			Field only valid in case ftm_fields_valid is set.
+			
+			The pe content for ftm related frame exchanges.
+			
+			Content of packet extension. 
+			
+			0-he_ltf, 1-last_data_symbol
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_OFFSET                             0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_LSB                                61
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MSB                                61
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CONTENT_MASK                               0x2000000000000000
+
+
+/* Description		FTM_CHAIN_CSD_EN
+
+			Field only valid in case ftm_fields_valid is set.
+			
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_OFFSET                           0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_LSB                              62
+#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MSB                              62
+#define RX_RESPONSE_REQUIRED_INFO_FTM_CHAIN_CSD_EN_MASK                             0x4000000000000000
+
+
+/* Description		FTM_PE_CHAIN_CSD_EN
+
+			Field only valid in case ftm_fields_valid is set.
+			
+			This field denotes whether to apply CSD on the preamble 
+			and data portion of the packet. This field is valid for 
+			all transmit packets
+			0: disable per-chain csd
+			1: enable per-chain csd 
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_OFFSET                        0x0000000000000028
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_LSB                           63
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MSB                           63
+#define RX_RESPONSE_REQUIRED_INFO_FTM_PE_CHAIN_CSD_EN_MASK                          0x8000000000000000
+
+
+/* Description		DOT11AX_RESPONSE_RATE_SOURCE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Valid for response generation to an 11ax pkt_type received
+			 frame, but NOT 11ax extended pkt_type of frame 
+			
+			When set to 0, use the register based lookup for determining
+			 the 11ax response rates.
+			
+			When > 0, TXPCU shall use this response table index for 
+			the 20 MHz response, and higher BW responses are in the 
+			subsequent response table entries
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_OFFSET               0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_LSB                  0
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MSB                  7
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_RESPONSE_RATE_SOURCE_MASK                 0x00000000000000ff
+
+
+/* Description		DOT11AX_EXT_RESPONSE_RATE_SOURCE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax and dot11ax_su_extended
+			 is set
+			
+			When set to 0, the response rates are based on the 11ax 
+			extended response register based indexes in TXPCU.
+			
+			When > 0, TXPCU shall use this response table index for 
+			the response to a 1RU reception. Higher RU count reception
+			 responses can be found in the subsequent response table
+			 entries: Next entry is for 2 RU receptions,  then 4 RU 
+			receptions,  then >= 8 RU receptions...
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_OFFSET           0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_LSB              8
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MSB              15
+#define RX_RESPONSE_REQUIRED_INFO_DOT11AX_EXT_RESPONSE_RATE_SOURCE_MASK             0x000000000000ff00
+
+
+/* Description		SW_PEER_ID
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			An identifier indicating for which device this response 
+			is needed.
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_OFFSET                                 0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_LSB                                    16
+#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MSB                                    31
+#define RX_RESPONSE_REQUIRED_INFO_SW_PEER_ID_MASK                                   0x00000000ffff0000
+
+
+/* Description		DOT11BE_PUNCTURE_BITMAP
+
+			This field is only valid if Punctured_response is set
+			
+			The bitmap of 20 MHz sub-bands valid in this EHT reception
+			
+			
+			RXPCU gets this from the received U-SIG and/or EHT-SIG via
+			 PHY microcode.
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET                    0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_LSB                       32
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MSB                       47
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_PUNCTURE_BITMAP_MASK                      0x0000ffff00000000
+
+
+/* Description		DOT11BE_RESPONSE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			Indicates that the peer supports .11be response protocols, 
+			e.g. .11be BW indication in scrambler seed, .11be dynamic
+			 BW procedure, punctured response, etc.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_OFFSET                           0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_LSB                              48
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MSB                              48
+#define RX_RESPONSE_REQUIRED_INFO_DOT11BE_RESPONSE_MASK                             0x0001000000000000
+
+
+/* Description		PUNCTURED_RESPONSE
+
+			Field only valid if Dot11be_response is set
+			
+			Indicates that the response shall use preamble puncturing
+			
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_OFFSET                         0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_LSB                            49
+#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MSB                            49
+#define RX_RESPONSE_REQUIRED_INFO_PUNCTURED_RESPONSE_MASK                           0x0002000000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_OFFSET                         0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_LSB                            50
+#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MSB                            51
+#define RX_RESPONSE_REQUIRED_INFO_EHT_DUPLICATE_MODE_MASK                           0x000c000000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_OFFSET                         0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_LSB                            52
+#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MSB                            52
+#define RX_RESPONSE_REQUIRED_INFO_FORCE_EXTRA_SYMBOL_MASK                           0x0010000000000000
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_OFFSET                               0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_LSB                                  53
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MSB                                  57
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_13A_MASK                                 0x03e0000000000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			This field is only valid if Punctured_response is set
+			
+			The 6-bit value used in U-SIG and/or EHT-SIG Common field
+			 for the puncture pattern
+			<legal 0-29>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET            0x0000000000000030
+#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB               58
+#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB               63
+#define RX_RESPONSE_REQUIRED_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK              0xfc00000000000000
+
+
+/* Description		MLO_STA_ID_DETAILS_RX
+
+			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 
+			from address search.
+			
+			See definition of mlo_sta_id_details.
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+*/
+
+
+/* Description		NSTR_MLO_STA_ID
+
+			ID of peer participating in non-STR MLO
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET      0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB         0
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB         9
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK        0x00000000000003ff
+
+
+/* Description		BLOCK_SELF_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for self-link.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET   0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB      10
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB      10
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK     0x0000000000000400
+
+
+/* Description		BLOCK_PARTNER_ML_SYNC
+
+			Only valid for TX
+			
+			When set, this provides an indication to block the peer 
+			for partner links.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB   11
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB   11
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK  0x0000000000000800
+
+
+/* Description		NSTR_MLO_STA_ID_VALID
+
+			All the fields in this TLV are valid only if this bit is
+			 set.
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB   12
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB   12
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK  0x0000000000001000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET          0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB             13
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB             15
+#define RX_RESPONSE_REQUIRED_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK            0x000000000000e000
+
+
+/* Description		HE_A_CONTROL_RESPONSE_TIME
+
+			When non-zero, indicates the value from an HE A-Control 
+			in the received frame requiring a specific response time
+			 (e.g. for sync MLO)
+			
+			<legal all>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_OFFSET                 0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_LSB                    16
+#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MSB                    27
+#define RX_RESPONSE_REQUIRED_INFO_HE_A_CONTROL_RESPONSE_TIME_MASK                   0x000000000fff0000
+
+
+/* Description		RESERVED_AFTER_STRUCT16
+
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_OFFSET                    0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_LSB                       28
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MSB                       31
+#define RX_RESPONSE_REQUIRED_INFO_RESERVED_AFTER_STRUCT16_MASK                      0x00000000f0000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_OFFSET                              0x0000000000000038
+#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_LSB                                 32
+#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MSB                                 63
+#define RX_RESPONSE_REQUIRED_INFO_TLV64_PADDING_MASK                                0xffffffff00000000
+
+
+
+#endif   // RX_RESPONSE_REQUIRED_INFO
diff --git a/hw/qca5332/rx_rxpcu_classification_overview.h b/hw/qca5332/rx_rxpcu_classification_overview.h
new file mode 100644
index 0000000..c37ff6d
--- /dev/null
+++ b/hw/qca5332/rx_rxpcu_classification_overview.h
@@ -0,0 +1,232 @@
+
+/* 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 _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
+#define _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_RXPCU_CLASSIFICATION_OVERVIEW 1
+
+
+struct rx_rxpcu_classification_overview {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t filter_pass_mpdus                                       :  1, // [0:0]
+                      filter_pass_mpdus_fcs_ok                                :  1, // [1:1]
+                      monitor_direct_mpdus                                    :  1, // [2:2]
+                      monitor_direct_mpdus_fcs_ok                             :  1, // [3:3]
+                      monitor_other_mpdus                                     :  1, // [4:4]
+                      monitor_other_mpdus_fcs_ok                              :  1, // [5:5]
+                      phyrx_abort_received                                    :  1, // [6:6]
+                      filter_pass_monitor_ovrd_mpdus                          :  1, // [7:7]
+                      filter_pass_monitor_ovrd_mpdus_fcs_ok                   :  1, // [8:8]
+                      reserved_0                                              :  7, // [15:9]
+                      phy_ppdu_id                                             : 16; // [31:16]
+#else
+             uint32_t phy_ppdu_id                                             : 16, // [31:16]
+                      reserved_0                                              :  7, // [15:9]
+                      filter_pass_monitor_ovrd_mpdus_fcs_ok                   :  1, // [8:8]
+                      filter_pass_monitor_ovrd_mpdus                          :  1, // [7:7]
+                      phyrx_abort_received                                    :  1, // [6:6]
+                      monitor_other_mpdus_fcs_ok                              :  1, // [5:5]
+                      monitor_other_mpdus                                     :  1, // [4:4]
+                      monitor_direct_mpdus_fcs_ok                             :  1, // [3:3]
+                      monitor_direct_mpdus                                    :  1, // [2:2]
+                      filter_pass_mpdus_fcs_ok                                :  1, // [1:1]
+                      filter_pass_mpdus                                       :  1; // [0:0]
+#endif
+};
+
+
+/* Description		FILTER_PASS_MPDUS
+
+			When set, at least one Filter Pass MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_OFFSET                   0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_LSB                      0
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_MSB                      0
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_MASK                     0x00000001
+
+
+/* Description		FILTER_PASS_MPDUS_FCS_OK
+
+			When set, at least one Filter Pass MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_OFFSET            0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_LSB               1
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_MSB               1
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_MASK              0x00000002
+
+
+/* Description		MONITOR_DIRECT_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_OFFSET                0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_LSB                   2
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_MSB                   2
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_MASK                  0x00000004
+
+
+/* Description		MONITOR_DIRECT_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET         0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_LSB            3
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_MSB            3
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_MASK           0x00000008
+
+
+/* Description		MONITOR_OTHER_MPDUS
+
+			When set, at least one Monitor Direct MPDU has been received. 
+			FCS might or might not have been passing.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_OFFSET                 0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_LSB                    4
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_MSB                    4
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_MASK                   0x00000010
+
+
+/* Description		MONITOR_OTHER_MPDUS_FCS_OK
+
+			When set, at least one Monitor Direct MPDU has been received
+			 that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET          0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_LSB             5
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_MSB             5
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_MASK            0x00000020
+
+
+/* Description		PHYRX_ABORT_RECEIVED
+
+			When set, PPDU reception was aborted by the PHY
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_OFFSET                0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_LSB                   6
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_MSB                   6
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_MASK                  0x00000040
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received. FCS might or might not have been passing.
+			
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET      0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB         7
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB         7
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK        0x00000080
+
+
+/* Description		FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK
+
+			When set, at least one 'Filter Pass Monitor Override' MPDU
+			 has been received that has a correct FCS.
+			
+			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE, 
+			this field is the "OR of all the users.
+			
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB  8
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB  8
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x00000100
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_OFFSET                          0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_LSB                             9
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_MSB                             15
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_MASK                            0x0000fe00
+
+
+/* Description		PHY_PPDU_ID
+
+			A ppdu counter value that PHY increments for every PPDU 
+			received. The counter value wraps around  
+			<legal all>
+*/
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_OFFSET                         0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_LSB                            16
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_MSB                            31
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_MASK                           0xffff0000
+
+
+
+#endif   // RX_RXPCU_CLASSIFICATION_OVERVIEW
diff --git a/hw/qca5332/rx_start_param.h b/hw/qca5332/rx_start_param.h
new file mode 100644
index 0000000..530fc7c
--- /dev/null
+++ b/hw/qca5332/rx_start_param.h
@@ -0,0 +1,112 @@
+
+/* 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 _RX_START_PARAM_H_
+#define _RX_START_PARAM_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_START_PARAM 2
+
+#define NUM_OF_QWORDS_RX_START_PARAM 1
+
+
+struct rx_start_param {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t pkt_type                                                :  4, // [3:0]
+                      reserved_0a                                             : 12, // [15:4]
+                      remaining_rx_time                                       : 16; // [31:16]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t remaining_rx_time                                       : 16, // [31:16]
+                      reserved_0a                                             : 12, // [15:4]
+                      pkt_type                                                :  4; // [3:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RX_START_PARAM_PKT_TYPE_OFFSET                                              0x0000000000000000
+#define RX_START_PARAM_PKT_TYPE_LSB                                                 0
+#define RX_START_PARAM_PKT_TYPE_MSB                                                 3
+#define RX_START_PARAM_PKT_TYPE_MASK                                                0x000000000000000f
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RX_START_PARAM_RESERVED_0A_OFFSET                                           0x0000000000000000
+#define RX_START_PARAM_RESERVED_0A_LSB                                              4
+#define RX_START_PARAM_RESERVED_0A_MSB                                              15
+#define RX_START_PARAM_RESERVED_0A_MASK                                             0x000000000000fff0
+
+
+/* Description		REMAINING_RX_TIME
+
+			Remaining time (in us) for the current frame in the medium.
+			
+			(received from PHY in TLV: PHYRX_COMMON_USER_INFO.Receive_duration)
+			
+			<legal all>
+*/
+
+#define RX_START_PARAM_REMAINING_RX_TIME_OFFSET                                     0x0000000000000000
+#define RX_START_PARAM_REMAINING_RX_TIME_LSB                                        16
+#define RX_START_PARAM_REMAINING_RX_TIME_MSB                                        31
+#define RX_START_PARAM_REMAINING_RX_TIME_MASK                                       0x00000000ffff0000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RX_START_PARAM_TLV64_PADDING_OFFSET                                         0x0000000000000000
+#define RX_START_PARAM_TLV64_PADDING_LSB                                            32
+#define RX_START_PARAM_TLV64_PADDING_MSB                                            63
+#define RX_START_PARAM_TLV64_PADDING_MASK                                           0xffffffff00000000
+
+
+
+#endif   // RX_START_PARAM
diff --git a/hw/qca5332/rx_timing_offset_info.h b/hw/qca5332/rx_timing_offset_info.h
new file mode 100644
index 0000000..9d9f8fb
--- /dev/null
+++ b/hw/qca5332/rx_timing_offset_info.h
@@ -0,0 +1,70 @@
+
+/* 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 _RX_TIMING_OFFSET_INFO_H_
+#define _RX_TIMING_OFFSET_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_TIMING_OFFSET_INFO 1
+
+
+struct rx_timing_offset_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t residual_phase_offset                                   : 12, // [11:0]
+                      reserved                                                : 20; // [31:12]
+#else
+             uint32_t reserved                                                : 20, // [31:12]
+                      residual_phase_offset                                   : 12; // [11:0]
+#endif
+};
+
+
+/* Description		RESIDUAL_PHASE_OFFSET
+
+			Cumulative reference frequency error at end of RX packet, 
+			expressed as the phase offset measured over 0.8us.  
+			<legal all>
+*/
+
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_OFFSET                          0x00000000
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_LSB                             0
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_MSB                             11
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_MASK                            0x00000fff
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define RX_TIMING_OFFSET_INFO_RESERVED_OFFSET                                       0x00000000
+#define RX_TIMING_OFFSET_INFO_RESERVED_LSB                                          12
+#define RX_TIMING_OFFSET_INFO_RESERVED_MSB                                          31
+#define RX_TIMING_OFFSET_INFO_RESERVED_MASK                                         0xfffff000
+
+
+
+#endif   // RX_TIMING_OFFSET_INFO
diff --git a/hw/qca5332/rx_trig_info.h b/hw/qca5332/rx_trig_info.h
new file mode 100644
index 0000000..4262400
--- /dev/null
+++ b/hw/qca5332/rx_trig_info.h
@@ -0,0 +1,150 @@
+
+/* 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 _RX_TRIG_INFO_H_
+#define _RX_TRIG_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_TRIG_INFO 2
+
+#define NUM_OF_QWORDS_RX_TRIG_INFO 1
+
+
+struct rx_trig_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_trigger_frame_type                                   :  2, // [1:0]
+                      trigger_resp_type                                       :  3, // [4:2]
+                      reserved_0                                              : 27; // [31:5]
+             uint32_t ppdu_duration                                           : 16, // [15:0]
+                      unique_destination_id                                   : 16; // [31:16]
+#else
+             uint32_t reserved_0                                              : 27, // [31:5]
+                      trigger_resp_type                                       :  3, // [4:2]
+                      rx_trigger_frame_type                                   :  2; // [1:0]
+             uint32_t unique_destination_id                                   : 16, // [31:16]
+                      ppdu_duration                                           : 16; // [15:0]
+#endif
+};
+
+
+/* Description		RX_TRIGGER_FRAME_TYPE
+
+			Trigger frame type.
+			
+			Field not really needed by PDG, but is there for debugging
+			 purposes to be put in event.
+			
+			<enum 0 dot11ax_direct_trigger_frame>
+			<enum 1 dot11ax_wildcard_trigger_frame>
+			<enum 2 dot11ax_usassoc_wildcard_trigger_frame> 
+			
+			<legal 0-2>
+*/
+
+#define RX_TRIG_INFO_RX_TRIGGER_FRAME_TYPE_OFFSET                                   0x0000000000000000
+#define RX_TRIG_INFO_RX_TRIGGER_FRAME_TYPE_LSB                                      0
+#define RX_TRIG_INFO_RX_TRIGGER_FRAME_TYPE_MSB                                      1
+#define RX_TRIG_INFO_RX_TRIGGER_FRAME_TYPE_MASK                                     0x0000000000000003
+
+
+/* Description		TRIGGER_RESP_TYPE
+
+			Indicates what kind of response is required to the received
+			 OFDMA trigger...
+			
+			Field not really needed by PDG, but is there for debugging
+			 purposes to be put in event.
+			<enum 0 OFDMA_ACK_frame> OFDMA trigger indicates an OFDMA
+			 based transmission, where the contents shall be and ACK
+			 frame.
+			<enum 1 OFDMA_BA_frames> OFDMA trigger indicates an OFDMA
+			 based transmission, where the contents shall be a BA frame.
+			
+			<enum 2 OFDMA_DATA_frames> OFDMA trigger indicates an OFDMA
+			 based transmission, where the contents shall be only data.
+			
+			<enum 3 OFDMA_BA_DATA_frames> OFDMA trigger indicates an
+			 OFDMA based transmission, where the contents shall be a
+			 BA frame and data.
+			
+			<legal 0-3>
+*/
+
+#define RX_TRIG_INFO_TRIGGER_RESP_TYPE_OFFSET                                       0x0000000000000000
+#define RX_TRIG_INFO_TRIGGER_RESP_TYPE_LSB                                          2
+#define RX_TRIG_INFO_TRIGGER_RESP_TYPE_MSB                                          4
+#define RX_TRIG_INFO_TRIGGER_RESP_TYPE_MASK                                         0x000000000000001c
+
+
+/* Description		RESERVED_0
+
+			Reserved and unused by HW
+			<legal 0>
+*/
+
+#define RX_TRIG_INFO_RESERVED_0_OFFSET                                              0x0000000000000000
+#define RX_TRIG_INFO_RESERVED_0_LSB                                                 5
+#define RX_TRIG_INFO_RESERVED_0_MSB                                                 31
+#define RX_TRIG_INFO_RESERVED_0_MASK                                                0x00000000ffffffe0
+
+
+/* Description		PPDU_DURATION
+
+			11ax
+			This field is valid only when rx_trig_frame is dot11ax_direct_trigger_frame
+			 or dot11ax_wildcard_trigger_frame or dot11ax_usassoc_wildcard_trigger_frame
+			
+			
+			The PPDU duration populated in trigger frame. This is the
+			 duration that station is allowed to use to transmit the
+			 packet
+*/
+
+#define RX_TRIG_INFO_PPDU_DURATION_OFFSET                                           0x0000000000000000
+#define RX_TRIG_INFO_PPDU_DURATION_LSB                                              32
+#define RX_TRIG_INFO_PPDU_DURATION_MSB                                              47
+#define RX_TRIG_INFO_PPDU_DURATION_MASK                                             0x0000ffff00000000
+
+
+/* Description		UNIQUE_DESTINATION_ID
+
+			11ax
+			This field is valid only when rx_trig_frame is dot11ax_direct_trigger_frame
+			 or dot11ax_wildcard_trigger_frame or dot11ax_usassoc_wildcard_trigger_frame
+			
+			
+			Unique destination identification number used by HWSCH to
+			 compare with the station ID in the command
+*/
+
+#define RX_TRIG_INFO_UNIQUE_DESTINATION_ID_OFFSET                                   0x0000000000000000
+#define RX_TRIG_INFO_UNIQUE_DESTINATION_ID_LSB                                      48
+#define RX_TRIG_INFO_UNIQUE_DESTINATION_ID_MSB                                      63
+#define RX_TRIG_INFO_UNIQUE_DESTINATION_ID_MASK                                     0xffff000000000000
+
+
+
+#endif   // RX_TRIG_INFO
diff --git a/hw/qca5332/rxpcu_early_rx_indication.h b/hw/qca5332/rxpcu_early_rx_indication.h
new file mode 100644
index 0000000..1474266
--- /dev/null
+++ b/hw/qca5332/rxpcu_early_rx_indication.h
@@ -0,0 +1,152 @@
+
+/* 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 _RXPCU_EARLY_RX_INDICATION_H_
+#define _RXPCU_EARLY_RX_INDICATION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RXPCU_EARLY_RX_INDICATION 2
+
+#define NUM_OF_QWORDS_RXPCU_EARLY_RX_INDICATION 1
+
+
+struct rxpcu_early_rx_indication {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t pkt_type                                                :  4, // [3:0]
+                      dot11ax_su_extended                                     :  1, // [4:4]
+                      rate_mcs                                                :  4, // [8:5]
+                      dot11ax_received_ext_ru_size                            :  4, // [12:9]
+                      reserved_0a                                             : 19; // [31:13]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             : 19, // [31:13]
+                      dot11ax_received_ext_ru_size                            :  4, // [12:9]
+                      rate_mcs                                                :  4, // [8:5]
+                      dot11ax_su_extended                                     :  1, // [4:4]
+                      pkt_type                                                :  4; // [3:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		PKT_TYPE
+
+			Packet type:
+			
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_PKT_TYPE_OFFSET                                   0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_PKT_TYPE_LSB                                      0
+#define RXPCU_EARLY_RX_INDICATION_PKT_TYPE_MSB                                      3
+#define RXPCU_EARLY_RX_INDICATION_PKT_TYPE_MASK                                     0x000000000000000f
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be
+			
+			When set, the 11ax or 11be reception was an extended range
+			 SU 
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_SU_EXTENDED_OFFSET                        0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_SU_EXTENDED_LSB                           4
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_SU_EXTENDED_MSB                           4
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_SU_EXTENDED_MASK                          0x0000000000000010
+
+
+/* Description		RATE_MCS
+
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_RATE_MCS_OFFSET                                   0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_RATE_MCS_LSB                                      5
+#define RXPCU_EARLY_RX_INDICATION_RATE_MCS_MSB                                      8
+#define RXPCU_EARLY_RX_INDICATION_RATE_MCS_MASK                                     0x00000000000001e0
+
+
+/* Description		DOT11AX_RECEIVED_EXT_RU_SIZE
+
+			Field only valid in case of SU_or_uplink_MU_reception = 
+			Reception_is_SU
+			
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be AND dot11ax_su_extended is set
+			The number of (basic) RUs in this extended range reception
+			
+			
+			RXPCU gets this from the received HE_SIG_A
+			
+			<legal all>
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET               0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB                  9
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB                  12
+#define RXPCU_EARLY_RX_INDICATION_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK                 0x0000000000001e00
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_RESERVED_0A_OFFSET                                0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_RESERVED_0A_LSB                                   13
+#define RXPCU_EARLY_RX_INDICATION_RESERVED_0A_MSB                                   31
+#define RXPCU_EARLY_RX_INDICATION_RESERVED_0A_MASK                                  0x00000000ffffe000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define RXPCU_EARLY_RX_INDICATION_TLV64_PADDING_OFFSET                              0x0000000000000000
+#define RXPCU_EARLY_RX_INDICATION_TLV64_PADDING_LSB                                 32
+#define RXPCU_EARLY_RX_INDICATION_TLV64_PADDING_MSB                                 63
+#define RXPCU_EARLY_RX_INDICATION_TLV64_PADDING_MASK                                0xffffffff00000000
+
+
+
+#endif   // RXPCU_EARLY_RX_INDICATION
diff --git a/hw/qca5332/rxpcu_ppdu_end_info.h b/hw/qca5332/rxpcu_ppdu_end_info.h
new file mode 100644
index 0000000..362fe5d
--- /dev/null
+++ b/hw/qca5332/rxpcu_ppdu_end_info.h
@@ -0,0 +1,2031 @@
+
+/* 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 _RXPCU_PPDU_END_INFO_H_
+#define _RXPCU_PPDU_END_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phyrx_abort_request_info.h"
+#include "macrx_abort_request_info.h"
+#include "rxpcu_ppdu_end_layout_info.h"
+#define NUM_OF_DWORDS_RXPCU_PPDU_END_INFO 28
+
+#define NUM_OF_QWORDS_RXPCU_PPDU_END_INFO 14
+
+
+struct rxpcu_ppdu_end_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t wb_timestamp_lower_32                                   : 32; // [31:0]
+             uint32_t wb_timestamp_upper_32                                   : 32; // [31:0]
+             uint32_t rx_antenna                                              : 24, // [23:0]
+                      tx_ht_vht_ack                                           :  1, // [24:24]
+                      unsupported_mu_nc                                       :  1, // [25:25]
+                      otp_txbf_disable                                        :  1, // [26:26]
+                      previous_tlv_corrupted                                  :  1, // [27:27]
+                      phyrx_abort_request_info_valid                          :  1, // [28:28]
+                      macrx_abort_request_info_valid                          :  1, // [29:29]
+                      reserved                                                :  2; // [31:30]
+             uint32_t coex_bt_tx_from_start_of_rx                             :  1, // [0:0]
+                      coex_bt_tx_after_start_of_rx                            :  1, // [1:1]
+                      coex_wan_tx_from_start_of_rx                            :  1, // [2:2]
+                      coex_wan_tx_after_start_of_rx                           :  1, // [3:3]
+                      coex_wlan_tx_from_start_of_rx                           :  1, // [4:4]
+                      coex_wlan_tx_after_start_of_rx                          :  1, // [5:5]
+                      mpdu_delimiter_errors_seen                              :  1, // [6:6]
+                      ftm_tm                                                  :  2, // [8:7]
+                      dialog_token                                            :  8, // [16:9]
+                      follow_up_dialog_token                                  :  8, // [24:17]
+                      bb_captured_channel                                     :  1, // [25:25]
+                      bb_captured_reason                                      :  3, // [28:26]
+                      bb_captured_timeout                                     :  1, // [29:29]
+                      reserved_3                                              :  2; // [31:30]
+             uint32_t before_mpdu_count_passing_fcs                           : 10, // [9:0]
+                      before_mpdu_count_failing_fcs                           : 10, // [19:10]
+                      after_mpdu_count_passing_fcs                            : 10, // [29:20]
+                      reserved_4                                              :  2; // [31:30]
+             uint32_t after_mpdu_count_failing_fcs                            : 10, // [9:0]
+                      reserved_5                                              : 22; // [31:10]
+             uint32_t phy_timestamp_tx_lower_32                               : 32; // [31:0]
+             uint32_t phy_timestamp_tx_upper_32                               : 32; // [31:0]
+             uint32_t bb_length                                               : 16, // [15:0]
+                      bb_data                                                 :  1, // [16:16]
+                      reserved_8                                              :  3, // [19:17]
+                      first_bt_broadcast_status_details                       : 12; // [31:20]
+             uint32_t rx_ppdu_duration                                        : 24, // [23:0]
+                      reserved_9                                              :  8; // [31:24]
+             uint32_t ast_index                                               : 16, // [15:0]
+                      ast_index_valid                                         :  1, // [16:16]
+                      reserved_10                                             :  3, // [19:17]
+                      second_bt_broadcast_status_details                      : 12; // [31:20]
+             struct   phyrx_abort_request_info                                  phyrx_abort_request_info_details;
+             struct   macrx_abort_request_info                                  macrx_abort_request_info_details;
+             uint16_t pre_bt_broadcast_status_details                         : 12, // [27:16]
+                      reserved_12a                                            :  4; // [31:28]
+             uint32_t non_qos_sn_info_valid                                   :  1, // [0:0]
+                      reserved_13a                                            :  5, // [5:1]
+                      non_qos_sn_highest                                      : 12, // [17:6]
+                      non_qos_sn_highest_retry_setting                        :  1, // [18:18]
+                      non_qos_sn_lowest                                       : 12, // [30:19]
+                      non_qos_sn_lowest_retry_setting                         :  1; // [31:31]
+             uint32_t qos_sn_1_info_valid                                     :  1, // [0:0]
+                      reserved_14a                                            :  1, // [1:1]
+                      qos_sn_1_tid                                            :  4, // [5:2]
+                      qos_sn_1_highest                                        : 12, // [17:6]
+                      qos_sn_1_highest_retry_setting                          :  1, // [18:18]
+                      qos_sn_1_lowest                                         : 12, // [30:19]
+                      qos_sn_1_lowest_retry_setting                           :  1; // [31:31]
+             uint32_t qos_sn_2_info_valid                                     :  1, // [0:0]
+                      reserved_15a                                            :  1, // [1:1]
+                      qos_sn_2_tid                                            :  4, // [5:2]
+                      qos_sn_2_highest                                        : 12, // [17:6]
+                      qos_sn_2_highest_retry_setting                          :  1, // [18:18]
+                      qos_sn_2_lowest                                         : 12, // [30:19]
+                      qos_sn_2_lowest_retry_setting                           :  1; // [31:31]
+             struct   rxpcu_ppdu_end_layout_info                                rxpcu_ppdu_end_layout_details;
+             uint32_t corrupted_due_to_fifo_delay                             :  1, // [0:0]
+                      qos_sn_1_more_frag_state                                :  1, // [1:1]
+                      qos_sn_1_frag_num_state                                 :  4, // [5:2]
+                      qos_sn_2_more_frag_state                                :  1, // [6:6]
+                      qos_sn_2_frag_num_state                                 :  4, // [10:7]
+                      reserved_26a                                            : 21; // [31:11]
+             uint32_t rx_ppdu_end_marker                                      : 32; // [31:0]
+#else
+             uint32_t wb_timestamp_lower_32                                   : 32; // [31:0]
+             uint32_t wb_timestamp_upper_32                                   : 32; // [31:0]
+             uint32_t reserved                                                :  2, // [31:30]
+                      macrx_abort_request_info_valid                          :  1, // [29:29]
+                      phyrx_abort_request_info_valid                          :  1, // [28:28]
+                      previous_tlv_corrupted                                  :  1, // [27:27]
+                      otp_txbf_disable                                        :  1, // [26:26]
+                      unsupported_mu_nc                                       :  1, // [25:25]
+                      tx_ht_vht_ack                                           :  1, // [24:24]
+                      rx_antenna                                              : 24; // [23:0]
+             uint32_t reserved_3                                              :  2, // [31:30]
+                      bb_captured_timeout                                     :  1, // [29:29]
+                      bb_captured_reason                                      :  3, // [28:26]
+                      bb_captured_channel                                     :  1, // [25:25]
+                      follow_up_dialog_token                                  :  8, // [24:17]
+                      dialog_token                                            :  8, // [16:9]
+                      ftm_tm                                                  :  2, // [8:7]
+                      mpdu_delimiter_errors_seen                              :  1, // [6:6]
+                      coex_wlan_tx_after_start_of_rx                          :  1, // [5:5]
+                      coex_wlan_tx_from_start_of_rx                           :  1, // [4:4]
+                      coex_wan_tx_after_start_of_rx                           :  1, // [3:3]
+                      coex_wan_tx_from_start_of_rx                            :  1, // [2:2]
+                      coex_bt_tx_after_start_of_rx                            :  1, // [1:1]
+                      coex_bt_tx_from_start_of_rx                             :  1; // [0:0]
+             uint32_t reserved_4                                              :  2, // [31:30]
+                      after_mpdu_count_passing_fcs                            : 10, // [29:20]
+                      before_mpdu_count_failing_fcs                           : 10, // [19:10]
+                      before_mpdu_count_passing_fcs                           : 10; // [9:0]
+             uint32_t reserved_5                                              : 22, // [31:10]
+                      after_mpdu_count_failing_fcs                            : 10; // [9:0]
+             uint32_t phy_timestamp_tx_lower_32                               : 32; // [31:0]
+             uint32_t phy_timestamp_tx_upper_32                               : 32; // [31:0]
+             uint32_t first_bt_broadcast_status_details                       : 12, // [31:20]
+                      reserved_8                                              :  3, // [19:17]
+                      bb_data                                                 :  1, // [16:16]
+                      bb_length                                               : 16; // [15:0]
+             uint32_t reserved_9                                              :  8, // [31:24]
+                      rx_ppdu_duration                                        : 24; // [23:0]
+             uint32_t second_bt_broadcast_status_details                      : 12, // [31:20]
+                      reserved_10                                             :  3, // [19:17]
+                      ast_index_valid                                         :  1, // [16:16]
+                      ast_index                                               : 16; // [15:0]
+             struct   phyrx_abort_request_info                                  phyrx_abort_request_info_details;
+             uint32_t reserved_12a                                            :  4, // [31:28]
+                      pre_bt_broadcast_status_details                         : 12; // [27:16]
+             struct   macrx_abort_request_info                                  macrx_abort_request_info_details;
+             uint32_t non_qos_sn_lowest_retry_setting                         :  1, // [31:31]
+                      non_qos_sn_lowest                                       : 12, // [30:19]
+                      non_qos_sn_highest_retry_setting                        :  1, // [18:18]
+                      non_qos_sn_highest                                      : 12, // [17:6]
+                      reserved_13a                                            :  5, // [5:1]
+                      non_qos_sn_info_valid                                   :  1; // [0:0]
+             uint32_t qos_sn_1_lowest_retry_setting                           :  1, // [31:31]
+                      qos_sn_1_lowest                                         : 12, // [30:19]
+                      qos_sn_1_highest_retry_setting                          :  1, // [18:18]
+                      qos_sn_1_highest                                        : 12, // [17:6]
+                      qos_sn_1_tid                                            :  4, // [5:2]
+                      reserved_14a                                            :  1, // [1:1]
+                      qos_sn_1_info_valid                                     :  1; // [0:0]
+             uint32_t qos_sn_2_lowest_retry_setting                           :  1, // [31:31]
+                      qos_sn_2_lowest                                         : 12, // [30:19]
+                      qos_sn_2_highest_retry_setting                          :  1, // [18:18]
+                      qos_sn_2_highest                                        : 12, // [17:6]
+                      qos_sn_2_tid                                            :  4, // [5:2]
+                      reserved_15a                                            :  1, // [1:1]
+                      qos_sn_2_info_valid                                     :  1; // [0:0]
+             struct   rxpcu_ppdu_end_layout_info                                rxpcu_ppdu_end_layout_details;
+             uint32_t reserved_26a                                            : 21, // [31:11]
+                      qos_sn_2_frag_num_state                                 :  4, // [10:7]
+                      qos_sn_2_more_frag_state                                :  1, // [6:6]
+                      qos_sn_1_frag_num_state                                 :  4, // [5:2]
+                      qos_sn_1_more_frag_state                                :  1, // [1:1]
+                      corrupted_due_to_fifo_delay                             :  1; // [0:0]
+             uint32_t rx_ppdu_end_marker                                      : 32; // [31:0]
+#endif
+};
+
+
+/* Description		WB_TIMESTAMP_LOWER_32
+
+			WLAN/BT timestamp is a 1 usec resolution timestamp which
+			 does not get updated based on receive beacon like TSF. 
+			 The same rules for capturing tsf_timestamp are used to 
+			capture the wb_timestamp. This field represents the lower
+			 32 bits of the 64-bit timestamp
+*/
+
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_OFFSET                            0x0000000000000000
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_LSB                               0
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MSB                               31
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MASK                              0x00000000ffffffff
+
+
+/* Description		WB_TIMESTAMP_UPPER_32
+
+			WLAN/BT timestamp is a 1 usec resolution timestamp which
+			 does not get updated based on receive beacon like TSF. 
+			 The same rules for capturing tsf_timestamp are used to 
+			capture the wb_timestamp. This field represents the upper
+			 32 bits of the 64-bit timestamp
+*/
+
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_OFFSET                            0x0000000000000000
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_LSB                               32
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MSB                               63
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MASK                              0xffffffff00000000
+
+
+/* Description		RX_ANTENNA
+
+			Receive antenna value ???
+*/
+
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_OFFSET                                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_LSB                                          0
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_MSB                                          23
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_MASK                                         0x0000000000ffffff
+
+
+/* Description		TX_HT_VHT_ACK
+
+			Indicates that a HT or VHT Ack/BA frame was transmitted 
+			in response to this receive packet.
+*/
+
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_OFFSET                                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_LSB                                       24
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MSB                                       24
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MASK                                      0x0000000001000000
+
+
+/* Description		UNSUPPORTED_MU_NC
+
+			Set if MU Nc > 2 in received NDPA.
+			If this bit is set, even though AID and BSSID are matched, 
+			MAC doesn't send tx_expect_ndp to PHY, because MU Nc > 2
+			 is not supported in Helium. 
+*/
+
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_OFFSET                                0x0000000000000008
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_LSB                                   25
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MSB                                   25
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MASK                                  0x0000000002000000
+
+
+/* Description		OTP_TXBF_DISABLE
+
+			Set if either OTP_SUBFEE_DISABLE or OTP_TXBF_DISABLE is 
+			set and if RXPU receives directed NDPA frame. Then, RXPCU
+			 should not send TX_EXPECT_NDP TLV to SW but set this bit
+			 to inform SW. 
+*/
+
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_OFFSET                                 0x0000000000000008
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_LSB                                    26
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MSB                                    26
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MASK                                   0x0000000004000000
+
+
+/* Description		PREVIOUS_TLV_CORRUPTED
+
+			When set, the TLV preceding this RXPCU_END_INFO TLV within
+			 the RX_PPDU_END TLV, is corrupted. Not the entire TLV was
+			 received.... Likely due to an abort scenario... If abort
+			 is to blame, see the abort data datastructure for details.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_OFFSET                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_LSB                              27
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MSB                              27
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MASK                             0x0000000008000000
+
+
+/* Description		PHYRX_ABORT_REQUEST_INFO_VALID
+
+			When set, the PHY sent an PHYRX_ABORT_REQUEST TLV to RXPCU. 
+			The abort fields embedded in this TLV contain valid info.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_LSB                      28
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MSB                      28
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MASK                     0x0000000010000000
+
+
+/* Description		MACRX_ABORT_REQUEST_INFO_VALID
+
+			When set, the MAC sent an MACRX_ABORT_REQUEST TLV to PHYRX. 
+			The abort fields embedded in this TLV contain valid info.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_LSB                      29
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MSB                      29
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MASK                     0x0000000020000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_OFFSET                                         0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RESERVED_LSB                                            30
+#define RXPCU_PPDU_END_INFO_RESERVED_MSB                                            31
+#define RXPCU_PPDU_END_INFO_RESERVED_MASK                                           0x00000000c0000000
+
+
+/* Description		COEX_BT_TX_FROM_START_OF_RX
+
+			Set when BT TX was ongoing when WLAN RX started
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_OFFSET                      0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_LSB                         32
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MSB                         32
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MASK                        0x0000000100000000
+
+
+/* Description		COEX_BT_TX_AFTER_START_OF_RX
+
+			Set when BT TX started while WLAN RX was already ongoing
+			
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_OFFSET                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_LSB                        33
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MSB                        33
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MASK                       0x0000000200000000
+
+
+/* Description		COEX_WAN_TX_FROM_START_OF_RX
+
+			Set when WAN TX was ongoing when WLAN RX started
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_OFFSET                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_LSB                        34
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MSB                        34
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MASK                       0x0000000400000000
+
+
+/* Description		COEX_WAN_TX_AFTER_START_OF_RX
+
+			Set when WAN TX started while WLAN RX was already ongoing
+			
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_OFFSET                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_LSB                       35
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MSB                       35
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MASK                      0x0000000800000000
+
+
+/* Description		COEX_WLAN_TX_FROM_START_OF_RX
+
+			Set when other WLAN TX was ongoing when WLAN RX started
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_OFFSET                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_LSB                       36
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MSB                       36
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MASK                      0x0000001000000000
+
+
+/* Description		COEX_WLAN_TX_AFTER_START_OF_RX
+
+			Set when other WLAN TX started while WLAN RX was already
+			 ongoing
+*/
+
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_LSB                      37
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MSB                      37
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MASK                     0x0000002000000000
+
+
+/* Description		MPDU_DELIMITER_ERRORS_SEEN
+
+			When set, MPDU delimiter errors have been detected during
+			 this PPDU reception
+*/
+
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_OFFSET                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_LSB                          38
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MSB                          38
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MASK                         0x0000004000000000
+
+
+/* Description		FTM_TM
+
+			Indicate the timestamp is for the FTM or TM frame 
+			
+			0: non TM or FTM frame
+			1: FTM frame
+			2: TM frame
+			3: reserved
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_FTM_TM_OFFSET                                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_FTM_TM_LSB                                              39
+#define RXPCU_PPDU_END_INFO_FTM_TM_MSB                                              40
+#define RXPCU_PPDU_END_INFO_FTM_TM_MASK                                             0x0000018000000000
+
+
+/* Description		DIALOG_TOKEN
+
+			The dialog token in the FTM or TM frame. Only valid when
+			 the FTM is set. Clear to 254 for a non-FTM frame
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_OFFSET                                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_LSB                                        41
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MSB                                        48
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MASK                                       0x0001fe0000000000
+
+
+/* Description		FOLLOW_UP_DIALOG_TOKEN
+
+			The follow up dialog token in the FTM or TM frame. Only 
+			valid when the FTM is set. Clear to 0 for a non-FTM frame, 
+			The follow up dialog token in the FTM frame. Only valid 
+			when the FTM is set. Clear to 255 for a non-FTM frame<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_OFFSET                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_LSB                              49
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MSB                              56
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MASK                             0x01fe000000000000
+
+
+/* Description		BB_CAPTURED_CHANNEL
+
+			Set by RXPCU when MACRX_FREEZE_CAPTURE_CHANNEL TLV is sent
+			 to PHY, FW check it to correlate current PPDU TLVs with
+			 uploaded channel information.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_OFFSET                              0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_LSB                                 57
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MSB                                 57
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MASK                                0x0200000000000000
+
+
+/* Description		BB_CAPTURED_REASON
+
+			Copy "capture_reason" of MACRX_FREEZE_CAPTURE_CHANNEL TLV
+			 to here for FW usage. Valid when bb_captured_channel or
+			 bb_captured_timeout is set.
+			
+			This field indicates why the MAC asked to capture the channel
+			
+			<enum 0 freeze_reason_TM>
+			<enum 1 freeze_reason_FTM>
+			<enum 2 freeze_reason_ACK_resp_to_TM_FTM>
+			<enum 3 freeze_reason_TA_RA_TYPE_FILTER>
+			<enum 4 freeze_reason_NDPA_NDP>
+			<enum 5 freeze_reason_ALL_PACKET>
+			
+			<legal 0-5>
+*/
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_OFFSET                               0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_LSB                                  58
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MSB                                  60
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MASK                                 0x1c00000000000000
+
+
+/* Description		BB_CAPTURED_TIMEOUT
+
+			Set by RxPCU to indicate channel capture condition is meet, 
+			but MACRX_FREEZE_CAPTURE_CHANNEL is not sent to PHY due 
+			to AST long delay, which means the rx_frame_falling edge
+			 to FREEZE TLV ready time exceed the threshold time defined
+			 by RXPCU register FREEZE_TLV_DELAY_CNT_THRESH. 
+			Bb_captured_reason is still valid in this case.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_OFFSET                              0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_LSB                                 61
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MSB                                 61
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MASK                                0x2000000000000000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_3_OFFSET                                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RESERVED_3_LSB                                          62
+#define RXPCU_PPDU_END_INFO_RESERVED_3_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_3_MASK                                         0xc000000000000000
+
+
+/* Description		BEFORE_MPDU_COUNT_PASSING_FCS
+
+			Number of MPDUs received in this PPDU that passed the FCS
+			 check before the Coex TX started
+			
+			The counter saturates at 0x3FF.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_OFFSET                    0x0000000000000010
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_LSB                       0
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MSB                       9
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MASK                      0x00000000000003ff
+
+
+/* Description		BEFORE_MPDU_COUNT_FAILING_FCS
+
+			Number of MPDUs received in this PPDU that failed the FCS
+			 check before the Coex TX started
+			
+			The counter saturates at 0x3FF.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_OFFSET                    0x0000000000000010
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_LSB                       10
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MSB                       19
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MASK                      0x00000000000ffc00
+
+
+/* Description		AFTER_MPDU_COUNT_PASSING_FCS
+
+			Number of MPDUs received in this PPDU that passed the FCS
+			 check after the moment the Coex TX started
+			
+			(Note: The partially received MPDU when the COEX tx start
+			 event came in falls in the "after" category)
+			
+			The counter saturates at 0x3FF.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_OFFSET                     0x0000000000000010
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_LSB                        20
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MSB                        29
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MASK                       0x000000003ff00000
+
+
+/* Description		RESERVED_4
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_4_OFFSET                                       0x0000000000000010
+#define RXPCU_PPDU_END_INFO_RESERVED_4_LSB                                          30
+#define RXPCU_PPDU_END_INFO_RESERVED_4_MSB                                          31
+#define RXPCU_PPDU_END_INFO_RESERVED_4_MASK                                         0x00000000c0000000
+
+
+/* Description		AFTER_MPDU_COUNT_FAILING_FCS
+
+			Number of MPDUs received in this PPDU that failed the FCS
+			 check after the moment the Coex TX started
+			
+			(Note: The partially received MPDU when the COEX tx start
+			 event came in falls in the "after" category)
+			
+			The counter saturates at 0x3FF.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_OFFSET                     0x0000000000000010
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_LSB                        32
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MSB                        41
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MASK                       0x000003ff00000000
+
+
+/* Description		RESERVED_5
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_5_OFFSET                                       0x0000000000000010
+#define RXPCU_PPDU_END_INFO_RESERVED_5_LSB                                          42
+#define RXPCU_PPDU_END_INFO_RESERVED_5_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_5_MASK                                         0xfffffc0000000000
+
+
+/* Description		PHY_TIMESTAMP_TX_LOWER_32
+
+			The PHY timestamp in the AMPI of the most recent rising 
+			edge (TODO: of what ???) after the TX_PHY_DESC.  This field
+			 indicates the lower 32 bits of the timestamp
+*/
+
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_OFFSET                        0x0000000000000018
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_LSB                           0
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MSB                           31
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MASK                          0x00000000ffffffff
+
+
+/* Description		PHY_TIMESTAMP_TX_UPPER_32
+
+			The PHY timestamp in the AMPI of the most recent rising 
+			edge (TODO: of what ???) after the TX_PHY_DESC.  This field
+			 indicates the upper 32 bits of the timestamp
+*/
+
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_OFFSET                        0x0000000000000018
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_LSB                           32
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MSB                           63
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MASK                          0xffffffff00000000
+
+
+/* Description		BB_LENGTH
+
+			Indicates the number of bytes of baseband information for
+			 PPDUs where the BB descriptor preamble type is 0x80 to 
+			0xFF which indicates that this is not a normal PPDU but 
+			rather contains baseband debug information.
+			TODO: Is this still needed ??? 
+*/
+
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_OFFSET                                        0x0000000000000020
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_LSB                                           0
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_MSB                                           15
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_MASK                                          0x000000000000ffff
+
+
+/* Description		BB_DATA
+
+			Indicates that BB data associated with this PPDU will exist
+			 in the receive buffer.  The exact contents of this BB data
+			 can be found by decoding the BB TLV in the buffer associated
+			 with the BB data.  See vector_fragment in the Helium_mac_phy_interface.docx
+			
+*/
+
+#define RXPCU_PPDU_END_INFO_BB_DATA_OFFSET                                          0x0000000000000020
+#define RXPCU_PPDU_END_INFO_BB_DATA_LSB                                             16
+#define RXPCU_PPDU_END_INFO_BB_DATA_MSB                                             16
+#define RXPCU_PPDU_END_INFO_BB_DATA_MASK                                            0x0000000000010000
+
+
+/* Description		RESERVED_8
+
+			Reserved: HW should fill with 0, FW should ignore.
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_8_OFFSET                                       0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RESERVED_8_LSB                                          17
+#define RXPCU_PPDU_END_INFO_RESERVED_8_MSB                                          19
+#define RXPCU_PPDU_END_INFO_RESERVED_8_MASK                                         0x00000000000e0000
+
+
+/* Description		FIRST_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the first received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no COEX_STATUS_BROADCAST tlv is received during this 
+			PPDU reception, this field will be set to 0
+			
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET                0x0000000000000020
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB                   20
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB                   31
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK                  0x00000000fff00000
+
+
+/* Description		RX_PPDU_DURATION
+
+			The length of this PPDU reception in us
+*/
+
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_OFFSET                                 0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_LSB                                    32
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MSB                                    55
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MASK                                   0x00ffffff00000000
+
+
+/* Description		RESERVED_9
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_9_OFFSET                                       0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RESERVED_9_LSB                                          56
+#define RXPCU_PPDU_END_INFO_RESERVED_9_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_9_MASK                                         0xff00000000000000
+
+
+/* Description		AST_INDEX
+
+			The AST index of the receive Ack/BA.  This information is
+			 provided from the TXPCU to the RXPCU for receive Ack/BA
+			 for implicit beamforming.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_AST_INDEX_OFFSET                                        0x0000000000000028
+#define RXPCU_PPDU_END_INFO_AST_INDEX_LSB                                           0
+#define RXPCU_PPDU_END_INFO_AST_INDEX_MSB                                           15
+#define RXPCU_PPDU_END_INFO_AST_INDEX_MASK                                          0x000000000000ffff
+
+
+/* Description		AST_INDEX_VALID
+
+			Indicates that ast_index is valid.  Should only be set for
+			 receive Ack/BA where single stream implicit sounding is
+			 captured.
+*/
+
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_OFFSET                                  0x0000000000000028
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_LSB                                     16
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MSB                                     16
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MASK                                    0x0000000000010000
+
+
+/* Description		RESERVED_10
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_10_OFFSET                                      0x0000000000000028
+#define RXPCU_PPDU_END_INFO_RESERVED_10_LSB                                         17
+#define RXPCU_PPDU_END_INFO_RESERVED_10_MSB                                         19
+#define RXPCU_PPDU_END_INFO_RESERVED_10_MASK                                        0x00000000000e0000
+
+
+/* Description		SECOND_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" for
+			 the second received COEX_STATUS_BROADCAST tlv during this
+			 PPDU reception.
+			
+			If no second COEX_STATUS_BROADCAST tlv is received during
+			 this PPDU reception, this field will be set to 0
+			
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET               0x0000000000000028
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB                  20
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB                  31
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK                 0x00000000fff00000
+
+
+/* Description		PHYRX_ABORT_REQUEST_INFO_DETAILS
+
+			Field only valid when Phyrx_abort_request_info_valid is 
+			set
+			The reason why PHY generated an abort request
+*/
+
+
+/* Description		PHYRX_ABORT_REASON
+
+			<enum 0 phyrx_err_phy_off> Reception aborted due to receiving
+			 a PHY_OFF TLV
+			<enum 1 phyrx_err_synth_off> 
+			<enum 2 phyrx_err_ofdma_timing> 
+			<enum 3 phyrx_err_ofdma_signal_parity> 
+			<enum 4 phyrx_err_ofdma_rate_illegal> 
+			<enum 5 phyrx_err_ofdma_length_illegal> 
+			<enum 6 phyrx_err_ofdma_restart> 
+			<enum 7 phyrx_err_ofdma_service> 
+			<enum 8 phyrx_err_ppdu_ofdma_power_drop> 
+			
+			<enum 9 phyrx_err_cck_blokker> 
+			<enum 10 phyrx_err_cck_timing> 
+			<enum 11 phyrx_err_cck_header_crc> 
+			<enum 12 phyrx_err_cck_rate_illegal> 
+			<enum 13 phyrx_err_cck_length_illegal> 
+			<enum 14 phyrx_err_cck_restart> 
+			<enum 15 phyrx_err_cck_service> 
+			<enum 16 phyrx_err_cck_power_drop> 
+			
+			<enum 17 phyrx_err_ht_crc_err> 
+			<enum 18 phyrx_err_ht_length_illegal> 
+			<enum 19 phyrx_err_ht_rate_illegal> 
+			<enum 20 phyrx_err_ht_zlf> 
+			<enum 21 phyrx_err_false_radar_ext> 
+			<enum 22 phyrx_err_green_field>
+			<enum 60 phyrx_err_ht_nsym_lt_zero>
+			
+			<enum 23 phyrx_err_bw_gt_dyn_bw> 
+			<enum 24 phyrx_err_leg_ht_mismatch> 
+			<enum 25 phyrx_err_vht_crc_error> 
+			<enum 26 phyrx_err_vht_siga_unsupported> 
+			<enum 27 phyrx_err_vht_lsig_len_invalid> 
+			<enum 28 phyrx_err_vht_ndp_or_zlf> 
+			<enum 29 phyrx_err_vht_nsym_lt_zero> 
+			<enum 30 phyrx_err_vht_rx_extra_symbol_mismatch> 
+			<enum 31 phyrx_err_vht_rx_skip_group_id0> 
+			<enum 32 phyrx_err_vht_rx_skip_group_id1to62> 
+			<enum 33 phyrx_err_vht_rx_skip_group_id63> 
+			<enum 34 phyrx_err_ofdm_ldpc_decoder_disabled> 
+			<enum 35 phyrx_err_defer_nap>
+			
+			<enum 61 phyrx_err_vht_lsig_rate_mismatch>
+			<enum 62 phyrx_err_vht_paid_gid_mismatch>
+			<enum 63 phyrx_err_vht_unsupported_bw>
+			<enum 64 phyrx_err_vht_gi_disam_mismatch>
+			
+			<enum 36 phyrx_err_fdomain_timeout> 
+			<enum 37 phyrx_err_lsig_rel_check> 
+			<enum 38 phyrx_err_bt_collision> 
+			<enum 39 phyrx_err_unsupported_mu_feedback> 
+			<enum 40 phyrx_err_ppdu_tx_interrupt_rx> 
+			<enum 41 phyrx_err_unsupported_cbf> 
+			
+			<enum 42 phyrx_err_other>  Should not really be used. If
+			 needed, ask for documentation update 
+			
+			<enum 43 phyrx_err_he_siga_unsupported > <enum 44 phyrx_err_he_crc_error
+			 > <enum 45 phyrx_err_he_sigb_unsupported > <enum 46 phyrx_err_he_mu_mode_unsupported
+			 > <enum 47 phyrx_err_he_ndp_or_zlf > <enum 48 phyrx_err_he_nsym_lt_zero
+			 > <enum 49 phyrx_err_he_ru_params_unsupported > <enum 50
+			 phyrx_err_he_num_users_unsupported ><enum 51 phyrx_err_he_sounding_params_unsupported
+			 >
+			<enum 54 phyrx_err_he_sigb_crc_error>
+			<enum 55 phyrx_err_he_ext_su_unsupported>
+			<enum 56 phyrx_err_he_trig_unsupported>
+			<enum 57 phyrx_err_he_lsig_len_invalid>
+			<enum 58 phyrx_err_he_lsig_rate_mismatch>
+			<enum 59 phyrx_err_ofdma_signal_reliability>
+			
+			<enum 77 phyrx_err_wur_detection>
+			
+			<enum 72 phyrx_err_u_sig_crc_error>
+			<enum 73 phyrx_err_u_sig_unsupported_mode>
+			<enum 74 phyrx_err_u_sig_rsvd_err>
+			<enum 75 phyrx_err_u_sig_mcs_error>
+			<enum 76 phyrx_err_u_sig_bw_error>
+			<enum 79 phyrx_err_u_sig_320_channel_mismatch>
+			<enum 71 phyrx_err_eht_sig_crc_error>
+			<enum 78 phyrx_err_eht_sig_unsupported_mode>
+			
+			<enum 80 phyrx_err_ehtplus_er_detection>
+			
+			<enum 52 phyrx_err_MU_UL_no_power_detected> 
+			<enum 53 phyrx_err_MU_UL_not_for_me>
+			
+			<enum 65 phyrx_err_rx_wdg_timeout>
+			<enum 66 phyrx_err_sizing_evt_unexpected>
+			<enum 67 phyrx_err_spectralscan>
+			<enum 68 phyrx_err_radar_misdetected_as_ofdm>
+			<enum 69 phyrx_err_rx_stuck>
+			<enum 70 phyrx_err_invalid_11b_state>
+			
+			<legal 0 - 80>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_LSB 32
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MSB 39
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MASK 0x000000ff00000000
+
+
+/* Description		PHY_ENTERS_NAP_STATE
+
+			When set, PHY enters PHY NAP state after sending this abort
+			
+			
+			Note that nap and defer state are mutually exclusive.
+			
+			Field put pro-actively in place....usage still to be agreed
+			 upon.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_LSB 40
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MSB 40
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MASK 0x0000010000000000
+
+
+/* Description		PHY_ENTERS_DEFER_STATE
+
+			When set, PHY enters PHY defer state after sending this 
+			abort
+			
+			Note that nap and defer state are mutually exclusive.
+			
+			Field put pro-actively in place....usage still to be agreed
+			 upon.
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_LSB 41
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MSB 41
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MASK 0x0000020000000000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET      0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB         42
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB         47
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK        0x0000fc0000000000
+
+
+/* Description		RECEIVE_DURATION
+
+			The remaining receive duration of this PPDU in the medium
+			 (in us). When PHY does not know this duration when this
+			 TLV is generated, the field will be set to 0.
+			The timing reference point is the reception by the MAC of
+			 this TLV. The value shall be accurate to within 2us.
+			
+			In case Phy_enters_nap_state and/or Phy_enters_defer_state
+			 is set, there is a possibility that MAC PMM can also decide
+			 to go into a low(er) power state. 
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_LSB   48
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MSB   63
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MASK  0xffff000000000000
+
+
+/* Description		MACRX_ABORT_REQUEST_INFO_DETAILS
+
+			Field only valid when macrx_abort_request_info_valid is 
+			set
+			The reason why MACRX generated an abort request
+*/
+
+
+/* Description		MACRX_ABORT_REASON
+
+			<enum 0 macrx_abort_sw_initiated>
+			<enum 1 macrx_abort_obss_reception> Upon receiving this 
+			abort reason, PHY should stop reception of the current frame
+			 and go back into a search mode
+			<enum 2 macrx_abort_other>
+			<enum 3 macrx_abort_sw_initiated_channel_switch> MAC FW 
+			issued an abort for channel switch reasons
+			<enum 4 macrx_abort_sw_initiated_power_save> MAC FW issued
+			 an abort power save reasons
+			<enum 5 macrx_abort_too_much_bad_data> RXPCU is terminating
+			 the current ongoing reception, as the data that MAC is 
+			receiving seems to be all garbage... The PER is too high, 
+			or in case of MU UL, Likely the trigger frame never got 
+			properly received by any of the targeted MU UL devices. 
+			After the abort, PHYRX can resume a normal search mode.
+			<enum 6 macrx_abort_ul_mu_early_abort> RXPCU is terminating
+			 the current ongoing UL MU reception, because at the end
+			 of the "early_termination_window," the required number 
+			of users with at least one valid MPDU delimiter was not 
+			reached. Likely the trigger frame never got properly received
+			 by the required number of targeted devices. After the abort, 
+			PHYRX can resume a normal search mode.
+			
+			<legal 0-6>
+*/
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_OFFSET 0x0000000000000030
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_LSB 0
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MSB 7
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MASK 0x00000000000000ff
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET      0x0000000000000030
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB         8
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB         15
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK        0x000000000000ff00
+
+
+/* Description		PRE_BT_BROADCAST_STATUS_DETAILS
+
+			Same contents as field "bt_broadcast_status_details" of 
+			the last received COEX_STATUS_BROADCAST tlv before this 
+			PPDU reception.
+			After power up, this field is all initialized to 0
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET                  0x0000000000000030
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_LSB                     16
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MSB                     27
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MASK                    0x000000000fff0000
+
+
+/* Description		RESERVED_12A
+
+			Bits: [27:16] 
+			Same contents as field "bt_broadcast_status_details" of 
+			the last received COEX_STATUS_BROADCAST tlv before this 
+			PPDU reception.
+			After power up, this field is all initialized to 0
+			
+			Bits: [31:28]: always 0
+			
+			
+			For detailed info see doc: TBD
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_OFFSET                                     0x0000000000000030
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_LSB                                        28
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_MSB                                        31
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_MASK                                       0x00000000f0000000
+
+
+/* Description		NON_QOS_SN_INFO_VALID
+
+			When set, the non_QoS_SN_... fields contain valid info.
+			
+			This field will ONLY be set upon the very first reception
+			 of a non QoS frame.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_OFFSET                            0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_LSB                               32
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MSB                               32
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MASK                              0x0000000100000000
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_OFFSET                                     0x0000000000000030
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_LSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_MSB                                        37
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_MASK                                       0x0000003e00000000
+
+
+/* Description		NON_QOS_SN_HIGHEST
+
+			Field only valid when non_QoS_SN_info_valid is set
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 non-QoS frame is received, the 'highest' and
+			 'lowest' fields will have the same values.
+			
+			The highest MPDU sequence number for a non-QoS frame received
+			 in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_OFFSET                               0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_LSB                                  38
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MSB                                  49
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MASK                                 0x0003ffc000000000
+
+
+/* Description		NON_QOS_SN_HIGHEST_RETRY_SETTING
+
+			Field only valid when non_QoS_SN_info_valid is set
+			
+			The 'retry' bit setting of the highest MPDU sequence number
+			 non-QOS frame received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_OFFSET                 0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_LSB                    50
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MSB                    50
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MASK                   0x0004000000000000
+
+
+/* Description		NON_QOS_SN_LOWEST
+
+			Field only valid when non_QoS_SN_info_valid is set
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 non-QoS frame is received, the 'highest' and
+			 'lowest' fields will have the same values.
+			
+			The lowest MPDU sequence number for a non-QoS frame received
+			 in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_OFFSET                                0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_LSB                                   51
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MSB                                   62
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MASK                                  0x7ff8000000000000
+
+
+/* Description		NON_QOS_SN_LOWEST_RETRY_SETTING
+
+			Field only valid when non_QoS_SN_info_valid is set
+			
+			The 'retry' bit setting of the lowest MPDU sequence number
+			 non-QoS frame received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_OFFSET                  0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_LSB                     63
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MSB                     63
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MASK                    0x8000000000000000
+
+
+/* Description		QOS_SN_1_INFO_VALID
+
+			When set, the QoS_SN_1_... fields contain valid info.
+			
+			This field will ONLY be set upon the very first reception
+			 of a QoS frame.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_OFFSET                              0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_LSB                                 0
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MSB                                 0
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MASK                                0x0000000000000001
+
+
+/* Description		RESERVED_14A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_LSB                                        1
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_MSB                                        1
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_MASK                                       0x0000000000000002
+
+
+/* Description		QOS_SN_1_TID
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			The TID of the frames related to the QoS_SN_1_... fields
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_LSB                                        2
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MSB                                        5
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MASK                                       0x000000000000003c
+
+
+/* Description		QOS_SN_1_HIGHEST
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 QoS frame of the relevant TID is received, the
+			 'highest' and 'lowest' fields will have the same values.
+			
+			
+			The highest MPDU sequence number for a QoS frame with TID
+			 QoS_SN_1_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_OFFSET                                 0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_LSB                                    6
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MSB                                    17
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MASK                                   0x000000000003ffc0
+
+
+/* Description		QOS_SN_1_HIGHEST_RETRY_SETTING
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			The 'retry' bit setting of the highest MPDU sequence number
+			 QoS frame with TID QoS_SN_1_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_OFFSET                   0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_LSB                      18
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MSB                      18
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MASK                     0x0000000000040000
+
+
+/* Description		QOS_SN_1_LOWEST
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 QoS frame of the relevant TID is received, the
+			 'highest' and 'lowest' fields will have the same values.
+			
+			
+			The lowest MPDU sequence number for a QoS frame with TID
+			 QoS_SN_1_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_OFFSET                                  0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_LSB                                     19
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MSB                                     30
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MASK                                    0x000000007ff80000
+
+
+/* Description		QOS_SN_1_LOWEST_RETRY_SETTING
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			The 'retry' bit setting of the lowest MPDU sequence number
+			 QoS frame with TID QoS_SN_1_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_OFFSET                    0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_LSB                       31
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MSB                       31
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MASK                      0x0000000080000000
+
+
+/* Description		QOS_SN_2_INFO_VALID
+
+			When set, the QoS_SN_2_... fields contain valid info.
+			
+			This field can ONLY be set in case of a multi-TID PPDU reception. 
+			This field is set upon the very first reception of a QoS
+			 frame belonging to the second TID in the PPDU.
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_OFFSET                              0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_LSB                                 32
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MSB                                 32
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MASK                                0x0000000100000000
+
+
+/* Description		RESERVED_15A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_LSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_MSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_MASK                                       0x0000000200000000
+
+
+/* Description		QOS_SN_2_TID
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			The TID of the frames related to the QoS_SN_2_... fields
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_LSB                                        34
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MSB                                        37
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MASK                                       0x0000003c00000000
+
+
+/* Description		QOS_SN_2_HIGHEST
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 QoS frame of the relevant TID is received, the
+			 highest and lowest fields will have the same values.
+			
+			The highest MPDU sequence number for a QoS frame with TID
+			 QoS_SN_2_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_OFFSET                                 0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_LSB                                    38
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MSB                                    49
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MASK                                   0x0003ffc000000000
+
+
+/* Description		QOS_SN_2_HIGHEST_RETRY_SETTING
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			The 'retry' bit setting of the highest MPDU sequence number
+			 QoS frame with TID QoS_SN_2_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_OFFSET                   0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_LSB                      50
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MSB                      50
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MASK                     0x0004000000000000
+
+
+/* Description		QOS_SN_2_LOWEST
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			Lowest and highest are defined based on a 2K window.
+			When only 1 QoS frame of the relevant TID is received, the
+			 highest and lowest fields will have the same values.
+			
+			The lowest MPDU sequence number for a QoS frame with TID
+			 QoS_SN_2_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_OFFSET                                  0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_LSB                                     51
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MSB                                     62
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MASK                                    0x7ff8000000000000
+
+
+/* Description		QOS_SN_2_LOWEST_RETRY_SETTING
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			The 'retry' bit setting of the lowest MPDU sequence number
+			 QoS frame with TID QoS_SN_2_TID received in this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_OFFSET                    0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_LSB                       63
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MSB                       63
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MASK                      0x8000000000000000
+
+
+/* Description		RXPCU_PPDU_END_LAYOUT_DETAILS
+
+			Structure containing the relative offsets of preamble TLVs
+			 within 'RX_PPDU_END' documenting the layout within 'RX_PPDU_END'
+			
+*/
+
+
+/* Description		RSSI_LEGACY_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_RSSI_LEGACY' within
+			 'RX_PPDU_END'<legal 1, 2>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_LSB    0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MSB    1
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MASK   0x0000000000000003
+
+
+/* Description		L_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 44, 46>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_LSB        2
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MSB        7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MASK       0x00000000000000fc
+
+
+/* Description		L_SIG_B_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 44, 46>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_LSB        8
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MSB        13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MASK       0x0000000000003f00
+
+
+/* Description		HT_SIG_OFFSET
+
+			Offset of 'PHYRX_HT_SIG' within 'RX_PPDU_END' Set to zero
+			 if the TLV is not included<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_OFFSET      0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_LSB         14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MSB         19
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MASK        0x00000000000fc000
+
+
+/* Description		VHT_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_OFFSET   0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_LSB      20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MSB      25
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MASK     0x0000000003f00000
+
+
+/* Description		REPEAT_L_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of the repeat 'PHYRX_L_SIG_A' (in
+			 HE and EHT cases) within 'RX_PPDU_END'
+			 
+			Set to zero if the TLV is not included
+			<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_LSB 26
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MSB 31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MASK 0x00000000fc000000
+
+
+/* Description		HE_SIG_A_SU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_SU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_LSB    32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MSB    37
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MASK   0x0000003f00000000
+
+
+/* Description		HE_SIG_A_MU_DL_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_DL' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_LSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MSB 43
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MASK 0x00000fc000000000
+
+
+/* Description		HE_SIG_A_MU_UL_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_UL' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_LSB 44
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MSB 49
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MASK 0x0003f00000000000
+
+
+/* Description		GENERIC_U_SIG_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_GENERIC_U_SIG' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_LSB  50
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MSB  55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MASK 0x00fc000000000000
+
+
+/* Description		RSSI_HT_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_RSSI_HT' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 49-127>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_LSB        56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MSB        62
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MASK       0x7f00000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_OFFSET        0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_LSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MASK          0x8000000000000000
+
+
+/* Description		VHT_SIG_B_SU20_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU20' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_LSB 0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MSB 6
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MASK 0x000000000000007f
+
+
+/* Description		VHT_SIG_B_SU40_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU40' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_LSB 7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MSB 13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MASK 0x0000000000003f80
+
+
+/* Description		VHT_SIG_B_SU80_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU80' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_LSB 14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MSB 20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MASK 0x00000000001fc000
+
+
+/* Description		VHT_SIG_B_SU160_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU160' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_LSB 21
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MSB 27
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MASK 0x000000000fe00000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_OFFSET        0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_LSB           28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MASK          0x00000000f0000000
+
+
+/* Description		VHT_SIG_B_MU20_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU20' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MASK 0x0000007f00000000
+
+
+/* Description		VHT_SIG_B_MU40_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU40' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_LSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MSB 45
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MASK 0x00003f8000000000
+
+
+/* Description		VHT_SIG_B_MU80_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU80' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_LSB 46
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MSB 52
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MASK 0x001fc00000000000
+
+
+/* Description		VHT_SIG_B_MU160_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU160' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_LSB 53
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MSB 59
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MASK 0x0fe0000000000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_OFFSET        0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_LSB           60
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MASK          0xf000000000000000
+
+
+/* Description		HE_SIG_B1_MU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B1_MU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_LSB   0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MSB   6
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MASK  0x000000000000007f
+
+
+/* Description		HE_SIG_B2_MU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_MU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_LSB   7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MSB   13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MASK  0x0000000000003f80
+
+
+/* Description		HE_SIG_B2_OFDMA_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_OFDMA' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 53, 62>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_LSB 14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MSB 20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MASK 0x00000000001fc000
+
+
+/* Description		FIRST_GENERIC_EHT_SIG_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_GENERIC_EHT_SIG' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_LSB 21
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MSB 27
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MASK 0x000000000fe00000
+
+
+/* Description		MULTIPLE_GENERIC_EHT_SIG_INCLUDED
+
+			Set to one if more than one 'PHYRX_GENERIC_EHT_SIG' TLVs
+			 are included in 'RX_PPDU_END,' set to zero otherwise
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_LSB 28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MSB 28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MASK 0x0000000010000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_OFFSET        0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_LSB           29
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MASK          0x00000000e0000000
+
+
+/* Description		COMMON_USER_INFO_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_COMMON_USER_INFO' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 46, 50, 67, 70-127>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MASK 0x0000007f00000000
+
+
+/* Description		FIRST_DEBUG_INFO_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_DEBUG_INFO' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_LSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MSB 46
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MASK 0x00007f8000000000
+
+
+/* Description		MULTIPLE_DEBUG_INFO_INCLUDED
+
+			Set to one if more than one 'PHYRX_DEBUG_INFO' TLVs are 
+			included in 'RX_PPDU_END,' set to zero otherwise<legal all>
+			
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_LSB 47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MSB 47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MASK 0x0000800000000000
+
+
+/* Description		FIRST_OTHER_RECEIVE_INFO_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_OTHER_RECEIVE_INFO' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_LSB 48
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MSB 55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MASK 0x00ff000000000000
+
+
+/* Description		MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED
+
+			Set to one if more than one 'PHYRX_OTHER_RECEIVE_INFO' TLVs
+			 are included in 'RX_PPDU_END,' set to zero otherwise<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_LSB 56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MSB 56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MASK 0x0100000000000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_OFFSET        0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_LSB           57
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MASK          0xfe00000000000000
+
+
+/* Description		DATA_DONE_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_DATA_DONE' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_OFFSET   0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_LSB      0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MSB      7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MASK     0x00000000000000ff
+
+
+/* Description		GENERATED_CBF_DETAILS_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_GENERATED_CBF_DETAILS' 
+			within 'RX_PPDU_END'Set to zero if the TLV is not included<legal
+			 0, 70-127>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_LSB 8
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MSB 15
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MASK 0x000000000000ff00
+
+
+/* Description		PKT_END_PART1_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_PKT_END_PART1' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_LSB  16
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MSB  23
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MASK 0x0000000000ff0000
+
+
+/* Description		LOCATION_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_LOCATION' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_OFFSET    0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_LSB       24
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MSB       31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MASK      0x00000000ff000000
+
+
+/* Description		AZ_INTEGRITY_DATA_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_11AZ_INTEGRITY_DATA' 
+			within 'RX_PPDU_END'
+			 
+			Set to zero if the TLV is not included
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MASK 0x000000ff00000000
+
+
+/* Description		PKT_END_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_PKT_END' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_OFFSET     0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_LSB        40
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MSB        47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MASK       0x0000ff0000000000
+
+
+/* Description		ABORT_REQUEST_ACK_OFFSET
+
+			Offset in units of 4 bytes of either 'PHYRX_ABORT_REQUEST' 
+			or 'PHYRX_ABORT_ACK' within 'RX_PPDU_END'
+			
+			Set to zero if the TLV is not included
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_LSB 48
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MSB 55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MASK 0x00ff000000000000
+
+
+/* Description		RESERVED_7A
+
+			Spare space in case the widths of the above offsets grow<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_OFFSET        0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_LSB           56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MASK          0xff00000000000000
+
+
+/* Description		RESERVED_8A
+
+			Spare space in case the widths of the above offsets grow
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_OFFSET        0x0000000000000060
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_LSB           0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MASK          0x00000000ffffffff
+
+
+/* Description		RESERVED_9A
+
+			Spare space in case the widths of the above offsets grow
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_OFFSET        0x0000000000000060
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_LSB           32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MASK          0xffffffff00000000
+
+
+/* Description		CORRUPTED_DUE_TO_FIFO_DELAY
+
+			Set if Rx PCU avoided a hang due to SFM delays by writing
+			 a corrupted 'RX_PPDU_END_USER_STATS' and/or 'RX_PPDU_END.'
+			
+*/
+
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET                      0x0000000000000068
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                         0
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                         0
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                        0x0000000000000001
+
+
+/* Description		QOS_SN_1_MORE_FRAG_STATE
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			The 'more fragments' state of the QoS frames with TID QoS_SN_1_TID
+			 at the end of this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_OFFSET                         0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_LSB                            1
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MSB                            1
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MASK                           0x0000000000000002
+
+
+/* Description		QOS_SN_1_FRAG_NUM_STATE
+
+			Field only valid when QoS_SN_1_info_valid is set.
+			
+			The 'fragment number' state of the QoS frames with TID QoS_SN_1_TID
+			 at the end of this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_OFFSET                          0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_LSB                             2
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MSB                             5
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MASK                            0x000000000000003c
+
+
+/* Description		QOS_SN_2_MORE_FRAG_STATE
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			The 'more fragments' state of the QoS frames with TID QoS_SN_2_TID
+			 at the end of this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_OFFSET                         0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_LSB                            6
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MSB                            6
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MASK                           0x0000000000000040
+
+
+/* Description		QOS_SN_2_FRAG_NUM_STATE
+
+			Field only valid when QoS_SN_2_info_valid is set.
+			
+			The 'fragment number' state of the QoS frames with TID QoS_SN_2_TID
+			 at the end of this PPDU
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_OFFSET                          0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_LSB                             7
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MSB                             10
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MASK                            0x0000000000000780
+
+
+/* Description		RESERVED_26A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_OFFSET                                     0x0000000000000068
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_LSB                                        11
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_MSB                                        31
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_MASK                                       0x00000000fffff800
+
+
+/* Description		RX_PPDU_END_MARKER
+
+			Field used by SW to double check that their structure alignment
+			 is in sync with what HW has done.
+			<legal 0xAABBCCDD>
+*/
+
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_OFFSET                               0x0000000000000068
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_LSB                                  32
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MSB                                  63
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MASK                                 0xffffffff00000000
+
+
+
+#endif   // RXPCU_PPDU_END_INFO
diff --git a/hw/qca5332/rxpcu_ppdu_end_layout_info.h b/hw/qca5332/rxpcu_ppdu_end_layout_info.h
new file mode 100644
index 0000000..d02baed
--- /dev/null
+++ b/hw/qca5332/rxpcu_ppdu_end_layout_info.h
@@ -0,0 +1,688 @@
+
+/* 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 _RXPCU_PPDU_END_LAYOUT_INFO_H_
+#define _RXPCU_PPDU_END_LAYOUT_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RXPCU_PPDU_END_LAYOUT_INFO 10
+
+
+struct rxpcu_ppdu_end_layout_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rssi_legacy_offset                                      :  2, // [1:0]
+                      l_sig_a_offset                                          :  6, // [7:2]
+                      l_sig_b_offset                                          :  6, // [13:8]
+                      ht_sig_offset                                           :  6, // [19:14]
+                      vht_sig_a_offset                                        :  6, // [25:20]
+                      repeat_l_sig_a_offset                                   :  6; // [31:26]
+             uint32_t he_sig_a_su_offset                                      :  6, // [5:0]
+                      he_sig_a_mu_dl_offset                                   :  6, // [11:6]
+                      he_sig_a_mu_ul_offset                                   :  6, // [17:12]
+                      generic_u_sig_offset                                    :  6, // [23:18]
+                      rssi_ht_offset                                          :  7, // [30:24]
+                      reserved_1a                                             :  1; // [31:31]
+             uint32_t vht_sig_b_su20_offset                                   :  7, // [6:0]
+                      vht_sig_b_su40_offset                                   :  7, // [13:7]
+                      vht_sig_b_su80_offset                                   :  7, // [20:14]
+                      vht_sig_b_su160_offset                                  :  7, // [27:21]
+                      reserved_2a                                             :  4; // [31:28]
+             uint32_t vht_sig_b_mu20_offset                                   :  7, // [6:0]
+                      vht_sig_b_mu40_offset                                   :  7, // [13:7]
+                      vht_sig_b_mu80_offset                                   :  7, // [20:14]
+                      vht_sig_b_mu160_offset                                  :  7, // [27:21]
+                      reserved_3a                                             :  4; // [31:28]
+             uint32_t he_sig_b1_mu_offset                                     :  7, // [6:0]
+                      he_sig_b2_mu_offset                                     :  7, // [13:7]
+                      he_sig_b2_ofdma_offset                                  :  7, // [20:14]
+                      first_generic_eht_sig_offset                            :  7, // [27:21]
+                      multiple_generic_eht_sig_included                       :  1, // [28:28]
+                      reserved_4a                                             :  3; // [31:29]
+             uint32_t common_user_info_offset                                 :  7, // [6:0]
+                      first_debug_info_offset                                 :  8, // [14:7]
+                      multiple_debug_info_included                            :  1, // [15:15]
+                      first_other_receive_info_offset                         :  8, // [23:16]
+                      multiple_other_receive_info_included                    :  1, // [24:24]
+                      reserved_5a                                             :  7; // [31:25]
+             uint32_t data_done_offset                                        :  8, // [7:0]
+                      generated_cbf_details_offset                            :  8, // [15:8]
+                      pkt_end_part1_offset                                    :  8, // [23:16]
+                      location_offset                                         :  8; // [31:24]
+             uint32_t az_integrity_data_offset                                :  8, // [7:0]
+                      pkt_end_offset                                          :  8, // [15:8]
+                      abort_request_ack_offset                                :  8, // [23:16]
+                      reserved_7a                                             :  8; // [31:24]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+#else
+             uint32_t repeat_l_sig_a_offset                                   :  6, // [31:26]
+                      vht_sig_a_offset                                        :  6, // [25:20]
+                      ht_sig_offset                                           :  6, // [19:14]
+                      l_sig_b_offset                                          :  6, // [13:8]
+                      l_sig_a_offset                                          :  6, // [7:2]
+                      rssi_legacy_offset                                      :  2; // [1:0]
+             uint32_t reserved_1a                                             :  1, // [31:31]
+                      rssi_ht_offset                                          :  7, // [30:24]
+                      generic_u_sig_offset                                    :  6, // [23:18]
+                      he_sig_a_mu_ul_offset                                   :  6, // [17:12]
+                      he_sig_a_mu_dl_offset                                   :  6, // [11:6]
+                      he_sig_a_su_offset                                      :  6; // [5:0]
+             uint32_t reserved_2a                                             :  4, // [31:28]
+                      vht_sig_b_su160_offset                                  :  7, // [27:21]
+                      vht_sig_b_su80_offset                                   :  7, // [20:14]
+                      vht_sig_b_su40_offset                                   :  7, // [13:7]
+                      vht_sig_b_su20_offset                                   :  7; // [6:0]
+             uint32_t reserved_3a                                             :  4, // [31:28]
+                      vht_sig_b_mu160_offset                                  :  7, // [27:21]
+                      vht_sig_b_mu80_offset                                   :  7, // [20:14]
+                      vht_sig_b_mu40_offset                                   :  7, // [13:7]
+                      vht_sig_b_mu20_offset                                   :  7; // [6:0]
+             uint32_t reserved_4a                                             :  3, // [31:29]
+                      multiple_generic_eht_sig_included                       :  1, // [28:28]
+                      first_generic_eht_sig_offset                            :  7, // [27:21]
+                      he_sig_b2_ofdma_offset                                  :  7, // [20:14]
+                      he_sig_b2_mu_offset                                     :  7, // [13:7]
+                      he_sig_b1_mu_offset                                     :  7; // [6:0]
+             uint32_t reserved_5a                                             :  7, // [31:25]
+                      multiple_other_receive_info_included                    :  1, // [24:24]
+                      first_other_receive_info_offset                         :  8, // [23:16]
+                      multiple_debug_info_included                            :  1, // [15:15]
+                      first_debug_info_offset                                 :  8, // [14:7]
+                      common_user_info_offset                                 :  7; // [6:0]
+             uint32_t location_offset                                         :  8, // [31:24]
+                      pkt_end_part1_offset                                    :  8, // [23:16]
+                      generated_cbf_details_offset                            :  8, // [15:8]
+                      data_done_offset                                        :  8; // [7:0]
+             uint32_t reserved_7a                                             :  8, // [31:24]
+                      abort_request_ack_offset                                :  8, // [23:16]
+                      pkt_end_offset                                          :  8, // [15:8]
+                      az_integrity_data_offset                                :  8; // [7:0]
+             uint32_t reserved_8a                                             : 32; // [31:0]
+             uint32_t reserved_9a                                             : 32; // [31:0]
+#endif
+};
+
+
+/* Description		RSSI_LEGACY_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_RSSI_LEGACY' within
+			 'RX_PPDU_END'<legal 1, 2>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_OFFSET                        0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_LSB                           0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_MSB                           1
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_MASK                          0x00000003
+
+
+/* Description		L_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 44, 46>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_OFFSET                            0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_LSB                               2
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_MSB                               7
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_MASK                              0x000000fc
+
+
+/* Description		L_SIG_B_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 44, 46>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_OFFSET                            0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_LSB                               8
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_MSB                               13
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_MASK                              0x00003f00
+
+
+/* Description		HT_SIG_OFFSET
+
+			Offset of 'PHYRX_HT_SIG' within 'RX_PPDU_END' Set to zero
+			 if the TLV is not included<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_OFFSET                             0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_LSB                                14
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_MSB                                19
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_MASK                               0x000fc000
+
+
+/* Description		VHT_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_A' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_OFFSET                          0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_LSB                             20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_MSB                             25
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_MASK                            0x03f00000
+
+
+/* Description		REPEAT_L_SIG_A_OFFSET
+
+			Offset in units of 4 bytes of the repeat 'PHYRX_L_SIG_A' (in
+			 HE and EHT cases) within 'RX_PPDU_END'
+			 
+			Set to zero if the TLV is not included
+			<legal 0, 46, 50>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_OFFSET                     0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_LSB                        26
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_MSB                        31
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_MASK                       0xfc000000
+
+
+/* Description		HE_SIG_A_SU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_SU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_OFFSET                        0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_LSB                           0
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_MSB                           5
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_MASK                          0x0000003f
+
+
+/* Description		HE_SIG_A_MU_DL_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_DL' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_OFFSET                     0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_LSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_MSB                        11
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_MASK                       0x00000fc0
+
+
+/* Description		HE_SIG_A_MU_UL_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_UL' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_OFFSET                     0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_LSB                        12
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_MSB                        17
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_MASK                       0x0003f000
+
+
+/* Description		GENERIC_U_SIG_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_GENERIC_U_SIG' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 48, 54>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_OFFSET                      0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_LSB                         18
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_MSB                         23
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_MASK                        0x00fc0000
+
+
+/* Description		RSSI_HT_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_RSSI_HT' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal 0, 49-127>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_OFFSET                            0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_LSB                               24
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_MSB                               30
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_MASK                              0x7f000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_OFFSET                               0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_LSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_MASK                                 0x80000000
+
+
+/* Description		VHT_SIG_B_SU20_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU20' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_LSB                        0
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_MSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_MASK                       0x0000007f
+
+
+/* Description		VHT_SIG_B_SU40_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU40' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_LSB                        7
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_MSB                        13
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_MASK                       0x00003f80
+
+
+/* Description		VHT_SIG_B_SU80_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU80' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_LSB                        14
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_MSB                        20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_MASK                       0x001fc000
+
+
+/* Description		VHT_SIG_B_SU160_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU160' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_OFFSET                    0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_LSB                       21
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_MSB                       27
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_MASK                      0x0fe00000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_OFFSET                               0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_LSB                                  28
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_MASK                                 0xf0000000
+
+
+/* Description		VHT_SIG_B_MU20_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU20' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_LSB                        0
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_MSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_MASK                       0x0000007f
+
+
+/* Description		VHT_SIG_B_MU40_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU40' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_LSB                        7
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_MSB                        13
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_MASK                       0x00003f80
+
+
+/* Description		VHT_SIG_B_MU80_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU80' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_LSB                        14
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_MSB                        20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_MASK                       0x001fc000
+
+
+/* Description		VHT_SIG_B_MU160_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU160' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 67, 74>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_OFFSET                    0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_LSB                       21
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_MSB                       27
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_MASK                      0x0fe00000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_OFFSET                               0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_LSB                                  28
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_MASK                                 0xf0000000
+
+
+/* Description		HE_SIG_B1_MU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B1_MU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_OFFSET                       0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_LSB                          0
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_MSB                          6
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_MASK                         0x0000007f
+
+
+/* Description		HE_SIG_B2_MU_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_MU' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_OFFSET                       0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_LSB                          7
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_MSB                          13
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_MASK                         0x00003f80
+
+
+/* Description		HE_SIG_B2_OFDMA_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_OFDMA' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 53, 62>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_OFFSET                    0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_LSB                       14
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_MSB                       20
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_MASK                      0x001fc000
+
+
+/* Description		FIRST_GENERIC_EHT_SIG_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_GENERIC_EHT_SIG' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 51, 58>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_OFFSET              0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_LSB                 21
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_MSB                 27
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_MASK                0x0fe00000
+
+
+/* Description		MULTIPLE_GENERIC_EHT_SIG_INCLUDED
+
+			Set to one if more than one 'PHYRX_GENERIC_EHT_SIG' TLVs
+			 are included in 'RX_PPDU_END,' set to zero otherwise
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_OFFSET         0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_LSB            28
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MSB            28
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MASK           0x10000000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_OFFSET                               0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_LSB                                  29
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_MASK                                 0xe0000000
+
+
+/* Description		COMMON_USER_INFO_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_COMMON_USER_INFO' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 0, 46, 50, 67, 70-127>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_OFFSET                   0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_LSB                      0
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_MSB                      6
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_MASK                     0x0000007f
+
+
+/* Description		FIRST_DEBUG_INFO_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_DEBUG_INFO' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_OFFSET                   0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_LSB                      7
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_MSB                      14
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_MASK                     0x00007f80
+
+
+/* Description		MULTIPLE_DEBUG_INFO_INCLUDED
+
+			Set to one if more than one 'PHYRX_DEBUG_INFO' TLVs are 
+			included in 'RX_PPDU_END,' set to zero otherwise<legal all>
+			
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_OFFSET              0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_LSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_MSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_MASK                0x00008000
+
+
+/* Description		FIRST_OTHER_RECEIVE_INFO_OFFSET
+
+			Offset in units of 4 bytes of the first 'PHYRX_OTHER_RECEIVE_INFO' 
+			within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_OFFSET           0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_LSB              16
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_MSB              23
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_MASK             0x00ff0000
+
+
+/* Description		MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED
+
+			Set to one if more than one 'PHYRX_OTHER_RECEIVE_INFO' TLVs
+			 are included in 'RX_PPDU_END,' set to zero otherwise<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_OFFSET      0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_LSB         24
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MSB         24
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MASK        0x01000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_OFFSET                               0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_LSB                                  25
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_MASK                                 0xfe000000
+
+
+/* Description		DATA_DONE_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_DATA_DONE' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_OFFSET                          0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_LSB                             0
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_MSB                             7
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_MASK                            0x000000ff
+
+
+/* Description		GENERATED_CBF_DETAILS_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_GENERATED_CBF_DETAILS' 
+			within 'RX_PPDU_END'Set to zero if the TLV is not included<legal
+			 0, 70-127>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_OFFSET              0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_LSB                 8
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_MSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_MASK                0x0000ff00
+
+
+/* Description		PKT_END_PART1_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_PKT_END_PART1' within
+			 'RX_PPDU_END' Set to zero if the TLV is not included<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_OFFSET                      0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_LSB                         16
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_MSB                         23
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_MASK                        0x00ff0000
+
+
+/* Description		LOCATION_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_LOCATION' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_OFFSET                           0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_LSB                              24
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_MSB                              31
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_MASK                             0xff000000
+
+
+/* Description		AZ_INTEGRITY_DATA_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_11AZ_INTEGRITY_DATA' 
+			within 'RX_PPDU_END'
+			 
+			Set to zero if the TLV is not included
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_OFFSET                  0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_LSB                     0
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_MSB                     7
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_MASK                    0x000000ff
+
+
+/* Description		PKT_END_OFFSET
+
+			Offset in units of 4 bytes of 'PHYRX_PKT_END' within 'RX_PPDU_END' 
+			Set to zero if the TLV is not included<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_OFFSET                            0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_LSB                               8
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_MSB                               15
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_MASK                              0x0000ff00
+
+
+/* Description		ABORT_REQUEST_ACK_OFFSET
+
+			Offset in units of 4 bytes of either 'PHYRX_ABORT_REQUEST' 
+			or 'PHYRX_ABORT_ACK' within 'RX_PPDU_END'
+			
+			Set to zero if the TLV is not included
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_OFFSET                  0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_LSB                     16
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_MSB                     23
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_MASK                    0x00ff0000
+
+
+/* Description		RESERVED_7A
+
+			Spare space in case the widths of the above offsets grow<legal
+			 all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_OFFSET                               0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_LSB                                  24
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_MASK                                 0xff000000
+
+
+/* Description		RESERVED_8A
+
+			Spare space in case the widths of the above offsets grow
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_OFFSET                               0x00000020
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_LSB                                  0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_MASK                                 0xffffffff
+
+
+/* Description		RESERVED_9A
+
+			Spare space in case the widths of the above offsets grow
+			
+			<legal all>
+*/
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_OFFSET                               0x00000024
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_LSB                                  0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_MASK                                 0xffffffff
+
+
+
+#endif   // RXPCU_PPDU_END_LAYOUT_INFO
diff --git a/hw/qca5332/rxpt_classify_info.h b/hw/qca5332/rxpt_classify_info.h
new file mode 100644
index 0000000..5a91c81
--- /dev/null
+++ b/hw/qca5332/rxpt_classify_info.h
@@ -0,0 +1,392 @@
+
+/* 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 _RXPT_CLASSIFY_INFO_H_
+#define _RXPT_CLASSIFY_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1
+
+
+struct rxpt_classify_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_destination_indication                              :  5, // [4:0]
+                      lmac_peer_id_msb                                        :  2, // [6:5]
+                      use_flow_id_toeplitz_clfy                               :  1, // [7:7]
+                      pkt_selection_fp_ucast_data                             :  1, // [8:8]
+                      pkt_selection_fp_mcast_data                             :  1, // [9:9]
+                      pkt_selection_fp_1000                                   :  1, // [10:10]
+                      rxdma0_source_ring_selection                            :  3, // [13:11]
+                      rxdma0_destination_ring_selection                       :  3, // [16:14]
+                      mcast_echo_drop_enable                                  :  1, // [17:17]
+                      wds_learning_detect_en                                  :  1, // [18:18]
+                      intrabss_check_en                                       :  1, // [19:19]
+                      use_ppe                                                 :  1, // [20:20]
+                      ppe_routing_enable                                      :  1, // [21:21]
+                      reserved_0b                                             : 10; // [31:22]
+#else
+             uint32_t reserved_0b                                             : 10, // [31:22]
+                      ppe_routing_enable                                      :  1, // [21:21]
+                      use_ppe                                                 :  1, // [20:20]
+                      intrabss_check_en                                       :  1, // [19:19]
+                      wds_learning_detect_en                                  :  1, // [18:18]
+                      mcast_echo_drop_enable                                  :  1, // [17:17]
+                      rxdma0_destination_ring_selection                       :  3, // [16:14]
+                      rxdma0_source_ring_selection                            :  3, // [13:11]
+                      pkt_selection_fp_1000                                   :  1, // [10:10]
+                      pkt_selection_fp_mcast_data                             :  1, // [9:9]
+                      pkt_selection_fp_ucast_data                             :  1, // [8:8]
+                      use_flow_id_toeplitz_clfy                               :  1, // [7:7]
+                      lmac_peer_id_msb                                        :  2, // [6:5]
+                      reo_destination_indication                              :  5; // [4:0]
+#endif
+};
+
+
+/* Description		REO_DESTINATION_INDICATION
+
+			The ID of the REO exit ring where the MSDU frame shall push
+			 after (MPDU level) reordering has finished.
+			
+			<enum 0 reo_destination_sw0> Reo will push the frame into
+			 the REO2SW0 ring
+			<enum 1 reo_destination_sw1> Reo will push the frame into
+			 the REO2SW1 ring
+			<enum 2 reo_destination_sw2> Reo will push the frame into
+			 the REO2SW2 ring
+			<enum 3 reo_destination_sw3> Reo will push the frame into
+			 the REO2SW3 ring
+			<enum 4 reo_destination_sw4> Reo will push the frame into
+			 the REO2SW4 ring
+			<enum 5 reo_destination_release> Reo will push the frame
+			 into the REO_release ring
+			<enum 6 reo_destination_fw> Reo will push the frame into
+			 the REO2FW ring
+			<enum 7 reo_destination_sw5> Reo will push the frame into
+			 the REO2SW5 ring (REO remaps this in chips without REO2SW5
+			 ring, e.g. Pine)
+			<enum 8 reo_destination_sw6> Reo will push the frame into
+			 the REO2SW6 ring (REO remaps this in chips without REO2SW6
+			 ring, e.g. Pine)
+			<enum 9 reo_destination_sw7> Reo will push the frame into
+			 the REO2SW7 ring (REO remaps this in chips without REO2SW7
+			 ring)
+			<enum 10 reo_destination_sw8> Reo will push the frame into
+			 the REO2SW8 ring (REO remaps this in chips without REO2SW8
+			 ring)
+			<enum 11 reo_destination_11> REO remaps this 
+			<enum 12 reo_destination_12> REO remaps this <enum 13 reo_destination_13> 
+			REO remaps this 
+			<enum 14 reo_destination_14> REO remaps this 
+			<enum 15 reo_destination_15> REO remaps this 
+			<enum 16 reo_destination_16> REO remaps this 
+			<enum 17 reo_destination_17> REO remaps this 
+			<enum 18 reo_destination_18> REO remaps this 
+			<enum 19 reo_destination_19> REO remaps this 
+			<enum 20 reo_destination_20> REO remaps this 
+			<enum 21 reo_destination_21> REO remaps this 
+			<enum 22 reo_destination_22> REO remaps this 
+			<enum 23 reo_destination_23> REO remaps this 
+			<enum 24 reo_destination_24> REO remaps this 
+			<enum 25 reo_destination_25> REO remaps this 
+			<enum 26 reo_destination_26> REO remaps this 
+			<enum 27 reo_destination_27> REO remaps this 
+			<enum 28 reo_destination_28> REO remaps this 
+			<enum 29 reo_destination_29> REO remaps this 
+			<enum 30 reo_destination_30> REO remaps this 
+			<enum 31 reo_destination_31> REO remaps this 
+			
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_OFFSET                        0x00000000
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_LSB                           0
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MSB                           4
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MASK                          0x0000001f
+
+
+/* Description		LMAC_PEER_ID_MSB
+
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_'sb
+			 is 2'b00, Rx OLE uses a REO desination indicati'n of {1'b1, 
+			hash[3:0]} using the chosen Toeplitz hash from Common Parser
+			 if flow search fails.
+			If use_flow_id_toeplitz_clfy is set and lmac_peer_id_msb
+			 's not 2'b00, Rx OLE uses a REO desination indication of
+			 {lmac_peer_id_msb, hash[2:0]} using the chosen Toeplitz
+			 hash from Common Parser if flow search fails.
+			This LMAC/peer-based routing is not supported in Hastings80
+			 and HastingsPrime.
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_OFFSET                                  0x00000000
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_LSB                                     5
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MSB                                     6
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MASK                                    0x00000060
+
+
+/* Description		USE_FLOW_ID_TOEPLITZ_CLFY
+
+			Indication to Rx OLE to enable REO destination routing based
+			 on the chosen Toeplitz hash from Common Parser, in case
+			 flow search fails
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET                         0x00000000
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_LSB                            7
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MSB                            7
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MASK                           0x00000080
+
+
+/* Description		PKT_SELECTION_FP_UCAST_DATA
+
+			Filter pass Unicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Unicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_OFFSET                       0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_LSB                          8
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MSB                          8
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MASK                         0x00000100
+
+
+/* Description		PKT_SELECTION_FP_MCAST_DATA
+
+			Filter pass Multicast data frame (matching rxpcu_filter_pass
+			 and sw_frame_group_Multicast_data) routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_OFFSET                       0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_LSB                          9
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MSB                          9
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MASK                         0x00000200
+
+
+/* Description		PKT_SELECTION_FP_1000
+
+			Filter pass BAR frame (matching rxpcu_filter_pass and sw_frame_group_ctrl_1000) 
+			routing selection
+			TODO: What about 'rxpcu_filter_pass_monior_ovrd'?
+			
+			1'b0: source and destination rings are selected from the
+			 RxOLE register settings for the packet type
+			
+			1'b1: source ring and destination ring is selected from 
+			the rxdma0_source_ring_selection and rxdma0_destination_ring_selection
+			 fields in this STRUCT
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_OFFSET                             0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_LSB                                10
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MSB                                10
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MASK                               0x00000400
+
+
+/* Description		RXDMA0_SOURCE_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0 sw2rxdma0_0_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma0 buffer source 
+			ring.
+			<enum 1 fw2rxdma0_pmac0_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC0.
+			<enum 2 sw2rxdma0_1_buf_source_ring> The data buffer for
+			 this frame shall be sourced by sw2rxdma1 buffer source 
+			ring.
+			<enum 3 no_buffer_rxdma0_ring> The frame shall not be written
+			 to any data buffer.
+			<enum 4 sw2rxdma0_exception_buf_source_ring> The data buffer
+			 for this frame shall be sourced by sw2rxdma_exception buffer
+			 source ring.
+			<enum 5 fw2rxdma0_pmac1_buf_source_ring> The data buffer
+			 for this frame shall be sourced by fw2rxdma buffer source
+			 ring for PMAC1.
+			
+			<legal 0-5>
+*/
+
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_OFFSET                      0x00000000
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_LSB                         11
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MSB                         13
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MASK                        0x00003800
+
+
+/* Description		RXDMA0_DESTINATION_RING_SELECTION
+
+			Field only valid when for the received frame type the corresponding
+			 pkt_selection_fp_... bit is set
+			
+			<enum 0  rxdma_release_ring> RXDMA0 shall push the frame
+			 to the Release ring. Effectively this means the frame needs
+			 to be dropped.
+			<enum 1  rxdma2fw_pmac0_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC0.
+			<enum 2  rxdma2sw_ring> RXDMA0 shall push the frame to the
+			 SW ring.
+			<enum 3  rxdma2reo_ring> RXDMA0 shall push the frame to 
+			the REO entrance ring.
+			<enum 4  rxdma2fw_pmac1_ring> RXDMA0 shall push the frame
+			 to the FW ring for PMAC1.
+			<enum 5 rxdma2reo_remote0_ring> RXDMA0 shall push the frame
+			 to the first MLO REO entrance ring.
+			<enum 6 rxdma2reo_remote1_ring> RXDMA0 shall push the frame
+			 to the second MLO REO entrance ring.
+			
+			<legal 0-6>
+*/
+
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_OFFSET                 0x00000000
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_LSB                    14
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MSB                    16
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MASK                   0x0001c000
+
+
+/* Description		MCAST_ECHO_DROP_ENABLE
+
+			If set, for multicast packets, multicast echo check (i.e. 
+			SA search with mcast_echo_check = 1) shall be performed 
+			by RXOLE, and any multicast echo packets should be indicated
+			 to RXDMA for release to WBM
+			
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_OFFSET                            0x00000000
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_LSB                               17
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MSB                               17
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MASK                              0x00020000
+
+
+/* Description		WDS_LEARNING_DETECT_EN
+
+			If set, WDS learning detection based on SA search and notification
+			 to FW (using RXDMA0 status ring) is enabled and the "timestamp" 
+			field in address search failure cache-only entry should 
+			be used to avoid multiple WDS learning notifications.
+			
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_OFFSET                            0x00000000
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_LSB                               18
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MSB                               18
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MASK                              0x00040000
+
+
+/* Description		INTRABSS_CHECK_EN
+
+			If set, intra-BSS routing detection is enabled
+			
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_OFFSET                                 0x00000000
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_LSB                                    19
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MSB                                    19
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MASK                                   0x00080000
+
+
+/* Description		USE_PPE
+
+			Indicates to RXDMA to ignore the REO_destination_indication
+			 and use a programmed value corresponding to the REO2PPE
+			 ring
+			
+			This override to REO2PPE for packets requiring multiple 
+			buffers shall be disabled based on an RXDMA configuration, 
+			as PPE may not support such packets.
+			
+			Supported only in full AP chips like Waikiki, not in client/soft
+			 AP chips like Hamilton
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_USE_PPE_OFFSET                                           0x00000000
+#define RXPT_CLASSIFY_INFO_USE_PPE_LSB                                              20
+#define RXPT_CLASSIFY_INFO_USE_PPE_MSB                                              20
+#define RXPT_CLASSIFY_INFO_USE_PPE_MASK                                             0x00100000
+
+
+/* Description		PPE_ROUTING_ENABLE
+
+			Global enable/disable bit for routing to PPE, used to disable
+			 PPE routing even if RXOLE CCE or flow search indicate 'Use_PPE'
+			
+			
+			This is set by SW for peers which are being handled by a
+			 host SW/accelerator subsystem that also handles packet 
+			buffer management for WiFi-to-PPE routing.
+			
+			This is cleared by SW for peers which are being handled 
+			by a different subsystem, completely disabling WiFi-to-PPE
+			 routing for such peers.
+			
+			<legal all>
+*/
+
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_OFFSET                                0x00000000
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_LSB                                   21
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MSB                                   21
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MASK                                  0x00200000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_OFFSET                                       0x00000000
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_LSB                                          22
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_MSB                                          31
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_MASK                                         0xffc00000
+
+
+
+#endif   // RXPT_CLASSIFY_INFO
diff --git a/hw/qca5332/seq_hwio.h b/hw/qca5332/seq_hwio.h
new file mode 100644
index 0000000..09e7998
--- /dev/null
+++ b/hw/qca5332/seq_hwio.h
@@ -0,0 +1,102 @@
+
+/* 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 __SEQ_H__
+#define __SEQ_H__
+
+#include "HALhwio.h"
+
+
+
+/**** Register Ref Read ****/
+#define SEQ_INH(base, regtype, reg) \
+        SEQ_##regtype##_INH(base, reg)
+
+/**** Masked Register Read ****/
+#define SEQ_INMH(base, regtype, reg, mask) \
+        SEQ_##regtype##_INMH(base, reg, mask)
+
+
+/**** Ref Reg Field Read ****/
+#define SEQ_INFH(base, regtype, reg, fld) \
+        (SEQ_##regtype##_INMH(base, reg, HWIO_FMSK(regtype, fld)) >> HWIO_SHFT(regtype, fld))
+
+
+/**** Ref Register  Write ****/
+#define SEQ_OUTH(base, regtype, reg, val) \
+        SEQ_##regtype##_OUTH(base, reg, val)
+
+/**** Ref Register Masked Write ****/
+#define SEQ_OUTMH(base, regtype, reg, mask, val) \
+        SEQ_##regtype##_OUTMH(base, reg, mask, val)
+
+
+/**** Ref Register Field Write ****/
+#define SEQ_OUTFH(base, regtype, reg, fld, val) \
+        SEQ_##regtype##_OUTMH(base, reg, HWIO_FMSK(regtype, fld), val << HWIO_SHFT(regtype, fld))
+
+
+/**** seq_msg() ****
+
+typedef enum {
+	DEBUG,
+	INFO,
+	WARNING,
+	ERROR,
+	FATAL
+} SeverityLevel ;
+
+void seq_msg(SeverityLevel severity, unsigned int msg_id, const char *format_str, ... );
+
+*/
+
+/************ seq_wait() ************/
+
+typedef enum {
+    SEC,
+    MS,
+    US,
+    NS
+} SEQ_TimeUnit;
+
+extern void seq_wait(uint32 time_value, SEQ_TimeUnit time_unit);
+
+
+/************ seq_poll() ************/
+extern uint32 seq_poll(uint32 reg_offset, uint32 expect_value, uint32 value_mask, uint32 value_shift, uint32 max_poll_cnt);
+
+#endif /* __SEQ_H__ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hw/qca5332/service_info.h b/hw/qca5332/service_info.h
new file mode 100644
index 0000000..1d1f8f4
--- /dev/null
+++ b/hw/qca5332/service_info.h
@@ -0,0 +1,97 @@
+
+/* 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 _SERVICE_INFO_H_
+#define _SERVICE_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_SERVICE_INFO 1
+
+
+struct service_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t scrambler_seed                                          :  7, // [6:0]
+                      reserved                                                :  1, // [7:7]
+                      sig_b_crc_user                                          :  8, // [15:8]
+                      reserved_1                                              : 16; // [31:16]
+#else
+             uint32_t reserved_1                                              : 16, // [31:16]
+                      sig_b_crc_user                                          :  8, // [15:8]
+                      reserved                                                :  1, // [7:7]
+                      scrambler_seed                                          :  7; // [6:0]
+#endif
+};
+
+
+/* Description		SCRAMBLER_SEED
+
+			This field provides the 7-bit seed for the data scrambler. 
+			 <legal all>
+*/
+
+#define SERVICE_INFO_SCRAMBLER_SEED_OFFSET                                          0x00000000
+#define SERVICE_INFO_SCRAMBLER_SEED_LSB                                             0
+#define SERVICE_INFO_SCRAMBLER_SEED_MSB                                             6
+#define SERVICE_INFO_SCRAMBLER_SEED_MASK                                            0x0000007f
+
+
+/* Description		RESERVED
+
+			Reserved. Set to 0 by sender and ignored by receiver.  <legal
+			 0>
+*/
+
+#define SERVICE_INFO_RESERVED_OFFSET                                                0x00000000
+#define SERVICE_INFO_RESERVED_LSB                                                   7
+#define SERVICE_INFO_RESERVED_MSB                                                   7
+#define SERVICE_INFO_RESERVED_MASK                                                  0x00000080
+
+
+/* Description		SIG_B_CRC_USER
+
+			In case of vht transmission: vht_sig_b_crc_user
+			<legal all>
+*/
+
+#define SERVICE_INFO_SIG_B_CRC_USER_OFFSET                                          0x00000000
+#define SERVICE_INFO_SIG_B_CRC_USER_LSB                                             8
+#define SERVICE_INFO_SIG_B_CRC_USER_MSB                                             15
+#define SERVICE_INFO_SIG_B_CRC_USER_MASK                                            0x0000ff00
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define SERVICE_INFO_RESERVED_1_OFFSET                                              0x00000000
+#define SERVICE_INFO_RESERVED_1_LSB                                                 16
+#define SERVICE_INFO_RESERVED_1_MSB                                                 31
+#define SERVICE_INFO_RESERVED_1_MASK                                                0xffff0000
+
+
+
+#endif   // SERVICE_INFO
diff --git a/hw/qca5332/sw_monitor_ring.h b/hw/qca5332/sw_monitor_ring.h
new file mode 100644
index 0000000..d932de8
--- /dev/null
+++ b/hw/qca5332/sw_monitor_ring.h
@@ -0,0 +1,818 @@
+
+/* 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 _SW_MONITOR_RING_H_
+#define _SW_MONITOR_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#include "rx_mpdu_details.h"
+#define NUM_OF_DWORDS_SW_MONITOR_RING 8
+
+
+struct sw_monitor_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             struct   buffer_addr_info                                          status_buff_addr_info;
+             uint32_t rxdma_push_reason                                       :  2, // [1:0]
+                      rxdma_error_code                                        :  5, // [6:2]
+                      mpdu_fragment_number                                    :  4, // [10:7]
+                      frameless_bar                                           :  1, // [11:11]
+                      status_buf_count                                        :  4, // [15:12]
+                      end_of_ppdu                                             :  1, // [16:16]
+                      reserved_6a                                             : 15; // [31:17]
+             uint32_t phy_ppdu_id                                             : 16, // [15:0]
+                      reserved_7a                                             :  4, // [19:16]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             struct   buffer_addr_info                                          status_buff_addr_info;
+             uint32_t reserved_6a                                             : 15, // [31:17]
+                      end_of_ppdu                                             :  1, // [16:16]
+                      status_buf_count                                        :  4, // [15:12]
+                      frameless_bar                                           :  1, // [11:11]
+                      mpdu_fragment_number                                    :  4, // [10:7]
+                      rxdma_error_code                                        :  5, // [6:2]
+                      rxdma_push_reason                                       :  2; // [1:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             :  4, // [19:16]
+                      phy_ppdu_id                                             : 16; // [15:0]
+#endif
+};
+
+
+/* Description		REO_LEVEL_MPDU_FRAME_INFO
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Details related to the MPDU being pushed to SW, valid only
+			 if end_of_ppdu is set to 0
+*/
+
+
+/* Description		MSDU_LINK_DESC_ADDR_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Details of the physical address of the MSDU link descriptor
+			 that contains pointers to MSDUs related to this MPDU
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU that should be passed
+			 on from REO entrance ring to the REO destination ring
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB 7
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK 0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK 0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB 9
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB 9
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK 0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB 10
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB 10
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK 0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK 0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB 13
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB 13
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK 0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB 14
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB 14
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB 15
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB 26
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK 0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_LSB 28
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MASK 0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET 0x0000000c
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK 0xffffffff
+
+
+/* Description		STATUS_BUFF_ADDR_INFO
+
+			Consumer: SW
+			Producer: RXDMA
+			
+			Details of the physical address of the first status buffer
+			 used for the PPDU (either the PPDU that included the MPDU
+			 being pushed to SW if end_of_ppdu = 0, or the PPDU whose
+			 end is indicated through end_of_ppdu = 1)
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET               0x00000010
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                  0
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                  31
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                 0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET              0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                 0
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                 7
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET          0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB             8
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB             11
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK            0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET               0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                  12
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                  31
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                 0xfffff000
+
+
+/* Description		RXDMA_PUSH_REASON
+
+			Indicates why RXDMA pushed the frame to this ring
+			
+			<enum 0 rxdma_error_detected> RXDMA detected an error an
+			 pushed this frame to this queue
+			<enum 1 rxdma_routing_instruction> RXDMA pushed the frame
+			 to this queue per received routing instructions. No error
+			 within RXDMA was detected
+			<enum 2 rxdma_rx_flush> RXDMA received an RX_FLUSH. As a
+			 result the MSDU link descriptor might not have the "last_msdu_in_mpdu_flag" 
+			set, but instead WBM might just see a NULL pointer in the
+			 MSDU link descriptor. This is to be considered a normal
+			 condition for this scenario.
+			
+			<legal 0 - 2>
+*/
+
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_OFFSET                                    0x00000018
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_LSB                                       0
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_MSB                                       1
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_MASK                                      0x00000003
+
+
+/* Description		RXDMA_ERROR_CODE
+
+			Field only valid when rxdma_push_reason is set to 'rxdma_error_detected.'
+			
+			
+			<enum 0 rxdma_overflow_err>MPDU frame is not complete due
+			 to a FIFO overflow error in RXPCU.
+			<enum 1 rxdma_mpdu_length_err>MPDU frame is not complete
+			 due to receiving incomplete MPDU from the PHY
+			<enum 2 rxdma_fcs_err>FCS check on the MPDU frame failed
+			
+			<enum 3 rxdma_decrypt_err>CRYPTO reported a decryption error
+			 or CRYPTO received an encrypted frame, but did not get 
+			a valid corresponding key id in the peer entry.
+			<enum 4 rxdma_tkip_mic_err>CRYPTO reported a TKIP MIC error
+			
+			<enum 5 rxdma_unecrypted_err>CRYPTO reported an unencrypted
+			 frame error when encrypted was expected
+			<enum 6 rxdma_msdu_len_err>RX OLE reported an MSDU length
+			 error
+			<enum 7 rxdma_msdu_limit_err>RX OLE reported that max number
+			 of MSDUs allowed in an MPDU got exceeded
+			<enum 8 rxdma_wifi_parse_err>RX OLE reported a parsing error
+			
+			<enum 9 rxdma_amsdu_parse_err>RX OLE reported an A-MSDU 
+			parsing error
+			<enum 10 rxdma_sa_timeout_err>RX OLE reported a timeout 
+			during SA search
+			<enum 11 rxdma_da_timeout_err>RX OLE reported a timeout 
+			during DA search
+			<enum 12 rxdma_flow_timeout_err>RX OLE reported a timeout
+			 during flow search
+			<enum 13 rxdma_flush_request>RXDMA received a flush request
+			
+			<enum 14 rxdma_amsdu_fragment_err>Rx PCU reported A-MSDU
+			 present as well as a fragmented MPDU. A-MSDU defragmentation
+			 is not supported in Lithium SW so this is treated as an
+			 error.
+			<enum 15 rxdma_multicast_echo_err>RX OLE reported a multicast
+			 echo
+			<enum 16 rxdma_amsdu_addr_mismatch_err>RX OLE reported an
+			 A-MSDU with either 'from DS = 0' with an SA mismatching
+			 TA or 'to DS = 0' with a DA mismatching RA.
+			<enum 17 rxdma_unauthorized_wds_err>RX PCU reported that
+			 Rx peer entry did not indicate 'authorized_to_send_WDS' 
+			and also indicated 'from DS = to DS = 1.'
+			<enum 18 rxdma_groupcast_amsdu_or_wds_err>RX PCU reported
+			 a broadcast or multicast RA as well as either A-MSDU present
+			 or 'from DS = to DS = 1.'
+*/
+
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_OFFSET                                     0x00000018
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_LSB                                        2
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_MSB                                        6
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_MASK                                       0x0000007c
+
+
+/* Description		MPDU_FRAGMENT_NUMBER
+
+			Field only valid when Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details.Fragment_flag
+			 is set and end_of_ppdu is set to 0.
+			
+			The fragment number from the 802.11 header.
+			
+			Note that the sequence number is embedded in the field: 
+			Reo_level_mpdu_frame_info. Rx_mpdu_desc_info_details. Mpdu_sequence_number
+			
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_OFFSET                                 0x00000018
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_LSB                                    7
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_MSB                                    10
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_MASK                                   0x00000780
+
+
+/* Description		FRAMELESS_BAR
+
+			When set, this SW monitor ring struct contains BAR info 
+			from a multi TID BAR frame. The original multi TID BAR frame
+			 itself contained all the REO info for the first TID, but
+			 all the subsequent TID info and their linkage to the REO
+			 descriptors is passed down as 'frameless' BAR info.
+			
+			The only fields valid in this descriptor when this bit is
+			 within the
+			Reo_level_mpdu_frame_info:    
+			   Within Rx_mpdu_desc_info_details:
+			Mpdu_Sequence_number
+			BAR_frame
+			Peer_meta_data
+			All other fields shall be set to 0.
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_FRAMELESS_BAR_OFFSET                                        0x00000018
+#define SW_MONITOR_RING_FRAMELESS_BAR_LSB                                           11
+#define SW_MONITOR_RING_FRAMELESS_BAR_MSB                                           11
+#define SW_MONITOR_RING_FRAMELESS_BAR_MASK                                          0x00000800
+
+
+/* Description		STATUS_BUF_COUNT
+
+			A count of status buffers used so far for the PPDU (either
+			 the PPDU that included the MPDU being pushed to SW if end_of_ppdu
+			 = 0, or the PPDU whose end is indicated through end_of_ppdu
+			 = 1)
+*/
+
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_OFFSET                                     0x00000018
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_LSB                                        12
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_MSB                                        15
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_MASK                                       0x0000f000
+
+
+/* Description		END_OF_PPDU
+
+			Pine RXDMA can be configured to generate a separate 'SW_MONITOR_RING' 
+			descriptor at the end of a PPDU (either through an 'RX_PPDU_END' 
+			TLV or through an 'RX_FLUSH') to demarcate PPDUs.
+			
+			For such a descriptor, this bit is set to 1 and fields Reo_level_mpdu_frame_info, 
+			mpdu_fragment_number and Frameless_bar are all set to 0.
+			
+			
+			Otherwise this bit is set to 0.
+*/
+
+#define SW_MONITOR_RING_END_OF_PPDU_OFFSET                                          0x00000018
+#define SW_MONITOR_RING_END_OF_PPDU_LSB                                             16
+#define SW_MONITOR_RING_END_OF_PPDU_MSB                                             16
+#define SW_MONITOR_RING_END_OF_PPDU_MASK                                            0x00010000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define SW_MONITOR_RING_RESERVED_6A_OFFSET                                          0x00000018
+#define SW_MONITOR_RING_RESERVED_6A_LSB                                             17
+#define SW_MONITOR_RING_RESERVED_6A_MSB                                             31
+#define SW_MONITOR_RING_RESERVED_6A_MASK                                            0xfffe0000
+
+
+/* Description		PHY_PPDU_ID
+
+			A PPDU counter value that PHY increments for every PPDU 
+			received
+			The counter value wraps around. Pine RXDMA can be configured
+			 to copy this from the RX_PPDU_START TLV for every output
+			 descriptor.
+			
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_PHY_PPDU_ID_OFFSET                                          0x0000001c
+#define SW_MONITOR_RING_PHY_PPDU_ID_LSB                                             0
+#define SW_MONITOR_RING_PHY_PPDU_ID_MSB                                             15
+#define SW_MONITOR_RING_PHY_PPDU_ID_MASK                                            0x0000ffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define SW_MONITOR_RING_RESERVED_7A_OFFSET                                          0x0000001c
+#define SW_MONITOR_RING_RESERVED_7A_LSB                                             16
+#define SW_MONITOR_RING_RESERVED_7A_MSB                                             19
+#define SW_MONITOR_RING_RESERVED_7A_MASK                                            0x000f0000
+
+
+/* Description		RING_ID
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of RXDMA)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			It help to identify the ring that is being looked <legal
+			 all>
+*/
+
+#define SW_MONITOR_RING_RING_ID_OFFSET                                              0x0000001c
+#define SW_MONITOR_RING_RING_ID_LSB                                                 20
+#define SW_MONITOR_RING_RING_ID_MSB                                                 27
+#define SW_MONITOR_RING_RING_ID_MASK                                                0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: SW/REO/DEBUG
+			Producer: SRNG (of RXDMA)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			
+			A count value that indicates the number of times the producer
+			 of entries into this Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define SW_MONITOR_RING_LOOPING_COUNT_OFFSET                                        0x0000001c
+#define SW_MONITOR_RING_LOOPING_COUNT_LSB                                           28
+#define SW_MONITOR_RING_LOOPING_COUNT_MSB                                           31
+#define SW_MONITOR_RING_LOOPING_COUNT_MASK                                          0xf0000000
+
+
+
+#endif   // SW_MONITOR_RING
diff --git a/hw/qca5332/tcl_data_cmd.h b/hw/qca5332/tcl_data_cmd.h
new file mode 100644
index 0000000..60de813
--- /dev/null
+++ b/hw/qca5332/tcl_data_cmd.h
@@ -0,0 +1,803 @@
+
+/* 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 _TCL_DATA_CMD_H_
+#define _TCL_DATA_CMD_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_TCL_DATA_CMD 8
+
+
+struct tcl_data_cmd {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_addr_info;
+             uint32_t tcl_cmd_type                                            :  1, // [0:0]
+                      buf_or_ext_desc_type                                    :  1, // [1:1]
+                      bank_id                                                 :  6, // [7:2]
+                      tx_notify_frame                                         :  3, // [10:8]
+                      header_length_read_sel                                  :  1, // [11:11]
+                      buffer_timestamp                                        : 19, // [30:12]
+                      buffer_timestamp_valid                                  :  1; // [31:31]
+             uint32_t reserved_3a                                             : 16, // [15:0]
+                      tcl_cmd_number                                          : 16; // [31:16]
+             uint32_t data_length                                             : 16, // [15:0]
+                      ipv4_checksum_en                                        :  1, // [16:16]
+                      udp_over_ipv4_checksum_en                               :  1, // [17:17]
+                      udp_over_ipv6_checksum_en                               :  1, // [18:18]
+                      tcp_over_ipv4_checksum_en                               :  1, // [19:19]
+                      tcp_over_ipv6_checksum_en                               :  1, // [20:20]
+                      to_fw                                                   :  1, // [21:21]
+                      reserved_4a                                             :  1, // [22:22]
+                      packet_offset                                           :  9; // [31:23]
+             uint32_t hlos_tid_overwrite                                      :  1, // [0:0]
+                      flow_override_enable                                    :  1, // [1:1]
+                      who_classify_info_sel                                   :  2, // [3:2]
+                      hlos_tid                                                :  4, // [7:4]
+                      flow_override                                           :  1, // [8:8]
+                      pmac_id                                                 :  2, // [10:9]
+                      msdu_color                                              :  2, // [12:11]
+                      reserved_5a                                             : 11, // [23:13]
+                      vdev_id                                                 :  8; // [31:24]
+             uint32_t search_index                                            : 20, // [19:0]
+                      cache_set_num                                           :  4, // [23:20]
+                      index_lookup_override                                   :  1, // [24:24]
+                      reserved_6a                                             :  7; // [31:25]
+             uint32_t reserved_7a                                             : 20, // [19:0]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   buffer_addr_info                                          buf_addr_info;
+             uint32_t buffer_timestamp_valid                                  :  1, // [31:31]
+                      buffer_timestamp                                        : 19, // [30:12]
+                      header_length_read_sel                                  :  1, // [11:11]
+                      tx_notify_frame                                         :  3, // [10:8]
+                      bank_id                                                 :  6, // [7:2]
+                      buf_or_ext_desc_type                                    :  1, // [1:1]
+                      tcl_cmd_type                                            :  1; // [0:0]
+             uint32_t tcl_cmd_number                                          : 16, // [31:16]
+                      reserved_3a                                             : 16; // [15:0]
+             uint32_t packet_offset                                           :  9, // [31:23]
+                      reserved_4a                                             :  1, // [22:22]
+                      to_fw                                                   :  1, // [21:21]
+                      tcp_over_ipv6_checksum_en                               :  1, // [20:20]
+                      tcp_over_ipv4_checksum_en                               :  1, // [19:19]
+                      udp_over_ipv6_checksum_en                               :  1, // [18:18]
+                      udp_over_ipv4_checksum_en                               :  1, // [17:17]
+                      ipv4_checksum_en                                        :  1, // [16:16]
+                      data_length                                             : 16; // [15:0]
+             uint32_t vdev_id                                                 :  8, // [31:24]
+                      reserved_5a                                             : 11, // [23:13]
+                      msdu_color                                              :  2, // [12:11]
+                      pmac_id                                                 :  2, // [10:9]
+                      flow_override                                           :  1, // [8:8]
+                      hlos_tid                                                :  4, // [7:4]
+                      who_classify_info_sel                                   :  2, // [3:2]
+                      flow_override_enable                                    :  1, // [1:1]
+                      hlos_tid_overwrite                                      :  1; // [0:0]
+             uint32_t reserved_6a                                             :  7, // [31:25]
+                      index_lookup_override                                   :  1, // [24:24]
+                      cache_set_num                                           :  4, // [23:20]
+                      search_index                                            : 20; // [19:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             : 20; // [19:0]
+#endif
+};
+
+
+/* Description		BUF_ADDR_INFO
+
+			Details of the physical address for a single buffer containing
+			 the entire MSDU or an MSDU extension descriptor. 
+			It also contains return ownership info as well as some meta
+			 data for SW related to this buffer.
+			
+			In case of Buf_or_ext_desc_type indicating 'MSDU_buffer', 
+			this address indicates the start of the meta data that is
+			 preceding the actual packet data.
+			The start of the actual packet data is provided by field: 
+			Packet_offset
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                          0x00000000
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                             0
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                             31
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                            0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                         0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                            0
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                            7
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                           0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                     0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                        8
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                        11
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                       0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                          0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                             12
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                             31
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                            0xfffff000
+
+
+/* Description		TCL_CMD_TYPE
+
+			This field is used to select the type of TCL Command decriptor
+			 that is queued by SW/FW. For 'TCL_DATA_CMD' this has to
+			 be 0.
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_TCL_CMD_TYPE_OFFSET                                            0x00000008
+#define TCL_DATA_CMD_TCL_CMD_TYPE_LSB                                               0
+#define TCL_DATA_CMD_TCL_CMD_TYPE_MSB                                               0
+#define TCL_DATA_CMD_TCL_CMD_TYPE_MASK                                              0x00000001
+
+
+/* Description		BUF_OR_EXT_DESC_TYPE
+
+			<enum 0 MSDU_buffer> The address points to an MSDU buffer. 
+			
+			<enum 1 extension_descriptor> The address points to an MSDU
+			 link extension descriptor
+			< legal all>
+*/
+
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_OFFSET                                    0x00000008
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_LSB                                       1
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_MSB                                       1
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_MASK                                      0x00000002
+
+
+/* Description		BANK_ID
+
+			This is used to select one of the TCL register banks for
+			 fields removed from 'TCL_DATA_CMD' that do not change often
+			 within one virtual device or a set of virtual devices:
+			EPD
+			encap_type
+			Encrypt_type
+			src_buffer_swap
+			Link_meta_swap
+			Search_type
+			AddrX_en
+			AddrY_en
+			DSCP_TID_TABLE_NUM
+			mesh_enable
+*/
+
+#define TCL_DATA_CMD_BANK_ID_OFFSET                                                 0x00000008
+#define TCL_DATA_CMD_BANK_ID_LSB                                                    2
+#define TCL_DATA_CMD_BANK_ID_MSB                                                    7
+#define TCL_DATA_CMD_BANK_ID_MASK                                                   0x000000fc
+
+
+/* Description		TX_NOTIFY_FRAME
+
+			TCL copies this value to 'TQM_ENTRANCE_RING' field FW_tx_notify_frame.
+			
+			Note: TCL can also have CCE/LCE rules to set 'Tx_notify_frame.' 
+			TCL shall have a register to choose the notify type in case
+			 of a conflict between the two settings.
+*/
+
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_OFFSET                                         0x00000008
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_LSB                                            8
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_MSB                                            10
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_MASK                                           0x00000700
+
+
+/* Description		HEADER_LENGTH_READ_SEL
+
+			This field is used to select the per 'encap_type' register
+			 set for MSDU header read length.
+			0: set 0 header read length register
+			1: set 1 header read length register
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_OFFSET                                  0x00000008
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_LSB                                     11
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_MSB                                     11
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_MASK                                    0x00000800
+
+
+/* Description		BUFFER_TIMESTAMP
+
+			Field only valid when 'Buffer_timestamp_valid ' is set.
+			
+			Frame system entrance timestamp. The timestamp is related
+			 to the global system timer
+			
+			Generally the first module (SW, TCL or TQM). that sees this
+			 frame and this timestamp field is not valid, shall fill
+			 in this field.
+			
+			Timestamp in units determined by the UMCMN 'TX_TIMESTAMP_RESOLUTION_SELECT' 
+			register
+			
+			Waikiki v1 and Hamilton used units of 1024 us.
+*/
+
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_OFFSET                                        0x00000008
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_LSB                                           12
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_MSB                                           30
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_MASK                                          0x7ffff000
+
+
+/* Description		BUFFER_TIMESTAMP_VALID
+
+			When set, the Buffer_timestamp field contains valid info.
+			
+*/
+
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_OFFSET                                  0x00000008
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_LSB                                     31
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_MSB                                     31
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_MASK                                    0x80000000
+
+
+/* Description		RESERVED_3A
+
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_RESERVED_3A_OFFSET                                             0x0000000c
+#define TCL_DATA_CMD_RESERVED_3A_LSB                                                0
+#define TCL_DATA_CMD_RESERVED_3A_MSB                                                15
+#define TCL_DATA_CMD_RESERVED_3A_MASK                                               0x0000ffff
+
+
+/* Description		TCL_CMD_NUMBER
+
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statuses
+			
+			Is set to the value 'TCL_CMD_Number' of the related TCL_DATA
+			 command
+			<legal all> 
+*/
+
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_OFFSET                                          0x0000000c
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_LSB                                             16
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_MSB                                             31
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_MASK                                            0xffff0000
+
+
+/* Description		DATA_LENGTH
+
+			Valid Data length in bytes. 
+			
+			MSDU length in case of direct descriptor.
+			Length of link extension descriptor in case of Link extension
+			 descriptor. This is used to know the size of Metadata.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_DATA_LENGTH_OFFSET                                             0x00000010
+#define TCL_DATA_CMD_DATA_LENGTH_LSB                                                0
+#define TCL_DATA_CMD_DATA_LENGTH_MSB                                                15
+#define TCL_DATA_CMD_DATA_LENGTH_MASK                                               0x0000ffff
+
+
+/* Description		IPV4_CHECKSUM_EN
+
+			OLE related control
+			Enable IPv4 checksum replacement
+*/
+
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_OFFSET                                        0x00000010
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_LSB                                           16
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_MSB                                           16
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_MASK                                          0x00010000
+
+
+/* Description		UDP_OVER_IPV4_CHECKSUM_EN
+
+			OLE related control
+			Enable UDP over IPv4 checksum replacement.  UDP checksum
+			 over IPv4 is optional for TCP/IP stacks.
+*/
+
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_LSB                                  17
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_MSB                                  17
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_MASK                                 0x00020000
+
+
+/* Description		UDP_OVER_IPV6_CHECKSUM_EN
+
+			OLE related control
+			Enable UDP over IPv6 checksum replacement.  UDP checksum
+			 over IPv6 is mandatory for TCP/IP stacks.
+*/
+
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_LSB                                  18
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_MSB                                  18
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_MASK                                 0x00040000
+
+
+/* Description		TCP_OVER_IPV4_CHECKSUM_EN
+
+			OLE related control
+			Enable TCP checksum over IPv4 replacement
+*/
+
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_LSB                                  19
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_MSB                                  19
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_MASK                                 0x00080000
+
+
+/* Description		TCP_OVER_IPV6_CHECKSUM_EN
+
+			OLE related control
+			Enable TCP checksum over IPv6 replacement
+*/
+
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_LSB                                  20
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_MSB                                  20
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_MASK                                 0x00100000
+
+
+/* Description		TO_FW
+
+			Forward packet to FW along with classification result. The
+			 packet will not be forward to TQM when this bit is set
+			
+			1'b0: Use classification result to forward the packet.
+			1'b1: Override classification result and forward packet 
+			only to FW.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_TO_FW_OFFSET                                                   0x00000010
+#define TCL_DATA_CMD_TO_FW_LSB                                                      21
+#define TCL_DATA_CMD_TO_FW_MSB                                                      21
+#define TCL_DATA_CMD_TO_FW_MASK                                                     0x00200000
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_RESERVED_4A_OFFSET                                             0x00000010
+#define TCL_DATA_CMD_RESERVED_4A_LSB                                                22
+#define TCL_DATA_CMD_RESERVED_4A_MSB                                                22
+#define TCL_DATA_CMD_RESERVED_4A_MASK                                               0x00400000
+
+
+/* Description		PACKET_OFFSET
+
+			Packet offset from Metadata in case of direct buffer descriptor. 
+			This field is valid when Buf_or_ext_desc_type is reset(= 
+			0).
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_PACKET_OFFSET_OFFSET                                           0x00000010
+#define TCL_DATA_CMD_PACKET_OFFSET_LSB                                              23
+#define TCL_DATA_CMD_PACKET_OFFSET_MSB                                              31
+#define TCL_DATA_CMD_PACKET_OFFSET_MASK                                             0xff800000
+
+
+/* Description		HLOS_TID_OVERWRITE
+
+			When set, TCL shall ignore the IP DSCP and VLAN PCP fields
+			 and use HLOS_TID as the final TID. Otherwise TCL shall 
+			consider the DSCP and PCP fields as well as HLOS_TID and
+			 choose a final TID based on the configured priority 
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_OFFSET                                      0x00000014
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_LSB                                         0
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_MSB                                         0
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_MASK                                        0x00000001
+
+
+/* Description		FLOW_OVERRIDE_ENABLE
+
+			TCL uses this to select the flow pointer from the peer table, 
+			which can be overridden by SW for pre-encrypted raw WiFi
+			 packets that cannot be parsed for UDP or for other MLO 
+			or enterprise use cases:
+			<enum 0 FP_PARSE_IP> Use the flow-pointer based on parsing
+			 the IPv4 or IPv6 header.
+			<enum 1 FP_USE_OVERRIDE> Use the who_classify_info_sel and
+			 flow_override fields to select the flow-pointer.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_OFFSET                                    0x00000014
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_LSB                                       1
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_MSB                                       1
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_MASK                                      0x00000002
+
+
+/* Description		WHO_CLASSIFY_INFO_SEL
+
+			Field only valid when flow_override_enable is set to FP_USE_OVERRIDE.
+			
+			 
+			This field is used to select  one of the 'WHO_CLASSIFY_INFO's
+			 in the peer table in case more than 2 flows are mapped 
+			to a single TID.
+			0: To choose Flow 0 and 1 of any TID use this value.
+			1: To choose Flow 2 and 3 of any TID use this value.
+			2: To choose Flow 4 and 5 of any TID use this value.
+			3: To choose Flow 6 and 7 of any TID use this value.
+			
+			If who_classify_info sel is not in sync with the num_tx_classify_info
+			 field from address search, then TCL will set 'who_classify_info_sel' 
+			to 0 use flows 0 and 1. 
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_OFFSET                                   0x00000014
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_LSB                                      2
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_MSB                                      3
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_MASK                                     0x0000000c
+
+
+/* Description		HLOS_TID
+
+			HLOS MSDU priority
+			
+			Field is used when HLOS_TID_overwrite is set or flow_override_enable
+			 is set to FP_USE_OVERRIDE.
+			
+			Field is also used when HLOS_TID_overwrite is not set and
+			 DSCP/PCP is not available in the packet.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_HLOS_TID_OFFSET                                                0x00000014
+#define TCL_DATA_CMD_HLOS_TID_LSB                                                   4
+#define TCL_DATA_CMD_HLOS_TID_MSB                                                   7
+#define TCL_DATA_CMD_HLOS_TID_MASK                                                  0x000000f0
+
+
+/* Description		FLOW_OVERRIDE
+
+			Field only valid when flow_override_enable is set to FP_USE_OVERRIDE.
+			
+			
+			TCL uses this to select the flow pointer from the peer table, 
+			which can be overridden by SW for pre-encrypted raw WiFi
+			 packets that cannot be parsed for UDP or for other MLO 
+			or enterprise use cases:
+			<enum 0 FP_USE_NON_UDP> Use the non-UDP flow pointer (flow
+			 0)
+			<enum 1 FP_USE_UDP> Use the UDP flow pointer (flow 1)
+			
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_FLOW_OVERRIDE_OFFSET                                           0x00000014
+#define TCL_DATA_CMD_FLOW_OVERRIDE_LSB                                              8
+#define TCL_DATA_CMD_FLOW_OVERRIDE_MSB                                              8
+#define TCL_DATA_CMD_FLOW_OVERRIDE_MASK                                             0x00000100
+
+
+/* Description		PMAC_ID
+
+			TCL uses this PMAC_ID in address search, i.e, while finding
+			 matching entry for the packet in AST corresponding to given
+			 PMAC_ID
+			If PMAC ID is all 1s (=> value 3), it indicates wildcard
+			 match for any PMAC
+			<legal 0-3>
+*/
+
+#define TCL_DATA_CMD_PMAC_ID_OFFSET                                                 0x00000014
+#define TCL_DATA_CMD_PMAC_ID_LSB                                                    9
+#define TCL_DATA_CMD_PMAC_ID_MSB                                                    10
+#define TCL_DATA_CMD_PMAC_ID_MASK                                                   0x00000600
+
+
+/* Description		MSDU_COLOR
+
+			Consumer: TQM
+			Producer: SW
+			
+			TCL copies this value to 'TQM_ENTRANCE_RING' in the structure
+			 'TX_MSDU_DETAILS' field msdu_color.
+			
+			When set, TQM will check the color and choose the color 
+			based threshold with which it will decide if the MSDU has
+			 to be dropped.
+			
+			<enum 0 MSDU_COLORLESS> MSDUs which have no color and TQM
+			 uses legacy drop thresholds for these MSDUs.
+			<enum 1 MSDU_COLOR_GREEN>
+			<enum 2 MSDU_COLOR_YELLOW>
+			<enum 3 MSDU_COLOR_RED>
+			<legal 0-3>
+*/
+
+#define TCL_DATA_CMD_MSDU_COLOR_OFFSET                                              0x00000014
+#define TCL_DATA_CMD_MSDU_COLOR_LSB                                                 11
+#define TCL_DATA_CMD_MSDU_COLOR_MSB                                                 12
+#define TCL_DATA_CMD_MSDU_COLOR_MASK                                                0x00001800
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_RESERVED_5A_OFFSET                                             0x00000014
+#define TCL_DATA_CMD_RESERVED_5A_LSB                                                13
+#define TCL_DATA_CMD_RESERVED_5A_MSB                                                23
+#define TCL_DATA_CMD_RESERVED_5A_MASK                                               0x00ffe000
+
+
+/* Description		VDEV_ID
+
+			Virtual device ID to check against the address search entry
+			 to avoid security issues from transmitting packets from
+			 an incorrect virtual device
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_VDEV_ID_OFFSET                                                 0x00000014
+#define TCL_DATA_CMD_VDEV_ID_LSB                                                    24
+#define TCL_DATA_CMD_VDEV_ID_MSB                                                    31
+#define TCL_DATA_CMD_VDEV_ID_MASK                                                   0xff000000
+
+
+/* Description		SEARCH_INDEX
+
+			The index that will be used for index based address or flow
+			 search. The field is valid when 'search_type' is  1 or 
+			2. 
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_SEARCH_INDEX_OFFSET                                            0x00000018
+#define TCL_DATA_CMD_SEARCH_INDEX_LSB                                               0
+#define TCL_DATA_CMD_SEARCH_INDEX_MSB                                               19
+#define TCL_DATA_CMD_SEARCH_INDEX_MASK                                              0x000fffff
+
+
+/* Description		CACHE_SET_NUM
+
+			Cache set number that should be used to cache the index 
+			based search results, for address and flow search. This 
+			value should be equal to LSB four bits of the hash value
+			 of match data, in case of search index points to an entry
+			 which may be used in content based search also. The value
+			 can be anything when the entry pointed by search index 
+			will not be used for content based search. 
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_CACHE_SET_NUM_OFFSET                                           0x00000018
+#define TCL_DATA_CMD_CACHE_SET_NUM_LSB                                              20
+#define TCL_DATA_CMD_CACHE_SET_NUM_MSB                                              23
+#define TCL_DATA_CMD_CACHE_SET_NUM_MASK                                             0x00f00000
+
+
+/* Description		INDEX_LOOKUP_OVERRIDE
+
+			When set, address search and packet routing is forced to
+			 use 'search_index' instead of following the register configuration
+			 seleced by Bank_id.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_OFFSET                                   0x00000018
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_LSB                                      24
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_MSB                                      24
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_MASK                                     0x01000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_RESERVED_6A_OFFSET                                             0x00000018
+#define TCL_DATA_CMD_RESERVED_6A_LSB                                                25
+#define TCL_DATA_CMD_RESERVED_6A_MSB                                                31
+#define TCL_DATA_CMD_RESERVED_6A_MASK                                               0xfe000000
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define TCL_DATA_CMD_RESERVED_7A_OFFSET                                             0x0000001c
+#define TCL_DATA_CMD_RESERVED_7A_LSB                                                0
+#define TCL_DATA_CMD_RESERVED_7A_MSB                                                19
+#define TCL_DATA_CMD_RESERVED_7A_MASK                                               0x000fffff
+
+
+/* Description		RING_ID
+
+			The buffer pointer ring ID.
+			0 refers to the IDLE ring
+			1 - N refers to other rings
+			
+			Helps with debugging when dumping ring contents.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_RING_ID_OFFSET                                                 0x0000001c
+#define TCL_DATA_CMD_RING_ID_LSB                                                    20
+#define TCL_DATA_CMD_RING_ID_MSB                                                    27
+#define TCL_DATA_CMD_RING_ID_MASK                                                   0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into the Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define TCL_DATA_CMD_LOOPING_COUNT_OFFSET                                           0x0000001c
+#define TCL_DATA_CMD_LOOPING_COUNT_LSB                                              28
+#define TCL_DATA_CMD_LOOPING_COUNT_MSB                                              31
+#define TCL_DATA_CMD_LOOPING_COUNT_MASK                                             0xf0000000
+
+
+
+#endif   // TCL_DATA_CMD
diff --git a/hw/qca5332/tcl_entrance_from_ppe_ring.h b/hw/qca5332/tcl_entrance_from_ppe_ring.h
new file mode 100644
index 0000000..c1d74f4
--- /dev/null
+++ b/hw/qca5332/tcl_entrance_from_ppe_ring.h
@@ -0,0 +1,748 @@
+
+/* 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 _TCL_ENTRANCE_FROM_PPE_RING_H_
+#define _TCL_ENTRANCE_FROM_PPE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_ENTRANCE_FROM_PPE_RING 8
+
+
+struct tcl_entrance_from_ppe_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_addr_lo                                          : 32; // [31:0]
+             uint32_t buffer_addr_hi                                          :  8, // [7:0]
+                      drop_prec                                               :  2, // [9:8]
+                      fake_mac_header                                         :  1, // [10:10]
+                      known_ind                                               :  1, // [11:11]
+                      cpu_code_valid                                          :  1, // [12:12]
+                      tunnel_term_ind                                         :  1, // [13:13]
+                      tunnel_type                                             :  1, // [14:14]
+                      wifi_qos_flag                                           :  1, // [15:15]
+                      service_code                                            :  9, // [24:16]
+                      reserved_1b                                             :  1, // [25:25]
+                      int_pri                                                 :  4, // [29:26]
+                      more                                                    :  1, // [30:30]
+                      reserved_1a                                             :  1; // [31:31]
+             uint32_t opaque_lo                                               : 32; // [31:0]
+             uint32_t opaque_hi                                               : 32; // [31:0]
+             uint32_t src_info                                                : 16, // [15:0]
+                      dst_info                                                : 16; // [31:16]
+             uint32_t data_length                                             : 18, // [17:0]
+                      pool_id                                                 :  6, // [23:18]
+                      wifi_qos                                                :  8; // [31:24]
+             uint32_t data_offset                                             : 12, // [11:0]
+                      l4_csum_status                                          :  1, // [12:12]
+                      l3_csum_status                                          :  1, // [13:13]
+                      hash_flag                                               :  2, // [15:14]
+                      hash_value                                              : 16; // [31:16]
+             uint32_t dscp                                                    :  8, // [7:0]
+                      valid_toggle                                            :  1, // [8:8]
+                      pppoe_flag                                              :  1, // [9:9]
+                      svlan_flag                                              :  1, // [10:10]
+                      cvlan_flag                                              :  1, // [11:11]
+                      pid                                                     :  4, // [15:12]
+                      l3_offset                                               :  8, // [23:16]
+                      l4_offset                                               :  8; // [31:24]
+#else
+             uint32_t buffer_addr_lo                                          : 32; // [31:0]
+             uint32_t reserved_1a                                             :  1, // [31:31]
+                      more                                                    :  1, // [30:30]
+                      int_pri                                                 :  4, // [29:26]
+                      reserved_1b                                             :  1, // [25:25]
+                      service_code                                            :  9, // [24:16]
+                      wifi_qos_flag                                           :  1, // [15:15]
+                      tunnel_type                                             :  1, // [14:14]
+                      tunnel_term_ind                                         :  1, // [13:13]
+                      cpu_code_valid                                          :  1, // [12:12]
+                      known_ind                                               :  1, // [11:11]
+                      fake_mac_header                                         :  1, // [10:10]
+                      drop_prec                                               :  2, // [9:8]
+                      buffer_addr_hi                                          :  8; // [7:0]
+             uint32_t opaque_lo                                               : 32; // [31:0]
+             uint32_t opaque_hi                                               : 32; // [31:0]
+             uint32_t dst_info                                                : 16, // [31:16]
+                      src_info                                                : 16; // [15:0]
+             uint32_t wifi_qos                                                :  8, // [31:24]
+                      pool_id                                                 :  6, // [23:18]
+                      data_length                                             : 18; // [17:0]
+             uint32_t hash_value                                              : 16, // [31:16]
+                      hash_flag                                               :  2, // [15:14]
+                      l3_csum_status                                          :  1, // [13:13]
+                      l4_csum_status                                          :  1, // [12:12]
+                      data_offset                                             : 12; // [11:0]
+             uint32_t l4_offset                                               :  8, // [31:24]
+                      l3_offset                                               :  8, // [23:16]
+                      pid                                                     :  4, // [15:12]
+                      cvlan_flag                                              :  1, // [11:11]
+                      svlan_flag                                              :  1, // [10:10]
+                      pppoe_flag                                              :  1, // [9:9]
+                      valid_toggle                                            :  1, // [8:8]
+                      dscp                                                    :  8; // [7:0]
+#endif
+};
+
+
+/* Description		BUFFER_ADDR_LO
+
+			Consumer: TCL
+			Producer: PPE DMA/SW
+			
+			Lower 32 bits of the buffer address buffer_addr_31_0.
+			
+			This is the address of the starting point of the buffer 
+			directly from the PPE Rx Fill descriptor. TCL needs to calculate
+			 the packet data address based on DATA_OFFSET. 
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_OFFSET                            0x00000000
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_LSB                               0
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_MSB                               31
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_MASK                              0xffffffff
+
+
+/* Description		BUFFER_ADDR_HI
+
+			Consumer: TCL/TXDMA
+			Producer: PPE DMA/SW
+			
+			Higher 8 bits of the buffer address buffer_addr_39_32 (Not
+			 supported in Alder PPE but could be supported by PPE in
+			 future). Also see BUFFER_ADDR_LO.
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_OFFSET                            0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_LSB                               0
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_MSB                               7
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_MASK                              0x000000ff
+
+
+/* Description		DROP_PREC
+
+			Consumer: TCL/TQM
+			Producer: Switch Core
+			
+			Packet drop precedence
+			
+			Waikiki TCL maps DROP_PREC to field msdu_color in structure
+			 'TX_MSDU_DETAILS' in  'TQM_ENTRANCE_RING' if the internal
+			 parameter 'DROP_PREC_ENABLE' is set (see field DST_INFO) 
+			and DROP_PREC is set to a legal value. Otherwise msdu_color
+			 is set to MSDU_COLORLESS.
+			
+			<enum 0 PPE_drop_prec_green>
+			<enum 1 PPE_drop_prec_yellow>
+			<enum 2 PPE_drop_prec_red>
+			<legal 0-2>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_OFFSET                                 0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_LSB                                    8
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_MSB                                    9
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_MASK                                   0x00000300
+
+
+/* Description		FAKE_MAC_HEADER
+
+			Consumer: SW
+			Producer: Switch Core
+			
+			Indicates the MAC header is fake (Not supported for direct
+			 switch connect)
+			0:  No fake MAC header
+			1:  Fake MAC header
+			<legal 0>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_OFFSET                           0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_LSB                              10
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_MSB                              10
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_MASK                             0x00000400
+
+
+/* Description		KNOWN_IND
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Known packet indication (Ignored by Waikiki TCL)
+			0: packet is unknown flooding.
+			1: packet is forwarded by any known entry.
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_OFFSET                                 0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_LSB                                    11
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_MSB                                    11
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_MASK                                   0x00000800
+
+
+/* Description		CPU_CODE_VALID
+
+			Consumer: SW
+			Producer: Switch Core
+			
+			Indicates validity of 'CPU_CODE' (used to indicate the reason
+			 the packet is sent to the CPU) (Not supported for direct
+			 switch connect)
+			0: Invalid
+			1: Valid
+			<legal 0>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_OFFSET                            0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_LSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_MSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_MASK                              0x00001000
+
+
+/* Description		TUNNEL_TERM_IND
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Tunnel termination indication (Ignored by Waikiki TCL)
+			0: packet is not decapsulated
+			1: packet is decapsulated
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_OFFSET                           0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_LSB                              13
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_MSB                              13
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_MASK                             0x00002000
+
+
+/* Description		TUNNEL_TYPE
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Tunnel Type (Ignored by Waikiki TCL)
+			0: Layer 2 tunnel
+			1: Layer 3 tunnel
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_LSB                                  14
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_MSB                                  14
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_MASK                                 0x00004000
+
+
+/* Description		WIFI_QOS_FLAG
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Wi-Fi QoS Flag
+			0: If WIFI_QOS[7] is set, WIFI_QOS[3:1] provides a 3-bit
+			 HLOS_TID value and HLOS_TID_overwrite is enabled, else 
+			there is no overwrite.
+			1: WIFI_QOS[5:0] provides a 6-bit "flow pointer override" 
+			value by using:
+			who_classify_info_sel = WIFI_QOS[5:4],
+			HLOS_TID = WIFI_QOS[3:1],
+			flow_override = WIFI_QOS[0],
+			and HLOS_TID_overwrite and flow_override_enable are set.
+			
+			
+			Also see field INT_PRI for another way to enable HLOS_TID_overwrite.
+			
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_OFFSET                             0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_LSB                                15
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_MSB                                15
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_MASK                               0x00008000
+
+
+/* Description		SERVICE_CODE
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Opaque service code between engines (Ignored by Waikiki 
+			TCL)
+			0: Indicates the end of service path
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_OFFSET                              0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_LSB                                 16
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_MSB                                 24
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_MASK                                0x01ff0000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0, 1>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_LSB                                  25
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_MSB                                  25
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_MASK                                 0x02000000
+
+
+/* Description		INT_PRI
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Internal/User Priority (Ignored by Waikiki TCL)
+			
+			Waikiki TCL maps INT_PRI to HLOS_TID using an internal mapping
+			 table if the internal parameter 'USE_PPE_INT_PRI_FOR_TID' 
+			is set (see field DST_INFO) and WIFI_QOS_FLAG is unset and
+			 WIFI_QOS[7] is unset.
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_OFFSET                                   0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_LSB                                      26
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_MSB                                      29
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_MASK                                     0x3c000000
+
+
+/* Description		MORE
+
+			Consumer: TCL
+			Producer: PPE DMA
+			
+			0: The last segment of packet
+			1: More segments to follow, indicating scatter/gather (Not
+			 supported in Waikiki TCL)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_OFFSET                                      0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_LSB                                         30
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_MSB                                         30
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_MASK                                        0x40000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_LSB                                  31
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_MSB                                  31
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_MASK                                 0x80000000
+
+
+/* Description		OPAQUE_LO
+
+			Consumer: TCL/WBM/SW
+			Producer: PPE DMA/SW
+			
+			Lower 32 bits of opaque SW value
+			
+			OPAQUE_LO[19:0] are used for Sw_buffer_cookie with OPAQUE_LO[31:20] 
+			ignored, for direct switch connect.
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_OFFSET                                 0x00000008
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_LSB                                    0
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_MASK                                   0xffffffff
+
+
+/* Description		OPAQUE_HI
+
+			Consumer: SW
+			Producer: PPE DMA/SW
+			
+			Higher 32 bits of opaque SW value, ignored completely for
+			 direct switch connect
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_OFFSET                                 0x0000000c
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_LSB                                    0
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_MASK                                   0xffffffff
+
+
+/* Description		SRC_INFO
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Source port: SRC_INFO[15:12] = 'b0010, SRC_INFO[11:0] is
+			 the PORT_ID (Ignored by Waikiki TCL).
+			See DST_INFO for PORT_ID values.
+			<legal 8192-8447>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_OFFSET                                  0x00000010
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_LSB                                     0
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_MSB                                     15
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_MASK                                    0x0000ffff
+
+
+/* Description		DST_INFO
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Destination port or next hop information
+			
+			DST_INFO[15:12] = 'b0000 indicates invalid information.
+			If DST_INFO[15:12] = 'b0001, DST_INFO[11:0] is the next 
+			hop index (Not supported for direct switch connect).
+			If DST_INFO[15:12] = 'b0010, DST_INFO[11:0] is the PORT_ID, 
+			which Waikiki TCL can process.
+			If DST_INFO[15:12] = 'b0011, DST_INFO[11:0] is the destination
+			 port bitmap (Not supported for direct switch connect).
+			
+			PORT_ID:
+			0-31 indicates a physical Ethernet port.
+			32-63 indicates a link aggregation group (LAG) of ports (Not
+			 supported for direct switch connect).
+			64-255 indicates a virtual port, which Waikiki TCL maps 
+			to Bank_id, PMAC_ID, vdev_id, To_FW and Search_index. Waikiki
+			 TCL also maps this to internal parameters 'USE_PPE_INT_PRI_FOR_TID' 
+			and 'DROP_PREC_ENABLE' (see fields INT_PRI and DROP_PREC).
+			
+			Other values are reserved.
+			<legal 0-8447,12288-16383>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_OFFSET                                  0x00000010
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_LSB                                     16
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_MSB                                     31
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_MASK                                    0xffff0000
+
+
+/* Description		DATA_LENGTH
+
+			Consumer: TCL/TXDMA
+			Producer: PPE DMA
+			
+			Length of valid packet data in the current buffer in bytes
+			 (Bits [17:16] not supported in Alder PPE and bits [17:14] 
+			not supported in Waikiki)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_OFFSET                               0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_LSB                                  0
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_MSB                                  17
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_MASK                                 0x0003ffff
+
+
+/* Description		POOL_ID
+
+			Consumer: TCL/SW
+			Producer: PPE DMA/SW
+			
+			To be used for hardware buffer management (Not supported
+			 in Alder PPE and ignored by Waikiki TCL)
+			
+			SW must ensure 1:1 mapping between PPE Rx Fill and PPE Rx
+			 completion descriptors.
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_OFFSET                                   0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_LSB                                      18
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_MSB                                      23
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_MASK                                     0x00fc0000
+
+
+/* Description		WIFI_QOS
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Wi-Fi QoS Value
+			
+			Waikiki TCL maps as follows:
+			who_classify_info_sel = WIFI_QOS[5:4] if WIFI_QOS_FLAG set
+			
+			HLOS_TID = WIFI_QOS[3:1] if HLOS_TID_overwrite enabled
+			flow_override = WIFI_QOS [0] if WIFI_QOS_FLAG set
+			flow_override_enable = WIFI_QOS_FLAG
+			HLOS_TID_overwrite = WIFI_QOS_FLAG || WIFI_QOS[7]
+			
+			WIFI_QOS[6] is ignored by Waikiki TCL.
+			
+			Also see field INT_PRI for another way to enable HLOS_TID_overwrite.
+			
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_OFFSET                                  0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_LSB                                     24
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_MSB                                     31
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_MASK                                    0xff000000
+
+
+/* Description		DATA_OFFSET
+
+			Consumer: TCL
+			Producer: PPE DMA
+			
+			Offset to the packet data from the buffer address
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_OFFSET                               0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_LSB                                  0
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_MSB                                  11
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_MASK                                 0x00000fff
+
+
+/* Description		L4_CSUM_STATUS
+
+			Consumer: TCL
+			Producer: PPE DMA/Switch Core
+			
+			Layer 4 checksum verification result (Ignored by Waikiki
+			 TCL)
+			0: Unknown or invalid
+			1: Valid
+			The default value is 0. Only when PPE DMA performs the checksum
+			 calculation and the result is correct, is this bit set.
+			
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_OFFSET                            0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_LSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_MSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_MASK                              0x00001000
+
+
+/* Description		L3_CSUM_STATUS
+
+			Consumer: TCL
+			Producer: PPE DMA/Switch Core
+			
+			Layer 3 checksum verification result (Ignored by Waikiki
+			 TCL)
+			0: Unknown or invalid
+			1: Valid
+			The default value is 0. Only when PPE DMA performs the checksum
+			 calculation and the result is correct, is this bit set.
+			
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_OFFSET                            0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_LSB                               13
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_MSB                               13
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_MASK                              0x00002000
+
+
+/* Description		HASH_FLAG
+
+			Consumer: SW
+			Producer: Switch Core
+			
+			Hash type (Ignored by Waikiki TCL)
+			00: Hash invalid
+			01: 5-tuple hash
+			10: 3-tuple hash
+			11: Reserved
+			<legal 0-2>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_OFFSET                                 0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_LSB                                    14
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_MSB                                    15
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_MASK                                   0x0000c000
+
+
+/* Description		HASH_VALUE
+
+			Consumer: SW
+			Producer: Switch Core
+			
+			Hash value (Ignored by Waikiki TCL)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_OFFSET                                0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_LSB                                   16
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_MSB                                   31
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_MASK                                  0xffff0000
+
+
+/* Description		DSCP
+
+			Consumer: TCL
+			Producer: PPE DMA/Switch Core
+			
+			Differential Services Code Point value (Ignored by Waikiki
+			 TCL)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_OFFSET                                      0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_LSB                                         0
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_MSB                                         7
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_MASK                                        0x000000ff
+
+
+/* Description		VALID_TOGGLE
+
+			Consumer: TCL
+			Producer: PPE DMA
+			
+			Toggle bit to indicate the validity of the descriptor (Ignored
+			 by Waikiki TCL).
+			The value is toggled when the producer pointer wraps around.
+			
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_OFFSET                              0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_LSB                                 8
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_MSB                                 8
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_MASK                                0x00000100
+
+
+/* Description		PPPOE_FLAG
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Indicates a PPPoE packet (Ignored by Waikiki TCL)
+			0: No PPPoE header
+			1: PPPoE header exists
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_LSB                                   9
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_MSB                                   9
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_MASK                                  0x00000200
+
+
+/* Description		SVLAN_FLAG
+
+			Consumer: TCL
+			Producer: PPE DMA/Switch Core
+			
+			Indicates the existence of S-VLAN tag (Ignored by Waikiki
+			 TCL)
+			0: No S-VLAN
+			1: S-VLAN exists, including priority
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_LSB                                   10
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_MSB                                   10
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_MASK                                  0x00000400
+
+
+/* Description		CVLAN_FLAG
+
+			Consumer: TCL
+			Producer: PPE DMA/Switch Core
+			
+			Indicates the existence of C-VLAN tag (Ignored by Waikiki
+			 TCL)
+			0: No C-VLAN
+			1: C-VLAN exists, including priority
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_LSB                                   11
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_MSB                                   11
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_MASK                                  0x00000800
+
+
+/* Description		PID
+
+			Consumer: TCL
+			Producer: Switch Core
+			
+			Protocol ID, indicating the protocol type of the packet (Ignored
+			 by Waikiki TCL).
+			0: IPv4 (no supported L4)
+			1: TCP over IPv4
+			2: UDP over IPv4
+			3: UDP-Lite over IPv4
+			4: IPv6 (no supported L4)
+			5: TCP over IPv6
+			6: UDP over IPv6
+			7: UDP-Lite over IPv6
+			8: Non-IP
+			Other values are reserved
+			<legal 0-8>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_OFFSET                                       0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_LSB                                          12
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_MSB                                          15
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_MASK                                         0x0000f000
+
+
+/* Description		L3_OFFSET
+
+			Consumer: TCL
+			Producer: PPE DMA
+			
+			Layer 3 header offset from DATA_OFFSET (Ignored by Waikiki
+			 TCL)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_OFFSET                                 0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_LSB                                    16
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_MSB                                    23
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_MASK                                   0x00ff0000
+
+
+/* Description		L4_OFFSET
+
+			Consumer: TCL
+			Producer: PPE DMA
+			
+			Layer 4 header offset from DATA_OFFSET (Ignored by Waikiki
+			 TCL)
+			<legal all>
+*/
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_OFFSET                                 0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_LSB                                    24
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_MASK                                   0xff000000
+
+
+
+#endif   // TCL_ENTRANCE_FROM_PPE_RING
diff --git a/hw/qca5332/tcl_gse_cmd.h b/hw/qca5332/tcl_gse_cmd.h
new file mode 100644
index 0000000..8120458
--- /dev/null
+++ b/hw/qca5332/tcl_gse_cmd.h
@@ -0,0 +1,345 @@
+
+/* 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 _TCL_GSE_CMD_H_
+#define _TCL_GSE_CMD_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_GSE_CMD 8
+
+
+struct tcl_gse_cmd {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t control_buffer_addr_31_0                                : 32; // [31:0]
+             uint32_t control_buffer_addr_39_32                               :  8, // [7:0]
+                      gse_ctrl                                                :  4, // [11:8]
+                      gse_sel                                                 :  1, // [12:12]
+                      status_destination_ring_id                              :  1, // [13:13]
+                      swap                                                    :  1, // [14:14]
+                      index_search_en                                         :  1, // [15:15]
+                      cache_set_num                                           :  4, // [19:16]
+                      reserved_1a                                             : 12; // [31:20]
+             uint32_t tcl_cmd_type                                            :  1, // [0:0]
+                      reserved_2a                                             : 31; // [31:1]
+             uint32_t cmd_meta_data_31_0                                      : 32; // [31:0]
+             uint32_t cmd_meta_data_63_32                                     : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 20, // [19:0]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t control_buffer_addr_31_0                                : 32; // [31:0]
+             uint32_t reserved_1a                                             : 12, // [31:20]
+                      cache_set_num                                           :  4, // [19:16]
+                      index_search_en                                         :  1, // [15:15]
+                      swap                                                    :  1, // [14:14]
+                      status_destination_ring_id                              :  1, // [13:13]
+                      gse_sel                                                 :  1, // [12:12]
+                      gse_ctrl                                                :  4, // [11:8]
+                      control_buffer_addr_39_32                               :  8; // [7:0]
+             uint32_t reserved_2a                                             : 31, // [31:1]
+                      tcl_cmd_type                                            :  1; // [0:0]
+             uint32_t cmd_meta_data_31_0                                      : 32; // [31:0]
+             uint32_t cmd_meta_data_63_32                                     : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             : 20; // [19:0]
+#endif
+};
+
+
+/* Description		CONTROL_BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of a control buffer containing additional
+			 info needed for this command execution.
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_OFFSET                                 0x00000000
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_LSB                                    0
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_MSB                                    31
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_MASK                                   0xffffffff
+
+
+/* Description		CONTROL_BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of a control buffer containing additional
+			 info needed for this command execution.
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_OFFSET                                0x00000004
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_LSB                                   0
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_MSB                                   7
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_MASK                                  0x000000ff
+
+
+/* Description		GSE_CTRL
+
+			GSE control operations. This includes cache operations and
+			 table entry statistics read/clear operation.
+			<enum 0 rd_stat> Report or Read statistics
+			<enum 1 srch_dis> Search disable. Report only Hash
+			<enum 2 Wr_bk_single> Write Back single entry
+			<enum 3 wr_bk_all> Write Back entire cache entry
+			<enum 4 inval_single> Invalidate single cache entry
+			<enum 5 inval_all> Invalidate entire cache
+			<enum 6 wr_bk_inval_single> Write back and Invalidate  single
+			 entry in cache
+			<enum 7 wr_bk_inval_all> write back and invalidate entire
+			 cache
+			<enum 8 clr_stat_single> Clear statistics for single entry
+			
+			<legal 0-8>
+			Rest of the values reserved. 
+			For all single entry control operations (write back, Invalidate
+			 or both)Statistics will be reported
+*/
+
+#define TCL_GSE_CMD_GSE_CTRL_OFFSET                                                 0x00000004
+#define TCL_GSE_CMD_GSE_CTRL_LSB                                                    8
+#define TCL_GSE_CMD_GSE_CTRL_MSB                                                    11
+#define TCL_GSE_CMD_GSE_CTRL_MASK                                                   0x00000f00
+
+
+/* Description		GSE_SEL
+
+			Bit to select the ASE or FSE to do the operation mention
+			 by GSE_ctrl bit
+			0: FSE select
+			1: ASE select
+*/
+
+#define TCL_GSE_CMD_GSE_SEL_OFFSET                                                  0x00000004
+#define TCL_GSE_CMD_GSE_SEL_LSB                                                     12
+#define TCL_GSE_CMD_GSE_SEL_MSB                                                     12
+#define TCL_GSE_CMD_GSE_SEL_MASK                                                    0x00001000
+
+
+/* Description		STATUS_DESTINATION_RING_ID
+
+			The TCL status ring to which the GSE status needs to be 
+			send.
+			
+			<enum 0 tcl_status_0_ring>
+			<enum 1 tcl_status_1_ring>
+			
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_OFFSET                               0x00000004
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_LSB                                  13
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_MSB                                  13
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_MASK                                 0x00002000
+
+
+/* Description		SWAP
+
+			Bit to enable byte swapping of contents of buffer
+			<enum 0 Byte_swap_disable > 
+			<enum 1 byte_swap_enable >
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_SWAP_OFFSET                                                     0x00000004
+#define TCL_GSE_CMD_SWAP_LSB                                                        14
+#define TCL_GSE_CMD_SWAP_MSB                                                        14
+#define TCL_GSE_CMD_SWAP_MASK                                                       0x00004000
+
+
+/* Description		INDEX_SEARCH_EN
+
+			When this bit is set to 1 control_buffer_addr[19:0] will
+			 be considered as index of the AST or Flow table and GSE
+			 commands will be executed accordingly on the entry pointed
+			 by the index. 
+			This feature is disabled by setting this bit to 0.
+			<enum 0 index_based_cmd_disable>
+			<enum 1 index_based_cmd_enable>
+			
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_OFFSET                                          0x00000004
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_LSB                                             15
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_MSB                                             15
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_MASK                                            0x00008000
+
+
+/* Description		CACHE_SET_NUM
+
+			Cache set number that should be used to cache the index 
+			based search results, for address and flow search. This 
+			value should be equal to value of cache_set_num for the 
+			index that is issued in TCL_DATA_CMD during search index
+			 based ASE or FSE. This field is valid for index based GSE
+			 commands
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_CACHE_SET_NUM_OFFSET                                            0x00000004
+#define TCL_GSE_CMD_CACHE_SET_NUM_LSB                                               16
+#define TCL_GSE_CMD_CACHE_SET_NUM_MSB                                               19
+#define TCL_GSE_CMD_CACHE_SET_NUM_MASK                                              0x000f0000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TCL_GSE_CMD_RESERVED_1A_OFFSET                                              0x00000004
+#define TCL_GSE_CMD_RESERVED_1A_LSB                                                 20
+#define TCL_GSE_CMD_RESERVED_1A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_1A_MASK                                                0xfff00000
+
+
+/* Description		TCL_CMD_TYPE
+
+			This field is used to select the type of TCL Command decriptor
+			 that is queued by SW/FW. For 'TCL_GSE_CMD' this has to 
+			be 1.
+			<legal 1>
+*/
+
+#define TCL_GSE_CMD_TCL_CMD_TYPE_OFFSET                                             0x00000008
+#define TCL_GSE_CMD_TCL_CMD_TYPE_LSB                                                0
+#define TCL_GSE_CMD_TCL_CMD_TYPE_MSB                                                0
+#define TCL_GSE_CMD_TCL_CMD_TYPE_MASK                                               0x00000001
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define TCL_GSE_CMD_RESERVED_2A_OFFSET                                              0x00000008
+#define TCL_GSE_CMD_RESERVED_2A_LSB                                                 1
+#define TCL_GSE_CMD_RESERVED_2A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_2A_MASK                                                0xfffffffe
+
+
+/* Description		CMD_META_DATA_31_0
+
+			Meta data to be returned in the status descriptor
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_OFFSET                                       0x0000000c
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_LSB                                          0
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_MSB                                          31
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_MASK                                         0xffffffff
+
+
+/* Description		CMD_META_DATA_63_32
+
+			Meta data to be returned in the status descriptor
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_OFFSET                                      0x00000010
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_LSB                                         0
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_MSB                                         31
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_MASK                                        0xffffffff
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define TCL_GSE_CMD_RESERVED_5A_OFFSET                                              0x00000014
+#define TCL_GSE_CMD_RESERVED_5A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_5A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_5A_MASK                                                0xffffffff
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define TCL_GSE_CMD_RESERVED_6A_OFFSET                                              0x00000018
+#define TCL_GSE_CMD_RESERVED_6A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_6A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_6A_MASK                                                0xffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define TCL_GSE_CMD_RESERVED_7A_OFFSET                                              0x0000001c
+#define TCL_GSE_CMD_RESERVED_7A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_7A_MSB                                                 19
+#define TCL_GSE_CMD_RESERVED_7A_MASK                                                0x000fffff
+
+
+/* Description		RING_ID
+
+			Helps with debugging when dumping ring contents.
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_RING_ID_OFFSET                                                  0x0000001c
+#define TCL_GSE_CMD_RING_ID_LSB                                                     20
+#define TCL_GSE_CMD_RING_ID_MSB                                                     27
+#define TCL_GSE_CMD_RING_ID_MASK                                                    0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into the Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define TCL_GSE_CMD_LOOPING_COUNT_OFFSET                                            0x0000001c
+#define TCL_GSE_CMD_LOOPING_COUNT_LSB                                               28
+#define TCL_GSE_CMD_LOOPING_COUNT_MSB                                               31
+#define TCL_GSE_CMD_LOOPING_COUNT_MASK                                              0xf0000000
+
+
+
+#endif   // TCL_GSE_CMD
diff --git a/hw/qca5332/tcl_status_ring.h b/hw/qca5332/tcl_status_ring.h
new file mode 100644
index 0000000..94033a5
--- /dev/null
+++ b/hw/qca5332/tcl_status_ring.h
@@ -0,0 +1,310 @@
+
+/* 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 _TCL_STATUS_RING_H_
+#define _TCL_STATUS_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_STATUS_RING 8
+
+
+struct tcl_status_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t gse_ctrl                                                :  4, // [3:0]
+                      ase_fse_sel                                             :  1, // [4:4]
+                      cache_op_res                                            :  2, // [6:5]
+                      index_search_en                                         :  1, // [7:7]
+                      msdu_cnt_n                                              : 24; // [31:8]
+             uint32_t msdu_byte_cnt_n                                         : 32; // [31:0]
+             uint32_t msdu_timestmp_n                                         : 32; // [31:0]
+             uint32_t cmd_meta_data_31_0                                      : 32; // [31:0]
+             uint32_t cmd_meta_data_63_32                                     : 32; // [31:0]
+             uint32_t hash_indx_val                                           : 20, // [19:0]
+                      cache_set_num                                           :  4, // [23:20]
+                      reserved_5a                                             :  8; // [31:24]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 20, // [19:0]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t msdu_cnt_n                                              : 24, // [31:8]
+                      index_search_en                                         :  1, // [7:7]
+                      cache_op_res                                            :  2, // [6:5]
+                      ase_fse_sel                                             :  1, // [4:4]
+                      gse_ctrl                                                :  4; // [3:0]
+             uint32_t msdu_byte_cnt_n                                         : 32; // [31:0]
+             uint32_t msdu_timestmp_n                                         : 32; // [31:0]
+             uint32_t cmd_meta_data_31_0                                      : 32; // [31:0]
+             uint32_t cmd_meta_data_63_32                                     : 32; // [31:0]
+             uint32_t reserved_5a                                             :  8, // [31:24]
+                      cache_set_num                                           :  4, // [23:20]
+                      hash_indx_val                                           : 20; // [19:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             : 20; // [19:0]
+#endif
+};
+
+
+/* Description		GSE_CTRL
+
+			GSE control operations. This includes cache operations and
+			 table entry statistics read/clear operation.
+			<enum 0 rd_stat> Report or Read statistics
+			<enum 1 srch_dis> Search disable. Report only Hash
+			<enum 2 Wr_bk_single> Write Back single entry
+			<enum 3 wr_bk_all> Write Back entire cache entry
+			<enum 4 inval_single> Invalidate single cache entry
+			<enum 5 inval_all> Invalidate entire cache
+			<enum 6 wr_bk_inval_single> Write back and Invalidate  single
+			 entry in cache
+			<enum 7 wr_bk_inval_all> write back and invalidate entire
+			 cache
+			<enum 8 clr_stat_single> Clear statistics for single entry
+			
+			<legal 0-8>
+			Rest of the values reserved. 
+			For all single entry control operations (write back, Invalidate
+			 or both)Statistics will be reported
+*/
+
+#define TCL_STATUS_RING_GSE_CTRL_OFFSET                                             0x00000000
+#define TCL_STATUS_RING_GSE_CTRL_LSB                                                0
+#define TCL_STATUS_RING_GSE_CTRL_MSB                                                3
+#define TCL_STATUS_RING_GSE_CTRL_MASK                                               0x0000000f
+
+
+/* Description		ASE_FSE_SEL
+
+			Search Engine for which operation is done.
+			1'b0: Address Search Engine Result
+			1'b1: Flow Search Engine result
+*/
+
+#define TCL_STATUS_RING_ASE_FSE_SEL_OFFSET                                          0x00000000
+#define TCL_STATUS_RING_ASE_FSE_SEL_LSB                                             4
+#define TCL_STATUS_RING_ASE_FSE_SEL_MSB                                             4
+#define TCL_STATUS_RING_ASE_FSE_SEL_MASK                                            0x00000010
+
+
+/* Description		CACHE_OP_RES
+
+			Cache operation result. Following are results of cache operation.
+			
+			<enum 0 op_done>  Operation successful
+			<enum 1 not_fnd> Entry not found in Table
+			<enum 2 timeout_er>  Timeout Error
+			<legal 0-2>
+*/
+
+#define TCL_STATUS_RING_CACHE_OP_RES_OFFSET                                         0x00000000
+#define TCL_STATUS_RING_CACHE_OP_RES_LSB                                            5
+#define TCL_STATUS_RING_CACHE_OP_RES_MSB                                            6
+#define TCL_STATUS_RING_CACHE_OP_RES_MASK                                           0x00000060
+
+
+/* Description		INDEX_SEARCH_EN
+
+			When this bit is set to 1 control_buffer_addr[19:0] will
+			 be considered as index of the AST or Flow table and GSE
+			 commands will be executed accordingly on the entry pointed
+			 by the index. 
+			This feature is disabled by setting this bit to 0. 
+			<enum 0 index_based_cmd_disable>
+			<enum 1 index_based_cmd_enable>
+			
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_OFFSET                                      0x00000000
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_LSB                                         7
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_MSB                                         7
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_MASK                                        0x00000080
+
+
+/* Description		MSDU_CNT_N
+
+			MSDU count of Entry. Valid when GSE_CTRL is 4'b0111 and 
+			4'b1000
+*/
+
+#define TCL_STATUS_RING_MSDU_CNT_N_OFFSET                                           0x00000000
+#define TCL_STATUS_RING_MSDU_CNT_N_LSB                                              8
+#define TCL_STATUS_RING_MSDU_CNT_N_MSB                                              31
+#define TCL_STATUS_RING_MSDU_CNT_N_MASK                                             0xffffff00
+
+
+/* Description		MSDU_BYTE_CNT_N
+
+			MSDU byte count for entry 1. Valid when GSE_CTRL is 4'b0111
+			 and 4'b1000
+*/
+
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_OFFSET                                      0x00000004
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_LSB                                         0
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_MSB                                         31
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_MASK                                        0xffffffff
+
+
+/* Description		MSDU_TIMESTMP_N
+
+			MSDU timestamp for entry 1. Valid when GSE_CTRL is 4'b0111
+			 and 4'b1000
+*/
+
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_OFFSET                                      0x00000008
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_LSB                                         0
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_MSB                                         31
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_MASK                                        0xffffffff
+
+
+/* Description		CMD_META_DATA_31_0
+
+			Meta data from input ring
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_OFFSET                                   0x0000000c
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_LSB                                      0
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_MSB                                      31
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_MASK                                     0xffffffff
+
+
+/* Description		CMD_META_DATA_63_32
+
+			Meta data from input ring
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_OFFSET                                  0x00000010
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_LSB                                     0
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_MSB                                     31
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_MASK                                    0xffffffff
+
+
+/* Description		HASH_INDX_VAL
+
+			Index of entry in the table in case of search pass  (or)
+			
+			Hash value of the entry in table in case of search failed
+			 or search disable.
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_HASH_INDX_VAL_OFFSET                                        0x00000014
+#define TCL_STATUS_RING_HASH_INDX_VAL_LSB                                           0
+#define TCL_STATUS_RING_HASH_INDX_VAL_MSB                                           19
+#define TCL_STATUS_RING_HASH_INDX_VAL_MASK                                          0x000fffff
+
+
+/* Description		CACHE_SET_NUM
+
+			Cache set number copied from TCL_GSE_CMD
+*/
+
+#define TCL_STATUS_RING_CACHE_SET_NUM_OFFSET                                        0x00000014
+#define TCL_STATUS_RING_CACHE_SET_NUM_LSB                                           20
+#define TCL_STATUS_RING_CACHE_SET_NUM_MSB                                           23
+#define TCL_STATUS_RING_CACHE_SET_NUM_MASK                                          0x00f00000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define TCL_STATUS_RING_RESERVED_5A_OFFSET                                          0x00000014
+#define TCL_STATUS_RING_RESERVED_5A_LSB                                             24
+#define TCL_STATUS_RING_RESERVED_5A_MSB                                             31
+#define TCL_STATUS_RING_RESERVED_5A_MASK                                            0xff000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define TCL_STATUS_RING_RESERVED_6A_OFFSET                                          0x00000018
+#define TCL_STATUS_RING_RESERVED_6A_LSB                                             0
+#define TCL_STATUS_RING_RESERVED_6A_MSB                                             31
+#define TCL_STATUS_RING_RESERVED_6A_MASK                                            0xffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define TCL_STATUS_RING_RESERVED_7A_OFFSET                                          0x0000001c
+#define TCL_STATUS_RING_RESERVED_7A_LSB                                             0
+#define TCL_STATUS_RING_RESERVED_7A_MSB                                             19
+#define TCL_STATUS_RING_RESERVED_7A_MASK                                            0x000fffff
+
+
+/* Description		RING_ID
+
+			The buffer pointer ring ID.
+			
+			Helps with debugging when dumping ring contents.
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_RING_ID_OFFSET                                              0x0000001c
+#define TCL_STATUS_RING_RING_ID_LSB                                                 20
+#define TCL_STATUS_RING_RING_ID_MSB                                                 27
+#define TCL_STATUS_RING_RING_ID_MASK                                                0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			A count value that indicates the number of times the producer
+			 of entries into the Ring has looped around the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define TCL_STATUS_RING_LOOPING_COUNT_OFFSET                                        0x0000001c
+#define TCL_STATUS_RING_LOOPING_COUNT_LSB                                           28
+#define TCL_STATUS_RING_LOOPING_COUNT_MSB                                           31
+#define TCL_STATUS_RING_LOOPING_COUNT_MASK                                          0xf0000000
+
+
+
+#endif   // TCL_STATUS_RING
diff --git a/hw/qca5332/tlv_hdr.h b/hw/qca5332/tlv_hdr.h
new file mode 100644
index 0000000..80978d4
--- /dev/null
+++ b/hw/qca5332/tlv_hdr.h
@@ -0,0 +1,632 @@
+
+/* 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 _TLV_HDR_H_
+#define _TLV_HDR_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define _TLV_USERID_WIDTH_      6
+#define _TLV_DATA_WIDTH_        32
+#define _TLV_TAG_WIDTH_         9
+
+#define _TLV_MRV_EN_LEN_WIDTH_  9
+#define _TLV_MRV_DIS_LEN_WIDTH_ 12
+
+#define _TLV_16_DATA_WIDTH_     16
+#define _TLV_16_TAG_WIDTH_      5
+#define _TLV_16_LEN_WIDTH_      4
+#define _TLV_CTAG_WIDTH_        5
+#define _TLV_44_DATA_WIDTH_     44
+#define _TLV_64_DATA_WIDTH_     64
+#define _TLV_76_DATA_WIDTH_     64
+#define _TLV_CDATA_WIDTH_       32
+#define _TLV_CDATA_76_WIDTH_    64
+
+struct tlv_usr_16_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint16_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint16_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_16_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint16_t             tlv_cflg_reserved   :   1,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_reserved        :   6;
+#else
+           uint16_t             tlv_reserved        :   6,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+// -----------------------------------------------------------------
+// TLV 32 onwards support two formats, 
+// link id based where some bits of length have been re-purposed
+// non link id based where legacy length width is available
+// -----------------------------------------------------------------
+
+struct tlv_mlo_usr_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mlo_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   6;
+#else
+           uint32_t             tlv_reserved        :   6,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mlo_usr_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_mlo_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+
+struct tlv_mlo_usr_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_reserved        :   10,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mlo_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   16,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mlo_usr_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+#endif
+                                tlv_reserved        :   32;
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+struct tlv_mlo_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_reserved        :   32;
+#endif
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+
+
+
+
+
+struct tlv_mac_usr_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mac_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   6;
+#else
+           uint32_t             tlv_reserved        :   6,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mac_usr_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_mac_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+
+struct tlv_mac_usr_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_reserved        :   10,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mac_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   16,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mac_usr_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+#endif
+                                tlv_reserved        :   32;
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+struct tlv_mac_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_reserved        :   32;
+#endif
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+// -----------------------------------------------------------------
+// Compressed TLVs do not support the MLO variant
+// -----------------------------------------------------------------
+
+struct tlv_usr_c_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata           :   _TLV_CDATA_WIDTH_,
+                                pad_44to64_bit      :   20;
+#else
+           uint64_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+#endif
+};
+
+struct tlv_usr_c_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_52  :   52; 
+           uint64_t             tlv_cdata_upper_12  :   12,
+                                pad_76to128_bit     :   52;
+#else
+           uint64_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_cdata_middle_32 :   32;
+           uint64_t             pad_76to96_bit      :   20,
+                                tlv_cdata_upper_12  :   12,
+                                pad_96to128_bit     :   32;
+#endif
+};
+
+
+// -----------------------------------------------------------------
+// !!!   For backward compatibility ONLY.                        !!!
+// !!!   As per SW request, legacy tlv_32_hdr and tlv_usr_32_hdr !!!
+// !!!   types are mapped to new 64 bit headers.                 !!!
+// -----------------------------------------------------------------
+struct tlv_usr_32_hdr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_32_hdr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+// -----------------------------------------------------------------
+
+// -----------------------------------------------------------------
+// !!!   Tag-length word structures using uint32_t               !!!
+// !!!   For endianness considerations                           !!!
+// !!!   'tlword' is replaced with 'tlw32'                       !!!
+// -----------------------------------------------------------------
+
+struct tlv_mlo_usr_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mlo_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_reserved        :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mac_usr_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mac_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_reserved        :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+// -----------------------------------------------------------------
+// Compressed TLVs do not support the MLO variant
+// -----------------------------------------------------------------
+
+struct tlv_usr_c_44_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_20  :   20;
+           uint32_t             tlv_cdata_upper_12  :   12,
+                                pad_44to64_bit      :   20;
+#else
+           uint32_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1;
+           uint32_t             pad_44to64_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+#endif
+};
+
+struct tlv_usr_c_76_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_20  :   20;
+           uint32_t             tlv_cdata_middle_32 :   32;
+           uint32_t             tlv_cdata_upper_12  :   12,
+                                pad_76to96_bit      :   20;
+           uint32_t             pad_96to128_bit     :   32;
+#else
+           uint32_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1;
+           uint32_t             tlv_cdata_middle_32 :   32;
+           uint32_t             pad_76to96_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+           uint32_t             pad_96to128_bit     :   32;
+#endif
+};
+// -----------------------------------------------------------------
+
+
+#endif // _TLV_HDR_H_
diff --git a/hw/qca5332/tlv_tag_def.h b/hw/qca5332/tlv_tag_def.h
new file mode 100644
index 0000000..5491025
--- /dev/null
+++ b/hw/qca5332/tlv_tag_def.h
@@ -0,0 +1,516 @@
+
+/* 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 _TLV_TAG_DEF_
+#define _TLV_TAG_DEF_
+
+typedef enum tlv_tag_def {
+  WIFIMACTX_CBF_START_E                                    = 0 /* 0x0 */,
+  WIFIPHYRX_DATA_E                                         = 1 /* 0x1 */,
+  WIFIPHYRX_CBF_DATA_RESP_E                                = 2 /* 0x2 */,
+  WIFIPHYRX_ABORT_REQUEST_E                                = 3 /* 0x3 */,
+  WIFIPHYRX_USER_ABORT_NOTIFICATION_E                      = 4 /* 0x4 */,
+  WIFIMACTX_DATA_RESP_E                                    = 5 /* 0x5 */,
+  WIFIMACTX_CBF_DATA_E                                     = 6 /* 0x6 */,
+  WIFIMACTX_CBF_DONE_E                                     = 7 /* 0x7 */,
+  WIFIPHYRX_LMR_DATA_RESP_E                                = 8 /* 0x8 */,
+  WIFIRXPCU_TO_UCODE_START_E                               = 9 /* 0x9 */,
+  WIFIRXPCU_TO_UCODE_DELIMITER_FOR_FULL_MPDU_E             = 10 /* 0xa */,
+  WIFIRXPCU_TO_UCODE_FULL_MPDU_DATA_E                      = 11 /* 0xb */,
+  WIFIRXPCU_TO_UCODE_FCS_STATUS_E                          = 12 /* 0xc */,
+  WIFIRXPCU_TO_UCODE_MPDU_DELIMITER_E                      = 13 /* 0xd */,
+  WIFIRXPCU_TO_UCODE_DELIMITER_FOR_MPDU_HEADER_E           = 14 /* 0xe */,
+  WIFIRXPCU_TO_UCODE_MPDU_HEADER_DATA_E                    = 15 /* 0xf */,
+  WIFIRXPCU_TO_UCODE_END_E                                 = 16 /* 0x10 */,
+  WIFIMACRX_CBF_READ_REQUEST_E                             = 32 /* 0x20 */,
+  WIFIMACRX_CBF_DATA_REQUEST_E                             = 33 /* 0x21 */,
+  WIFIMACRX_EXPECT_NDP_RECEPTION_E                         = 34 /* 0x22 */,
+  WIFIMACRX_FREEZE_CAPTURE_CHANNEL_E                       = 35 /* 0x23 */,
+  WIFIMACRX_NDP_TIMEOUT_E                                  = 36 /* 0x24 */,
+  WIFIMACRX_ABORT_ACK_E                                    = 37 /* 0x25 */,
+  WIFIMACRX_REQ_IMPLICIT_FB_E                              = 38 /* 0x26 */,
+  WIFIMACRX_CHAIN_MASK_E                                   = 39 /* 0x27 */,
+  WIFIMACRX_NAP_USER_E                                     = 40 /* 0x28 */,
+  WIFIMACRX_ABORT_REQUEST_E                                = 41 /* 0x29 */,
+  WIFIPHYTX_OTHER_TRANSMIT_INFO16_E                        = 42 /* 0x2a */,
+  WIFIPHYTX_ABORT_ACK_E                                    = 43 /* 0x2b */,
+  WIFIPHYTX_ABORT_REQUEST_E                                = 44 /* 0x2c */,
+  WIFIPHYTX_PKT_END_E                                      = 45 /* 0x2d */,
+  WIFIPHYTX_PPDU_HEADER_INFO_REQUEST_E                     = 46 /* 0x2e */,
+  WIFIPHYTX_REQUEST_CTRL_INFO_E                            = 47 /* 0x2f */,
+  WIFIPHYTX_DATA_REQUEST_E                                 = 48 /* 0x30 */,
+  WIFIPHYTX_BF_CV_LOADING_DONE_E                           = 49 /* 0x31 */,
+  WIFIPHYTX_NAP_ACK_E                                      = 50 /* 0x32 */,
+  WIFIPHYTX_NAP_DONE_E                                     = 51 /* 0x33 */,
+  WIFIPHYTX_OFF_ACK_E                                      = 52 /* 0x34 */,
+  WIFIPHYTX_ON_ACK_E                                       = 53 /* 0x35 */,
+  WIFIPHYTX_SYNTH_OFF_ACK_E                                = 54 /* 0x36 */,
+  WIFIPHYTX_DEBUG16_E                                      = 55 /* 0x37 */,
+  WIFIMACTX_ABORT_REQUEST_E                                = 56 /* 0x38 */,
+  WIFIMACTX_ABORT_ACK_E                                    = 57 /* 0x39 */,
+  WIFIMACTX_PKT_END_E                                      = 58 /* 0x3a */,
+  WIFIMACTX_PRE_PHY_DESC_E                                 = 59 /* 0x3b */,
+  WIFIMACTX_BF_PARAMS_COMMON_E                             = 60 /* 0x3c */,
+  WIFIMACTX_BF_PARAMS_PER_USER_E                           = 61 /* 0x3d */,
+  WIFIMACTX_PREFETCH_CV_E                                  = 62 /* 0x3e */,
+  WIFIMACTX_USER_DESC_COMMON_E                             = 63 /* 0x3f */,
+  WIFIMACTX_USER_DESC_PER_USER_E                           = 64 /* 0x40 */,
+  WIFIEXAMPLE_USER_TLV_16_E                                = 65 /* 0x41 */,
+  WIFIEXAMPLE_TLV_16_E                                     = 66 /* 0x42 */,
+  WIFIMACTX_PHY_OFF_E                                      = 67 /* 0x43 */,
+  WIFIMACTX_PHY_ON_E                                       = 68 /* 0x44 */,
+  WIFIMACTX_SYNTH_OFF_E                                    = 69 /* 0x45 */,
+  WIFIMACTX_EXPECT_CBF_COMMON_E                            = 70 /* 0x46 */,
+  WIFIMACTX_EXPECT_CBF_PER_USER_E                          = 71 /* 0x47 */,
+  WIFIMACTX_PHY_DESC_E                                     = 72 /* 0x48 */,
+  WIFIMACTX_L_SIG_A_E                                      = 73 /* 0x49 */,
+  WIFIMACTX_L_SIG_B_E                                      = 74 /* 0x4a */,
+  WIFIMACTX_HT_SIG_E                                       = 75 /* 0x4b */,
+  WIFIMACTX_VHT_SIG_A_E                                    = 76 /* 0x4c */,
+  WIFIMACTX_VHT_SIG_B_SU20_E                               = 77 /* 0x4d */,
+  WIFIMACTX_VHT_SIG_B_SU40_E                               = 78 /* 0x4e */,
+  WIFIMACTX_VHT_SIG_B_SU80_E                               = 79 /* 0x4f */,
+  WIFIMACTX_VHT_SIG_B_SU160_E                              = 80 /* 0x50 */,
+  WIFIMACTX_VHT_SIG_B_MU20_E                               = 81 /* 0x51 */,
+  WIFIMACTX_VHT_SIG_B_MU40_E                               = 82 /* 0x52 */,
+  WIFIMACTX_VHT_SIG_B_MU80_E                               = 83 /* 0x53 */,
+  WIFIMACTX_VHT_SIG_B_MU160_E                              = 84 /* 0x54 */,
+  WIFIMACTX_SERVICE_E                                      = 85 /* 0x55 */,
+  WIFIMACTX_HE_SIG_A_SU_E                                  = 86 /* 0x56 */,
+  WIFIMACTX_HE_SIG_A_MU_DL_E                               = 87 /* 0x57 */,
+  WIFIMACTX_HE_SIG_A_MU_UL_E                               = 88 /* 0x58 */,
+  WIFIMACTX_HE_SIG_B1_MU_E                                 = 89 /* 0x59 */,
+  WIFIMACTX_HE_SIG_B2_MU_E                                 = 90 /* 0x5a */,
+  WIFIMACTX_HE_SIG_B2_OFDMA_E                              = 91 /* 0x5b */,
+  WIFIMACTX_DELETE_CV_E                                    = 92 /* 0x5c */,
+  WIFIMACTX_MU_UPLINK_COMMON_E                             = 93 /* 0x5d */,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_E                         = 94 /* 0x5e */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_E                          = 95 /* 0x5f */,
+  WIFIMACTX_PHY_NAP_E                                      = 96 /* 0x60 */,
+  WIFIMACTX_DEBUG_E                                        = 97 /* 0x61 */,
+  WIFIPHYRX_ABORT_ACK_E                                    = 98 /* 0x62 */,
+  WIFIPHYRX_GENERATED_CBF_DETAILS_E                        = 99 /* 0x63 */,
+  WIFIPHYRX_RSSI_LEGACY_E                                  = 100 /* 0x64 */,
+  WIFIPHYRX_RSSI_HT_E                                      = 101 /* 0x65 */,
+  WIFIPHYRX_USER_INFO_E                                    = 102 /* 0x66 */,
+  WIFIPHYRX_PKT_END_E                                      = 103 /* 0x67 */,
+  WIFIPHYRX_DEBUG_E                                        = 104 /* 0x68 */,
+  WIFIPHYRX_CBF_TRANSFER_DONE_E                            = 105 /* 0x69 */,
+  WIFIPHYRX_CBF_TRANSFER_ABORT_E                           = 106 /* 0x6a */,
+  WIFIPHYRX_L_SIG_A_E                                      = 107 /* 0x6b */,
+  WIFIPHYRX_L_SIG_B_E                                      = 108 /* 0x6c */,
+  WIFIPHYRX_HT_SIG_E                                       = 109 /* 0x6d */,
+  WIFIPHYRX_VHT_SIG_A_E                                    = 110 /* 0x6e */,
+  WIFIPHYRX_VHT_SIG_B_SU20_E                               = 111 /* 0x6f */,
+  WIFIPHYRX_VHT_SIG_B_SU40_E                               = 112 /* 0x70 */,
+  WIFIPHYRX_VHT_SIG_B_SU80_E                               = 113 /* 0x71 */,
+  WIFIPHYRX_VHT_SIG_B_SU160_E                              = 114 /* 0x72 */,
+  WIFIPHYRX_VHT_SIG_B_MU20_E                               = 115 /* 0x73 */,
+  WIFIPHYRX_VHT_SIG_B_MU40_E                               = 116 /* 0x74 */,
+  WIFIPHYRX_VHT_SIG_B_MU80_E                               = 117 /* 0x75 */,
+  WIFIPHYRX_VHT_SIG_B_MU160_E                              = 118 /* 0x76 */,
+  WIFIPHYRX_HE_SIG_A_SU_E                                  = 119 /* 0x77 */,
+  WIFIPHYRX_HE_SIG_A_MU_DL_E                               = 120 /* 0x78 */,
+  WIFIPHYRX_HE_SIG_A_MU_UL_E                               = 121 /* 0x79 */,
+  WIFIPHYRX_HE_SIG_B1_MU_E                                 = 122 /* 0x7a */,
+  WIFIPHYRX_HE_SIG_B2_MU_E                                 = 123 /* 0x7b */,
+  WIFIPHYRX_HE_SIG_B2_OFDMA_E                              = 124 /* 0x7c */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_E                           = 125 /* 0x7d */,
+  WIFIPHYRX_COMMON_USER_INFO_E                             = 126 /* 0x7e */,
+  WIFIPHYRX_DATA_DONE_E                                    = 127 /* 0x7f */,
+  WIFICOEX_TX_REQ_E                                        = 128 /* 0x80 */,
+  WIFIDUMMY_E                                              = 129 /* 0x81 */,
+  WIFIEXAMPLE_TLV_32_NAME_E                                = 130 /* 0x82 */,
+  WIFIMPDU_LIMIT_E                                         = 131 /* 0x83 */,
+  WIFINA_LENGTH_END_E                                      = 132 /* 0x84 */,
+  WIFIOLE_BUF_STATUS_E                                     = 133 /* 0x85 */,
+  WIFIPCU_PPDU_SETUP_DONE_E                                = 134 /* 0x86 */,
+  WIFIPCU_PPDU_SETUP_END_E                                 = 135 /* 0x87 */,
+  WIFIPCU_PPDU_SETUP_INIT_E                                = 136 /* 0x88 */,
+  WIFIPCU_PPDU_SETUP_START_E                               = 137 /* 0x89 */,
+  WIFIPDG_FES_SETUP_E                                      = 138 /* 0x8a */,
+  WIFIPDG_RESPONSE_E                                       = 139 /* 0x8b */,
+  WIFIPDG_TX_REQ_E                                         = 140 /* 0x8c */,
+  WIFISCH_WAIT_INSTR_E                                     = 141 /* 0x8d */,
+  WIFITQM_FLOW_EMPTY_STATUS_E                              = 143 /* 0x8f */,
+  WIFITQM_FLOW_NOT_EMPTY_STATUS_E                          = 144 /* 0x90 */,
+  WIFITQM_GEN_MPDU_LENGTH_LIST_E                           = 145 /* 0x91 */,
+  WIFITQM_GEN_MPDU_LENGTH_LIST_STATUS_E                    = 146 /* 0x92 */,
+  WIFITQM_GEN_MPDUS_E                                      = 147 /* 0x93 */,
+  WIFITQM_GEN_MPDUS_STATUS_E                               = 148 /* 0x94 */,
+  WIFITQM_REMOVE_MPDU_E                                    = 149 /* 0x95 */,
+  WIFITQM_REMOVE_MPDU_STATUS_E                             = 150 /* 0x96 */,
+  WIFITQM_REMOVE_MSDU_E                                    = 151 /* 0x97 */,
+  WIFITQM_REMOVE_MSDU_STATUS_E                             = 152 /* 0x98 */,
+  WIFITQM_UPDATE_TX_MPDU_COUNT_E                           = 153 /* 0x99 */,
+  WIFITQM_WRITE_CMD_E                                      = 154 /* 0x9a */,
+  WIFIOFDMA_TRIGGER_DETAILS_E                              = 155 /* 0x9b */,
+  WIFITX_DATA_E                                            = 156 /* 0x9c */,
+  WIFITX_FES_SETUP_E                                       = 157 /* 0x9d */,
+  WIFIRX_PACKET_E                                          = 158 /* 0x9e */,
+  WIFIEXPECTED_RESPONSE_E                                  = 159 /* 0x9f */,
+  WIFITX_MPDU_END_E                                        = 160 /* 0xa0 */,
+  WIFITX_MPDU_START_E                                      = 161 /* 0xa1 */,
+  WIFITX_MSDU_END_E                                        = 162 /* 0xa2 */,
+  WIFITX_MSDU_START_E                                      = 163 /* 0xa3 */,
+  WIFITX_SW_MODE_SETUP_E                                   = 164 /* 0xa4 */,
+  WIFITXPCU_BUFFER_STATUS_E                                = 165 /* 0xa5 */,
+  WIFITXPCU_USER_BUFFER_STATUS_E                           = 166 /* 0xa6 */,
+  WIFIDATA_TO_TIME_CONFIG_E                                = 167 /* 0xa7 */,
+  WIFIEXAMPLE_USER_TLV_32_E                                = 168 /* 0xa8 */,
+  WIFIMPDU_INFO_E                                          = 169 /* 0xa9 */,
+  WIFIPDG_USER_SETUP_E                                     = 170 /* 0xaa */,
+  WIFITX_11AH_SETUP_E                                      = 171 /* 0xab */,
+  WIFIREO_UPDATE_RX_REO_QUEUE_STATUS_E                     = 172 /* 0xac */,
+  WIFITX_PEER_ENTRY_E                                      = 173 /* 0xad */,
+  WIFITX_RAW_OR_NATIVE_FRAME_SETUP_E                       = 174 /* 0xae */,
+  WIFIEXAMPLE_USER_TLV_44_E                                = 175 /* 0xaf */,
+  WIFITX_FLUSH_E                                           = 176 /* 0xb0 */,
+  WIFITX_FLUSH_REQ_E                                       = 177 /* 0xb1 */,
+  WIFITQM_WRITE_CMD_STATUS_E                               = 178 /* 0xb2 */,
+  WIFITQM_GET_MPDU_QUEUE_STATS_E                           = 179 /* 0xb3 */,
+  WIFITQM_GET_MSDU_FLOW_STATS_E                            = 180 /* 0xb4 */,
+  WIFIEXAMPLE_USER_CTLV_44_E                               = 181 /* 0xb5 */,
+  WIFITX_FES_STATUS_START_E                                = 182 /* 0xb6 */,
+  WIFITX_FES_STATUS_USER_PPDU_E                            = 183 /* 0xb7 */,
+  WIFITX_FES_STATUS_USER_RESPONSE_E                        = 184 /* 0xb8 */,
+  WIFITX_FES_STATUS_END_E                                  = 185 /* 0xb9 */,
+  WIFIRX_TRIG_INFO_E                                       = 186 /* 0xba */,
+  WIFIRXPCU_TX_SETUP_CLEAR_E                               = 187 /* 0xbb */,
+  WIFIRX_FRAME_BITMAP_REQ_E                                = 188 /* 0xbc */,
+  WIFIRX_FRAME_BITMAP_ACK_E                                = 189 /* 0xbd */,
+  WIFICOEX_RX_STATUS_E                                     = 190 /* 0xbe */,
+  WIFIRX_START_PARAM_E                                     = 191 /* 0xbf */,
+  WIFIRX_PPDU_START_E                                      = 192 /* 0xc0 */,
+  WIFIRX_PPDU_END_E                                        = 193 /* 0xc1 */,
+  WIFIRX_MPDU_START_E                                      = 194 /* 0xc2 */,
+  WIFIRX_MPDU_END_E                                        = 195 /* 0xc3 */,
+  WIFIRX_MSDU_START_E                                      = 196 /* 0xc4 */,
+  WIFIRX_MSDU_END_E                                        = 197 /* 0xc5 */,
+  WIFIRX_ATTENTION_E                                       = 198 /* 0xc6 */,
+  WIFIRECEIVED_RESPONSE_INFO_E                             = 199 /* 0xc7 */,
+  WIFIRX_PHY_SLEEP_E                                       = 200 /* 0xc8 */,
+  WIFIRX_HEADER_E                                          = 201 /* 0xc9 */,
+  WIFIRX_PEER_ENTRY_E                                      = 202 /* 0xca */,
+  WIFIRX_FLUSH_E                                           = 203 /* 0xcb */,
+  WIFIRX_RESPONSE_REQUIRED_INFO_E                          = 204 /* 0xcc */,
+  WIFIRX_FRAMELESS_BAR_DETAILS_E                           = 205 /* 0xcd */,
+  WIFITQM_GET_MPDU_QUEUE_STATS_STATUS_E                    = 206 /* 0xce */,
+  WIFITQM_GET_MSDU_FLOW_STATS_STATUS_E                     = 207 /* 0xcf */,
+  WIFITX_CBF_INFO_E                                        = 208 /* 0xd0 */,
+  WIFIPCU_PPDU_SETUP_USER_E                                = 209 /* 0xd1 */,
+  WIFIRX_MPDU_PCU_START_E                                  = 210 /* 0xd2 */,
+  WIFIRX_PM_INFO_E                                         = 211 /* 0xd3 */,
+  WIFIRX_USER_PPDU_END_E                                   = 212 /* 0xd4 */,
+  WIFIRX_PRE_PPDU_START_E                                  = 213 /* 0xd5 */,
+  WIFIRX_PREAMBLE_E                                        = 214 /* 0xd6 */,
+  WIFITX_FES_SETUP_COMPLETE_E                              = 215 /* 0xd7 */,
+  WIFITX_LAST_MPDU_FETCHED_E                               = 216 /* 0xd8 */,
+  WIFITXDMA_STOP_REQUEST_E                                 = 217 /* 0xd9 */,
+  WIFIRXPCU_SETUP_E                                        = 218 /* 0xda */,
+  WIFIRXPCU_USER_SETUP_E                                   = 219 /* 0xdb */,
+  WIFITX_FES_STATUS_ACK_OR_BA_E                            = 220 /* 0xdc */,
+  WIFITQM_ACKED_MPDU_E                                     = 221 /* 0xdd */,
+  WIFICOEX_TX_RESP_E                                       = 222 /* 0xde */,
+  WIFICOEX_TX_STATUS_E                                     = 223 /* 0xdf */,
+  WIFIMACTX_COEX_PHY_CTRL_E                                = 224 /* 0xe0 */,
+  WIFICOEX_STATUS_BROADCAST_E                              = 225 /* 0xe1 */,
+  WIFIRESPONSE_START_STATUS_E                              = 226 /* 0xe2 */,
+  WIFIRESPONSE_END_STATUS_E                                = 227 /* 0xe3 */,
+  WIFICRYPTO_STATUS_E                                      = 228 /* 0xe4 */,
+  WIFIRECEIVED_TRIGGER_INFO_E                              = 229 /* 0xe5 */,
+  WIFICOEX_TX_STOP_CTRL_E                                  = 230 /* 0xe6 */,
+  WIFIRX_PPDU_ACK_REPORT_E                                 = 231 /* 0xe7 */,
+  WIFIRX_PPDU_NO_ACK_REPORT_E                              = 232 /* 0xe8 */,
+  WIFISCH_COEX_STATUS_E                                    = 233 /* 0xe9 */,
+  WIFISCHEDULER_COMMAND_STATUS_E                           = 234 /* 0xea */,
+  WIFISCHEDULER_RX_PPDU_NO_RESPONSE_STATUS_E               = 235 /* 0xeb */,
+  WIFITX_FES_STATUS_PROT_E                                 = 236 /* 0xec */,
+  WIFITX_FES_STATUS_START_PPDU_E                           = 237 /* 0xed */,
+  WIFITX_FES_STATUS_START_PROT_E                           = 238 /* 0xee */,
+  WIFITXPCU_PHYTX_DEBUG32_E                                = 239 /* 0xef */,
+  WIFITXPCU_PHYTX_OTHER_TRANSMIT_INFO32_E                  = 240 /* 0xf0 */,
+  WIFITX_MPDU_COUNT_TRANSFER_END_E                         = 241 /* 0xf1 */,
+  WIFIWHO_ANCHOR_OFFSET_E                                  = 242 /* 0xf2 */,
+  WIFIWHO_ANCHOR_VALUE_E                                   = 243 /* 0xf3 */,
+  WIFIWHO_CCE_INFO_E                                       = 244 /* 0xf4 */,
+  WIFIWHO_COMMIT_E                                         = 245 /* 0xf5 */,
+  WIFIWHO_COMMIT_DONE_E                                    = 246 /* 0xf6 */,
+  WIFIWHO_FLUSH_E                                          = 247 /* 0xf7 */,
+  WIFIWHO_L2_LLC_E                                         = 248 /* 0xf8 */,
+  WIFIWHO_L2_PAYLOAD_E                                     = 249 /* 0xf9 */,
+  WIFIWHO_L3_CHECKSUM_E                                    = 250 /* 0xfa */,
+  WIFIWHO_L3_INFO_E                                        = 251 /* 0xfb */,
+  WIFIWHO_L4_CHECKSUM_E                                    = 252 /* 0xfc */,
+  WIFIWHO_L4_INFO_E                                        = 253 /* 0xfd */,
+  WIFIWHO_MSDU_E                                           = 254 /* 0xfe */,
+  WIFIWHO_MSDU_MISC_E                                      = 255 /* 0xff */,
+  WIFIWHO_PACKET_DATA_E                                    = 256 /* 0x100 */,
+  WIFIWHO_PACKET_HDR_E                                     = 257 /* 0x101 */,
+  WIFIWHO_PPDU_END_E                                       = 258 /* 0x102 */,
+  WIFIWHO_PPDU_START_E                                     = 259 /* 0x103 */,
+  WIFIWHO_TSO_E                                            = 260 /* 0x104 */,
+  WIFIWHO_WMAC_HEADER_PV0_E                                = 261 /* 0x105 */,
+  WIFIWHO_WMAC_HEADER_PV1_E                                = 262 /* 0x106 */,
+  WIFIWHO_WMAC_IV_E                                        = 263 /* 0x107 */,
+  WIFIMPDU_INFO_END_E                                      = 264 /* 0x108 */,
+  WIFIMPDU_INFO_BITMAP_E                                   = 265 /* 0x109 */,
+  WIFITX_QUEUE_EXTENSION_E                                 = 266 /* 0x10a */,
+  WIFISCHEDULER_SELFGEN_RESPONSE_STATUS_E                  = 267 /* 0x10b */,
+  WIFITQM_UPDATE_TX_MPDU_COUNT_STATUS_E                    = 268 /* 0x10c */,
+  WIFITQM_ACKED_MPDU_STATUS_E                              = 269 /* 0x10d */,
+  WIFITQM_ADD_MSDU_STATUS_E                                = 270 /* 0x10e */,
+  WIFITQM_LIST_GEN_DONE_E                                  = 271 /* 0x10f */,
+  WIFIWHO_TERMINATE_E                                      = 272 /* 0x110 */,
+  WIFITX_LAST_MPDU_END_E                                   = 273 /* 0x111 */,
+  WIFITX_CV_DATA_E                                         = 274 /* 0x112 */,
+  WIFIPPDU_TX_END_E                                        = 275 /* 0x113 */,
+  WIFIPROT_TX_END_E                                        = 276 /* 0x114 */,
+  WIFIMPDU_INFO_GLOBAL_END_E                               = 277 /* 0x115 */,
+  WIFITQM_SCH_INSTR_GLOBAL_END_E                           = 278 /* 0x116 */,
+  WIFIRX_PPDU_END_USER_STATS_E                             = 279 /* 0x117 */,
+  WIFIRX_PPDU_END_USER_STATS_EXT_E                         = 280 /* 0x118 */,
+  WIFIREO_GET_QUEUE_STATS_E                                = 281 /* 0x119 */,
+  WIFIREO_FLUSH_QUEUE_E                                    = 282 /* 0x11a */,
+  WIFIREO_FLUSH_CACHE_E                                    = 283 /* 0x11b */,
+  WIFIREO_UNBLOCK_CACHE_E                                  = 284 /* 0x11c */,
+  WIFIREO_GET_QUEUE_STATS_STATUS_E                         = 285 /* 0x11d */,
+  WIFIREO_FLUSH_QUEUE_STATUS_E                             = 286 /* 0x11e */,
+  WIFIREO_FLUSH_CACHE_STATUS_E                             = 287 /* 0x11f */,
+  WIFIREO_UNBLOCK_CACHE_STATUS_E                           = 288 /* 0x120 */,
+  WIFITQM_FLUSH_CACHE_E                                    = 289 /* 0x121 */,
+  WIFITQM_UNBLOCK_CACHE_E                                  = 290 /* 0x122 */,
+  WIFITQM_FLUSH_CACHE_STATUS_E                             = 291 /* 0x123 */,
+  WIFITQM_UNBLOCK_CACHE_STATUS_E                           = 292 /* 0x124 */,
+  WIFIRX_PPDU_END_STATUS_DONE_E                            = 293 /* 0x125 */,
+  WIFIRX_STATUS_BUFFER_DONE_E                              = 294 /* 0x126 */,
+  WIFISCHEDULER_MLO_SW_MSG_STATUS_E                        = 295 /* 0x127 */,
+  WIFISCHEDULER_TXOP_DURATION_TRIGGER_E                    = 296 /* 0x128 */,
+  WIFITX_DATA_SYNC_E                                       = 297 /* 0x129 */,
+  WIFIPHYRX_CBF_READ_REQUEST_ACK_E                         = 298 /* 0x12a */,
+  WIFITQM_GET_MPDU_HEAD_INFO_E                             = 299 /* 0x12b */,
+  WIFITQM_SYNC_CMD_E                                       = 300 /* 0x12c */,
+  WIFITQM_GET_MPDU_HEAD_INFO_STATUS_E                      = 301 /* 0x12d */,
+  WIFITQM_SYNC_CMD_STATUS_E                                = 302 /* 0x12e */,
+  WIFITQM_THRESHOLD_DROP_NOTIFICATION_STATUS_E             = 303 /* 0x12f */,
+  WIFITQM_DESCRIPTOR_THRESHOLD_REACHED_STATUS_E            = 304 /* 0x130 */,
+  WIFIREO_FLUSH_TIMEOUT_LIST_E                             = 305 /* 0x131 */,
+  WIFIREO_FLUSH_TIMEOUT_LIST_STATUS_E                      = 306 /* 0x132 */,
+  WIFIREO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_E            = 307 /* 0x133 */,
+  WIFISCHEDULER_RX_SIFS_RESPONSE_TRIGGER_STATUS_E          = 308 /* 0x134 */,
+  WIFIEXAMPLE_USER_TLV_32_NAME_E                           = 309 /* 0x135 */,
+  WIFIRX_PPDU_START_USER_INFO_E                            = 310 /* 0x136 */,
+  WIFIRX_RING_MASK_E                                       = 311 /* 0x137 */,
+  WIFICOEX_MAC_NAP_E                                       = 312 /* 0x138 */,
+  WIFIRXPCU_PPDU_END_INFO_E                                = 313 /* 0x139 */,
+  WIFIWHO_MESH_CONTROL_E                                   = 314 /* 0x13a */,
+  WIFIPDG_SW_MODE_BW_START_E                               = 315 /* 0x13b */,
+  WIFIPDG_SW_MODE_BW_END_E                                 = 316 /* 0x13c */,
+  WIFIPDG_WAIT_FOR_MAC_REQUEST_E                           = 317 /* 0x13d */,
+  WIFIPDG_WAIT_FOR_PHY_REQUEST_E                           = 318 /* 0x13e */,
+  WIFISCHEDULER_END_E                                      = 319 /* 0x13f */,
+  WIFIRX_PPDU_START_DROPPED_E                              = 320 /* 0x140 */,
+  WIFIRX_PPDU_END_DROPPED_E                                = 321 /* 0x141 */,
+  WIFIRX_PPDU_END_STATUS_DONE_DROPPED_E                    = 322 /* 0x142 */,
+  WIFIRX_MPDU_START_DROPPED_E                              = 323 /* 0x143 */,
+  WIFIRX_MSDU_START_DROPPED_E                              = 324 /* 0x144 */,
+  WIFIRX_MSDU_END_DROPPED_E                                = 325 /* 0x145 */,
+  WIFIRX_MPDU_END_DROPPED_E                                = 326 /* 0x146 */,
+  WIFIRX_ATTENTION_DROPPED_E                               = 327 /* 0x147 */,
+  WIFITXPCU_USER_SETUP_E                                   = 328 /* 0x148 */,
+  WIFIRXPCU_USER_SETUP_EXT_E                               = 329 /* 0x149 */,
+  WIFICMD_PART_0_END_E                                     = 330 /* 0x14a */,
+  WIFIMACTX_SYNTH_ON_E                                     = 331 /* 0x14b */,
+  WIFISCH_CRITICAL_TLV_REFERENCE_E                         = 332 /* 0x14c */,
+  WIFITQM_MPDU_GLOBAL_START_E                              = 333 /* 0x14d */,
+  WIFIEXAMPLE_TLV_32_E                                     = 334 /* 0x14e */,
+  WIFITQM_UPDATE_TX_MSDU_FLOW_E                            = 335 /* 0x14f */,
+  WIFITQM_UPDATE_TX_MPDU_QUEUE_HEAD_E                      = 336 /* 0x150 */,
+  WIFITQM_UPDATE_TX_MSDU_FLOW_STATUS_E                     = 337 /* 0x151 */,
+  WIFITQM_UPDATE_TX_MPDU_QUEUE_HEAD_STATUS_E               = 338 /* 0x152 */,
+  WIFIREO_UPDATE_RX_REO_QUEUE_E                            = 339 /* 0x153 */,
+  WIFITQM_MPDU_QUEUE_EMPTY_STATUS_E                        = 340 /* 0x154 */,
+  WIFITQM_2_SCH_MPDU_AVAILABLE_E                           = 341 /* 0x155 */,
+  WIFIPDG_TRIG_RESPONSE_E                                  = 342 /* 0x156 */,
+  WIFITRIGGER_RESPONSE_TX_DONE_E                           = 343 /* 0x157 */,
+  WIFIABORT_FROM_PHYRX_DETAILS_E                           = 344 /* 0x158 */,
+  WIFISCH_TQM_CMD_WRAPPER_E                                = 345 /* 0x159 */,
+  WIFIMPDUS_AVAILABLE_E                                    = 346 /* 0x15a */,
+  WIFIRECEIVED_RESPONSE_INFO_PART2_E                       = 347 /* 0x15b */,
+  WIFIPHYRX_TX_START_TIMING_E                              = 348 /* 0x15c */,
+  WIFITXPCU_PREAMBLE_DONE_E                                = 349 /* 0x15d */,
+  WIFINDP_PREAMBLE_DONE_E                                  = 350 /* 0x15e */,
+  WIFISCH_TQM_CMD_WRAPPER_RBO_DROP_E                       = 351 /* 0x15f */,
+  WIFISCH_TQM_CMD_WRAPPER_CONT_DROP_E                      = 352 /* 0x160 */,
+  WIFIMACTX_CLEAR_PREV_TX_INFO_E                           = 353 /* 0x161 */,
+  WIFITX_PUNCTURE_SETUP_E                                  = 354 /* 0x162 */,
+  WIFIR2R_STATUS_END_E                                     = 355 /* 0x163 */,
+  WIFIMACTX_PREFETCH_CV_COMMON_E                           = 356 /* 0x164 */,
+  WIFIEND_OF_FLUSH_MARKER_E                                = 357 /* 0x165 */,
+  WIFIMACTX_MU_UPLINK_COMMON_PUNC_E                        = 358 /* 0x166 */,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_PUNC_E                    = 359 /* 0x167 */,
+  WIFIRECEIVED_RESPONSE_USER_7_0_E                         = 360 /* 0x168 */,
+  WIFIRECEIVED_RESPONSE_USER_15_8_E                        = 361 /* 0x169 */,
+  WIFIRECEIVED_RESPONSE_USER_23_16_E                       = 362 /* 0x16a */,
+  WIFIRECEIVED_RESPONSE_USER_31_24_E                       = 363 /* 0x16b */,
+  WIFIRECEIVED_RESPONSE_USER_36_32_E                       = 364 /* 0x16c */,
+  WIFITX_LOOPBACK_SETUP_E                                  = 365 /* 0x16d */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_E                = 366 /* 0x16e */,
+  WIFISCH_WAIT_INSTR_TX_PATH_E                             = 367 /* 0x16f */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_TX2TX_E                    = 368 /* 0x170 */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_EMUPHY_SETUP_E             = 369 /* 0x171 */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_EVM_DETAILS_E               = 370 /* 0x172 */,
+  WIFITX_WUR_DATA_E                                        = 371 /* 0x173 */,
+  WIFIRX_PPDU_END_START_E                                  = 372 /* 0x174 */,
+  WIFIRX_PPDU_END_MIDDLE_E                                 = 373 /* 0x175 */,
+  WIFIRX_PPDU_END_LAST_E                                   = 374 /* 0x176 */,
+  WIFIMACTX_BACKOFF_BASED_TRANSMISSION_E                   = 375 /* 0x177 */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_DL_OFDMA_TX_E              = 376 /* 0x178 */,
+  WIFISRP_INFO_E                                           = 377 /* 0x179 */,
+  WIFIOBSS_SR_INFO_E                                       = 378 /* 0x17a */,
+  WIFISCHEDULER_SW_MSG_STATUS_E                            = 379 /* 0x17b */,
+  WIFIHWSCH_RXPCU_MAC_INFO_ANNOUNCEMENT_E                  = 380 /* 0x17c */,
+  WIFIRXPCU_SETUP_COMPLETE_E                               = 381 /* 0x17d */,
+  WIFISNOOP_PPDU_START_E                                   = 382 /* 0x17e */,
+  WIFISNOOP_MPDU_USR_DBG_INFO_E                            = 383 /* 0x17f */,
+  WIFISNOOP_MSDU_USR_DBG_INFO_E                            = 384 /* 0x180 */,
+  WIFISNOOP_MSDU_USR_DATA_E                                = 385 /* 0x181 */,
+  WIFISNOOP_MPDU_USR_STAT_INFO_E                           = 386 /* 0x182 */,
+  WIFISNOOP_PPDU_END_E                                     = 387 /* 0x183 */,
+  WIFISNOOP_SPARE_E                                        = 388 /* 0x184 */,
+  WIFILMR_TX_END_E                                         = 389 /* 0x185 */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_MU_RSSI_COMMON_E            = 390 /* 0x186 */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_MU_RSSI_USER_E              = 391 /* 0x187 */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_SCH_DETAILS_E              = 392 /* 0x188 */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_108P_EVM_DETAILS_E          = 393 /* 0x189 */,
+  WIFISCH_TLV_WRAPPER_E                                    = 394 /* 0x18a */,
+  WIFISCHEDULER_STATUS_WRAPPER_E                           = 395 /* 0x18b */,
+  WIFIMPDU_INFO_6X_E                                       = 396 /* 0x18c */,
+  WIFIMACTX_11AZ_USER_DESC_PER_USER_E                      = 397 /* 0x18d */,
+  WIFIMACTX_U_SIG_EHT_SU_MU_E                              = 398 /* 0x18e */,
+  WIFIMACTX_U_SIG_EHT_TB_E                                 = 399 /* 0x18f */,
+  WIFICOEX_TLV_ACC_TLV_TAG0_CFG_E                          = 400 /* 0x190 */,
+  WIFICOEX_TLV_ACC_TLV_TAG1_CFG_E                          = 401 /* 0x191 */,
+  WIFICOEX_TLV_ACC_TLV_TAG2_CFG_E                          = 402 /* 0x192 */,
+  WIFIPHYRX_U_SIG_EHT_SU_MU_E                              = 403 /* 0x193 */,
+  WIFIPHYRX_U_SIG_EHT_TB_E                                 = 404 /* 0x194 */,
+  WIFICOEX_TLV_ACC_TLV_TAG3_CFG_E                          = 405 /* 0x195 */,
+  WIFICOEX_TLV_ACC_TLV_TAG_CGIM_CFG_E                      = 406 /* 0x196 */,
+  WIFIMACRX_LMR_READ_REQUEST_E                             = 408 /* 0x198 */,
+  WIFIMACRX_LMR_DATA_REQUEST_E                             = 409 /* 0x199 */,
+  WIFIPHYRX_LMR_TRANSFER_DONE_E                            = 410 /* 0x19a */,
+  WIFIPHYRX_LMR_TRANSFER_ABORT_E                           = 411 /* 0x19b */,
+  WIFIPHYRX_LMR_READ_REQUEST_ACK_E                         = 412 /* 0x19c */,
+  WIFIMACRX_SECURE_LTF_SEQ_PTR_E                           = 413 /* 0x19d */,
+  WIFIPHYRX_USER_INFO_MU_UL_E                              = 414 /* 0x19e */,
+  WIFIMPDU_QUEUE_OVERVIEW_E                                = 415 /* 0x19f */,
+  WIFISCHEDULER_NAV_INFO_E                                 = 416 /* 0x1a0 */,
+  WIFILMR_PEER_ENTRY_E                                     = 418 /* 0x1a2 */,
+  WIFILMR_MPDU_START_E                                     = 419 /* 0x1a3 */,
+  WIFILMR_DATA_E                                           = 420 /* 0x1a4 */,
+  WIFILMR_MPDU_END_E                                       = 421 /* 0x1a5 */,
+  WIFIREO_GET_QUEUE_1K_STATS_STATUS_E                      = 422 /* 0x1a6 */,
+  WIFIRX_FRAME_1K_BITMAP_ACK_E                             = 423 /* 0x1a7 */,
+  WIFITX_FES_STATUS_1K_BA_E                                = 424 /* 0x1a8 */,
+  WIFITQM_ACKED_1K_MPDU_E                                  = 425 /* 0x1a9 */,
+  WIFIMACRX_INBSS_OBSS_IND_E                               = 426 /* 0x1aa */,
+  WIFIPHYRX_LOCATION_E                                     = 427 /* 0x1ab */,
+  WIFIMLO_TX_NOTIFICATION_SU_E                             = 428 /* 0x1ac */,
+  WIFIMLO_TX_NOTIFICATION_MU_E                             = 429 /* 0x1ad */,
+  WIFIMLO_TX_REQ_SU_E                                      = 430 /* 0x1ae */,
+  WIFIMLO_TX_REQ_MU_E                                      = 431 /* 0x1af */,
+  WIFIMLO_TX_RESP_E                                        = 432 /* 0x1b0 */,
+  WIFIMLO_RX_NOTIFICATION_E                                = 433 /* 0x1b1 */,
+  WIFIMLO_BKOFF_TRUNC_REQ_E                                = 434 /* 0x1b2 */,
+  WIFIMLO_TBTT_NOTIFICATION_E                              = 435 /* 0x1b3 */,
+  WIFIMLO_MESSAGE_E                                        = 436 /* 0x1b4 */,
+  WIFIMLO_TS_SYNC_MSG_E                                    = 437 /* 0x1b5 */,
+  WIFIMLO_FES_SETUP_E                                      = 438 /* 0x1b6 */,
+  WIFIMLO_PDG_FES_SETUP_SU_E                               = 439 /* 0x1b7 */,
+  WIFIMLO_PDG_FES_SETUP_MU_E                               = 440 /* 0x1b8 */,
+  WIFIMPDU_INFO_1K_BITMAP_E                                = 441 /* 0x1b9 */,
+  WIFIMON_BUFFER_ADDR_E                                    = 442 /* 0x1ba */,
+  WIFITX_FRAG_STATE_E                                      = 443 /* 0x1bb */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_PHY_CV_RESET_E             = 444 /* 0x1bc */,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_SW_PEER_IDS_E              = 445 /* 0x1bd */,
+  WIFIMACTX_EHT_SIG_USR_OFDMA_E                            = 446 /* 0x1be */,
+  WIFIPHYRX_EHT_SIG_CMN_PUNC_E                             = 448 /* 0x1c0 */,
+  WIFIPHYRX_EHT_SIG_CMN_OFDMA_E                            = 450 /* 0x1c2 */,
+  WIFIPHYRX_EHT_SIG_USR_OFDMA_E                            = 454 /* 0x1c6 */,
+  WIFIPHYRX_PKT_END_PART1_E                                = 456 /* 0x1c8 */,
+  WIFIMACTX_EXPECT_NDP_RECEPTION_E                         = 457 /* 0x1c9 */,
+  WIFIMACTX_SECURE_LTF_SEQ_PTR_E                           = 458 /* 0x1ca */,
+  WIFIMLO_PDG_BKOFF_TRUNC_NOTIFY_E                         = 460 /* 0x1cc */,
+  WIFIPHYRX_11AZ_INTEGRITY_DATA_E                          = 461 /* 0x1cd */,
+  WIFIPHYTX_LOCATION_E                                     = 462 /* 0x1ce */,
+  WIFIPHYTX_11AZ_INTEGRITY_DATA_E                          = 463 /* 0x1cf */,
+  WIFIMACTX_EHT_SIG_USR_SU_E                               = 466 /* 0x1d2 */,
+  WIFIMACTX_EHT_SIG_USR_MU_MIMO_E                          = 467 /* 0x1d3 */,
+  WIFIPHYRX_EHT_SIG_USR_SU_E                               = 468 /* 0x1d4 */,
+  WIFIPHYRX_EHT_SIG_USR_MU_MIMO_E                          = 469 /* 0x1d5 */,
+  WIFIPHYRX_GENERIC_U_SIG_E                                = 470 /* 0x1d6 */,
+  WIFIPHYRX_GENERIC_EHT_SIG_E                              = 471 /* 0x1d7 */,
+  WIFIOVERWRITE_RESP_START_E                               = 472 /* 0x1d8 */,
+  WIFIOVERWRITE_RESP_PREAMBLE_INFO_E                       = 473 /* 0x1d9 */,
+  WIFIOVERWRITE_RESP_FRAME_INFO_E                          = 474 /* 0x1da */,
+  WIFIOVERWRITE_RESP_END_E                                 = 475 /* 0x1db */,
+  WIFIRXPCU_EARLY_RX_INDICATION_E                          = 476 /* 0x1dc */,
+  WIFIMON_DROP_E                                           = 477 /* 0x1dd */,
+  WIFIMACRX_MU_UPLINK_COMMON_SNIFF_E                       = 478 /* 0x1de */,
+  WIFIMACRX_MU_UPLINK_USER_SETUP_SNIFF_E                   = 479 /* 0x1df */,
+  WIFIMACRX_MU_UPLINK_USER_SEL_SNIFF_E                     = 480 /* 0x1e0 */,
+  WIFIMACRX_MU_UPLINK_FCS_STATUS_SNIFF_E                   = 481 /* 0x1e1 */,
+  WIFIMACTX_PREFETCH_CV_DMA_E                              = 482 /* 0x1e2 */,
+  WIFIMACTX_PREFETCH_CV_PER_USER_E                         = 483 /* 0x1e3 */,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_ALL_SIGB_DETAILS_E          = 484 /* 0x1e4 */,
+  WIFIMACTX_BF_PARAMS_UPDATE_COMMON_E                      = 485 /* 0x1e5 */,
+  WIFIMACTX_BF_PARAMS_UPDATE_PER_USER_E                    = 486 /* 0x1e6 */,
+  WIFIRANGING_USER_DETAILS_E                               = 487 /* 0x1e7 */,
+  WIFIPHYTX_CV_CORR_STATUS_E                               = 488 /* 0x1e8 */,
+  WIFIPHYTX_CV_CORR_COMMON_E                               = 489 /* 0x1e9 */,
+  WIFIPHYTX_CV_CORR_USER_E                                 = 490 /* 0x1ea */,
+  WIFIMACTX_CV_CORR_COMMON_E                               = 491 /* 0x1eb */,
+  WIFIMACTX_CV_CORR_MAC_INFO_GROUP_E                       = 492 /* 0x1ec */,
+  WIFIBW_PUNCTURE_EVAL_WRAPPER_E                           = 493 /* 0x1ed */,
+  WIFIMACTX_RX_NOTIFICATION_FOR_PHY_E                      = 494 /* 0x1ee */,
+  WIFIMACTX_TX_NOTIFICATION_FOR_PHY_E                      = 495 /* 0x1ef */,
+  WIFIMACTX_MU_UPLINK_COMMON_PER_BW_E                      = 496 /* 0x1f0 */,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_PER_BW_E                  = 497 /* 0x1f1 */,
+  WIFIRX_PPDU_END_USER_STATS_EXT2_E                        = 498 /* 0x1f2 */,
+  WIFIFW2SW_MON_E                                          = 499 /* 0x1f3 */,
+  WIFIWSI_DIRECT_MESSAGE_E                                 = 500 /* 0x1f4 */,
+  WIFIMACTX_EMLSR_PRE_SWITCH_E                             = 501 /* 0x1f5 */,
+  WIFIMACTX_EMLSR_SWITCH_E                                 = 502 /* 0x1f6 */,
+  WIFIMACTX_EMLSR_SWITCH_BACK_E                            = 503 /* 0x1f7 */,
+  WIFIPHYTX_EMLSR_SWITCH_ACK_E                             = 504 /* 0x1f8 */,
+  WIFIPHYTX_EMLSR_SWITCH_BACK_ACK_E                        = 505 /* 0x1f9 */,
+  WIFISPARE_REUSE_TAG_0_E                                  = 506 /* 0x1fa */,
+  WIFISPARE_REUSE_TAG_1_E                                  = 507 /* 0x1fb */,
+  WIFISPARE_REUSE_TAG_2_E                                  = 508 /* 0x1fc */,
+  WIFISPARE_REUSE_TAG_3_E                                  = 509 /* 0x1fd */
+} tlv_tag_def__e;
+
+
+#endif
diff --git a/hw/qca5332/tx_cbf_info.h b/hw/qca5332/tx_cbf_info.h
new file mode 100644
index 0000000..ea83ae4
--- /dev/null
+++ b/hw/qca5332/tx_cbf_info.h
@@ -0,0 +1,1199 @@
+
+/* 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_CBF_INFO_H_
+#define _TX_CBF_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_CBF_INFO 16
+
+#define NUM_OF_QWORDS_TX_CBF_INFO 8
+
+
+struct tx_cbf_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      pre_cbf_duration                                        : 16; // [31:16]
+             uint32_t brpoll_info_valid                                       :  1, // [0:0]
+                      trigger_brpoll_info_valid                               :  1, // [1:1]
+                      npda_info_11ac_valid                                    :  1, // [2:2]
+                      npda_info_11ax_valid                                    :  1, // [3:3]
+                      dot11ax_su_extended                                     :  1, // [4:4]
+                      bandwidth                                               :  3, // [7:5]
+                      brpoll_info                                             :  8, // [15:8]
+                      cbf_response_table_base_index                           :  8, // [23:16]
+                      peer_index                                              :  3, // [26:24]
+                      pkt_type                                                :  4, // [30:27]
+                      txop_duration_all_ones                                  :  1; // [31:31]
+             uint32_t trigger_brpoll_common_info_15_0                         : 16, // [15:0]
+                      trigger_brpoll_common_info_31_16                        : 16; // [31:16]
+             uint32_t trigger_brpoll_user_info_15_0                           : 16, // [15:0]
+                      trigger_brpoll_user_info_31_16                          : 16; // [31:16]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr1_47_32                                             : 16, // [15:0]
+                      addr2_15_0                                              : 16; // [31:16]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t addr3_31_0                                              : 32; // [31:0]
+             uint32_t addr3_47_32                                             : 16, // [15:0]
+                      sta_partial_aid                                         : 11, // [26:16]
+                      reserved_8a                                             :  4, // [30:27]
+                      cbf_resp_pwr_mgmt                                       :  1; // [31:31]
+             uint32_t group_id                                                :  6, // [5:0]
+                      rssi_comb                                               :  8, // [13:6]
+                      reserved_9a                                             :  2, // [15:14]
+                      vht_ndpa_sta_info                                       : 16; // [31:16]
+             uint32_t he_eht_sta_info_15_0                                    : 16, // [15:0]
+                      he_eht_sta_info_31_16                                   : 16; // [31:16]
+             uint32_t dot11ax_received_format_indication                      :  1, // [0:0]
+                      dot11ax_received_dl_ul_flag                             :  1, // [1:1]
+                      dot11ax_received_bss_color_id                           :  6, // [7:2]
+                      dot11ax_received_spatial_reuse                          :  4, // [11:8]
+                      dot11ax_received_cp_size                                :  2, // [13:12]
+                      dot11ax_received_ltf_size                               :  2, // [15:14]
+                      dot11ax_received_coding                                 :  1, // [16:16]
+                      dot11ax_received_dcm                                    :  1, // [17:17]
+                      dot11ax_received_doppler_indication                     :  1, // [18:18]
+                      dot11ax_received_ext_ru_size                            :  4, // [22:19]
+                      dot11ax_dl_ul_flag                                      :  1, // [23:23]
+                      reserved_11a                                            :  8; // [31:24]
+             uint32_t sw_response_frame_length                                : 16, // [15:0]
+                      sw_response_tlv_from_crypto                             :  1, // [16:16]
+                      wait_sifs_config_valid                                  :  1, // [17:17]
+                      wait_sifs                                               :  2, // [19:18]
+                      ranging                                                 :  1, // [20:20]
+                      secure                                                  :  1, // [21:21]
+                      tb_ranging_response_required                            :  2, // [23:22]
+                      reserved_12a                                            :  2, // [25:24]
+                      u_sig_puncture_pattern_encoding                         :  6; // [31:26]
+             uint32_t dot11be_puncture_bitmap                                 : 16, // [15:0]
+                      dot11be_response                                        :  1, // [16:16]
+                      punctured_response                                      :  1, // [17:17]
+                      npda_info_11be_valid                                    :  1, // [18:18]
+                      eht_duplicate_mode                                      :  2, // [20:19]
+                      reserved_13a                                            : 11; // [31:21]
+             uint32_t eht_sta_info_39_32                                      :  8, // [7:0]
+                      reserved_14a                                            : 24; // [31:8]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t pre_cbf_duration                                        : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t txop_duration_all_ones                                  :  1, // [31:31]
+                      pkt_type                                                :  4, // [30:27]
+                      peer_index                                              :  3, // [26:24]
+                      cbf_response_table_base_index                           :  8, // [23:16]
+                      brpoll_info                                             :  8, // [15:8]
+                      bandwidth                                               :  3, // [7:5]
+                      dot11ax_su_extended                                     :  1, // [4:4]
+                      npda_info_11ax_valid                                    :  1, // [3:3]
+                      npda_info_11ac_valid                                    :  1, // [2:2]
+                      trigger_brpoll_info_valid                               :  1, // [1:1]
+                      brpoll_info_valid                                       :  1; // [0:0]
+             uint32_t trigger_brpoll_common_info_31_16                        : 16, // [31:16]
+                      trigger_brpoll_common_info_15_0                         : 16; // [15:0]
+             uint32_t trigger_brpoll_user_info_31_16                          : 16, // [31:16]
+                      trigger_brpoll_user_info_15_0                           : 16; // [15:0]
+             uint32_t addr1_31_0                                              : 32; // [31:0]
+             uint32_t addr2_15_0                                              : 16, // [31:16]
+                      addr1_47_32                                             : 16; // [15:0]
+             uint32_t addr2_47_16                                             : 32; // [31:0]
+             uint32_t addr3_31_0                                              : 32; // [31:0]
+             uint32_t cbf_resp_pwr_mgmt                                       :  1, // [31:31]
+                      reserved_8a                                             :  4, // [30:27]
+                      sta_partial_aid                                         : 11, // [26:16]
+                      addr3_47_32                                             : 16; // [15:0]
+             uint32_t vht_ndpa_sta_info                                       : 16, // [31:16]
+                      reserved_9a                                             :  2, // [15:14]
+                      rssi_comb                                               :  8, // [13:6]
+                      group_id                                                :  6; // [5:0]
+             uint32_t he_eht_sta_info_31_16                                   : 16, // [31:16]
+                      he_eht_sta_info_15_0                                    : 16; // [15:0]
+             uint32_t reserved_11a                                            :  8, // [31:24]
+                      dot11ax_dl_ul_flag                                      :  1, // [23:23]
+                      dot11ax_received_ext_ru_size                            :  4, // [22:19]
+                      dot11ax_received_doppler_indication                     :  1, // [18:18]
+                      dot11ax_received_dcm                                    :  1, // [17:17]
+                      dot11ax_received_coding                                 :  1, // [16:16]
+                      dot11ax_received_ltf_size                               :  2, // [15:14]
+                      dot11ax_received_cp_size                                :  2, // [13:12]
+                      dot11ax_received_spatial_reuse                          :  4, // [11:8]
+                      dot11ax_received_bss_color_id                           :  6, // [7:2]
+                      dot11ax_received_dl_ul_flag                             :  1, // [1:1]
+                      dot11ax_received_format_indication                      :  1; // [0:0]
+             uint32_t u_sig_puncture_pattern_encoding                         :  6, // [31:26]
+                      reserved_12a                                            :  2, // [25:24]
+                      tb_ranging_response_required                            :  2, // [23:22]
+                      secure                                                  :  1, // [21:21]
+                      ranging                                                 :  1, // [20:20]
+                      wait_sifs                                               :  2, // [19:18]
+                      wait_sifs_config_valid                                  :  1, // [17:17]
+                      sw_response_tlv_from_crypto                             :  1, // [16:16]
+                      sw_response_frame_length                                : 16; // [15:0]
+             uint32_t reserved_13a                                            : 11, // [31:21]
+                      eht_duplicate_mode                                      :  2, // [20:19]
+                      npda_info_11be_valid                                    :  1, // [18:18]
+                      punctured_response                                      :  1, // [17:17]
+                      dot11be_response                                        :  1, // [16:16]
+                      dot11be_puncture_bitmap                                 : 16; // [15:0]
+             uint32_t reserved_14a                                            : 24, // [31:8]
+                      eht_sta_info_39_32                                      :  8; // [7:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		SW_PEER_ID
+
+			An identifier indicating from which AP this CBF is being
+			 requested. Helps in crosschecking that the MAC and PHY 
+			are still in sync on what is stored in the cbf_mem_index
+			 location.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_SW_PEER_ID_OFFSET                                               0x0000000000000000
+#define TX_CBF_INFO_SW_PEER_ID_LSB                                                  0
+#define TX_CBF_INFO_SW_PEER_ID_MSB                                                  15
+#define TX_CBF_INFO_SW_PEER_ID_MASK                                                 0x000000000000ffff
+
+
+/* Description		PRE_CBF_DURATION
+
+			NPDA_duration_field - SIFS - NDP_pkt_time or BRPOLL_duration_field. 
+			 The cbf_duration_field = pre_cbf_duration - cbf_pkt_time
+			
+			
+			This will be the pre-NDP duration or pre-LMR duration in
+			 case of .11az ranging (field Ranging below is set).
+*/
+
+#define TX_CBF_INFO_PRE_CBF_DURATION_OFFSET                                         0x0000000000000000
+#define TX_CBF_INFO_PRE_CBF_DURATION_LSB                                            16
+#define TX_CBF_INFO_PRE_CBF_DURATION_MSB                                            31
+#define TX_CBF_INFO_PRE_CBF_DURATION_MASK                                           0x00000000ffff0000
+
+
+/* Description		BRPOLL_INFO_VALID
+
+			When set, legacy type brpoll info is valid. TXPCU will have
+			 to trigger the PDG for response transmission
+			
+			It will not be clear here what the PHY's response format
+			 will be. Could be 11ac or 11ax. MAC is not 'remembering' 
+			the format type, but PHY will know.
+			
+			MAC will get to know based on the field Cbf_response_type
+			 in the PHYRX_CBF_READ_REQUEST_ACK TLV.
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_BRPOLL_INFO_VALID_OFFSET                                        0x0000000000000000
+#define TX_CBF_INFO_BRPOLL_INFO_VALID_LSB                                           32
+#define TX_CBF_INFO_BRPOLL_INFO_VALID_MSB                                           32
+#define TX_CBF_INFO_BRPOLL_INFO_VALID_MASK                                          0x0000000100000000
+
+
+/* Description		TRIGGER_BRPOLL_INFO_VALID
+
+			When set with Ranging = 0, trigger based brpoll info is 
+			valid.
+			When set with Ranging = 1, .11az sounding trigger info is
+			 valid for trigger-based ranging (TBR).
+			This also implies that RXPCU has already triggered the PDG
+			 for response transmission
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_OFFSET                                0x0000000000000000
+#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_LSB                                   33
+#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MSB                                   33
+#define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MASK                                  0x0000000200000000
+
+
+/* Description		NPDA_INFO_11AC_VALID
+
+			When set, 11ac_NDPA info is valid.
+			TXPCU will have to trigger the PDG for response transmission
+			 
+			
+			PHY's response will be be in 11ac format
+			<legal all>
+*/
+
+#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_OFFSET                                     0x0000000000000000
+#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_LSB                                        34
+#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MSB                                        34
+#define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MASK                                       0x0000000400000000
+
+
+/* Description		NPDA_INFO_11AX_VALID
+
+			When set, 11ax_NDPA info is valid.
+			TXPCU will have to trigger the PDG for response transmission
+			 
+			
+			PHY's response will be be in 11ax format
+			
+			There is a separate Npda_info_11be_valid field near the 
+			end of this TLV.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_OFFSET                                     0x0000000000000000
+#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_LSB                                        35
+#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MSB                                        35
+#define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MASK                                       0x0000000800000000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			When set, frame was received in 11ax or 11be extended range
+			 format 
+*/
+
+#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_OFFSET                                      0x0000000000000000
+#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_LSB                                         36
+#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MSB                                         36
+#define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MASK                                        0x0000001000000000
+
+
+/* Description		BANDWIDTH
+
+			Field only valid when Brpoll_info_valid , Npda_info_11ac_valid
+			  or Npda_info_11ax_valid is set.
+			
+			The bandwidth that TXPCU uses to select the final response
+			 table entry. That entry will contain all response info 
+			for the CBF frame.
+			
+			<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_CBF_INFO_BANDWIDTH_OFFSET                                                0x0000000000000000
+#define TX_CBF_INFO_BANDWIDTH_LSB                                                   37
+#define TX_CBF_INFO_BANDWIDTH_MSB                                                   39
+#define TX_CBF_INFO_BANDWIDTH_MASK                                                  0x000000e000000000
+
+
+/* Description		BRPOLL_INFO
+
+			Field only valid when Brpoll_info_valid is set.
+			
+			Feedback Segment retransmission feedback field from the 
+			BRPOLL frame.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_BRPOLL_INFO_OFFSET                                              0x0000000000000000
+#define TX_CBF_INFO_BRPOLL_INFO_LSB                                                 40
+#define TX_CBF_INFO_BRPOLL_INFO_MSB                                                 47
+#define TX_CBF_INFO_BRPOLL_INFO_MASK                                                0x0000ff0000000000
+
+
+/* Description		CBF_RESPONSE_TABLE_BASE_INDEX
+
+			Field only valid when Brpoll_info_valid or
+			Npda_info_11ac_valid  or Npda_info_11ax_valid is set.
+			
+			When set to 0, use the register based lookup for determining
+			 the CBF response rates.
+			
+			When > 0, TXPCU shall use this response table index for 
+			the 20 MHz response, and higher BW responses are in the 
+			subsequent response table entries
+			
+			This will be the LMR response table base index in case of
+			 .11az ranging (field Ranging below is set).
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_OFFSET                            0x0000000000000000
+#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_LSB                               48
+#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MSB                               55
+#define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MASK                              0x00ff000000000000
+
+
+/* Description		PEER_INDEX
+
+			Field only valid when Brpoll_info_valid or
+			Npda_info_11ac_valid  or Npda_info_11ax_valid is set.
+			
+			
+			Indicates the CBF peer index to be used by TxPCU to determine
+			 the look-up table index for CBF response frames. RxPCU 
+			populate this field from the peer_entry. 
+			<legal 0-7>
+*/
+
+#define TX_CBF_INFO_PEER_INDEX_OFFSET                                               0x0000000000000000
+#define TX_CBF_INFO_PEER_INDEX_LSB                                                  56
+#define TX_CBF_INFO_PEER_INDEX_MSB                                                  58
+#define TX_CBF_INFO_PEER_INDEX_MASK                                                 0x0700000000000000
+
+
+/* Description		PKT_TYPE
+
+			Received Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define TX_CBF_INFO_PKT_TYPE_OFFSET                                                 0x0000000000000000
+#define TX_CBF_INFO_PKT_TYPE_LSB                                                    59
+#define TX_CBF_INFO_PKT_TYPE_MSB                                                    62
+#define TX_CBF_INFO_PKT_TYPE_MASK                                                   0x7800000000000000
+
+
+/* Description		TXOP_DURATION_ALL_ONES
+
+			When set, either the TXOP_DURATION of the received frame
+			 was set to all 1s or there is a BSS color collision. The
+			 TXOP_DURATION of the transmit response should be forced
+			 to all 1s.
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_OFFSET                                   0x0000000000000000
+#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_LSB                                      63
+#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MSB                                      63
+#define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MASK                                     0x8000000000000000
+
+
+/* Description		TRIGGER_BRPOLL_COMMON_INFO_15_0
+
+			Field only valid when Trigger_Brpoll_info_valid  is set.
+			
+			
+			Trigger based BRPOLL or .11az sounding (TBR) request info... 
+			bits [15:0] 
+			
+			This is the variable common info field from the trigger 
+			related to the BTPOLL. For field definition see IEEE spec
+			
+			
+			Note: final IEEE field might not need all these bits. If
+			 so, the extra bits become reserved fields.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_OFFSET                          0x0000000000000008
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_LSB                             0
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MSB                             15
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MASK                            0x000000000000ffff
+
+
+/* Description		TRIGGER_BRPOLL_COMMON_INFO_31_16
+
+			Field only valid when Trigger_Brpoll_info_valid  is set.
+			
+			
+			Trigger based BRPOLL or .11az sounding (TBR) request info... 
+			bits [31:15] 
+			
+			This is the variable common info field from the trigger 
+			related to the BTPOLL. For field definition see IEEE spec
+			
+			
+			Note: final IEEE field might not need all these bits. If
+			 so, the extra bits become reserved fields.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_OFFSET                         0x0000000000000008
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_LSB                            16
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MSB                            31
+#define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MASK                           0x00000000ffff0000
+
+
+/* Description		TRIGGER_BRPOLL_USER_INFO_15_0
+
+			Field only valid when Trigger_Brpoll_info_valid  is set.
+			
+			
+			BRPOLL or .11az sounding (TBR) trigger Type dependent User
+			 information bits [15:0] 
+			
+			This is the variable user info field from the trigger related
+			 to the BTPOLL. 
+			
+			For field definition see IEEE spec
+			
+			Note: final IEEE field might not need all these bits. If
+			 so, the extra bits become reserved fields.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_OFFSET                            0x0000000000000008
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_LSB                               32
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MSB                               47
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MASK                              0x0000ffff00000000
+
+
+/* Description		TRIGGER_BRPOLL_USER_INFO_31_16
+
+			Field only valid when Trigger_Brpoll_info_valid  is set.
+			
+			
+			BRPOLL or .11az sounding (TBR) trigger Type dependent User
+			 information bits [31:16] 
+			
+			This is the variable user info field from the trigger related
+			 to the BTPOLL. 
+			
+			For field definition see IEEE spec
+			
+			Note: final IEEE field might not need all these bits. If
+			 so, the extra bits become reserved fields.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_OFFSET                           0x0000000000000008
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_LSB                              48
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MSB                              63
+#define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MASK                             0xffff000000000000
+
+
+/* Description		ADDR1_31_0
+
+			CBF address1[31:0]
+*/
+
+#define TX_CBF_INFO_ADDR1_31_0_OFFSET                                               0x0000000000000010
+#define TX_CBF_INFO_ADDR1_31_0_LSB                                                  0
+#define TX_CBF_INFO_ADDR1_31_0_MSB                                                  31
+#define TX_CBF_INFO_ADDR1_31_0_MASK                                                 0x00000000ffffffff
+
+
+/* Description		ADDR1_47_32
+
+			CBF address1[47:32]
+*/
+
+#define TX_CBF_INFO_ADDR1_47_32_OFFSET                                              0x0000000000000010
+#define TX_CBF_INFO_ADDR1_47_32_LSB                                                 32
+#define TX_CBF_INFO_ADDR1_47_32_MSB                                                 47
+#define TX_CBF_INFO_ADDR1_47_32_MASK                                                0x0000ffff00000000
+
+
+/* Description		ADDR2_15_0
+
+			CBF address2[15:0]
+*/
+
+#define TX_CBF_INFO_ADDR2_15_0_OFFSET                                               0x0000000000000010
+#define TX_CBF_INFO_ADDR2_15_0_LSB                                                  48
+#define TX_CBF_INFO_ADDR2_15_0_MSB                                                  63
+#define TX_CBF_INFO_ADDR2_15_0_MASK                                                 0xffff000000000000
+
+
+/* Description		ADDR2_47_16
+
+			CBF address2[47:16]
+*/
+
+#define TX_CBF_INFO_ADDR2_47_16_OFFSET                                              0x0000000000000018
+#define TX_CBF_INFO_ADDR2_47_16_LSB                                                 0
+#define TX_CBF_INFO_ADDR2_47_16_MSB                                                 31
+#define TX_CBF_INFO_ADDR2_47_16_MASK                                                0x00000000ffffffff
+
+
+/* Description		ADDR3_31_0
+
+			CBF address3[31:0]
+*/
+
+#define TX_CBF_INFO_ADDR3_31_0_OFFSET                                               0x0000000000000018
+#define TX_CBF_INFO_ADDR3_31_0_LSB                                                  32
+#define TX_CBF_INFO_ADDR3_31_0_MSB                                                  63
+#define TX_CBF_INFO_ADDR3_31_0_MASK                                                 0xffffffff00000000
+
+
+/* Description		ADDR3_47_32
+
+			CBF address3[47:16]
+*/
+
+#define TX_CBF_INFO_ADDR3_47_32_OFFSET                                              0x0000000000000020
+#define TX_CBF_INFO_ADDR3_47_32_LSB                                                 0
+#define TX_CBF_INFO_ADDR3_47_32_MSB                                                 15
+#define TX_CBF_INFO_ADDR3_47_32_MASK                                                0x000000000000ffff
+
+
+/* Description		STA_PARTIAL_AID
+
+			Partial AID field
+*/
+
+#define TX_CBF_INFO_STA_PARTIAL_AID_OFFSET                                          0x0000000000000020
+#define TX_CBF_INFO_STA_PARTIAL_AID_LSB                                             16
+#define TX_CBF_INFO_STA_PARTIAL_AID_MSB                                             26
+#define TX_CBF_INFO_STA_PARTIAL_AID_MASK                                            0x0000000007ff0000
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_RESERVED_8A_OFFSET                                              0x0000000000000020
+#define TX_CBF_INFO_RESERVED_8A_LSB                                                 27
+#define TX_CBF_INFO_RESERVED_8A_MSB                                                 30
+#define TX_CBF_INFO_RESERVED_8A_MASK                                                0x0000000078000000
+
+
+/* Description		CBF_RESP_PWR_MGMT
+
+			Power management bit of the response CBF frame or LMR frame
+			 in case of .11az ranging (field Ranging below is set).
+*/
+
+#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_OFFSET                                        0x0000000000000020
+#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_LSB                                           31
+#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MSB                                           31
+#define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MASK                                          0x0000000080000000
+
+
+/* Description		GROUP_ID
+
+			Group ID field
+*/
+
+#define TX_CBF_INFO_GROUP_ID_OFFSET                                                 0x0000000000000020
+#define TX_CBF_INFO_GROUP_ID_LSB                                                    32
+#define TX_CBF_INFO_GROUP_ID_MSB                                                    37
+#define TX_CBF_INFO_GROUP_ID_MASK                                                   0x0000003f00000000
+
+
+/* Description		RSSI_COMB
+
+			The combined RSSI of the legacy STF of RX PPDU of all active
+			 chains and bandwidths.
+*/
+
+#define TX_CBF_INFO_RSSI_COMB_OFFSET                                                0x0000000000000020
+#define TX_CBF_INFO_RSSI_COMB_LSB                                                   38
+#define TX_CBF_INFO_RSSI_COMB_MSB                                                   45
+#define TX_CBF_INFO_RSSI_COMB_MASK                                                  0x00003fc000000000
+
+
+/* Description		RESERVED_9A
+
+			Bit 14: force_extra_symbol:
+			
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if the PPDU encoding process does not result in an extra
+			 OFDM symbol (or symbols)
+			
+			Not supported in Hamilton v1
+			<legal 0-1>
+*/
+
+#define TX_CBF_INFO_RESERVED_9A_OFFSET                                              0x0000000000000020
+#define TX_CBF_INFO_RESERVED_9A_LSB                                                 46
+#define TX_CBF_INFO_RESERVED_9A_MSB                                                 47
+#define TX_CBF_INFO_RESERVED_9A_MASK                                                0x0000c00000000000
+
+
+/* Description		VHT_NDPA_STA_INFO
+
+			Field only valid when Npda_info_11ac_valid is set
+			
+			The complete (RAW) STA INFO field that MAC extracted from
+			 the VHT NDPA frame.
+			
+			Put here for backup reasons in case last moment fields got
+			 added that PHY needs to be able to interpret
+			
+			This field contains 
+			{
+			VHT STA_INFO.NC_INDEX[2:0],
+			VHT STA_INFO.FEEDBACK_TYPE,
+			VHT STA_INFO.AID12[11:0]
+			}
+			<legal all>
+*/
+
+#define TX_CBF_INFO_VHT_NDPA_STA_INFO_OFFSET                                        0x0000000000000020
+#define TX_CBF_INFO_VHT_NDPA_STA_INFO_LSB                                           48
+#define TX_CBF_INFO_VHT_NDPA_STA_INFO_MSB                                           63
+#define TX_CBF_INFO_VHT_NDPA_STA_INFO_MASK                                          0xffff000000000000
+
+
+/* Description		HE_EHT_STA_INFO_15_0
+
+			Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
+			 is set
+			
+			The first 16 bits of the RAW HE or EHT STA INFO field in
+			 the NDPA frame
+			
+			Put here for backup reasons in case last moment fields got
+			 added that PHY needs to be able to interpret
+			<legal all>
+*/
+
+#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_OFFSET                                     0x0000000000000028
+#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_LSB                                        0
+#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MSB                                        15
+#define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MASK                                       0x000000000000ffff
+
+
+/* Description		HE_EHT_STA_INFO_31_16
+
+			Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
+			 is set
+			
+			The second 16 bits of the RAW HE or EHT STA INFO field in
+			 the NDPA frame
+			
+			Put here for backup reasons in case last moment fields got
+			 added that PHY needs to be able to interpret
+			
+			There is an EHT_STA_INFO_39_32 field near the end of this
+			 TLV.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_OFFSET                                    0x0000000000000028
+#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_LSB                                       16
+#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MSB                                       31
+#define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MASK                                      0x00000000ffff0000
+
+
+/* Description		DOT11AX_RECEIVED_FORMAT_INDICATION
+
+			This field is only valid for pkt_type == 11ax
+			
+			Format_Indication from the received frame.
+			
+			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
+			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET                       0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB                          32
+#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB                          32
+#define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK                         0x0000000100000000
+
+
+/* Description		DOT11AX_RECEIVED_DL_UL_FLAG
+
+			This field is only valid for pkt_type == 11ax
+			
+			DL_UL_flag from the received frame
+			
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET                              0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB                                 33
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB                                 33
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK                                0x0000000200000000
+
+
+/* Description		DOT11AX_RECEIVED_BSS_COLOR_ID
+
+			This field is only valid for pkt_type == 11ax
+			
+			BSS_color_id from the received frame
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET                            0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB                               34
+#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB                               39
+#define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK                              0x000000fc00000000
+
+
+/* Description		DOT11AX_RECEIVED_SPATIAL_REUSE
+
+			This field is only valid for pkt_type == 11ax
+			Spatial reuse from the received frame
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET                           0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB                              40
+#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB                              43
+#define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK                             0x00000f0000000000
+
+
+/* Description		DOT11AX_RECEIVED_CP_SIZE
+
+			This field is only valid for pkt_type == 11ax
+			
+			CP size of the received frame
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			
+			<legal 0 - 3>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET                                 0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB                                    44
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB                                    45
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK                                   0x0000300000000000
+
+
+/* Description		DOT11AX_RECEIVED_LTF_SIZE
+
+			This field is only valid for pkt_type == 11ax
+			
+			LTF size of the received frame
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET                                0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB                                   46
+#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB                                   47
+#define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK                                  0x0000c00000000000
+
+
+/* Description		DOT11AX_RECEIVED_CODING
+
+			This field is only valid for pkt_type == 11ax
+			
+			Coding from the received frame
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_OFFSET                                  0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_LSB                                     48
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MSB                                     48
+#define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MASK                                    0x0001000000000000
+
+
+/* Description		DOT11AX_RECEIVED_DCM
+
+			This field is only valid for pkt_type == 11ax
+			
+			DCM from the received frame
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_OFFSET                                     0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_LSB                                        49
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MSB                                        49
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MASK                                       0x0002000000000000
+
+
+/* Description		DOT11AX_RECEIVED_DOPPLER_INDICATION
+
+			This field is only valid for pkt_type == 11ax
+			
+			Doppler_indication from the received frame
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET                      0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB                         50
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB                         50
+#define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK                        0x0004000000000000
+
+
+/* Description		DOT11AX_RECEIVED_EXT_RU_SIZE
+
+			This field is only valid for pkt_type == 11ax OR pkt_type
+			 == 11be AND dot11ax_su_extended is set
+			The number of (basic) RUs in this extended range reception
+			
+			
+			RXPCU gets this from the received HE_SIG_A
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET                             0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB                                51
+#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB                                54
+#define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK                               0x0078000000000000
+
+
+/* Description		DOT11AX_DL_UL_FLAG
+
+			This field is only valid for pkt_type == 11ax
+			
+			DL_UL_flag to be used for response frame sent to this device.
+			
+			
+			Differentiates between DL and UL transmission 
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			
+			Note: this setting can also come from response look-up table
+			 in TXPCU...
+			The selection is SW programmable
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_OFFSET                                       0x0000000000000028
+#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_LSB                                          55
+#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MSB                                          55
+#define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MASK                                         0x0080000000000000
+
+
+/* Description		RESERVED_11A
+
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_RESERVED_11A_OFFSET                                             0x0000000000000028
+#define TX_CBF_INFO_RESERVED_11A_LSB                                                56
+#define TX_CBF_INFO_RESERVED_11A_MSB                                                63
+#define TX_CBF_INFO_RESERVED_11A_MASK                                               0xff00000000000000
+
+
+/* Description		SW_RESPONSE_FRAME_LENGTH
+
+			Field only valid when SW_Response_tlv_from_crypto is set
+			
+			
+			This is the size of the frame (in bytes) that SW will generate
+			 as the response frame. In those scenarios where TXPCU needs
+			 to indicate a frame_length in the PDG_RESPONSE TLV, this
+			 will be the value that TXPCU needs to use.
+			
+			Note that this length value  includes the FCS.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET                                 0x0000000000000030
+#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_LSB                                    0
+#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MSB                                    15
+#define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MASK                                   0x000000000000ffff
+
+
+/* Description		SW_RESPONSE_TLV_FROM_CRYPTO
+
+			Field can only be set by MAC mitigation logic
+			
+			The idea is here that normally TXPCU generates the response
+			 frame.
+			But as a backup scenario, in case of a last moment some 
+			CBF frame BA format change happens or there is some other
+			 issue, the CBF frame could be fully generated in the MAC
+			 micro CPU and pushed into TXPCU through the Crypto - TXPCU
+			 TLV interface.
+			
+			From TXPCU perspective, all interaction with PDG remains
+			 exactly the same, accept that the frame length is now coming
+			 from field SW_Response_frame_length and the response frame
+			 is pushed into TXPCU over the CRYPTO - TXPCU TLV interface
+			
+			
+			When set, this feature kick in
+			When clear, this feature is not enabled
+			<legal all>
+*/
+
+#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET                              0x0000000000000030
+#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB                                 16
+#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB                                 16
+#define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK                                0x0000000000010000
+
+
+/* Description		WAIT_SIFS_CONFIG_VALID
+
+			When set, TXPCU shall follow the wait_sifs configuration.
+			
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET                                   0x0000000000000030
+#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_LSB                                      17
+#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MSB                                      17
+#define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MASK                                     0x0000000000020000
+
+
+/* Description		WAIT_SIFS
+
+			Indicates to the TXPCU how precise the SIFS the response
+			 timing shall be...
+			
+			The configuration for this is coming from SW programmable
+			 registers in RXPCU, where RXPCU shall allow SW to program
+			 different settings for the following scenarios: BRPOLL, 
+			NDPA-NDP, 11ax trigger frame based BRPOLL
+			
+			<enum 0 NO_SIFS_TIMING> Transmission shall start with the
+			 normal delay in PHY after receiving this notification
+			<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made 
+			at the SIFS boundary. If shall never start before SIFS boundary, 
+			but if it a little later, it is not ideal and should be 
+			flagged, but transmission shall not be aborted.
+			<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
+			 at exactly SIFS boundary. If this notification is received
+			 by the PHY after SIFS boundary already passed, the PHY 
+			shall abort the transmission
+			<legal 0-2>
+*/
+
+#define TX_CBF_INFO_WAIT_SIFS_OFFSET                                                0x0000000000000030
+#define TX_CBF_INFO_WAIT_SIFS_LSB                                                   18
+#define TX_CBF_INFO_WAIT_SIFS_MSB                                                   19
+#define TX_CBF_INFO_WAIT_SIFS_MASK                                                  0x00000000000c0000
+
+
+/* Description		RANGING
+
+			0: This TLV is generated for Tx CBF generation.
+			1: TLV is generated due to an active ranging session (.11az).
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_RANGING_OFFSET                                                  0x0000000000000030
+#define TX_CBF_INFO_RANGING_LSB                                                     20
+#define TX_CBF_INFO_RANGING_MSB                                                     20
+#define TX_CBF_INFO_RANGING_MASK                                                    0x0000000000100000
+
+
+/* Description		SECURE
+
+			Field only valid if Ranging is set to 1.
+			0: Current ranging session is non-secure.
+			1: Current ranging session is secure.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_SECURE_OFFSET                                                   0x0000000000000030
+#define TX_CBF_INFO_SECURE_LSB                                                      21
+#define TX_CBF_INFO_SECURE_MSB                                                      21
+#define TX_CBF_INFO_SECURE_MASK                                                     0x0000000000200000
+
+
+/* Description		TB_RANGING_RESPONSE_REQUIRED
+
+			Field only valid in case of TB Ranging
+			<enum 0 No_TB_Ranging_Resp>
+			<enum 1 CTS2S_Resp_to_TF_poll > DO NOT USE.
+			<enum 2 LMR_Resp_to_TF_report> DO NOT USE.
+			<enum 3 NDP_Resp_to_TF_sound> TXPCU to generate TB ranging
+			 NDP in response 
+			<legal 0-3>
+*/
+
+#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET                             0x0000000000000030
+#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB                                22
+#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB                                23
+#define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK                               0x0000000000c00000
+
+
+/* Description		RESERVED_12A
+
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_RESERVED_12A_OFFSET                                             0x0000000000000030
+#define TX_CBF_INFO_RESERVED_12A_LSB                                                24
+#define TX_CBF_INFO_RESERVED_12A_MSB                                                25
+#define TX_CBF_INFO_RESERVED_12A_MASK                                               0x0000000003000000
+
+
+/* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
+
+			This field is only valid if Punctured_response is set
+			
+			The 6-bit value used in U-SIG and/or EHT-SIG Common field
+			 for the puncture pattern
+			<legal 0-29>
+*/
+
+#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET                          0x0000000000000030
+#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                             26
+#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                             31
+#define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                            0x00000000fc000000
+
+
+/* Description		DOT11BE_PUNCTURE_BITMAP
+
+			This field is only valid if Punctured_response is set
+			
+			The bitmap of 20 MHz sub-bands valid in this EHT reception
+			
+			
+			RXPCU gets this from the received U-SIG and/or EHT-SIG via
+			 PHY microcode.
+			
+			<legal all>
+*/
+
+#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET                                  0x0000000000000030
+#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_LSB                                     32
+#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MSB                                     47
+#define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MASK                                    0x0000ffff00000000
+
+
+/* Description		DOT11BE_RESPONSE
+
+			Indicates that the peer supports .11be response protocols, 
+			e.g. .11be BW indication in scrambler seed, .11be dynamic
+			 BW procedure, punctured response, etc.
+*/
+
+#define TX_CBF_INFO_DOT11BE_RESPONSE_OFFSET                                         0x0000000000000030
+#define TX_CBF_INFO_DOT11BE_RESPONSE_LSB                                            48
+#define TX_CBF_INFO_DOT11BE_RESPONSE_MSB                                            48
+#define TX_CBF_INFO_DOT11BE_RESPONSE_MASK                                           0x0001000000000000
+
+
+/* Description		PUNCTURED_RESPONSE
+
+			Field only valid if Dot11be_response is set
+			
+			Indicates that the response shall use preamble puncturing
+			
+*/
+
+#define TX_CBF_INFO_PUNCTURED_RESPONSE_OFFSET                                       0x0000000000000030
+#define TX_CBF_INFO_PUNCTURED_RESPONSE_LSB                                          49
+#define TX_CBF_INFO_PUNCTURED_RESPONSE_MSB                                          49
+#define TX_CBF_INFO_PUNCTURED_RESPONSE_MASK                                         0x0002000000000000
+
+
+/* Description		NPDA_INFO_11BE_VALID
+
+			When set, 11be_NDPA info is valid.
+			TXPCU will have to trigger the PDG for response transmission
+			 .
+			
+			PHY's response will be in 11be format.
+			<legal all>
+*/
+
+#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_OFFSET                                     0x0000000000000030
+#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_LSB                                        50
+#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MSB                                        50
+#define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MASK                                       0x0004000000000000
+
+
+/* Description		EHT_DUPLICATE_MODE
+
+			Field only valid for pkt_type == 11be
+			
+			Indicates EHT duplicate modulation
+			
+			<enum 0 eht_no_duplicate>
+			<enum 1 eht_2x_duplicate>
+			<enum 2 eht_4x_duplicate>
+			
+			<legal 0-2>
+*/
+
+#define TX_CBF_INFO_EHT_DUPLICATE_MODE_OFFSET                                       0x0000000000000030
+#define TX_CBF_INFO_EHT_DUPLICATE_MODE_LSB                                          51
+#define TX_CBF_INFO_EHT_DUPLICATE_MODE_MSB                                          52
+#define TX_CBF_INFO_EHT_DUPLICATE_MODE_MASK                                         0x0018000000000000
+
+
+/* Description		RESERVED_13A
+
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_RESERVED_13A_OFFSET                                             0x0000000000000030
+#define TX_CBF_INFO_RESERVED_13A_LSB                                                53
+#define TX_CBF_INFO_RESERVED_13A_MSB                                                63
+#define TX_CBF_INFO_RESERVED_13A_MASK                                               0xffe0000000000000
+
+
+/* Description		EHT_STA_INFO_39_32
+
+			Field only valid when Npda_info_11be_valid is set
+			
+			The fifth 8 bits of the RAW EHT STA INFO field in the NDPA
+			 frame
+*/
+
+#define TX_CBF_INFO_EHT_STA_INFO_39_32_OFFSET                                       0x0000000000000038
+#define TX_CBF_INFO_EHT_STA_INFO_39_32_LSB                                          0
+#define TX_CBF_INFO_EHT_STA_INFO_39_32_MSB                                          7
+#define TX_CBF_INFO_EHT_STA_INFO_39_32_MASK                                         0x00000000000000ff
+
+
+/* Description		RESERVED_14A
+
+			Can be used for future expansion
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_RESERVED_14A_OFFSET                                             0x0000000000000038
+#define TX_CBF_INFO_RESERVED_14A_LSB                                                8
+#define TX_CBF_INFO_RESERVED_14A_MSB                                                31
+#define TX_CBF_INFO_RESERVED_14A_MASK                                               0x00000000ffffff00
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define TX_CBF_INFO_TLV64_PADDING_OFFSET                                            0x0000000000000038
+#define TX_CBF_INFO_TLV64_PADDING_LSB                                               32
+#define TX_CBF_INFO_TLV64_PADDING_MSB                                               63
+#define TX_CBF_INFO_TLV64_PADDING_MASK                                              0xffffffff00000000
+
+
+
+#endif   // TX_CBF_INFO
diff --git a/hw/qca5332/tx_fes_setup.h b/hw/qca5332/tx_fes_setup.h
new file mode 100644
index 0000000..d3c27c9
--- /dev/null
+++ b/hw/qca5332/tx_fes_setup.h
@@ -0,0 +1,1617 @@
+
+/* 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_SETUP_H_
+#define _TX_FES_SETUP_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_SETUP 10
+
+#define NUM_OF_QWORDS_TX_FES_SETUP 5
+
+
+struct tx_fes_setup {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t schedule_id                                             : 32; // [31:0]
+             uint32_t fes_in_11ax_trigger_response_config                     :  1, // [0:0]
+                      bo_based_tid_aggregation_limit                          :  4, // [4:1]
+                      ranging                                                 :  1, // [5:5]
+                      expect_i2r_lmr                                          :  1, // [6:6]
+                      transmit_start_reason                                   :  3, // [9:7]
+                      use_alt_power_sr                                        :  1, // [10:10]
+                      static_2_pwr_mode_status                                :  1, // [11:11]
+                      obss_srg_opport_transmit_status                         :  1, // [12:12]
+                      srp_based_transmit_status                               :  1, // [13:13]
+                      obss_pd_based_transmit_status                           :  1, // [14:14]
+                      puncture_from_all_allowed_modes                         :  1, // [15:15]
+                      schedule_cmd_ring_id                                    :  5, // [20:16]
+                      fes_control_mode                                        :  2, // [22:21]
+                      number_of_users                                         :  6, // [28:23]
+                      mu_type                                                 :  1, // [29:29]
+                      ofdma_triggered_response                                :  1, // [30:30]
+                      response_to_response_cmd                                :  1; // [31:31]
+             uint32_t schedule_try                                            :  4, // [3:0]
+                      ndp_frame                                               :  2, // [5:4]
+                      txbf                                                    :  1, // [6:6]
+                      allow_txop_exceed_in_1st_pkt                            :  1, // [7:7]
+                      ignore_bw_available                                     :  1, // [8:8]
+                      ignore_tbtt                                             :  1, // [9:9]
+                      static_bandwidth                                        :  3, // [12:10]
+                      set_txop_duration_all_ones                              :  1, // [13:13]
+                      transmission_contains_mu_rts                            :  1, // [14:14]
+                      bw_restricted_frames_embedded                           :  1, // [15:15]
+                      ast_index                                               : 16; // [31:16]
+             uint32_t cv_id                                                   :  8, // [7:0]
+                      trigger_resp_txpdu_ppdu_boundary                        :  2, // [9:8]
+                      rxpcu_setup_complete_present                            :  1, // [10:10]
+                      rbo_must_have_data_user_limit                           :  4, // [14:11]
+                      mu_ndp                                                  :  1, // [15:15]
+                      bf_type                                                 :  2, // [17:16]
+                      cbf_nc_index_mask                                       :  1, // [18:18]
+                      cbf_nc_index                                            :  3, // [21:19]
+                      cbf_nr_index_mask                                       :  1, // [22:22]
+                      cbf_nr_index                                            :  3, // [25:23]
+                      secure_ranging_ista                                     :  1, // [26:26]
+                      ndpa                                                    :  1, // [27:27]
+                      wait_sifs                                               :  2, // [29:28]
+                      cbf_feedback_type_mask                                  :  1, // [30:30]
+                      cbf_feedback_type                                       :  1; // [31:31]
+             uint32_t cbf_sounding_token                                      :  6, // [5:0]
+                      cbf_sounding_token_mask                                 :  1, // [6:6]
+                      cbf_bw_mask                                             :  1, // [7:7]
+                      cbf_bw                                                  :  3, // [10:8]
+                      use_static_bw                                           :  1, // [11:11]
+                      coex_nack_count                                         :  5, // [16:12]
+                      sch_tx_burst_ongoing                                    :  1, // [17:17]
+                      gen_tqm_update_mpdu_count_tlv                           :  1, // [18:18]
+                      transmit_vif                                            :  4, // [22:19]
+                      optimal_bw_retry_count                                  :  4, // [26:23]
+                      fes_continuation_ratio_threshold                        :  5; // [31:27]
+             uint32_t transmit_cca_bitmap                                     : 32; // [31:0]
+             uint32_t tb_ranging                                              :  1, // [0:0]
+                      ranging_trigger_subtype                                 :  4, // [4:1]
+                      min_cts2self_count                                      :  4, // [8:5]
+                      max_cts2self_count                                      :  4, // [12:9]
+                      wifi_radar_enable                                       :  1, // [13:13]
+                      reserved_6a                                             : 18; // [31:14]
+             uint32_t monitor_override_sta_31_0                               : 32; // [31:0]
+             uint32_t monitor_override_sta_36_32                              :  5, // [4:0]
+                      reserved_8a                                             : 27; // [31:5]
+             uint32_t fw2sw_info                                              : 32; // [31:0]
+#else
+             uint32_t schedule_id                                             : 32; // [31:0]
+             uint32_t response_to_response_cmd                                :  1, // [31:31]
+                      ofdma_triggered_response                                :  1, // [30:30]
+                      mu_type                                                 :  1, // [29:29]
+                      number_of_users                                         :  6, // [28:23]
+                      fes_control_mode                                        :  2, // [22:21]
+                      schedule_cmd_ring_id                                    :  5, // [20:16]
+                      puncture_from_all_allowed_modes                         :  1, // [15:15]
+                      obss_pd_based_transmit_status                           :  1, // [14:14]
+                      srp_based_transmit_status                               :  1, // [13:13]
+                      obss_srg_opport_transmit_status                         :  1, // [12:12]
+                      static_2_pwr_mode_status                                :  1, // [11:11]
+                      use_alt_power_sr                                        :  1, // [10:10]
+                      transmit_start_reason                                   :  3, // [9:7]
+                      expect_i2r_lmr                                          :  1, // [6:6]
+                      ranging                                                 :  1, // [5:5]
+                      bo_based_tid_aggregation_limit                          :  4, // [4:1]
+                      fes_in_11ax_trigger_response_config                     :  1; // [0:0]
+             uint32_t ast_index                                               : 16, // [31:16]
+                      bw_restricted_frames_embedded                           :  1, // [15:15]
+                      transmission_contains_mu_rts                            :  1, // [14:14]
+                      set_txop_duration_all_ones                              :  1, // [13:13]
+                      static_bandwidth                                        :  3, // [12:10]
+                      ignore_tbtt                                             :  1, // [9:9]
+                      ignore_bw_available                                     :  1, // [8:8]
+                      allow_txop_exceed_in_1st_pkt                            :  1, // [7:7]
+                      txbf                                                    :  1, // [6:6]
+                      ndp_frame                                               :  2, // [5:4]
+                      schedule_try                                            :  4; // [3:0]
+             uint32_t cbf_feedback_type                                       :  1, // [31:31]
+                      cbf_feedback_type_mask                                  :  1, // [30:30]
+                      wait_sifs                                               :  2, // [29:28]
+                      ndpa                                                    :  1, // [27:27]
+                      secure_ranging_ista                                     :  1, // [26:26]
+                      cbf_nr_index                                            :  3, // [25:23]
+                      cbf_nr_index_mask                                       :  1, // [22:22]
+                      cbf_nc_index                                            :  3, // [21:19]
+                      cbf_nc_index_mask                                       :  1, // [18:18]
+                      bf_type                                                 :  2, // [17:16]
+                      mu_ndp                                                  :  1, // [15:15]
+                      rbo_must_have_data_user_limit                           :  4, // [14:11]
+                      rxpcu_setup_complete_present                            :  1, // [10:10]
+                      trigger_resp_txpdu_ppdu_boundary                        :  2, // [9:8]
+                      cv_id                                                   :  8; // [7:0]
+             uint32_t fes_continuation_ratio_threshold                        :  5, // [31:27]
+                      optimal_bw_retry_count                                  :  4, // [26:23]
+                      transmit_vif                                            :  4, // [22:19]
+                      gen_tqm_update_mpdu_count_tlv                           :  1, // [18:18]
+                      sch_tx_burst_ongoing                                    :  1, // [17:17]
+                      coex_nack_count                                         :  5, // [16:12]
+                      use_static_bw                                           :  1, // [11:11]
+                      cbf_bw                                                  :  3, // [10:8]
+                      cbf_bw_mask                                             :  1, // [7:7]
+                      cbf_sounding_token_mask                                 :  1, // [6:6]
+                      cbf_sounding_token                                      :  6; // [5:0]
+             uint32_t transmit_cca_bitmap                                     : 32; // [31:0]
+             uint32_t reserved_6a                                             : 18, // [31:14]
+                      wifi_radar_enable                                       :  1, // [13:13]
+                      max_cts2self_count                                      :  4, // [12:9]
+                      min_cts2self_count                                      :  4, // [8:5]
+                      ranging_trigger_subtype                                 :  4, // [4:1]
+                      tb_ranging                                              :  1; // [0:0]
+             uint32_t monitor_override_sta_31_0                               : 32; // [31:0]
+             uint32_t reserved_8a                                             : 27, // [31:5]
+                      monitor_override_sta_36_32                              :  5; // [4:0]
+             uint32_t fw2sw_info                                              : 32; // [31:0]
+#endif
+};
+
+
+/* Description		SCHEDULE_ID
+
+			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and it's
+			 value is coming from the"schedule_id" field in the  Scheduler
+			 command.
+			
+			Configured by scheduler in HW transmit mode
+			A field that HW copies over into the scheduling status report, 
+			so that SW can determine to which scheduler command the 
+			status report belongs.
+			This schedule ID is also reported in the PPDU status.   
+			    
+			<legal all>
+*/
+
+#define TX_FES_SETUP_SCHEDULE_ID_OFFSET                                             0x0000000000000000
+#define TX_FES_SETUP_SCHEDULE_ID_LSB                                                0
+#define TX_FES_SETUP_SCHEDULE_ID_MSB                                                31
+#define TX_FES_SETUP_SCHEDULE_ID_MASK                                               0x00000000ffffffff
+
+
+/* Description		FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
+
+			Consumer: PDG/TXPCU
+			Producer: SW
+			When set, this scheduler command has some additional settings
+			 that PDG and TXPCU need to take into account, depending
+			 on if the transmission has been iniated as a backoff expiration
+			 or as the result of an 11ax trigger reception.
+			
+			0: not in special trigger response config
+			1: command is special trigger response config.
+			
+			When set to 1, there are some programming limitations: There
+			 can only be 1 group, up to 8 users, SW shall have specified
+			 the AC for each user, and AC order per user is from BE 
+			to VO
+			(see PDG_USER_SETUP, fields Triggered_mpdu_AC_category)
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET                     0x0000000000000000
+#define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB                        32
+#define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB                        32
+#define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK                       0x0000000100000000
+
+
+/* Description		BO_BASED_TID_AGGREGATION_LIMIT
+
+			Consumer: PDG
+			Producer: SW
+			
+			Field only valid when Ofdma_triggered_response is NOT set
+			 (=> implies transmission started due to backoff expiration)
+			
+			
+			Field only valid for SU and "MU_SU" transmissions.
+			
+			The requirements for what to transmit depend on what the
+			 reason is that this transmission started. If it is 11ax
+			 trigger based, the trigger frame will specify all the constrains
+			 like max TID count, prefered AC, etc.
+			However if this command starts executing due to backoff 
+			expiration, the requirements could be different from those
+			 that might have come from the trigger frame.
+			This field specifies what the constaints are when the transmission
+			 is Backoff initiated.
+			
+			If zero, this feature is disabled.
+			If non-zero, this indicates the number of users within a
+			 group that can be aggregated by a STA in a multi-TID A-MPDU. 
+			This can also be used to block the series of QoS-null MPDUs
+			 when an RBO+Trig queue transmits using RBO.
+			
+			Based on this number, PDG will mask of user numbers >= this
+			 count
+			<legal all>
+*/
+
+#define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_OFFSET                          0x0000000000000000
+#define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_LSB                             33
+#define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MSB                             36
+#define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MASK                            0x0000001e00000000
+
+
+/* Description		RANGING
+
+			Consumer: TXPCU
+			Producer: SW
+			
+			Set to 1 in case the frame queued is:
+			a .11az ranging NDPA,
+			a .11az ranging NDP, or
+			an ISTA2RSTA LMR.
+			Set to 0 for all other cases.
+*/
+
+#define TX_FES_SETUP_RANGING_OFFSET                                                 0x0000000000000000
+#define TX_FES_SETUP_RANGING_LSB                                                    37
+#define TX_FES_SETUP_RANGING_MSB                                                    37
+#define TX_FES_SETUP_RANGING_MASK                                                   0x0000002000000000
+
+
+/* Description		EXPECT_I2R_LMR
+
+			Consumer: TXPCU
+			Producer: SW
+			
+			Set to 1 in case the frame queued is  a .11az randing NDPA/NDP
+			 and if the ISTA2RSTA LMR frame is also queued after SIFS.
+			
+			
+			Set to 0 otherwise.
+*/
+
+#define TX_FES_SETUP_EXPECT_I2R_LMR_OFFSET                                          0x0000000000000000
+#define TX_FES_SETUP_EXPECT_I2R_LMR_LSB                                             38
+#define TX_FES_SETUP_EXPECT_I2R_LMR_MSB                                             38
+#define TX_FES_SETUP_EXPECT_I2R_LMR_MASK                                            0x0000004000000000
+
+
+/* Description		TRANSMIT_START_REASON
+
+			Indicates what the SCH start reason reason was for initiating
+			 this transmission.
+			
+			<enum 0 BO_based_transmit_start> The transmission of this
+			 PPDU got initiated by the scheduler due to Backoff expiration
+			
+			<enum 1 Trigger_based_transmit_start> The transmission of
+			 this PPDU got initiated by the scheduler due to reception
+			 (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU
+			 generated. Note that this can be an OFDMA trigger frame
+			 based transmission as well as some legacy trigger (PS-POLL, 
+			Qboost, U-APSD, etc.)  based transmission
+			<enum 2 Sifs_continuation_in_ongoing_burst> This transmission
+			 of this PPDU got initiated as part of SIFS continuation. 
+			An earlier PPDU was transmitted due to RBO expiration. Next
+			 command is also expected to be transmitted in SIFS burst.
+			
+			<enum 3 Sifs_continuation_last_command> This transmission
+			 of this PPDU got initiated as part of SIFS continuation
+			 and this is the last command in the burst. An earlier PPDU
+			 was transmitted due to RBO expiration.
+			<enum 4 NTBR_response_start> DO NOT USE
+			<legal 0-4>
+*/
+
+#define TX_FES_SETUP_TRANSMIT_START_REASON_OFFSET                                   0x0000000000000000
+#define TX_FES_SETUP_TRANSMIT_START_REASON_LSB                                      39
+#define TX_FES_SETUP_TRANSMIT_START_REASON_MSB                                      41
+#define TX_FES_SETUP_TRANSMIT_START_REASON_MASK                                     0x0000038000000000
+
+
+/* Description		USE_ALT_POWER_SR
+
+			0: Primary/default power1: Alternate power
+			<legal all>
+*/
+
+#define TX_FES_SETUP_USE_ALT_POWER_SR_OFFSET                                        0x0000000000000000
+#define TX_FES_SETUP_USE_ALT_POWER_SR_LSB                                           42
+#define TX_FES_SETUP_USE_ALT_POWER_SR_MSB                                           42
+#define TX_FES_SETUP_USE_ALT_POWER_SR_MASK                                          0x0000040000000000
+
+
+/* Description		STATIC_2_PWR_MODE_STATUS
+
+			0: Static 2 power mode disabled1: Static 2 power mode enabled
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_OFFSET                                0x0000000000000000
+#define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_LSB                                   43
+#define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MSB                                   43
+#define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MASK                                  0x0000080000000000
+
+
+/* Description		OBSS_SRG_OPPORT_TRANSMIT_STATUS
+
+			0: Transmit based on SRG OBSS_PD opportunity initiated1: 
+			Transmit based on non-SRG OBSS_PD opportunity initiated
+			<legal all>
+*/
+
+#define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET                         0x0000000000000000
+#define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB                            44
+#define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB                            44
+#define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK                           0x0000100000000000
+
+
+/* Description		SRP_BASED_TRANSMIT_STATUS
+
+			0: non-SRP based transmit initiated1: SRP based transmit
+			 initiated
+			<legal all>
+*/
+
+#define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_OFFSET                               0x0000000000000000
+#define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_LSB                                  45
+#define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MSB                                  45
+#define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MASK                                 0x0000200000000000
+
+
+/* Description		OBSS_PD_BASED_TRANSMIT_STATUS
+
+			0: non-OBSS_PD based transmit initiated1: obss_pd based 
+			transmit initiated
+			<legal all>
+*/
+
+#define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET                           0x0000000000000000
+#define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_LSB                              46
+#define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MSB                              46
+#define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MASK                             0x0000400000000000
+
+
+/* Description		PUNCTURE_FROM_ALL_ALLOWED_MODES
+
+			Enables new scheme 2 puncturing in Beryllium:
+			TXPCU registers determine which puncture patterns (up to
+			 37) are enabled for the transmission.
+			'TX_PUNCTURE_SETUP' is unused.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_OFFSET                         0x0000000000000000
+#define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_LSB                            47
+#define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MSB                            47
+#define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MASK                           0x0000800000000000
+
+
+/* Description		SCHEDULE_CMD_RING_ID
+
+			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and its
+			 value is based on the scheduler ring where the command 
+			is initiated.
+			
+			The schedule command ring  that originated this transmission
+			
+			<enum 0 sch_cmd_ring_number0>
+			<enum 1 sch_cmd_ring_number1>
+			<enum 2 sch_cmd_ring_number2>
+			<enum 3 sch_cmd_ring_number3>
+			<enum 4 sch_cmd_ring_number4>
+			<enum 5 sch_cmd_ring_number5>
+			<enum 6 sch_cmd_ring_number6>
+			<enum 7 sch_cmd_ring_number7>
+			<enum 8 sch_cmd_ring_number8>
+			<enum 9 sch_cmd_ring_number9>
+			<enum 10 sch_cmd_ring_number10>
+			<enum 11 sch_cmd_ring_number11>
+			<enum 12 sch_cmd_ring_number12>
+			<enum 13 sch_cmd_ring_number13>
+			<enum 14 sch_cmd_ring_number14>
+			<enum 15 sch_cmd_ring_number15>
+			<enum 16 sch_cmd_ring_number16>
+			<enum 17 sch_cmd_ring_number17>
+			<enum 18 sch_cmd_ring_number18>
+			<enum 19 sch_cmd_ring_number19>
+			<enum 20 sch_cmd_ring_number20>
+			
+			<legal 0-20>
+*/
+
+#define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_OFFSET                                    0x0000000000000000
+#define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_LSB                                       48
+#define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MSB                                       52
+#define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MASK                                      0x001f000000000000
+
+
+/* Description		FES_CONTROL_MODE
+
+			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and it's
+			 value is coming from the "FES_control_mode" field in the
+			  Scheduler command.
+			
+			<enum 0  SW_transmit_mode>  No HW generated TLVs
+			<enum 1 PDG_transmit_mode> PDG  is activated to generate
+			 TLVs
+			
+			Note: Final Bandwidth selection is always performed by TX
+			 PCU.
+			<legal 0-1> 
+*/
+
+#define TX_FES_SETUP_FES_CONTROL_MODE_OFFSET                                        0x0000000000000000
+#define TX_FES_SETUP_FES_CONTROL_MODE_LSB                                           53
+#define TX_FES_SETUP_FES_CONTROL_MODE_MSB                                           54
+#define TX_FES_SETUP_FES_CONTROL_MODE_MASK                                          0x0060000000000000
+
+
+/* Description		NUMBER_OF_USERS
+
+			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
+			Producer: SCH
+			
+			The number of users in this transmission. Can be MU-MIMO
+			 or OFDMA in case the number is > 1
+			<legal 1-63> 
+*/
+
+#define TX_FES_SETUP_NUMBER_OF_USERS_OFFSET                                         0x0000000000000000
+#define TX_FES_SETUP_NUMBER_OF_USERS_LSB                                            55
+#define TX_FES_SETUP_NUMBER_OF_USERS_MSB                                            60
+#define TX_FES_SETUP_NUMBER_OF_USERS_MASK                                           0x1f80000000000000
+
+
+/* Description		MU_TYPE
+
+			In case the Number_of_users > 1, the transmission could 
+			be MU or OFDMA.
+			This field indicates which one it is.
+			
+			0: MU-MIMO
+			1: OFDMA
+			
+			
+			In case the number_of_user == 1, and PDG_FES_SETUP.mu_su_transmission
+			 is set, this field indicates:0: SU transmitted in MU MIMO
+			 format in compressed mode;1: SU transmitted in MU-OFDMA
+			 format in uncompressed mode
+			
+			Note: Within OFDMA classification, it could be that within
+			 one or more RUs there will be MIMO transmission...This 
+			is still considered as an 'OFDMA' class of MU transmission.
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_MU_TYPE_OFFSET                                                 0x0000000000000000
+#define TX_FES_SETUP_MU_TYPE_LSB                                                    61
+#define TX_FES_SETUP_MU_TYPE_MSB                                                    61
+#define TX_FES_SETUP_MU_TYPE_MASK                                                   0x2000000000000000
+
+
+/* Description		OFDMA_TRIGGERED_RESPONSE
+
+			Consumer: TXPCU/PDG
+			Producer: SCH/SW
+			
+			SW should always set this bit to 0
+			SCH will always overwrite this field and set it to the appropriate
+			 value for the upcoming transmission.
+			
+			When set (by SCH), this FES is initiated as a result of 
+			receiving an OFDMA transmit trigger. PDG already has received
+			 all transmit info from RXPCU. PDG can ignore most of the
+			 transmit initialization info.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_OFFSET                                0x0000000000000000
+#define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_LSB                                   62
+#define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MSB                                   62
+#define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MASK                                  0x4000000000000000
+
+
+/* Description		RESPONSE_TO_RESPONSE_CMD
+
+			When set, this scheduler command contains the transmission
+			 control for the response_to_response transmission
+			<legal all>
+*/
+
+#define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_OFFSET                                0x0000000000000000
+#define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_LSB                                   63
+#define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MSB                                   63
+#define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MASK                                  0x8000000000000000
+
+
+/* Description		SCHEDULE_TRY
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and it's
+			 value is coming from an internal counter in the scheduler
+			 that keeps track of how many times a scheduling command
+			 has been tried. 
+			
+			This count indicates how many times the FES did not successfully
+			 complete as the ACK/BA frame did not get received.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_SCHEDULE_TRY_OFFSET                                            0x0000000000000008
+#define TX_FES_SETUP_SCHEDULE_TRY_LSB                                               0
+#define TX_FES_SETUP_SCHEDULE_TRY_MSB                                               3
+#define TX_FES_SETUP_SCHEDULE_TRY_MASK                                              0x000000000000000f
+
+
+/* Description		NDP_FRAME
+
+			Consumer: PDG/TXPCU
+			Producer: SCH
+			
+			When set, the scheduling command contains an NDP frame. 
+			This can only be done using the SW transmit mode.
+			
+			<enum 0 no_ndp>No NDP transmission
+			<enum 1 beamforming_ndp>Beamforming NDP
+			<enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
+			<enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
+*/
+
+#define TX_FES_SETUP_NDP_FRAME_OFFSET                                               0x0000000000000008
+#define TX_FES_SETUP_NDP_FRAME_LSB                                                  4
+#define TX_FES_SETUP_NDP_FRAME_MSB                                                  5
+#define TX_FES_SETUP_NDP_FRAME_MASK                                                 0x0000000000000030
+
+
+/* Description		TXBF
+
+			Consumer: PDG/TXPCU
+			Producer: SCH
+			
+			If set, this bit indicates that this is a TX beamformed 
+			SU transaction or MU transaction
+			
+			
+			In case of a beamformed transmission, note that in the PCU_PPDU_SETUP_INIT
+			 TLV, SW can narrow down for which of the BW the beamforming
+			 shall take place. For example, SW can decide that BW is
+			 only desired for 40MHz BW, but not for 20...
+			If for any of the allowed BW, beamforming is desired, this
+			 field should be set, and the 'bf_type' shall be properly
+			 programmed. 
+			
+			TXPCU controls with bit 'beamforming' in the MACTX_PRE_PHY_DESC
+			 if the final actual transmission shall be beamformed.
+*/
+
+#define TX_FES_SETUP_TXBF_OFFSET                                                    0x0000000000000008
+#define TX_FES_SETUP_TXBF_LSB                                                       6
+#define TX_FES_SETUP_TXBF_MSB                                                       6
+#define TX_FES_SETUP_TXBF_MASK                                                      0x0000000000000040
+
+
+/* Description		ALLOW_TXOP_EXCEED_IN_1ST_PKT
+
+			Consumer: PDG
+			Producer: SCH
+			
+			Field only valid for SU transmissions.
+			
+			When set, a single MPDU transmission after RBO is allowed
+			 to exceed TXOP. In this setting, this field has priority
+			 over the setting of the duration_field_boundary. Reason
+			 for this is that if Coex issues on the receiver STA start
+			 preventing the transmission of frames on this device, it
+			 can lead to a death spiral. With some luck, this frame 
+			although maybe too long, might still be received.
+			
+			When 0, single MPDU after RBO is not allowed to exceed TXOP. 
+			
+			<legal all> 
+*/
+
+#define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_OFFSET                            0x0000000000000008
+#define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_LSB                               7
+#define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MSB                               7
+#define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MASK                              0x0000000000000080
+
+
+/* Description		IGNORE_BW_AVAILABLE
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			If set, TXPCU ignores 'BW available signals' from the scheduler
+			 and transmit using the single BW that SW has programmed
+			 the transmission to go out in. This bit should be set for
+			 SIFS response frame to PS-Poll/uAPSD/QBoost and note that
+			 for this mode, SW is only allowed to program a single transmit
+			 BW.
+			Also note that this bit can not be set in combination with
+			 preamble puncturing.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_IGNORE_BW_AVAILABLE_OFFSET                                     0x0000000000000008
+#define TX_FES_SETUP_IGNORE_BW_AVAILABLE_LSB                                        8
+#define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MSB                                        8
+#define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MASK                                       0x0000000000000100
+
+
+/* Description		IGNORE_TBTT
+
+			Consumer: PDG
+			Producer: SCH
+			
+			If set, PDG ignores remaining TBTTs in PPDU time calculation.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_IGNORE_TBTT_OFFSET                                             0x0000000000000008
+#define TX_FES_SETUP_IGNORE_TBTT_LSB                                                9
+#define TX_FES_SETUP_IGNORE_TBTT_MSB                                                9
+#define TX_FES_SETUP_IGNORE_TBTT_MASK                                               0x0000000000000200
+
+
+/* Description		STATIC_BANDWIDTH
+
+			Consumer: PDG/TXPCU
+			Producer: SCH
+			
+			Field is reserved when use_static_bw is clear.
+			
+			<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_SETUP_STATIC_BANDWIDTH_OFFSET                                        0x0000000000000008
+#define TX_FES_SETUP_STATIC_BANDWIDTH_LSB                                           10
+#define TX_FES_SETUP_STATIC_BANDWIDTH_MSB                                           12
+#define TX_FES_SETUP_STATIC_BANDWIDTH_MASK                                          0x0000000000001c00
+
+
+/* Description		SET_TXOP_DURATION_ALL_ONES
+
+			Consumer: PDG
+			Producer: SCH
+			
+			When set, SW embedded a PS_POLL frame in this transmission
+			 or the frame in this transmission is for a BSS with BSS
+			 Color disabled, e.g. due to BSS color collision.
+			PDG sets the TXOP_DURATION of the transmit PPDU to all 1s.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_OFFSET                              0x0000000000000008
+#define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_LSB                                 13
+#define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MSB                                 13
+#define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MASK                                0x0000000000002000
+
+
+/* Description		TRANSMISSION_CONTAINS_MU_RTS
+
+			Consumer: PDG
+			Producer: SCH
+			
+			When set, SW embedded a MU-RTS trigger frame in this transmission.
+			
+			TXPCU will have to do something special for this with the
+			 CTS response timeout (whose value comes from a MU-CTS timeout
+			 register)
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_OFFSET                            0x0000000000000008
+#define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_LSB                               14
+#define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MSB                               14
+#define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MASK                              0x0000000000004000
+
+
+/* Description		BW_RESTRICTED_FRAMES_EMBEDDED
+
+			Consumer: TXPCU
+			Producer: SW
+			
+			This bit should be set by SW when the transmission includes
+			 bandwidth restricted frames. As a result of this bit being
+			 set, TXPCU will hold of indicating that buffer space is
+			 available to TXDMA till the BW decision is done. This allows
+			 TXPCU to drop the BW restricted frames at SFM input.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_OFFSET                           0x0000000000000008
+#define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_LSB                              15
+#define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MSB                              15
+#define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MASK                             0x0000000000008000
+
+
+/* Description		AST_INDEX
+
+			Consumer: RXPCU
+			Producer: SCH
+			
+			Used for implicit BF sounding capture on receive Ack/BA. 
+			 The RXPCU needs to tag the receive sounding with ast_index
+			 so FW will know which STA is associated with Ack/BA sounding. 
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_AST_INDEX_OFFSET                                               0x0000000000000008
+#define TX_FES_SETUP_AST_INDEX_LSB                                                  16
+#define TX_FES_SETUP_AST_INDEX_MSB                                                  31
+#define TX_FES_SETUP_AST_INDEX_MASK                                                 0x00000000ffff0000
+
+
+/* Description		CV_ID
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			This field is only valid when expect_cbf is set.
+			
+			A unique ID corresponding to the CV data expected from the
+			 CBF frame. 
+			
+			TXPCU copies this field over to the TX_FES_STATUS TLV
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CV_ID_OFFSET                                                   0x0000000000000008
+#define TX_FES_SETUP_CV_ID_LSB                                                      32
+#define TX_FES_SETUP_CV_ID_MSB                                                      39
+#define TX_FES_SETUP_CV_ID_MASK                                                     0x000000ff00000000
+
+
+/* Description		TRIGGER_RESP_TXPDU_PPDU_BOUNDARY
+
+			This field indicates to TXPCU how far into the 11ax trigger
+			 response transmission, TXPCU should still accept Trigger
+			 response related configuration info from the SCHEDULER (and
+			 PDG) to be processed. 
+			
+			The field indicates a percentage of the total  byte count
+			 to be given to the PHY, up to which point TXPCU will still
+			 accept all the setup related TLVS to arrive. After that, 
+			TXPCU will ignore any remaining setup TLVs to come in and
+			 not initiate any MPDU based transfers to the PHY anymore. 
+			This is to help avoid corner cases.
+			If any setup TLVs did arrive after this point, TXPCU will
+			 keep on continuing giving NULL data to the PHY, but once
+			 PHYTX_PKT_END is received, TXPCU shall issue a FLUSH request
+			 to the SCH, with flush code: TXPCU_TRIG_RESPONSE_INFO_TOO_LATE
+			
+			TXPCU should not abort the transmission halfway, as that
+			 can cause problems for the MU UL receiver...
+			
+			<enum 0 txpcu_trig_response_boundary_75> TXPCU will not 
+			initiate SCH based MPDU transfers after 75% of the PPDU 
+			octed count has already been given to the PHY.
+			
+			<enum 1 txpcu_trig_response_boundary_50> TXPCU will not 
+			initiate SCH based MPDU transfers after 50% of the PPDU 
+			octed count has already been given to the PHY.
+			
+			<enum 2 txpcu_trig_response_boundary_25> TXPCU will not 
+			initiate SCH based MPDU transfers after 75% of the PPDU 
+			octed count has already been given to the PHY.
+			
+			Note that if TXPCU receives a TX_FES_SETUP with "11ax trigger
+			 response transmission" set, and it had already finished
+			 sending a response , it should generate a flush with code: 
+			TXPCU_TRIG_RESPONSE_MODE_CORRUPTION
+			
+			<legal 0-2>
+*/
+
+#define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_OFFSET                        0x0000000000000008
+#define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_LSB                           40
+#define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MSB                           41
+#define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MASK                          0x0000030000000000
+
+
+/* Description		RXPCU_SETUP_COMPLETE_PRESENT
+
+			To notify current TXFES use new mode and delay "RXPCU_*_SETUP" 
+			for HWSCH/TXPCU/RXPCU module
+			<legal all>
+*/
+
+#define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_OFFSET                            0x0000000000000008
+#define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_LSB                               42
+#define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MSB                               42
+#define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MASK                              0x0000040000000000
+
+
+/* Description		RBO_MUST_HAVE_DATA_USER_LIMIT
+
+			Consumer: PDG
+			Producer: SW
+			
+			Field only valid when Ofdma_triggered_response is NOT set
+			 (=> implies transmission started due to backoff expiration)
+			
+			
+			Field only valid for SU and "MU_SU" transmissions.
+			
+			The requirements for what to transmit depend on what the
+			 reason is that this transmission started. If it is 11ax
+			 trigger based, the trigger frame will specify all the constrains
+			 like max TID count, prefered AC, etc.
+			However if this command starts executing due to backoff 
+			expiration, the requirements could be different from those
+			 that might have come from the trigger frame.
+			This field specifies what the constaints are when the transmission
+			 is Backoff initiated. 
+			
+			When set to 0, this feature is disabled
+			When set to 1, user 0 must have data otherwise PDG should
+			 flush the transmission
+			When set to 2, user 0 AND/OR user 1 must have data otherwise
+			 PDG should flush the transmission
+			When set to 3, user 0 AND/OR user 1 AND/OR user 2 must have
+			 data otherwise PDG should flush the transmission
+			...
+			<legal all>
+*/
+
+#define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_OFFSET                           0x0000000000000008
+#define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_LSB                              43
+#define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MSB                              46
+#define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MASK                             0x0000780000000000
+
+
+/* Description		MU_NDP
+
+			Field only valid when ndp_frame is set.
+			
+			If set indicates that this packet is an NDP used for MU 
+			channel estimation.  This bit will be used by the TPC to
+			 signal that the analog gain settings can be updated. The
+			 analog gain settings will not change for subsequent MU 
+			data packets.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_MU_NDP_OFFSET                                                  0x0000000000000008
+#define TX_FES_SETUP_MU_NDP_LSB                                                     47
+#define TX_FES_SETUP_MU_NDP_MSB                                                     47
+#define TX_FES_SETUP_MU_NDP_MASK                                                    0x0000800000000000
+
+
+/* Description		BF_TYPE
+
+			Consumer: PDG/TXPCU
+			Producer: SCH
+			
+			Field is ONLY valid when 'txbf' is set...
+			
+			Defines the type of beamforming that is required using this
+			 transmission. 
+			Note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow 
+			down for which BW the beamforming shall take place. For 
+			example, SW can decide that BW is only desired for 40MHz
+			 BW, but not for 20...
+			If for any of the allowed BW, beamforming is desired, this
+			 field should indicate which type of BF.
+			
+			<enum 0    NO_BF>
+			<enum 1    LEGACY_BF>
+			<enum 2    SU_BF>
+			<enum 3    MU_BF>
+			 <legal all>
+*/
+
+#define TX_FES_SETUP_BF_TYPE_OFFSET                                                 0x0000000000000008
+#define TX_FES_SETUP_BF_TYPE_LSB                                                    48
+#define TX_FES_SETUP_BF_TYPE_MSB                                                    49
+#define TX_FES_SETUP_BF_TYPE_MASK                                                   0x0003000000000000
+
+
+/* Description		CBF_NC_INDEX_MASK
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			When set, TXPCU shall confirm that the received cbf_nc_index
+			 is equal to the expected one, indicated by field: cbf_nc_index
+			
+			
+			This field is only allowed to be set in case of a single
+			 SU CBF reception.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_NC_INDEX_MASK_OFFSET                                       0x0000000000000008
+#define TX_FES_SETUP_CBF_NC_INDEX_MASK_LSB                                          50
+#define TX_FES_SETUP_CBF_NC_INDEX_MASK_MSB                                          50
+#define TX_FES_SETUP_CBF_NC_INDEX_MASK_MASK                                         0x0004000000000000
+
+
+/* Description		CBF_NC_INDEX
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			Field only valid when cbf_nc_index_mask is set
+			
+			Expected Nc_index of received CBF frame after sending NDP
+			 or BR-Poll. 
+			
+			<enum 0 nc_1>
+			<enum 1 nc_2>
+			<enum 2 nc_3>
+			<enum 3 nc_4>
+			<enum 4 nc_5>
+			<enum 5 nc_6>
+			<enum 6 nc_7>
+			<enum 7 nc_8>
+			<legal 0-7>
+*/
+
+#define TX_FES_SETUP_CBF_NC_INDEX_OFFSET                                            0x0000000000000008
+#define TX_FES_SETUP_CBF_NC_INDEX_LSB                                               51
+#define TX_FES_SETUP_CBF_NC_INDEX_MSB                                               53
+#define TX_FES_SETUP_CBF_NC_INDEX_MASK                                              0x0038000000000000
+
+
+/* Description		CBF_NR_INDEX_MASK
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			When set, TXPCU shall confirm that the received cbf_nr_index
+			 is equal to the expected one, indicated in the field: cbf_nr_index
+			
+			
+			This field is only allowed to be set in case of a single
+			 SU CBF reception.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_NR_INDEX_MASK_OFFSET                                       0x0000000000000008
+#define TX_FES_SETUP_CBF_NR_INDEX_MASK_LSB                                          54
+#define TX_FES_SETUP_CBF_NR_INDEX_MASK_MSB                                          54
+#define TX_FES_SETUP_CBF_NR_INDEX_MASK_MASK                                         0x0040000000000000
+
+
+/* Description		CBF_NR_INDEX
+
+			Expected Nr_index of received CBF frame after sending NDP
+			 or BR-Poll. This field is compared only if cbf_nr_index_mask
+			 is set to 1. 
+			<enum 0 nr_1>
+			<enum 1 nr_2>
+			<enum 2 nr_3>
+			<enum 3 nr_4>
+			<enum 4 nr_5>
+			<enum 5 nr_6>
+			<enum 6 nr_7>
+			<enum 7 nr_8>
+			<legal 0-7>
+*/
+
+#define TX_FES_SETUP_CBF_NR_INDEX_OFFSET                                            0x0000000000000008
+#define TX_FES_SETUP_CBF_NR_INDEX_LSB                                               55
+#define TX_FES_SETUP_CBF_NR_INDEX_MSB                                               57
+#define TX_FES_SETUP_CBF_NR_INDEX_MASK                                              0x0380000000000000
+
+
+/* Description		SECURE_RANGING_ISTA
+
+			Consumer: Crypto
+			Producer: SW
+			
+			If set to 1, Crypto will use the 'TX_PEER_ENTRY' for encryption
+			 but not for the 'TX_DATA' from TXOLE interface but will
+			 wait for 'LMR_{MPDU_START, DATA, MPDU_END}' TLVs from TXPCU
+			 to encrypt the ISTA2RSTA LMR.
+			
+			If set to 0, Crypto will encrypt 'TX_DATA' as for any non-.11az-ranging
+			 frame.
+*/
+
+#define TX_FES_SETUP_SECURE_RANGING_ISTA_OFFSET                                     0x0000000000000008
+#define TX_FES_SETUP_SECURE_RANGING_ISTA_LSB                                        58
+#define TX_FES_SETUP_SECURE_RANGING_ISTA_MSB                                        58
+#define TX_FES_SETUP_SECURE_RANGING_ISTA_MASK                                       0x0400000000000000
+
+
+/* Description		NDPA
+
+			When set, this packet is an NDP announcement.
+*/
+
+#define TX_FES_SETUP_NDPA_OFFSET                                                    0x0000000000000008
+#define TX_FES_SETUP_NDPA_LSB                                                       59
+#define TX_FES_SETUP_NDPA_MSB                                                       59
+#define TX_FES_SETUP_NDPA_MASK                                                      0x0800000000000000
+
+
+/* Description		WAIT_SIFS
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			This field is passed over to the tx_phy_desc by the PDG 
+			module. If set, the AMPI will hold this tx_phy_desc TLV 
+			from the TX PCU until SIFS has elapsed and then forward 
+			the tx_phy_desc to the PHY.  The PHY should ignore this 
+			bit.  This bit is used to make sure that transmit SIFS response
+			 to a receive frame is cycle accurate and consistent to 
+			enable accurate RTT measurement.   
+			
+			<enum 0 NO_SIFS_TIMING> Transmission shall start with the
+			 normal delay in PHY after receiving this notification
+			<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made 
+			at the SIFS boundary. If shall never start before SIFS boundary, 
+			but if it a little later, it is not ideal and should be 
+			flagged, but transmission shall not be aborted.
+			<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
+			 at exactly SIFS boundary. If this notification is received
+			 by the PHY after SIFS boundary already passed, the PHY 
+			shall abort the transmission
+			<legal 0-2>
+*/
+
+#define TX_FES_SETUP_WAIT_SIFS_OFFSET                                               0x0000000000000008
+#define TX_FES_SETUP_WAIT_SIFS_LSB                                                  60
+#define TX_FES_SETUP_WAIT_SIFS_MSB                                                  61
+#define TX_FES_SETUP_WAIT_SIFS_MASK                                                 0x3000000000000000
+
+
+/* Description		CBF_FEEDBACK_TYPE_MASK
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			When set, TXPCU shall confirm that the cbf_feedback_type
+			 is equal to the expected one, indicated in the field: cbf_feedback_type
+			
+			
+			This field is only allowed to be set in case of a single
+			 SU CBF reception.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_OFFSET                                  0x0000000000000008
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_LSB                                     62
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MSB                                     62
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MASK                                    0x4000000000000000
+
+
+/* Description		CBF_FEEDBACK_TYPE
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			Expected feedback type of received CBF frame after sending
+			 NDP or BR-Poll. This field is compared only if cbf_feedback_type_mask
+			 is set to 1. 
+			<enum 0     SU>
+			<enum 1     MU>
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_OFFSET                                       0x0000000000000008
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_LSB                                          63
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MSB                                          63
+#define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK                                         0x8000000000000000
+
+
+/* Description		CBF_SOUNDING_TOKEN
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			Expected sounding token of received CBF frame after sending
+			 NDP or BR-Poll. This field is compared only if cbf_sounding_token_mask
+			 is set to 1. 
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_OFFSET                                      0x0000000000000010
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_LSB                                         0
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MSB                                         5
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK                                        0x000000000000003f
+
+
+/* Description		CBF_SOUNDING_TOKEN_MASK
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			When set, TXPCU shall confirm that the cbf_sounding_token
+			 is equal to the expected one, indicated in the field: cbf_sounding_token
+			
+			
+			This field is only allowed to be set in case of a single
+			 SU CBF reception.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_OFFSET                                 0x0000000000000010
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_LSB                                    6
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MSB                                    6
+#define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MASK                                   0x0000000000000040
+
+
+/* Description		CBF_BW_MASK
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			When set, TXPCU shall confirm that the cbf_bw_mask is equal
+			 to the expected one, indicated in the field: cbf_bw
+			
+			This field is only allowed to be set in case of a single
+			 SU CBF reception.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_CBF_BW_MASK_OFFSET                                             0x0000000000000010
+#define TX_FES_SETUP_CBF_BW_MASK_LSB                                                7
+#define TX_FES_SETUP_CBF_BW_MASK_MSB                                                7
+#define TX_FES_SETUP_CBF_BW_MASK_MASK                                               0x0000000000000080
+
+
+/* Description		CBF_BW
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			Expected channel width of received CBF frame after sending
+			 NDP or BR-Poll. This field is compared only if cbf_bw_mask
+			 is set to 1.
+			 
+			<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_SETUP_CBF_BW_OFFSET                                                  0x0000000000000010
+#define TX_FES_SETUP_CBF_BW_LSB                                                     8
+#define TX_FES_SETUP_CBF_BW_MSB                                                     10
+#define TX_FES_SETUP_CBF_BW_MASK                                                    0x0000000000000700
+
+
+/* Description		USE_STATIC_BW
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			Part of TX_BF_PARAMS: This field is used to indicate to 
+			the SVD that the b/w that will be defined in the TX_PHY_DESC
+			 for the upcoming TXBF packet will be the same as the static
+			 bandwidth, i.e. the bandwidth that was in operation during
+			 sounding for the clients in question
+			<legal all>
+*/
+
+#define TX_FES_SETUP_USE_STATIC_BW_OFFSET                                           0x0000000000000010
+#define TX_FES_SETUP_USE_STATIC_BW_LSB                                              11
+#define TX_FES_SETUP_USE_STATIC_BW_MSB                                              11
+#define TX_FES_SETUP_USE_STATIC_BW_MASK                                             0x0000000000000800
+
+
+/* Description		COEX_NACK_COUNT
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			The number of times PDG informed the SCHeduler module that
+			 for this scheduling command, the WLAN transmission can 
+			not be initialized due to getting a NACK response from the
+			 Coex engine, or PDG not being able to fit a transmission
+			 within the timing constraints given by Coex.
+			
+			Note that SCH will (re)set this count to 0 at the start 
+			of reading a new SCH command.
+			This count is maintained on a per ring basis by the SCHeduler
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_COEX_NACK_COUNT_OFFSET                                         0x0000000000000010
+#define TX_FES_SETUP_COEX_NACK_COUNT_LSB                                            12
+#define TX_FES_SETUP_COEX_NACK_COUNT_MSB                                            16
+#define TX_FES_SETUP_COEX_NACK_COUNT_MASK                                           0x000000000001f000
+
+
+/* Description		SCH_TX_BURST_ONGOING
+
+			Consumer: PDG/TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and it's
+			 value is coming from the" sifs_burst_continuation" field
+			 in the  Scheduler command.
+			
+			0: No action
+			1: The next scheduling command needs to start at SIFS time
+			 after finishing the frame transmissions in this command. 
+			This allows for SIFS based bursting
+			<legal all>
+*/
+
+#define TX_FES_SETUP_SCH_TX_BURST_ONGOING_OFFSET                                    0x0000000000000010
+#define TX_FES_SETUP_SCH_TX_BURST_ONGOING_LSB                                       17
+#define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MSB                                       17
+#define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MASK                                      0x0000000000020000
+
+
+/* Description		GEN_TQM_UPDATE_MPDU_COUNT_TLV
+
+			Consumer: TXPCU
+			Producer: SW
+			
+			NOTE: When PDG is configured to do transmissions in SW mode, 
+			this bit shall NEVER be set.
+			
+			When set, TXPCU shall generate the TQM_UPDATE_TX_MPDU_COUNT
+			 TLV immediately after PPDU transmission has finished (and
+			 before any response frame might have been received)
+			
+			When set, SW shall also generate the RXPCU_USER_SETUP TLVs
+			 as this is where TXPCU will get the MPDU_queue addresses.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_OFFSET                           0x0000000000000010
+#define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_LSB                              18
+#define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MSB                              18
+#define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MASK                             0x0000000000040000
+
+
+/* Description		TRANSMIT_VIF
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			The VIF for this transmission. Used in MCC mode to control/overwrite
+			 the PM bit settings. Based on this VIF value, TXOLE gets
+			 the pm bit control instructions from the pm_state_overwrite_per_vif
+			 register
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_TRANSMIT_VIF_OFFSET                                            0x0000000000000010
+#define TX_FES_SETUP_TRANSMIT_VIF_LSB                                               19
+#define TX_FES_SETUP_TRANSMIT_VIF_MSB                                               22
+#define TX_FES_SETUP_TRANSMIT_VIF_MASK                                              0x0000000000780000
+
+
+/* Description		OPTIMAL_BW_RETRY_COUNT
+
+			Consumer: TXPCU
+			Producer: SCH
+			
+			This field is overwritten by the scheduler module and it's
+			 value is coming from an internal counter in the scheduler
+			 that keeps track of how many times this scheduling command
+			 has been flushed by TXPCU as a result of most desired BW
+			 not being available (=> flush code: TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW)
+			
+			
+			For the first transmission, this count is always set to 
+			0. 
+			<legal all>
+*/
+
+#define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_OFFSET                                  0x0000000000000010
+#define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_LSB                                     23
+#define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MSB                                     26
+#define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MASK                                    0x0000000007800000
+
+
+/* Description		FES_CONTINUATION_RATIO_THRESHOLD
+
+			Field evaluated by TXPCU only.
+			
+			This Feature is not supported in Napier and Hastings.
+			
+			Field can be used in both SU and MU transmissions, but might
+			 be most useful in MU transmissions.
+			
+			TXPCU keeps track of how many MPDU data words are transmited
+			 as well as how many Null delimiters are transmitted. In
+			 case of an MU and/or multi TID transmission, these two 
+			counters are the aggregates over all the users. 
+			
+			At the end of the FES, TXPCU determines the ratio between
+			 the actual MPDU data words and Null delimiters. If this
+			 ratio is LESS then the ratio indicated here, TXPCU should
+			 indicate "Transmit_data_null_ratio_not_met" in the TX_FES_STATUS_END
+			 
+			
+			<enum 0 No_Data_Null_ratio_requirement> TXPCU does not need
+			 to do any evaluation on the ratio between actual data transmitted
+			 and NULL delimiters inserted.
+			<enum 1 Data_Null_ratio_16_1> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 16:1. If not met, TXPCU should terminate FES.
+			<enum 2 Data_Null_ratio_8_1> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 8:1. If not met, TXPCU should terminate FES.
+			<enum 3 Data_Null_ratio_4_1> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 4:1. If not met, TXPCU should terminate FES.
+			<enum 4 Data_Null_ratio_2_1> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 2:1. If not met, TXPCU should terminate FES.
+			<enum 5 Data_Null_ratio_1_1> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 1:1. If not met, TXPCU should terminate FES.
+			<enum 6 Data_Null_ratio_1_2> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 1:2. If not met, TXPCU should terminate FES.
+			<enum 7 Data_Null_ratio_1_4> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 1:4. If not met, TXPCU should terminate FES.
+			<enum 8 Data_Null_ratio_1_8> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 1:8. If not met, TXPCU should terminate FES.
+			<enum 9 Data_Null_ratio_1_16> At the end of the FES, TXPCU
+			 shall confirm that the DATA:NULL delimiter ratio was at
+			 least 1:16. If not met, TXPCU should terminate FES.
+			
+			<legal 0-9>
+*/
+
+#define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_OFFSET                        0x0000000000000010
+#define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_LSB                           27
+#define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MSB                           31
+#define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MASK                          0x00000000f8000000
+
+
+/* Description		TRANSMIT_CCA_BITMAP
+
+			The CCA signals that shall be evaluated by TXPCU to determine
+			 the BW/puncture pattern available for transmission.
+			
+			0: CCA signal not needed. Ignore the CCA setting
+			1: CCA signals shall be evaluated
+			
+			Bit [1:0]     => cca20_0 related signals
+			Bit [3:2]   => cca20_1 related signals
+			...
+			Bit [31:30] => cca20_15 related signals
+			
+			Within the 2 bits, the order is always:
+			Bit0: ED
+			Bit1: GI
+			
+			NOTE: HW Sch takes care of MUXing ED1/ED2 with ED0 and MUXing
+			 GI1 with GI0. Hence this field should be set to 0x55555555
+			 for chips not supporting GI-correlation and 0xFFFFFFFF 
+			for chips that support, usually.
+			<legal all>
+*/
+
+#define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_OFFSET                                     0x0000000000000010
+#define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_LSB                                        32
+#define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MSB                                        63
+#define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MASK                                       0xffffffff00000000
+
+
+/* Description		TB_RANGING
+
+			Indicates that this frame is generated for a TB ranging 
+			sequence
+			<legal all>
+*/
+
+#define TX_FES_SETUP_TB_RANGING_OFFSET                                              0x0000000000000018
+#define TX_FES_SETUP_TB_RANGING_LSB                                                 0
+#define TX_FES_SETUP_TB_RANGING_MSB                                                 0
+#define TX_FES_SETUP_TB_RANGING_MASK                                                0x0000000000000001
+
+
+/* Description		RANGING_TRIGGER_SUBTYPE
+
+			Field only valid if TB_Ranging is set
+			
+			Indicates the Trigger subtype for the current ranging TF
+			
+			
+			<enum 0 TF_Poll>
+			<enum 1 TF_Sound>
+			<enum 2 TF_Secure_Sound>
+			<enum 3 TF_Report>
+			
+			<legal 0-3>
+*/
+
+#define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_OFFSET                                 0x0000000000000018
+#define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_LSB                                    1
+#define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MSB                                    4
+#define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MASK                                   0x000000000000001e
+
+
+/* Description		MIN_CTS2SELF_COUNT
+
+			Field only valid when max_cts2self_count is non-zero
+			
+			This is the minimum number of CTS2SELF frames that PDG should
+			 transmit before the actual data transmission.
+*/
+
+#define TX_FES_SETUP_MIN_CTS2SELF_COUNT_OFFSET                                      0x0000000000000018
+#define TX_FES_SETUP_MIN_CTS2SELF_COUNT_LSB                                         5
+#define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MSB                                         8
+#define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MASK                                        0x00000000000001e0
+
+
+/* Description		MAX_CTS2SELF_COUNT
+
+			Field only valid when non-zero
+			
+			This is the maximum number of CTS2SELF frames that PDG is
+			 allowed to transmit before the actual data transmission. 
+			PDG will only use these additional frames if MPDU info from
+			 TQM or CV-correlation info from microcode is delayed.
+*/
+
+#define TX_FES_SETUP_MAX_CTS2SELF_COUNT_OFFSET                                      0x0000000000000018
+#define TX_FES_SETUP_MAX_CTS2SELF_COUNT_LSB                                         9
+#define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MSB                                         12
+#define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MASK                                        0x0000000000001e00
+
+
+/* Description		WIFI_RADAR_ENABLE
+
+			When set to 1, the packet is intended to be used by PHY 
+			for WiFi radar (by sensing the reflected WiFi signal).
+			<legal all>
+*/
+
+#define TX_FES_SETUP_WIFI_RADAR_ENABLE_OFFSET                                       0x0000000000000018
+#define TX_FES_SETUP_WIFI_RADAR_ENABLE_LSB                                          13
+#define TX_FES_SETUP_WIFI_RADAR_ENABLE_MSB                                          13
+#define TX_FES_SETUP_WIFI_RADAR_ENABLE_MASK                                         0x0000000000002000
+
+
+/* Description		RESERVED_6A
+
+			Bit 14: cqi_feedback:
+			Consumer: TXPCU
+			Producer: SCH
+			
+			MSB of the expected feedback type of received CBF frame 
+			after sending NDP or BR-Poll in case of HE/EHT sounding. 
+			See field cbf_feedback_type above for the LSB. This field
+			 is compared only if cbf_feedback_type_mask is set to 1. 
+			
+			0: compressed beamforming feedback
+			1: CQI feedback
+			
+			<legal 0-1>
+*/
+
+#define TX_FES_SETUP_RESERVED_6A_OFFSET                                             0x0000000000000018
+#define TX_FES_SETUP_RESERVED_6A_LSB                                                14
+#define TX_FES_SETUP_RESERVED_6A_MSB                                                31
+#define TX_FES_SETUP_RESERVED_6A_MASK                                               0x00000000ffffc000
+
+
+/* Description		MONITOR_OVERRIDE_STA_31_0
+
+			Used by TXMON
+			
+			LSB 32 bits of a 37-bit user bitmap with 1s denoting the
+			 'tlv_usr' values that correspond to'Monitor override client's
+			
+			
+			When enabled in TXMON, it will discard the user-TLVs of 
+			the users not selected by the bitmap. FW should program 
+			this setting in line with the 'Monitor_override_sta' setting
+			 in the 'ADDR_SEARCH_ENTRY' corresponding to each of the
+			 clients.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_OFFSET                               0x0000000000000018
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_LSB                                  32
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MSB                                  63
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MASK                                 0xffffffff00000000
+
+
+/* Description		MONITOR_OVERRIDE_STA_36_32
+
+			Used by TXMON
+			
+			MSB 5 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr' 
+			values that correspond to 'Monitor override client's
+			
+			See 'Monitor_override_sta_31_0.'
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_OFFSET                              0x0000000000000020
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_LSB                                 0
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MSB                                 4
+#define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MASK                                0x000000000000001f
+
+
+/* Description		RESERVED_8A
+
+			<legal 0>
+*/
+
+#define TX_FES_SETUP_RESERVED_8A_OFFSET                                             0x0000000000000020
+#define TX_FES_SETUP_RESERVED_8A_LSB                                                5
+#define TX_FES_SETUP_RESERVED_8A_MSB                                                31
+#define TX_FES_SETUP_RESERVED_8A_MASK                                               0x00000000ffffffe0
+
+
+/* Description		FW2SW_INFO
+
+			This field is provided by FW, to be logged via TXMON to 
+			host SW. It is transparent to HW.
+			
+			<legal all>
+*/
+
+#define TX_FES_SETUP_FW2SW_INFO_OFFSET                                              0x0000000000000020
+#define TX_FES_SETUP_FW2SW_INFO_LSB                                                 32
+#define TX_FES_SETUP_FW2SW_INFO_MSB                                                 63
+#define TX_FES_SETUP_FW2SW_INFO_MASK                                                0xffffffff00000000
+
+
+
+#endif   // TX_FES_SETUP
diff --git a/hw/qca5332/tx_fes_status_1k_ba.h b/hw/qca5332/tx_fes_status_1k_ba.h
new file mode 100644
index 0000000..ef10883
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_1k_ba.h
@@ -0,0 +1,679 @@
+
+/* 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_1K_BA_H_
+#define _TX_FES_STATUS_1K_BA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_STATUS_1K_BA 34
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_1K_BA 17
+
+
+struct tx_fes_status_1k_ba {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ack_ba_status_type                                      :  1, // [0:0]
+                      ba_type                                                 :  1, // [1:1]
+                      ba_tid                                                  :  4, // [5:2]
+                      unexpected_ack_or_ba                                    :  1, // [6:6]
+                      response_timeout                                        :  1, // [7:7]
+                      ack_frame_rssi                                          :  8, // [15:8]
+                      ssn                                                     : 12, // [27:16]
+                      reserved_0b                                             :  4; // [31:28]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      reserved_1a                                             : 16; // [31:16]
+             uint32_t ba_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t ba_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t ba_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t ba_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t ba_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t ba_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t ba_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t ba_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t ba_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t ba_bitmap_319_288                                       : 32; // [31:0]
+             uint32_t ba_bitmap_351_320                                       : 32; // [31:0]
+             uint32_t ba_bitmap_383_352                                       : 32; // [31:0]
+             uint32_t ba_bitmap_415_384                                       : 32; // [31:0]
+             uint32_t ba_bitmap_447_416                                       : 32; // [31:0]
+             uint32_t ba_bitmap_479_448                                       : 32; // [31:0]
+             uint32_t ba_bitmap_511_480                                       : 32; // [31:0]
+             uint32_t ba_bitmap_543_512                                       : 32; // [31:0]
+             uint32_t ba_bitmap_575_544                                       : 32; // [31:0]
+             uint32_t ba_bitmap_607_576                                       : 32; // [31:0]
+             uint32_t ba_bitmap_639_608                                       : 32; // [31:0]
+             uint32_t ba_bitmap_671_640                                       : 32; // [31:0]
+             uint32_t ba_bitmap_703_672                                       : 32; // [31:0]
+             uint32_t ba_bitmap_735_704                                       : 32; // [31:0]
+             uint32_t ba_bitmap_767_736                                       : 32; // [31:0]
+             uint32_t ba_bitmap_799_768                                       : 32; // [31:0]
+             uint32_t ba_bitmap_831_800                                       : 32; // [31:0]
+             uint32_t ba_bitmap_863_832                                       : 32; // [31:0]
+             uint32_t ba_bitmap_895_864                                       : 32; // [31:0]
+             uint32_t ba_bitmap_927_896                                       : 32; // [31:0]
+             uint32_t ba_bitmap_959_928                                       : 32; // [31:0]
+             uint32_t ba_bitmap_991_960                                       : 32; // [31:0]
+             uint32_t ba_bitmap_1023_992                                      : 32; // [31:0]
+#else
+             uint32_t reserved_0b                                             :  4, // [31:28]
+                      ssn                                                     : 12, // [27:16]
+                      ack_frame_rssi                                          :  8, // [15:8]
+                      response_timeout                                        :  1, // [7:7]
+                      unexpected_ack_or_ba                                    :  1, // [6:6]
+                      ba_tid                                                  :  4, // [5:2]
+                      ba_type                                                 :  1, // [1:1]
+                      ack_ba_status_type                                      :  1; // [0:0]
+             uint32_t reserved_1a                                             : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t ba_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t ba_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t ba_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t ba_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t ba_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t ba_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t ba_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t ba_bitmap_255_224                                       : 32; // [31:0]
+             uint32_t ba_bitmap_287_256                                       : 32; // [31:0]
+             uint32_t ba_bitmap_319_288                                       : 32; // [31:0]
+             uint32_t ba_bitmap_351_320                                       : 32; // [31:0]
+             uint32_t ba_bitmap_383_352                                       : 32; // [31:0]
+             uint32_t ba_bitmap_415_384                                       : 32; // [31:0]
+             uint32_t ba_bitmap_447_416                                       : 32; // [31:0]
+             uint32_t ba_bitmap_479_448                                       : 32; // [31:0]
+             uint32_t ba_bitmap_511_480                                       : 32; // [31:0]
+             uint32_t ba_bitmap_543_512                                       : 32; // [31:0]
+             uint32_t ba_bitmap_575_544                                       : 32; // [31:0]
+             uint32_t ba_bitmap_607_576                                       : 32; // [31:0]
+             uint32_t ba_bitmap_639_608                                       : 32; // [31:0]
+             uint32_t ba_bitmap_671_640                                       : 32; // [31:0]
+             uint32_t ba_bitmap_703_672                                       : 32; // [31:0]
+             uint32_t ba_bitmap_735_704                                       : 32; // [31:0]
+             uint32_t ba_bitmap_767_736                                       : 32; // [31:0]
+             uint32_t ba_bitmap_799_768                                       : 32; // [31:0]
+             uint32_t ba_bitmap_831_800                                       : 32; // [31:0]
+             uint32_t ba_bitmap_863_832                                       : 32; // [31:0]
+             uint32_t ba_bitmap_895_864                                       : 32; // [31:0]
+             uint32_t ba_bitmap_927_896                                       : 32; // [31:0]
+             uint32_t ba_bitmap_959_928                                       : 32; // [31:0]
+             uint32_t ba_bitmap_991_960                                       : 32; // [31:0]
+             uint32_t ba_bitmap_1023_992                                      : 32; // [31:0]
+#endif
+};
+
+
+/* Description		ACK_BA_STATUS_TYPE
+
+			Consumer: SW
+			Producer: RXPCU
+			
+			<enum 1 1K_BA_type>  This TLV represents an BA reception.
+			
+			 <legal 1>
+*/
+
+#define TX_FES_STATUS_1K_BA_ACK_BA_STATUS_TYPE_OFFSET                               0x0000000000000000
+#define TX_FES_STATUS_1K_BA_ACK_BA_STATUS_TYPE_LSB                                  0
+#define TX_FES_STATUS_1K_BA_ACK_BA_STATUS_TYPE_MSB                                  0
+#define TX_FES_STATUS_1K_BA_ACK_BA_STATUS_TYPE_MASK                                 0x0000000000000001
+
+
+/* Description		BA_TYPE
+
+			<enum 1 1K_BA_TYPE_bitmap>
+			<legal 1>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_TYPE_OFFSET                                          0x0000000000000000
+#define TX_FES_STATUS_1K_BA_BA_TYPE_LSB                                             1
+#define TX_FES_STATUS_1K_BA_BA_TYPE_MSB                                             1
+#define TX_FES_STATUS_1K_BA_BA_TYPE_MASK                                            0x0000000000000002
+
+
+/* Description		BA_TID
+
+			The TID field copied from the BA frame
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_TID_OFFSET                                           0x0000000000000000
+#define TX_FES_STATUS_1K_BA_BA_TID_LSB                                              2
+#define TX_FES_STATUS_1K_BA_BA_TID_MSB                                              5
+#define TX_FES_STATUS_1K_BA_BA_TID_MASK                                             0x000000000000003c
+
+
+/* Description		UNEXPECTED_ACK_OR_BA
+
+			Set when RXPCU received a BA for which there was no " RXPCU_USER_SETUP_EXT
+			 TLV' received.
+			This can happen when a BA for unexpected TID is received.
+			
+			
+			This message enables SW to still pass this BA information
+			 on to the right TQM queue.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_UNEXPECTED_ACK_OR_BA_OFFSET                             0x0000000000000000
+#define TX_FES_STATUS_1K_BA_UNEXPECTED_ACK_OR_BA_LSB                                6
+#define TX_FES_STATUS_1K_BA_UNEXPECTED_ACK_OR_BA_MSB                                6
+#define TX_FES_STATUS_1K_BA_UNEXPECTED_ACK_OR_BA_MASK                               0x0000000000000040
+
+
+/* Description		RESPONSE_TIMEOUT
+
+			When set, there was delay in RXPCU (likely due to AST fetch
+			 delay) that resulted in TXPCU not being able to send the
+			 RX_RESPONSE_REQUIRED_INFO TLV within a certain timeout 
+			from the falling edge of the frame. This status TLV is still
+			 generated but RXPCU will NOT have generated the RX_RESPONSE_REQUIRED
+			 TLV.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_RESPONSE_TIMEOUT_OFFSET                                 0x0000000000000000
+#define TX_FES_STATUS_1K_BA_RESPONSE_TIMEOUT_LSB                                    7
+#define TX_FES_STATUS_1K_BA_RESPONSE_TIMEOUT_MSB                                    7
+#define TX_FES_STATUS_1K_BA_RESPONSE_TIMEOUT_MASK                                   0x0000000000000080
+
+
+/* Description		ACK_FRAME_RSSI
+
+			RSSI of the received ACK, BA or M-BA frame. 
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_ACK_FRAME_RSSI_OFFSET                                   0x0000000000000000
+#define TX_FES_STATUS_1K_BA_ACK_FRAME_RSSI_LSB                                      8
+#define TX_FES_STATUS_1K_BA_ACK_FRAME_RSSI_MSB                                      15
+#define TX_FES_STATUS_1K_BA_ACK_FRAME_RSSI_MASK                                     0x000000000000ff00
+
+
+/* Description		SSN
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Ack_ba_status_type indicating: 
+			BA_type 
+			
+			The starting Sequence number of the (B)ACK bitmap <legal
+			 all>
+*/
+
+#define TX_FES_STATUS_1K_BA_SSN_OFFSET                                              0x0000000000000000
+#define TX_FES_STATUS_1K_BA_SSN_LSB                                                 16
+#define TX_FES_STATUS_1K_BA_SSN_MSB                                                 27
+#define TX_FES_STATUS_1K_BA_SSN_MASK                                                0x000000000fff0000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_1K_BA_RESERVED_0B_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_1K_BA_RESERVED_0B_LSB                                         28
+#define TX_FES_STATUS_1K_BA_RESERVED_0B_MSB                                         31
+#define TX_FES_STATUS_1K_BA_RESERVED_0B_MASK                                        0x00000000f0000000
+
+
+/* Description		SW_PEER_ID
+
+			The sw_peer_id for which the bitmap is requested. 
+			
+			SW could use this info to link this TLV back to the right
+			 TQM queue (if needed)
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_SW_PEER_ID_OFFSET                                       0x0000000000000000
+#define TX_FES_STATUS_1K_BA_SW_PEER_ID_LSB                                          32
+#define TX_FES_STATUS_1K_BA_SW_PEER_ID_MSB                                          47
+#define TX_FES_STATUS_1K_BA_SW_PEER_ID_MASK                                         0x0000ffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_1K_BA_RESERVED_1A_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_1K_BA_RESERVED_1A_LSB                                         48
+#define TX_FES_STATUS_1K_BA_RESERVED_1A_MSB                                         63
+#define TX_FES_STATUS_1K_BA_RESERVED_1A_MASK                                        0xffff000000000000
+
+
+/* Description		BA_BITMAP_31_0
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_31_0
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_31_0_OFFSET                                   0x0000000000000008
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_31_0_LSB                                      0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_31_0_MSB                                      31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_31_0_MASK                                     0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_63_32
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_63_32
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_63_32_OFFSET                                  0x0000000000000008
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_63_32_LSB                                     32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_63_32_MSB                                     63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_63_32_MASK                                    0xffffffff00000000
+
+
+/* Description		BA_BITMAP_95_64
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_95_64
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_95_64_OFFSET                                  0x0000000000000010
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_95_64_LSB                                     0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_95_64_MSB                                     31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_95_64_MASK                                    0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_127_96
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_127_96
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_127_96_OFFSET                                 0x0000000000000010
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_127_96_LSB                                    32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_127_96_MSB                                    63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_127_96_MASK                                   0xffffffff00000000
+
+
+/* Description		BA_BITMAP_159_128
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_159_128
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_159_128_OFFSET                                0x0000000000000018
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_159_128_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_159_128_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_159_128_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_191_160
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_191_160
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_191_160_OFFSET                                0x0000000000000018
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_191_160_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_191_160_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_191_160_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_223_192
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_223_192
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_223_192_OFFSET                                0x0000000000000020
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_223_192_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_223_192_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_223_192_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_255_224
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Ba_bitmap_255_224
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_255_224_OFFSET                                0x0000000000000020
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_255_224_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_255_224_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_255_224_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_287_256
+
+			Ba_bitmap_287_256
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_287_256_OFFSET                                0x0000000000000028
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_287_256_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_287_256_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_287_256_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_319_288
+
+			Ba_bitmap_319_288
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_319_288_OFFSET                                0x0000000000000028
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_319_288_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_319_288_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_319_288_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_351_320
+
+			Ba_bitmap_351_320
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_351_320_OFFSET                                0x0000000000000030
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_351_320_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_351_320_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_351_320_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_383_352
+
+			Ba_bitmap_383_352
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_383_352_OFFSET                                0x0000000000000030
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_383_352_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_383_352_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_383_352_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_415_384
+
+			Ba_bitmap_415_384
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_415_384_OFFSET                                0x0000000000000038
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_415_384_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_415_384_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_415_384_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_447_416
+
+			Ba_bitmap_447_416
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_447_416_OFFSET                                0x0000000000000038
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_447_416_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_447_416_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_447_416_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_479_448
+
+			Ba_bitmap_479_448
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_479_448_OFFSET                                0x0000000000000040
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_479_448_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_479_448_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_479_448_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_511_480
+
+			Ba_bitmap_511_480
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_511_480_OFFSET                                0x0000000000000040
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_511_480_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_511_480_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_511_480_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_543_512
+
+			Ba_bitmap_543_512
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_543_512_OFFSET                                0x0000000000000048
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_543_512_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_543_512_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_543_512_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_575_544
+
+			Ba_bitmap_575_544
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_575_544_OFFSET                                0x0000000000000048
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_575_544_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_575_544_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_575_544_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_607_576
+
+			Ba_bitmap_607_576
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_607_576_OFFSET                                0x0000000000000050
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_607_576_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_607_576_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_607_576_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_639_608
+
+			Ba_bitmap_639_608
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_639_608_OFFSET                                0x0000000000000050
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_639_608_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_639_608_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_639_608_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_671_640
+
+			Ba_bitmap_671_640
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_671_640_OFFSET                                0x0000000000000058
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_671_640_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_671_640_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_671_640_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_703_672
+
+			Ba_bitmap_703_672
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_703_672_OFFSET                                0x0000000000000058
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_703_672_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_703_672_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_703_672_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_735_704
+
+			Ba_bitmap_735_704
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_735_704_OFFSET                                0x0000000000000060
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_735_704_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_735_704_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_735_704_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_767_736
+
+			Ba_bitmap_767_736
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_767_736_OFFSET                                0x0000000000000060
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_767_736_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_767_736_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_767_736_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_799_768
+
+			Ba_bitmap_799_768
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_799_768_OFFSET                                0x0000000000000068
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_799_768_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_799_768_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_799_768_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_831_800
+
+			Ba_bitmap_831_800
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_831_800_OFFSET                                0x0000000000000068
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_831_800_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_831_800_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_831_800_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_863_832
+
+			Ba_bitmap_863_832
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_863_832_OFFSET                                0x0000000000000070
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_863_832_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_863_832_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_863_832_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_895_864
+
+			Ba_bitmap_895_864
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_895_864_OFFSET                                0x0000000000000070
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_895_864_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_895_864_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_895_864_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_927_896
+
+			Ba_bitmap_927_896
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_927_896_OFFSET                                0x0000000000000078
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_927_896_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_927_896_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_927_896_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_959_928
+
+			Ba_bitmap_959_928
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_959_928_OFFSET                                0x0000000000000078
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_959_928_LSB                                   32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_959_928_MSB                                   63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_959_928_MASK                                  0xffffffff00000000
+
+
+/* Description		BA_BITMAP_991_960
+
+			Ba_bitmap_991_960
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_991_960_OFFSET                                0x0000000000000080
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_991_960_LSB                                   0
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_991_960_MSB                                   31
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_991_960_MASK                                  0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_1023_992
+
+			Ba_bitmap_1023_992
+			<legal all>
+*/
+
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_1023_992_OFFSET                               0x0000000000000080
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_1023_992_LSB                                  32
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_1023_992_MSB                                  63
+#define TX_FES_STATUS_1K_BA_BA_BITMAP_1023_992_MASK                                 0xffffffff00000000
+
+
+
+#endif   // TX_FES_STATUS_1K_BA
diff --git a/hw/qca5332/tx_fes_status_ack_or_ba.h b/hw/qca5332/tx_fes_status_ack_or_ba.h
new file mode 100644
index 0000000..5097403
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_ack_or_ba.h
@@ -0,0 +1,379 @@
+
+/* 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_ACK_OR_BA_H_
+#define _TX_FES_STATUS_ACK_OR_BA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_STATUS_ACK_OR_BA 10
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_ACK_OR_BA 5
+
+
+struct tx_fes_status_ack_or_ba {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ack_ba_status_type                                      :  1, // [0:0]
+                      ba_type                                                 :  1, // [1:1]
+                      ba_tid                                                  :  4, // [5:2]
+                      unexpected_ack_or_ba                                    :  1, // [6:6]
+                      response_timeout                                        :  1, // [7:7]
+                      ack_frame_rssi                                          :  8, // [15:8]
+                      ssn                                                     : 12, // [27:16]
+                      reserved_0b                                             :  4; // [31:28]
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      reserved_1a                                             : 16; // [31:16]
+             uint32_t ba_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t ba_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t ba_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t ba_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t ba_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t ba_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t ba_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t ba_bitmap_255_224                                       : 32; // [31:0]
+#else
+             uint32_t reserved_0b                                             :  4, // [31:28]
+                      ssn                                                     : 12, // [27:16]
+                      ack_frame_rssi                                          :  8, // [15:8]
+                      response_timeout                                        :  1, // [7:7]
+                      unexpected_ack_or_ba                                    :  1, // [6:6]
+                      ba_tid                                                  :  4, // [5:2]
+                      ba_type                                                 :  1, // [1:1]
+                      ack_ba_status_type                                      :  1; // [0:0]
+             uint32_t reserved_1a                                             : 16, // [31:16]
+                      sw_peer_id                                              : 16; // [15:0]
+             uint32_t ba_bitmap_31_0                                          : 32; // [31:0]
+             uint32_t ba_bitmap_63_32                                         : 32; // [31:0]
+             uint32_t ba_bitmap_95_64                                         : 32; // [31:0]
+             uint32_t ba_bitmap_127_96                                        : 32; // [31:0]
+             uint32_t ba_bitmap_159_128                                       : 32; // [31:0]
+             uint32_t ba_bitmap_191_160                                       : 32; // [31:0]
+             uint32_t ba_bitmap_223_192                                       : 32; // [31:0]
+             uint32_t ba_bitmap_255_224                                       : 32; // [31:0]
+#endif
+};
+
+
+/* Description		ACK_BA_STATUS_TYPE
+
+			Consumer: SW
+			Producer: RXPCU
+			
+			<enum 0 Ack_type> This TLV represents an ACK reception.
+			
+			<enum 1 BA_type>  This TLV represents an BA reception.
+			 <legal 0-1>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_LSB                              0
+#define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_MSB                              0
+#define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_MASK                             0x0000000000000001
+
+
+/* Description		BA_TYPE
+
+			Field only valid when  Ack_ba_status_type ==  BA_type
+			
+			<enum 0 BA_TYPE_ACK>
+			<enum 1 BA_TYPE_bitmap>
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_LSB                                         1
+#define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_MSB                                         1
+#define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_MASK                                        0x0000000000000002
+
+
+/* Description		BA_TID
+
+			Field only valid when  Ack_ba_status_type ==  BA_type
+			
+			The TID field copied from the BA frame
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_TID_OFFSET                                       0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_BA_TID_LSB                                          2
+#define TX_FES_STATUS_ACK_OR_BA_BA_TID_MSB                                          5
+#define TX_FES_STATUS_ACK_OR_BA_BA_TID_MASK                                         0x000000000000003c
+
+
+/* Description		UNEXPECTED_ACK_OR_BA
+
+			Set when RXPCU received a BA for which there was no " RXPCU_USER_SETUP_EXT
+			 TLV' received.
+			This can happen when a BA for unexpected TID is received.
+			
+			
+			This message enables SW to still pass this BA information
+			 on to the right TQM queue.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_LSB                            6
+#define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_MSB                            6
+#define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_MASK                           0x0000000000000040
+
+
+/* Description		RESPONSE_TIMEOUT
+
+			When set, there was delay in RXPCU (likely due to AST fetch
+			 delay) that resulted in TXPCU not being able to send the
+			 RX_RESPONSE_REQUIRED_INFO TLV within a certain timeout 
+			from the falling edge of the frame. This status TLV is still
+			 generated but RXPCU will NOT have generated the RX_RESPONSE_REQUIRED
+			 TLV.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_OFFSET                             0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_LSB                                7
+#define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_MSB                                7
+#define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_MASK                               0x0000000000000080
+
+
+/* Description		ACK_FRAME_RSSI
+
+			RSSI of the received ACK, BA or M-BA frame. 
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_OFFSET                               0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_LSB                                  8
+#define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_MSB                                  15
+#define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_MASK                                 0x000000000000ff00
+
+
+/* Description		SSN
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Ack_ba_status_type indicating: 
+			BA_type 
+			
+			The starting Sequence number of the (B)ACK bitmap <legal
+			 all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_SSN_OFFSET                                          0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_SSN_LSB                                             16
+#define TX_FES_STATUS_ACK_OR_BA_SSN_MSB                                             27
+#define TX_FES_STATUS_ACK_OR_BA_SSN_MASK                                            0x000000000fff0000
+
+
+/* Description		RESERVED_0B
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_OFFSET                                  0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_LSB                                     28
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_MSB                                     31
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_MASK                                    0x00000000f0000000
+
+
+/* Description		SW_PEER_ID
+
+			The sw_peer_id for which the bitmap is requested. 
+			
+			SW could use this info to link this TLV back to the right
+			 TQM queue (if needed)
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_OFFSET                                   0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_LSB                                      32
+#define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_MSB                                      47
+#define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_MASK                                     0x0000ffff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_OFFSET                                  0x0000000000000000
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_LSB                                     48
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_MSB                                     63
+#define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_MASK                                    0xffff000000000000
+
+
+/* Description		BA_BITMAP_31_0
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Ack_ba_status_type indicating: 
+			BA_type
+			
+			Ba_bitmap_31_0
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_OFFSET                               0x0000000000000008
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_LSB                                  0
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_MSB                                  31
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_MASK                                 0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_63_32
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Ack_ba_status_type indicating: 
+			BA_type
+			
+			Ba_bitmap_63_32
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_OFFSET                              0x0000000000000008
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_LSB                                 32
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_MSB                                 63
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_MASK                                0xffffffff00000000
+
+
+/* Description		BA_BITMAP_95_64
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_95_64
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_OFFSET                              0x0000000000000010
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_LSB                                 0
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_MSB                                 31
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_MASK                                0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_127_96
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_127_96
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_OFFSET                             0x0000000000000010
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_LSB                                32
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_MSB                                63
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_MASK                               0xffffffff00000000
+
+
+/* Description		BA_BITMAP_159_128
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_159_128
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_OFFSET                            0x0000000000000018
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_LSB                               0
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_MSB                               31
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_MASK                              0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_191_160
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_191_160
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_OFFSET                            0x0000000000000018
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_LSB                               32
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_MSB                               63
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_MASK                              0xffffffff00000000
+
+
+/* Description		BA_BITMAP_223_192
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_223_192
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_LSB                               0
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_MSB                               31
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_MASK                              0x00000000ffffffff
+
+
+/* Description		BA_BITMAP_255_224
+
+			Consumer: TQM/FW
+			Producer: SW/RXPCU
+			
+			Field only valid in case of the  Remove_acked_cmd_type  
+			indicating:
+			remove_Block_Acked_mpdus 
+			
+			Ba_bitmap_255_224
+			<legal all>
+*/
+
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_LSB                               32
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_MSB                               63
+#define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_MASK                              0xffffffff00000000
+
+
+
+#endif   // TX_FES_STATUS_ACK_OR_BA
diff --git a/hw/qca5332/tx_fes_status_end.h b/hw/qca5332/tx_fes_status_end.h
new file mode 100644
index 0000000..72d5cdc
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_end.h
@@ -0,0 +1,2229 @@
+
+/* 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_END_H_
+#define _TX_FES_STATUS_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phytx_abort_request_info.h"
+#define NUM_OF_DWORDS_TX_FES_STATUS_END 22
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_END 11
+
+
+struct tx_fes_status_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t prot_coex_bt_tx_while_wlan_tx                           :  1, // [0:0]
+                      prot_coex_bt_tx_while_wlan_rx                           :  1, // [1:1]
+                      prot_coex_wan_tx_while_wlan_tx                          :  1, // [2:2]
+                      prot_coex_wan_tx_while_wlan_rx                          :  1, // [3:3]
+                      prot_coex_wlan_tx_while_wlan_tx                         :  1, // [4:4]
+                      prot_coex_wlan_tx_while_wlan_rx                         :  1, // [5:5]
+                      coex_bt_tx_while_wlan_tx                                :  1, // [6:6]
+                      coex_bt_tx_while_wlan_rx                                :  1, // [7:7]
+                      coex_wan_tx_while_wlan_tx                               :  1, // [8:8]
+                      coex_wan_tx_while_wlan_rx                               :  1, // [9:9]
+                      coex_wlan_tx_while_wlan_tx                              :  1, // [10:10]
+                      coex_wlan_tx_while_wlan_rx                              :  1, // [11:11]
+                      global_data_underflow_warning                           :  1, // [12:12]
+                      global_fes_transmit_result                              :  4, // [16:13]
+                      cbf_bw_received_valid                                   :  1, // [17:17]
+                      cbf_bw_received                                         :  3, // [20:18]
+                      actual_received_ack_type                                :  4, // [24:21]
+                      sta_response_count                                      :  6, // [30:25]
+                      dpdtrain_done                                           :  1; // [31:31]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint16_t reserved_after_struct16                                 :  4, // [19:16]
+                      brp_info_valid                                          :  1, // [20:20]
+                      reserved_1a                                             :  6, // [26:21]
+                      phytx_pkt_end_info_valid                                :  1, // [27:27]
+                      phytx_abort_request_info_valid                          :  1, // [28:28]
+                      fes_in_11ax_trigger_response_config                     :  1, // [29:29]
+                      null_delim_inserted_before_mpdus                        :  1, // [30:30]
+                      only_null_delim_sent                                    :  1; // [31:31]
+             uint32_t start_of_frame_timestamp_15_0                           : 16, // [15:0]
+                      start_of_frame_timestamp_31_16                          : 16; // [31:16]
+             uint32_t end_of_frame_timestamp_15_0                             : 16, // [15:0]
+                      end_of_frame_timestamp_31_16                            : 16; // [31:16]
+             uint32_t terminate_ranging_sequence                              :  1, // [0:0]
+                      reserved_4a                                             :  7, // [7:1]
+                      timing_status                                           :  2, // [9:8]
+                      response_type                                           :  5, // [14:10]
+                      r2r_end_status_to_follow                                :  1, // [15:15]
+                      transmit_delay                                          : 16; // [31:16]
+             uint32_t tx_group_delay                                          : 12, // [11:0]
+                      reserved_5a                                             :  4, // [15:12]
+                      tpc_dbg_info_cmn_15_0                                   : 16; // [31:16]
+             uint32_t tpc_dbg_info_cmn_31_16                                  : 16, // [15:0]
+                      tpc_dbg_info_47_32                                      : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_15_0                                  : 16, // [15:0]
+                      tpc_dbg_info_chn1_31_16                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_47_32                                 : 16, // [15:0]
+                      tpc_dbg_info_chn1_63_48                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_79_64                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_15_0                                  : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_31_16                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_47_32                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_63_48                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_79_64                                 : 16; // [31:16]
+             uint32_t phytx_tx_end_sw_info_15_0                               : 16, // [15:0]
+                      phytx_tx_end_sw_info_31_16                              : 16; // [31:16]
+             uint32_t phytx_tx_end_sw_info_47_32                              : 16, // [15:0]
+                      phytx_tx_end_sw_info_63_48                              : 16; // [31:16]
+             uint32_t beamform_masked_user_bitmap_15_0                        : 16, // [15:0]
+                      beamform_masked_user_bitmap_31_16                       : 16; // [31:16]
+             uint32_t cbf_segment_request_mask                                :  8, // [7:0]
+                      cbf_segment_sent_mask                                   :  8, // [15:8]
+                      highest_achieved_data_null_ratio                        :  5, // [20:16]
+                      use_alt_power_sr                                        :  1, // [21:21]
+                      static_2_pwr_mode_status                                :  1, // [22:22]
+                      obss_srg_opport_transmit_status                         :  1, // [23:23]
+                      srp_based_transmit_status                               :  1, // [24:24]
+                      obss_pd_based_transmit_status                           :  1, // [25:25]
+                      beamform_masked_user_bitmap_36_32                       :  5, // [30:26]
+                      pdg_mpdu_ready                                          :  1; // [31:31]
+             uint32_t pdg_mpdu_count                                          : 16, // [15:0]
+                      pdg_est_mpdu_tx_count                                   : 16; // [31:16]
+             uint32_t pdg_overview_length                                     : 24, // [23:0]
+                      txop_duration                                           :  7, // [30:24]
+                      pdg_dropped_mpdu_warning                                :  1; // [31:31]
+             uint32_t packet_extension_a_factor                               :  2, // [1:0]
+                      packet_extension_pe_disambiguity                        :  1, // [2:2]
+                      packet_extension                                        :  3, // [5:3]
+                      fec_type                                                :  1, // [6:6]
+                      stbc                                                    :  1, // [7:7]
+                      num_data_symbols                                        : 16, // [23:8]
+                      ru_size                                                 :  4, // [27:24]
+                      reserved_17a                                            :  4; // [31:28]
+             uint32_t num_ltf_symbols                                         :  3, // [2:0]
+                      ltf_size                                                :  2, // [4:3]
+                      cp_setting                                              :  2, // [6:5]
+                      reserved_18a                                            :  5, // [11:7]
+                      dcm                                                     :  1, // [12:12]
+                      ldpc_extra_symbol                                       :  1, // [13:13]
+                      force_extra_symbol                                      :  1, // [14:14]
+                      reserved_18b                                            :  1, // [15:15]
+                      tx_pwr_shared                                           :  8, // [23:16]
+                      tx_pwr_unshared                                         :  8; // [31:24]
+             uint32_t ranging_active_user_map                                 : 16, // [15:0]
+                      ranging_sent_dummy_tx                                   :  1, // [16:16]
+                      ranging_ftm_frame_sent                                  :  1, // [17:17]
+                      reserved_20a                                            :  6, // [23:18]
+                      cv_corr_status                                          :  8; // [31:24]
+             uint32_t current_tx_duration                                     : 16, // [15:0]
+                      reserved_21a                                            : 16; // [31:16]
+#else
+             uint32_t dpdtrain_done                                           :  1, // [31:31]
+                      sta_response_count                                      :  6, // [30:25]
+                      actual_received_ack_type                                :  4, // [24:21]
+                      cbf_bw_received                                         :  3, // [20:18]
+                      cbf_bw_received_valid                                   :  1, // [17:17]
+                      global_fes_transmit_result                              :  4, // [16:13]
+                      global_data_underflow_warning                           :  1, // [12:12]
+                      coex_wlan_tx_while_wlan_rx                              :  1, // [11:11]
+                      coex_wlan_tx_while_wlan_tx                              :  1, // [10:10]
+                      coex_wan_tx_while_wlan_rx                               :  1, // [9:9]
+                      coex_wan_tx_while_wlan_tx                               :  1, // [8:8]
+                      coex_bt_tx_while_wlan_rx                                :  1, // [7:7]
+                      coex_bt_tx_while_wlan_tx                                :  1, // [6:6]
+                      prot_coex_wlan_tx_while_wlan_rx                         :  1, // [5:5]
+                      prot_coex_wlan_tx_while_wlan_tx                         :  1, // [4:4]
+                      prot_coex_wan_tx_while_wlan_rx                          :  1, // [3:3]
+                      prot_coex_wan_tx_while_wlan_tx                          :  1, // [2:2]
+                      prot_coex_bt_tx_while_wlan_rx                           :  1, // [1:1]
+                      prot_coex_bt_tx_while_wlan_tx                           :  1; // [0:0]
+             uint32_t only_null_delim_sent                                    :  1, // [31:31]
+                      null_delim_inserted_before_mpdus                        :  1, // [30:30]
+                      fes_in_11ax_trigger_response_config                     :  1, // [29:29]
+                      phytx_abort_request_info_valid                          :  1, // [28:28]
+                      phytx_pkt_end_info_valid                                :  1, // [27:27]
+                      reserved_1a                                             :  6, // [26:21]
+                      brp_info_valid                                          :  1, // [20:20]
+                      reserved_after_struct16                                 :  4; // [19:16]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint32_t start_of_frame_timestamp_31_16                          : 16, // [31:16]
+                      start_of_frame_timestamp_15_0                           : 16; // [15:0]
+             uint32_t end_of_frame_timestamp_31_16                            : 16, // [31:16]
+                      end_of_frame_timestamp_15_0                             : 16; // [15:0]
+             uint32_t transmit_delay                                          : 16, // [31:16]
+                      r2r_end_status_to_follow                                :  1, // [15:15]
+                      response_type                                           :  5, // [14:10]
+                      timing_status                                           :  2, // [9:8]
+                      reserved_4a                                             :  7, // [7:1]
+                      terminate_ranging_sequence                              :  1; // [0:0]
+             uint32_t tpc_dbg_info_cmn_15_0                                   : 16, // [31:16]
+                      reserved_5a                                             :  4, // [15:12]
+                      tx_group_delay                                          : 12; // [11:0]
+             uint32_t tpc_dbg_info_47_32                                      : 16, // [31:16]
+                      tpc_dbg_info_cmn_31_16                                  : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_31_16                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_15_0                                  : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_63_48                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_47_32                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_15_0                                  : 16, // [31:16]
+                      tpc_dbg_info_chn1_79_64                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_47_32                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_31_16                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_79_64                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_63_48                                 : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_31_16                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_15_0                               : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_63_48                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_47_32                              : 16; // [15:0]
+             uint32_t beamform_masked_user_bitmap_31_16                       : 16, // [31:16]
+                      beamform_masked_user_bitmap_15_0                        : 16; // [15:0]
+             uint32_t pdg_mpdu_ready                                          :  1, // [31:31]
+                      beamform_masked_user_bitmap_36_32                       :  5, // [30:26]
+                      obss_pd_based_transmit_status                           :  1, // [25:25]
+                      srp_based_transmit_status                               :  1, // [24:24]
+                      obss_srg_opport_transmit_status                         :  1, // [23:23]
+                      static_2_pwr_mode_status                                :  1, // [22:22]
+                      use_alt_power_sr                                        :  1, // [21:21]
+                      highest_achieved_data_null_ratio                        :  5, // [20:16]
+                      cbf_segment_sent_mask                                   :  8, // [15:8]
+                      cbf_segment_request_mask                                :  8; // [7:0]
+             uint32_t pdg_est_mpdu_tx_count                                   : 16, // [31:16]
+                      pdg_mpdu_count                                          : 16; // [15:0]
+             uint32_t pdg_dropped_mpdu_warning                                :  1, // [31:31]
+                      txop_duration                                           :  7, // [30:24]
+                      pdg_overview_length                                     : 24; // [23:0]
+             uint32_t reserved_17a                                            :  4, // [31:28]
+                      ru_size                                                 :  4, // [27:24]
+                      num_data_symbols                                        : 16, // [23:8]
+                      stbc                                                    :  1, // [7:7]
+                      fec_type                                                :  1, // [6:6]
+                      packet_extension                                        :  3, // [5:3]
+                      packet_extension_pe_disambiguity                        :  1, // [2:2]
+                      packet_extension_a_factor                               :  2; // [1:0]
+             uint32_t tx_pwr_unshared                                         :  8, // [31:24]
+                      tx_pwr_shared                                           :  8, // [23:16]
+                      reserved_18b                                            :  1, // [15:15]
+                      force_extra_symbol                                      :  1, // [14:14]
+                      ldpc_extra_symbol                                       :  1, // [13:13]
+                      dcm                                                     :  1, // [12:12]
+                      reserved_18a                                            :  5, // [11:7]
+                      cp_setting                                              :  2, // [6:5]
+                      ltf_size                                                :  2, // [4:3]
+                      num_ltf_symbols                                         :  3; // [2:0]
+             uint32_t cv_corr_status                                          :  8, // [31:24]
+                      reserved_20a                                            :  6, // [23:18]
+                      ranging_ftm_frame_sent                                  :  1, // [17:17]
+                      ranging_sent_dummy_tx                                   :  1, // [16:16]
+                      ranging_active_user_map                                 : 16; // [15:0]
+             uint32_t reserved_21a                                            : 16, // [31:16]
+                      current_tx_duration                                     : 16; // [15:0]
+#endif
+};
+
+
+/* Description		PROT_COEX_BT_TX_WHILE_WLAN_TX
+
+			When set, a BT tx coex event started while wlan was in the
+			 middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with bt
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_OFFSET                      0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_LSB                         0
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MSB                         0
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MASK                        0x0000000000000001
+
+
+/* Description		PROT_COEX_BT_TX_WHILE_WLAN_RX
+
+			When set, a BT tx coex event started while wlan was in the
+			 middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with bt tx activity
+			 set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_OFFSET                      0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_LSB                         1
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MSB                         1
+#define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MASK                        0x0000000000000002
+
+
+/* Description		PROT_COEX_WAN_TX_WHILE_WLAN_TX
+
+			When set, a WAN tx coex event started while wlan was in 
+			the middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with WAN
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET                     0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_LSB                        2
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MSB                        2
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MASK                       0x0000000000000004
+
+
+/* Description		PROT_COEX_WAN_TX_WHILE_WLAN_RX
+
+			When set, a WAN tx coex event started while wlan was in 
+			the middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with WAN tx activity
+			 set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET                     0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_LSB                        3
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MSB                        3
+#define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MASK                       0x0000000000000008
+
+
+/* Description		PROT_COEX_WLAN_TX_WHILE_WLAN_TX
+
+			When set, a WLAN tx coex event started while wlan was in
+			 the middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with WLAN
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET                    0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_LSB                       4
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MSB                       4
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MASK                      0x0000000000000010
+
+
+/* Description		PROT_COEX_WLAN_TX_WHILE_WLAN_RX
+
+			When set, a WLAN tx coex event started while wlan was in
+			 the middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with WLAN tx 
+			activity set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET                    0x0000000000000000
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_LSB                       5
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MSB                       5
+#define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MASK                      0x0000000000000020
+
+
+/* Description		COEX_BT_TX_WHILE_WLAN_TX
+
+			When set, a BT tx coex event started while wlan was in the
+			 middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with bt
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_LSB                              6
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MSB                              6
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MASK                             0x0000000000000040
+
+
+/* Description		COEX_BT_TX_WHILE_WLAN_RX
+
+			When set, a BT tx coex event started while wlan was in the
+			 middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with bt tx activity
+			 set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_LSB                              7
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MSB                              7
+#define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MASK                             0x0000000000000080
+
+
+/* Description		COEX_WAN_TX_WHILE_WLAN_TX
+
+			When set, a WAN tx coex event started while wlan was in 
+			the middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with WAN
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET                          0x0000000000000000
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_LSB                             8
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MSB                             8
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MASK                            0x0000000000000100
+
+
+/* Description		COEX_WAN_TX_WHILE_WLAN_RX
+
+			When set, a WAN tx coex event started while wlan was in 
+			the middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with WAN tx activity
+			 set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET                          0x0000000000000000
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_LSB                             9
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MSB                             9
+#define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MASK                            0x0000000000000200
+
+
+/* Description		COEX_WLAN_TX_WHILE_WLAN_TX
+
+			When set, a WLAN tx coex event started while wlan was in
+			 the middle of TX a transmission.
+			
+			Field set when coex_status_broadcast TLV received with WLAN
+			 tx activity set and during WLAN tx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_LSB                            10
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MSB                            10
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MASK                           0x0000000000000400
+
+
+/* Description		COEX_WLAN_TX_WHILE_WLAN_RX
+
+			When set, a WLAN tx coex event started while wlan was in
+			 the middle of TX a transmission.
+			
+			Field set when coex broadcast TLV received with WLAN tx 
+			activity set and during WLAN rx
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_LSB                            11
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MSB                            11
+#define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MASK                           0x0000000000000800
+
+
+/* Description		GLOBAL_DATA_UNDERFLOW_WARNING
+
+			Consumer: SCH/SW
+			Producer: TXPCU
+			
+			When set, during transmission a data underflow occurred 
+			for one or more users.<legal all>
+*/
+
+#define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET                      0x0000000000000000
+#define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_LSB                         12
+#define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MSB                         12
+#define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MASK                        0x0000000000001000
+
+
+/* Description		GLOBAL_FES_TRANSMIT_RESULT
+
+			Consumer: SCH/SW
+			Producer: TXPCU
+			
+			Global Transmit result, not per USER transmit result
+			
+			Note: field "Response_type" indicates if the expected response
+			 was MU related or not.
+			
+			<enum 0 tx_ok> Successful transmission of entire Frame exchange
+			 sequence
+			<enum 1 prot_resp_rx_timeout> 
+			No Protection response frame received so timeout is triggered. 
+			
+			<enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
+			 so timeout is triggered. 
+			<enum 3 resp_frame_crc_err> Response frame was received 
+			with an invalid FCS.
+			<enum 4 SU_Response_type_mismatch> Response frame is received
+			 without CRC error but it's not matched with expected SU_Response_type. 
+			
+			<enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
+			 any error but the Nr, Nc, BW, type or token in VHT MIMO
+			 control field is not matched with expected values which
+			 are specified by TX_FES_SETUP.cbf_* fields. 
+			<enum 7 MU_Response_type_mismatch> Response frame is received
+			 without CRC error but it's not matched with expected SU_Response_type. 
+			
+			<enum 8 MU_Response_mpdu_not_valid>  For this user, no MPDU
+			 was received at all, or all received MPDUs had an FCS error.
+			
+			<enum 9 MU_UL_not_enough_user_response> An MU UL response
+			 reception was expected. That response came but the threshold
+			 for number of successful user receptions was not met.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			<enum 10 Transmit_data_null_ratio_not_met> transmission 
+			was successful and proper responses have been received. 
+			But the required ratio between useful MPDU data and null
+			 delimiters was not met as specified by field : Fes_continuation_ratio_threshold. 
+			The FES (and potentially the SIFS burst) shall be terminated
+			 by the SCHeduler
+			NOTE 1: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			NOTE 2: This Feature is not supported in Napier and Hastings.
+			
+			<enum 6 TB_ranging_resp_timeout> A TB ranging response was
+			 expected for a sounding TF, but the response did not arrive
+			 and timeout is triggered.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			<enum 11 tb_ranging_resp_mismatch> A TB ranging response
+			 was expected for a sounding TF, but the reception did not
+			 match the expected response.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			
+			<legal 0-11>
+*/
+
+#define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_LSB                            13
+#define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MSB                            16
+#define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MASK                           0x000000000001e000
+
+
+/* Description		CBF_BW_RECEIVED_VALID
+
+			Field only valid in case of SU reception.
+			In MU set to 0
+			
+			When set, the cbf_bw_received field contains valid info
+*/
+
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_OFFSET                              0x0000000000000000
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_LSB                                 17
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MSB                                 17
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MASK                                0x0000000000020000
+
+
+/* Description		CBF_BW_RECEIVED
+
+			Field only valid when cbf_bw_received_valid is set.
+			
+			In MU set to 0
+			
+			<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_END_CBF_BW_RECEIVED_OFFSET                                    0x0000000000000000
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_LSB                                       18
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_MSB                                       20
+#define TX_FES_STATUS_END_CBF_BW_RECEIVED_MASK                                      0x00000000001c0000
+
+
+/* Description		ACTUAL_RECEIVED_ACK_TYPE
+
+			Field only valid in case of SU reception.
+			In MU set to 0
+			
+			
+			Field indicates what type of ACK was received. Can help 
+			determine if unexpected ACK Types (like 256 BA instead of
+			 64 BA) is received.
+			
+			<enum 0  Ack_not_applicable> No ACK type response was received
+			 or expected
+			<enum 1  ACK_basic_received > a basic ACk frame is received
+			
+			<enum 2  ACK_BA_0 > An ACK embedded in BA frame is received
+			
+			<enum 3  ACK_BA_32_received > a 32 bit BA has been received
+			
+			<enum 4  ACK_BA_64_received > a 64 bit BA has been received
+			
+			<enum 5  ACK_BA_128_received > a 128 bit BA has been received
+			
+			
+			<enum 6  ACK_BA_256_received > a 256 bit BA has been received
+			
+			<enum 8 ACK_BA_512_received> a 512-bit BA has been received
+			
+			<enum 9 ACK_BA_1024_received> a 1024-bit BA has been received
+			
+			<enum 7  ACK_BA_multiple_received > multiple BA responses
+			 have been received. This field to be used in scenarios 
+			where multi TID data was send or data with management frames
+			 was send
+			
+			<legal 0-9>
+*/
+
+#define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_LSB                              21
+#define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MSB                              24
+#define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MASK                             0x0000000001e00000
+
+
+/* Description		STA_RESPONSE_COUNT
+
+			In of case of a transmission where a response from multiple
+			 STAs in SIFS time is expected, this field indicates how
+			 many STAs actually send a response.
+			
+			<legal 0-63>
+*/
+
+#define TX_FES_STATUS_END_STA_RESPONSE_COUNT_OFFSET                                 0x0000000000000000
+#define TX_FES_STATUS_END_STA_RESPONSE_COUNT_LSB                                    25
+#define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MSB                                    30
+#define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MASK                                   0x000000007e000000
+
+
+/* Description		DPDTRAIN_DONE
+
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			For DPD Training packets, this bit is set to indicate that
+			 DPD Training was successfully run to completion.  Also 
+			reused by Implicit BF Calibration Packets. This bit is intended
+			 for debug purposes.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_DPDTRAIN_DONE_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_END_DPDTRAIN_DONE_LSB                                         31
+#define TX_FES_STATUS_END_DPDTRAIN_DONE_MSB                                         31
+#define TX_FES_STATUS_END_DPDTRAIN_DONE_MASK                                        0x0000000080000000
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_DETAILS
+
+			Field only valid when PHYTX_ABORT_REQUEST_info_valid is 
+			set
+			
+			The reason why PHYTX is requested an abort
+*/
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Reason for early termination of TX packet by the PHY 
+			
+			<enum_type PHYTX_ABORT_ENUM>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB   32
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB   39
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK  0x000000ff00000000
+
+
+/* Description		USER_NUMBER
+
+			For some errors, the user for which this error was detected
+			 can be indicated in this field.
+			<legal 0-36>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET       0x0000000000000000
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB          40
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB          45
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK         0x00003f0000000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET          0x0000000000000000
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB             46
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB             47
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK            0x0000c00000000000
+
+
+/* Description		RESERVED_AFTER_STRUCT16
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_OFFSET                            0x0000000000000000
+#define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_LSB                               48
+#define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MSB                               51
+#define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MASK                              0x000f000000000000
+
+
+/* Description		BRP_INFO_VALID
+
+			When set, TXPCU sent CBF segments.
+			
+			Fields cbf_segment_request_mask and cbf_segment_sent_mask
+			 contain valid info.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_BRP_INFO_VALID_OFFSET                                     0x0000000000000000
+#define TX_FES_STATUS_END_BRP_INFO_VALID_LSB                                        52
+#define TX_FES_STATUS_END_BRP_INFO_VALID_MSB                                        52
+#define TX_FES_STATUS_END_BRP_INFO_VALID_MASK                                       0x0010000000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_1A_OFFSET                                        0x0000000000000000
+#define TX_FES_STATUS_END_RESERVED_1A_LSB                                           53
+#define TX_FES_STATUS_END_RESERVED_1A_MSB                                           58
+#define TX_FES_STATUS_END_RESERVED_1A_MASK                                          0x07e0000000000000
+
+
+/* Description		PHYTX_PKT_END_INFO_VALID
+
+			All the fields originating from PHYTX_PKT_END TLV contain
+			 valid info
+*/
+
+#define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_LSB                              59
+#define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MSB                              59
+#define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MASK                             0x0800000000000000
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_VALID
+
+			Field Phytx_abort_request_info_details contains valid info
+			
+*/
+
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET                     0x0000000000000000
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_LSB                        60
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MSB                        60
+#define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MASK                       0x1000000000000000
+
+
+/* Description		FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
+
+			When set, this transmission was the result of responding
+			 to the reception of an 11ax trigger. This is a copy of 
+			field Fes_in_11ax_Trigger_response_config in the TX_FES_SETUP
+			 TLV.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET                0x0000000000000000
+#define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB                   61
+#define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB                   61
+#define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK                  0x2000000000000000
+
+
+/* Description		NULL_DELIM_INSERTED_BEFORE_MPDUS
+
+			Field only valid when "Fes_in_11ax_Trigger_response_config" 
+			is set.
+			
+			This bit will get set if any NULL delimiter is sent out 
+			to PHY, during the whole transmit duration(self_gen + FES).
+			
+			This bit will NOT be set, if no MPDU data is sent out to
+			 PHY and whole transmit duration is filled with NULL delimiters. 
+			
+			
+			Note that SCH does not evaluate this field. It is only for
+			 SW to look at.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_OFFSET                   0x0000000000000000
+#define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_LSB                      62
+#define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MSB                      62
+#define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MASK                     0x4000000000000000
+
+
+/* Description		ONLY_NULL_DELIM_SENT
+
+			Field only valid when "Fes_in_11ax_Trigger_response_config" 
+			is set.
+			
+			This bit will be set if only NULL delimiters are sent to
+			 the PHY and no SCH sourced MPDU data is sent out.
+			NOTE here that self-gen MPDU data will not be considered
+			 while evaluating this bit. 
+			
+			Note that SCH does not evaluate this field. It is only for
+			 SW to look at.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_OFFSET                               0x0000000000000000
+#define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_LSB                                  63
+#define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MSB                                  63
+#define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MASK                                 0x8000000000000000
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_OFFSET                      0x0000000000000008
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_LSB                         0
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MSB                         15
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MASK                        0x000000000000ffff
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_OFFSET                     0x0000000000000008
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_LSB                        16
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MSB                        31
+#define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MASK                       0x00000000ffff0000
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_OFFSET                        0x0000000000000008
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_LSB                           32
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MSB                           47
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MASK                          0x0000ffff00000000
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_OFFSET                       0x0000000000000008
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_LSB                          48
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MSB                          63
+#define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MASK                         0xffff000000000000
+
+
+/* Description		TERMINATE_RANGING_SEQUENCE
+
+			Consumer: SW/SCH
+			Producer: TXPCU
+			
+			If set to 1, HWSCH will flush the TX pipeline and terminate
+			 the ongoing SIFS sequence for TB Ranging.
+			
+			TXPCU to set it only in the context of TB Ranging, when 
+			the condition to terminate the TB Ranging sequence is met
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_OFFSET                         0x0000000000000010
+#define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_LSB                            0
+#define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MSB                            0
+#define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MASK                           0x0000000000000001
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define TX_FES_STATUS_END_RESERVED_4A_LSB                                           1
+#define TX_FES_STATUS_END_RESERVED_4A_MSB                                           7
+#define TX_FES_STATUS_END_RESERVED_4A_MASK                                          0x00000000000000fe
+
+
+/* Description		TIMING_STATUS
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			<enum 0 No_tx_timing_request> The MAC did not request for
+			 the transmission to start at a particular time
+			<enum 1 successful_tx_timing > MAC did request for transmission
+			 to start at a particular time and PHY was able to do so.
+			
+			<enum 2 tx_timing_not_honoured> PHY was not able to honour
+			 the requested transmit time by the MAC. The transmission
+			 started later, and field transmit_delay indicates how much
+			 later.
+			<legal 0-2>
+*/
+
+#define TX_FES_STATUS_END_TIMING_STATUS_OFFSET                                      0x0000000000000010
+#define TX_FES_STATUS_END_TIMING_STATUS_LSB                                         8
+#define TX_FES_STATUS_END_TIMING_STATUS_MSB                                         9
+#define TX_FES_STATUS_END_TIMING_STATUS_MASK                                        0x0000000000000300
+
+
+/* Description		RESPONSE_TYPE
+
+			The response type that TXPCU was checking for
+			
+			<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_END_RESPONSE_TYPE_OFFSET                                      0x0000000000000010
+#define TX_FES_STATUS_END_RESPONSE_TYPE_LSB                                         10
+#define TX_FES_STATUS_END_RESPONSE_TYPE_MSB                                         14
+#define TX_FES_STATUS_END_RESPONSE_TYPE_MASK                                        0x0000000000007c00
+
+
+/* Description		R2R_END_STATUS_TO_FOLLOW
+
+			When set, TXPCU will still generate an R2R frame (typically
+			 M-BA), and the 'R2R_STATUS_END' TLV.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_OFFSET                           0x0000000000000010
+#define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_LSB                              15
+#define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MSB                              15
+#define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MASK                             0x0000000000008000
+
+
+/* Description		TRANSMIT_DELAY
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			The number of 480 MHz clock cycles that the transmission
+			 started after the actual requested transmit start time.
+			
+			Value saturates at 0xFFFF
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TRANSMIT_DELAY_OFFSET                                     0x0000000000000010
+#define TX_FES_STATUS_END_TRANSMIT_DELAY_LSB                                        16
+#define TX_FES_STATUS_END_TRANSMIT_DELAY_MSB                                        31
+#define TX_FES_STATUS_END_TRANSMIT_DELAY_MASK                                       0x00000000ffff0000
+
+
+/* Description		TX_GROUP_DELAY
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Group delay on TxTD+PHYRF path for this PPDU (packet BW 
+			dependent), useful for RTT
+			
+			Unit is 960MHz cycles.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TX_GROUP_DELAY_OFFSET                                     0x0000000000000010
+#define TX_FES_STATUS_END_TX_GROUP_DELAY_LSB                                        32
+#define TX_FES_STATUS_END_TX_GROUP_DELAY_MSB                                        43
+#define TX_FES_STATUS_END_TX_GROUP_DELAY_MASK                                       0x00000fff00000000
+
+
+/* Description		RESERVED_5A
+
+			Bits [14:12]: service_cbw:
+			
+			Field only valid when a response was received
+			
+			Source of the info here is the 'RECEIVED_RESPONSE_INFO' 
+			TLV
+			
+			This field reflects the BW extracted from the Serivce Field
+			 for 11ac mode of operation .
+			
+			This field is used in the context of Dynamic BW evaluation
+			 purposes in SCH in case of SW-queued protection frame.
+			
+			Please refer 'BW_ENUM' e-num for the values used.
+			<legal 0-5>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_5A_OFFSET                                        0x0000000000000010
+#define TX_FES_STATUS_END_RESERVED_5A_LSB                                           44
+#define TX_FES_STATUS_END_RESERVED_5A_MSB                                           47
+#define TX_FES_STATUS_END_RESERVED_5A_MASK                                          0x0000f00000000000
+
+
+/* Description		TPC_DBG_INFO_CMN_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_OFFSET                              0x0000000000000010
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_LSB                                 48
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MSB                                 63
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MASK                                0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CMN_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_OFFSET                             0x0000000000000018
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_LSB                                0
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MSB                                15
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MASK                               0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debu info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_OFFSET                                 0x0000000000000018
+#define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_LSB                                    16
+#define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MSB                                    31
+#define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MASK                                   0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN1_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_OFFSET                             0x0000000000000018
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_LSB                                32
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MSB                                47
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MASK                               0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_OFFSET                            0x0000000000000018
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_LSB                               48
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MSB                               63
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MASK                              0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_LSB                               0
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MSB                               15
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MASK                              0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN1_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_LSB                               16
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MSB                               31
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MASK                              0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN1_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_LSB                               32
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MSB                               47
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MASK                              0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_OFFSET                             0x0000000000000020
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_LSB                                48
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MSB                                63
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MASK                               0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_OFFSET                            0x0000000000000028
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_LSB                               0
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MSB                               15
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MASK                              0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN2_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_OFFSET                            0x0000000000000028
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_LSB                               16
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MSB                               31
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MASK                              0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN2_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_OFFSET                            0x0000000000000028
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_LSB                               32
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MSB                               47
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MASK                              0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_OFFSET                            0x0000000000000028
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_LSB                               48
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MSB                               63
+#define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MASK                              0xffff000000000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_OFFSET                          0x0000000000000030
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_LSB                             0
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MSB                             15
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MASK                            0x000000000000ffff
+
+
+/* Description		PHYTX_TX_END_SW_INFO_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_OFFSET                         0x0000000000000030
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_LSB                            16
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MSB                            31
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MASK                           0x00000000ffff0000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_OFFSET                         0x0000000000000030
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_LSB                            32
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MSB                            47
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MASK                           0x0000ffff00000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_OFFSET                         0x0000000000000030
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_LSB                            48
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MSB                            63
+#define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MASK                           0xffff000000000000
+
+
+/* Description		BEAMFORM_MASKED_USER_BITMAP_15_0
+
+			Lower 16 bits of 'Beamform_masked_user_bitmap'
+			
+			PHY indicates in this field for which users it actually 
+			did not beamform it's  transmission even though this was
+			 requested
+			
+			Bit 0: user 0, bit 1: user 1, etc.
+			
+			When 0: No beamform issue for this user
+			When 1: PHY could not beamform for this user, but did not
+			 terminate the transmission
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_OFFSET                   0x0000000000000038
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_LSB                      0
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MSB                      15
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MASK                     0x000000000000ffff
+
+
+/* Description		BEAMFORM_MASKED_USER_BITMAP_31_16
+
+			Middle 16 bits of 'Beamform_masked_user_bitmap'
+			See description above.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_OFFSET                  0x0000000000000038
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_LSB                     16
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MSB                     31
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MASK                    0x00000000ffff0000
+
+
+/* Description		CBF_SEGMENT_REQUEST_MASK
+
+			Field only valid when brp_info_valid is set.
+			
+			Field equal to the 'Feedback Segment Retransmission Bitmap' 
+			from the Beamform Report Poll frame OR Beamform Report Poll
+			 Trigger frame
+			
+			Bit 0 represents segment 0
+			Bit 1 represents segment 1
+			Etc.
+			
+			1'b1: Segment is requested
+			1'b0: Segment is NOT requested
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_OFFSET                           0x0000000000000038
+#define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_LSB                              32
+#define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MSB                              39
+#define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MASK                             0x000000ff00000000
+
+
+/* Description		CBF_SEGMENT_SENT_MASK
+
+			Field only valid when brp_info_valid is set.
+			
+			Bit 0 represents segment 0
+			Bit 1 represents segment 1
+			Etc.
+			
+			1'b1: Segment is sent
+			1'b0: Segment is not sent
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_OFFSET                              0x0000000000000038
+#define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_LSB                                 40
+#define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MSB                                 47
+#define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MASK                                0x0000ff0000000000
+
+
+/* Description		HIGHEST_ACHIEVED_DATA_NULL_RATIO
+
+			Highest DATA:NULL ratio achieved for the current FES
+			
+			<enum 0 No_Data_Null_ratio_requirement> There was no Data:NULL
+			 ratio established.
+			<enum 1 Data_Null_ratio_16_1> Best Data:NULL ratio was 16:1. 
+			
+			<enum 2 Data_Null_ratio_8_1> Best Data:NULL ratio was 8:1. 
+			
+			<enum 3 Data_Null_ratio_4_1> Best Data:NULL ratio was 4:1. 
+			
+			<enum 4 Data_Null_ratio_2_1> Best Data:NULL ratio was 2:1. 
+			
+			<enum 5 Data_Null_ratio_1_1> Best Data:NULL ratio was 1:1. 
+			
+			terminate FES.
+			<enum 6 Data_Null_ratio_1_2> Best Data:NULL ratio was 1:2. 
+			
+			<enum 7 Data_Null_ratio_1_4> Best Data:NULL ratio was 1:4. 
+			
+			<enum 8 Data_Null_ratio_1_8> Best Data:NULL ratio was 1:8. 
+			
+			<enum 9 Data_Null_ratio_1_16> Best Data:NULL ratio was 1:16. 
+			
+			
+			<legal 0-9>
+*/
+
+#define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_OFFSET                   0x0000000000000038
+#define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_LSB                      48
+#define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MSB                      52
+#define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MASK                     0x001f000000000000
+
+
+/* Description		USE_ALT_POWER_SR
+
+			0: Primary/default power1: Alternate power
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_USE_ALT_POWER_SR_OFFSET                                   0x0000000000000038
+#define TX_FES_STATUS_END_USE_ALT_POWER_SR_LSB                                      53
+#define TX_FES_STATUS_END_USE_ALT_POWER_SR_MSB                                      53
+#define TX_FES_STATUS_END_USE_ALT_POWER_SR_MASK                                     0x0020000000000000
+
+
+/* Description		STATIC_2_PWR_MODE_STATUS
+
+			0: Static 2 power mode disabled1: Static 2 power mode enabled
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_OFFSET                           0x0000000000000038
+#define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_LSB                              54
+#define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MSB                              54
+#define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MASK                             0x0040000000000000
+
+
+/* Description		OBSS_SRG_OPPORT_TRANSMIT_STATUS
+
+			0: Transmit based on SRG OBSS_PD opportunity initiated1: 
+			Transmit based on non-SRG OBSS_PD opportunity initiated
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET                    0x0000000000000038
+#define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB                       55
+#define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB                       55
+#define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK                      0x0080000000000000
+
+
+/* Description		SRP_BASED_TRANSMIT_STATUS
+
+			0: non-SRP based transmit initiated1: SRP based transmit
+			 initiated
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_OFFSET                          0x0000000000000038
+#define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_LSB                             56
+#define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MSB                             56
+#define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MASK                            0x0100000000000000
+
+
+/* Description		OBSS_PD_BASED_TRANSMIT_STATUS
+
+			0: non-OBSS_PD based transmit initiated1: obss_pd based 
+			transmit initiated
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET                      0x0000000000000038
+#define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_LSB                         57
+#define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MSB                         57
+#define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MASK                        0x0200000000000000
+
+
+/* Description		BEAMFORM_MASKED_USER_BITMAP_36_32
+
+			Upper 5 bits of 'Beamform_masked_user_bitmap'
+			See description above.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_OFFSET                  0x0000000000000038
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_LSB                     58
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MSB                     62
+#define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MASK                    0x7c00000000000000
+
+
+/* Description		PDG_MPDU_READY
+
+			Field only valid in case of SU transmissions, copied over
+			 by TXPCU from 'PCU_PPDU_SETUP_END'
+			
+			Indicates the 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' ready
+			 status in PDG.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PDG_MPDU_READY_OFFSET                                     0x0000000000000038
+#define TX_FES_STATUS_END_PDG_MPDU_READY_LSB                                        63
+#define TX_FES_STATUS_END_PDG_MPDU_READY_MSB                                        63
+#define TX_FES_STATUS_END_PDG_MPDU_READY_MASK                                       0x8000000000000000
+
+
+/* Description		PDG_MPDU_COUNT
+
+			Field only valid in case of SU transmissions when pdg_MPDU_ready
+			 is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
+			
+			Total MPDU count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW'
+			
+			<legal 0-2130>
+*/
+
+#define TX_FES_STATUS_END_PDG_MPDU_COUNT_OFFSET                                     0x0000000000000040
+#define TX_FES_STATUS_END_PDG_MPDU_COUNT_LSB                                        0
+#define TX_FES_STATUS_END_PDG_MPDU_COUNT_MSB                                        15
+#define TX_FES_STATUS_END_PDG_MPDU_COUNT_MASK                                       0x000000000000ffff
+
+
+/* Description		PDG_EST_MPDU_TX_COUNT
+
+			Field only valid in case of SU transmissions when pdg_MPDU_ready
+			 is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
+			
+			PDG estimated MPDU Tx count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' 
+			limited by timing boundaries (HWSCH, COEX, SR, etc.)
+			<legal 0-1024>
+*/
+
+#define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_OFFSET                              0x0000000000000040
+#define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_LSB                                 16
+#define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MSB                                 31
+#define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MASK                                0x00000000ffff0000
+
+
+/* Description		PDG_OVERVIEW_LENGTH
+
+			Field only valid in case of SU transmissions when pdg_MPDU_ready
+			 is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
+			
+			PDG estimated A-MPDU length from 'MPDU_QUEUE_OVERVIEW' limited
+			 by timing boundaries (HWSCH, COEX, SR, etc.)
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_OFFSET                                0x0000000000000040
+#define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_LSB                                   32
+#define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MSB                                   55
+#define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MASK                                  0x00ffffff00000000
+
+
+/* Description		TXOP_DURATION
+
+			TXOP_DURATION of HE-SIG-A calculated by PDG, to be copied
+			 from 'PCU_PPDU_SETUP_END' by TXPCU
+*/
+
+#define TX_FES_STATUS_END_TXOP_DURATION_OFFSET                                      0x0000000000000040
+#define TX_FES_STATUS_END_TXOP_DURATION_LSB                                         56
+#define TX_FES_STATUS_END_TXOP_DURATION_MSB                                         62
+#define TX_FES_STATUS_END_TXOP_DURATION_MASK                                        0x7f00000000000000
+
+
+/* Description		PDG_DROPPED_MPDU_WARNING
+
+			Warning that PDG has dropped MPDUs due to SFM FIFO full 
+			condition, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+*/
+
+#define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_OFFSET                           0x0000000000000040
+#define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_LSB                              63
+#define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MSB                              63
+#define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MASK                             0x8000000000000000
+
+
+/* Description		PACKET_EXTENSION_A_FACTOR
+
+			The "a-factor" of the trigger-based PPDU response, to be
+			 copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			This affects the packet extension duration.
+			
+			<enum 0 a_factor_4>
+			<enum 1 a_factor_1>
+			<enum 2 a_factor_2>
+			<enum 3 a_factor_3>
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_OFFSET                          0x0000000000000048
+#define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_LSB                             0
+#define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MSB                             1
+#define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MASK                            0x0000000000000003
+
+
+/* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
+
+			The "PE-Disambiguity" of the trigger-based PPDU response, 
+			to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			This affects the packet extension duration.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET                   0x0000000000000048
+#define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                      2
+#define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                      2
+#define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                     0x0000000000000004
+
+
+/* Description		PACKET_EXTENSION
+
+			Packet extension size, to be copied from 'PCU_PPDU_SETUP_END' 
+			by TXPCU
+			
+			This is valid for all PPDUs including HE-Ranging NDPs (11az) 
+			and Short-NDPs.
+			
+			<enum 0     packet_ext_0> 
+			<enum 1     packet_ext_4>
+			<enum 2     packet_ext_8>
+			<enum 3     packet_ext_12>
+			<enum 4     packet_ext_16>
+			<enum 5     packet_ext_20>
+			<legal 0 - 5>
+*/
+
+#define TX_FES_STATUS_END_PACKET_EXTENSION_OFFSET                                   0x0000000000000048
+#define TX_FES_STATUS_END_PACKET_EXTENSION_LSB                                      3
+#define TX_FES_STATUS_END_PACKET_EXTENSION_MSB                                      5
+#define TX_FES_STATUS_END_PACKET_EXTENSION_MASK                                     0x0000000000000038
+
+
+/* Description		FEC_TYPE
+
+			For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' 
+			by TXPCU
+			0: BCC
+			1: LDPC
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_FEC_TYPE_OFFSET                                           0x0000000000000048
+#define TX_FES_STATUS_END_FEC_TYPE_LSB                                              6
+#define TX_FES_STATUS_END_FEC_TYPE_MSB                                              6
+#define TX_FES_STATUS_END_FEC_TYPE_MASK                                             0x0000000000000040
+
+
+/* Description		STBC
+
+			For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' 
+			by TXPCU
+			
+			When set, this transmission is based on STBC rates.
+*/
+
+#define TX_FES_STATUS_END_STBC_OFFSET                                               0x0000000000000048
+#define TX_FES_STATUS_END_STBC_LSB                                                  7
+#define TX_FES_STATUS_END_STBC_MSB                                                  7
+#define TX_FES_STATUS_END_STBC_MASK                                                 0x0000000000000080
+
+
+/* Description		NUM_DATA_SYMBOLS
+
+			The number of data symbols in the transmission, to be copied
+			 from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			This does not include PE_LTF. Also for STBC packets this
+			 has to be an even number. This is valid for all PPDUs.
+*/
+
+#define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_OFFSET                                   0x0000000000000048
+#define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_LSB                                      8
+#define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MSB                                      23
+#define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MASK                                     0x0000000000ffff00
+
+
+/* Description		RU_SIZE
+
+			The size of the RU for this user, for trigger-based PPDU
+			 response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			
+			<enum 0 RU_26>
+			<enum 1 RU_52>
+			<enum 2 RU_106>
+			<enum 3 RU_242>
+			<enum 4 RU_484>
+			<enum 5 RU_996>
+			<enum 6 RU_1992>
+			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
+			 bandwidth
+			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
+			 packet bandwidth
+			<enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
+			 to infer the actual RU-size for Multi-large-RU/SU-Puncturing
+			
+			<enum 11 RU_78> multi small RU
+			<enum 12 RU_132> multi small RU
+			<legal 0-12>
+*/
+
+#define TX_FES_STATUS_END_RU_SIZE_OFFSET                                            0x0000000000000048
+#define TX_FES_STATUS_END_RU_SIZE_LSB                                               24
+#define TX_FES_STATUS_END_RU_SIZE_MSB                                               27
+#define TX_FES_STATUS_END_RU_SIZE_MASK                                              0x000000000f000000
+
+
+/* Description		RESERVED_17A
+
+			Hamilton v1 used this for 'Nss' for trigger-based PPDU response.
+			
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_17A_OFFSET                                       0x0000000000000048
+#define TX_FES_STATUS_END_RESERVED_17A_LSB                                          28
+#define TX_FES_STATUS_END_RESERVED_17A_MSB                                          31
+#define TX_FES_STATUS_END_RESERVED_17A_MASK                                         0x00000000f0000000
+
+
+/* Description		NUM_LTF_SYMBOLS
+
+			Indicates the number of HE-LTF symbols, for trigger-based
+			 PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by
+			 TXPCU
+			
+			0: 1 symbol
+			1: 2 symbols
+			2: 3 symbols
+			3: 4 symbols
+			4: 5 symbols
+			5: 6 symbols
+			6: 7 symbols
+			7: 8 symbols
+			
+			NOTE that this encoding is different from what is in "Num_LTF_symbols" 
+			in the HE_SIG_A_MU_DL.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_OFFSET                                    0x0000000000000048
+#define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_LSB                                       32
+#define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MSB                                       34
+#define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MASK                                      0x0000000700000000
+
+
+/* Description		LTF_SIZE
+
+			Ltf size, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			
+			This is valid for all PPDUs including HE-Ranging NDPs (11az) 
+			and Short-NDPs.
+			
+			<enum 0     ltf_1x > 
+			<enum 1     ltf_2x > 
+			<enum 2     ltf_4x > 
+			<legal 0 - 2>
+*/
+
+#define TX_FES_STATUS_END_LTF_SIZE_OFFSET                                           0x0000000000000048
+#define TX_FES_STATUS_END_LTF_SIZE_LSB                                              35
+#define TX_FES_STATUS_END_LTF_SIZE_MSB                                              36
+#define TX_FES_STATUS_END_LTF_SIZE_MASK                                             0x0000001800000000
+
+
+/* Description		CP_SETTING
+
+			Field only valid when pkt type is HT, VHT or HE
+			
+			GI setting, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			
+			
+			This is valid for all PPDUs including HE-Ranging NDPs (11az) 
+			and Short-NDPs.
+			
+			<enum 0     gi_0_8_us > Legacy normal GI
+			<enum 1     gi_0_4_us > Legacy short GI
+			<enum 2     gi_1_6_us > HE related GI
+			<enum 3     gi_3_2_us > HE related GI
+			<legal 0 - 3>
+*/
+
+#define TX_FES_STATUS_END_CP_SETTING_OFFSET                                         0x0000000000000048
+#define TX_FES_STATUS_END_CP_SETTING_LSB                                            37
+#define TX_FES_STATUS_END_CP_SETTING_MSB                                            38
+#define TX_FES_STATUS_END_CP_SETTING_MASK                                           0x0000006000000000
+
+
+/* Description		RESERVED_18A
+
+			Hamilton v1 used bits [11:8] for 'Mcs' for trigger-based
+			 PPDU response.
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_18A_OFFSET                                       0x0000000000000048
+#define TX_FES_STATUS_END_RESERVED_18A_LSB                                          39
+#define TX_FES_STATUS_END_RESERVED_18A_MSB                                          43
+#define TX_FES_STATUS_END_RESERVED_18A_MASK                                         0x00000f8000000000
+
+
+/* Description		DCM
+
+			Field only valid in case of 11ax transmission
+			
+			Indicates whether dual sub-carrier modulation is applied, 
+			for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' 
+			by TXPCU
+			0: No DCM
+			1:DCM
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_DCM_OFFSET                                                0x0000000000000048
+#define TX_FES_STATUS_END_DCM_LSB                                                   44
+#define TX_FES_STATUS_END_DCM_MSB                                                   44
+#define TX_FES_STATUS_END_DCM_MASK                                                  0x0000100000000000
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), 
+			or at least one LDPC user's PPDU encoding process (if an
+			 MU PPDU), results in an extra OFDM symbol (or symbols) 
+			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
+			 (Encoding process for MU PPDUs). Set to 0 otherwise.
+			
+			To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_OFFSET                                  0x0000000000000048
+#define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_LSB                                     45
+#define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MSB                                     45
+#define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MASK                                    0x0000200000000000
+
+
+/* Description		FORCE_EXTRA_SYMBOL
+
+			Set to 1 to force an extra OFDM symbol (or symbols) even
+			 if none of the users' PPDU encoding process resuls in an
+			 extra OFDM symbol (or symbols).
+			
+			To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_OFFSET                                 0x0000000000000048
+#define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_LSB                                    46
+#define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MSB                                    46
+#define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MASK                                   0x0000400000000000
+
+
+/* Description		RESERVED_18B
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_18B_OFFSET                                       0x0000000000000048
+#define TX_FES_STATUS_END_RESERVED_18B_LSB                                          47
+#define TX_FES_STATUS_END_RESERVED_18B_MSB                                          47
+#define TX_FES_STATUS_END_RESERVED_18B_MASK                                         0x0000800000000000
+
+
+/* Description		TX_PWR_SHARED
+
+			Transmit Power (signed value) in units of 0.25 dBm, to be
+			 copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TX_PWR_SHARED_OFFSET                                      0x0000000000000048
+#define TX_FES_STATUS_END_TX_PWR_SHARED_LSB                                         48
+#define TX_FES_STATUS_END_TX_PWR_SHARED_MSB                                         55
+#define TX_FES_STATUS_END_TX_PWR_SHARED_MASK                                        0x00ff000000000000
+
+
+/* Description		TX_PWR_UNSHARED
+
+			Transmit Power (signed value) in units of 0.25 dBm, to be
+			 copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_TX_PWR_UNSHARED_OFFSET                                    0x0000000000000048
+#define TX_FES_STATUS_END_TX_PWR_UNSHARED_LSB                                       56
+#define TX_FES_STATUS_END_TX_PWR_UNSHARED_MSB                                       63
+#define TX_FES_STATUS_END_TX_PWR_UNSHARED_MASK                                      0xff00000000000000
+
+
+/* Description		RANGING_ACTIVE_USER_MAP
+
+			Field only valid for TB Ranging transmissions
+			
+			TXPCU sets this to the current active user bitmap, with 
+			each bit set to:
+			1: for an active user, and
+			0: for any user not part of the ranging.
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+*/
+
+#define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_OFFSET                            0x0000000000000050
+#define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_LSB                               0
+#define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MSB                               15
+#define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MASK                              0x000000000000ffff
+
+
+/* Description		RANGING_SENT_DUMMY_TX
+
+			Field only valid for TB Ranging transmissions
+			
+			TXPCU sets this bit if some user's 'STA Info' or 'User Info' 
+			was sent out as dummy, or the whole transmission was sent
+			 out as dummy.
+*/
+
+#define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_OFFSET                              0x0000000000000050
+#define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_LSB                                 16
+#define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MSB                                 16
+#define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MASK                                0x0000000000010000
+
+
+/* Description		RANGING_FTM_FRAME_SENT
+
+			Field only valid for Ranging transmissions
+			
+			TXPCU sets this bit if an FTM frame aggregated with an LMR
+			 was sent.
+*/
+
+#define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_OFFSET                             0x0000000000000050
+#define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_LSB                                17
+#define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MSB                                17
+#define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MASK                               0x0000000000020000
+
+
+/* Description		RESERVED_20A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_20A_OFFSET                                       0x0000000000000050
+#define TX_FES_STATUS_END_RESERVED_20A_LSB                                          18
+#define TX_FES_STATUS_END_RESERVED_20A_MSB                                          23
+#define TX_FES_STATUS_END_RESERVED_20A_MASK                                         0x0000000000fc0000
+
+
+/* Description		CV_CORR_STATUS
+
+			CV correlation status from 'PHYTX_CV_CORR_STATUS,' to be
+			 copied from 'PCU_PPDU_SETUP_END' by TXPCU
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_CV_CORR_STATUS_OFFSET                                     0x0000000000000050
+#define TX_FES_STATUS_END_CV_CORR_STATUS_LSB                                        24
+#define TX_FES_STATUS_END_CV_CORR_STATUS_MSB                                        31
+#define TX_FES_STATUS_END_CV_CORR_STATUS_MASK                                       0x00000000ff000000
+
+
+/* Description		CURRENT_TX_DURATION
+
+			The duration of the transmission in us, copied over from
+			 PCU_PPDU_SETUP_{END, START} as  the case may be
+			<legal all>
+*/
+
+#define TX_FES_STATUS_END_CURRENT_TX_DURATION_OFFSET                                0x0000000000000050
+#define TX_FES_STATUS_END_CURRENT_TX_DURATION_LSB                                   32
+#define TX_FES_STATUS_END_CURRENT_TX_DURATION_MSB                                   47
+#define TX_FES_STATUS_END_CURRENT_TX_DURATION_MASK                                  0x0000ffff00000000
+
+
+/* Description		RESERVED_21A
+
+			Bits [19:16]: num_cts2self_transmitted:
+			
+			Number of CTS2SELF frames transmitted in this FES
+			
+			<legal 0-15>
+*/
+
+#define TX_FES_STATUS_END_RESERVED_21A_OFFSET                                       0x0000000000000050
+#define TX_FES_STATUS_END_RESERVED_21A_LSB                                          48
+#define TX_FES_STATUS_END_RESERVED_21A_MSB                                          63
+#define TX_FES_STATUS_END_RESERVED_21A_MASK                                         0xffff000000000000
+
+
+
+#endif   // TX_FES_STATUS_END
diff --git a/hw/qca5332/tx_fes_status_prot.h b/hw/qca5332/tx_fes_status_prot.h
new file mode 100644
index 0000000..c10ef98
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_prot.h
@@ -0,0 +1,870 @@
+
+/* 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_PROT_H_
+#define _TX_FES_STATUS_PROT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phytx_abort_request_info.h"
+#define NUM_OF_DWORDS_TX_FES_STATUS_PROT 14
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_PROT 7
+
+
+struct tx_fes_status_prot {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t success                                                 :  1, // [0:0]
+                      phytx_pkt_end_info_valid                                :  1, // [1:1]
+                      phytx_abort_request_info_valid                          :  1, // [2:2]
+                      reserved_0                                              : 20, // [22:3]
+                      pkt_type                                                :  4, // [26:23]
+                      dot11ax_su_extended                                     :  1, // [27:27]
+                      rate_mcs                                                :  4; // [31:28]
+             uint32_t frame_type                                              :  2, // [1:0]
+                      frame_subtype                                           :  4, // [5:2]
+                      rx_pwr_mgmt                                             :  1, // [6:6]
+                      status                                                  :  1, // [7:7]
+                      duration_field                                          : 16, // [23:8]
+                      reserved_1a                                             :  2, // [25:24]
+                      agc_cbw                                                 :  3, // [28:26]
+                      service_cbw                                             :  3; // [31:29]
+             uint32_t start_of_frame_timestamp_15_0                           : 16, // [15:0]
+                      start_of_frame_timestamp_31_16                          : 16; // [31:16]
+             uint32_t end_of_frame_timestamp_15_0                             : 16, // [15:0]
+                      end_of_frame_timestamp_31_16                            : 16; // [31:16]
+             uint32_t tx_group_delay                                          : 12, // [11:0]
+                      timing_status                                           :  2, // [13:12]
+                      dpdtrain_done                                           :  1, // [14:14]
+                      reserved_4                                              :  1, // [15:15]
+                      transmit_delay                                          : 16; // [31:16]
+             uint32_t tpc_dbg_info_cmn_15_0                                   : 16, // [15:0]
+                      tpc_dbg_info_cmn_31_16                                  : 16; // [31:16]
+             uint32_t tpc_dbg_info_cmn_47_32                                  : 16, // [15:0]
+                      tpc_dbg_info_chn1_15_0                                  : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_31_16                                 : 16, // [15:0]
+                      tpc_dbg_info_chn1_47_32                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn1_63_48                                 : 16, // [15:0]
+                      tpc_dbg_info_chn1_79_64                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_15_0                                  : 16, // [15:0]
+                      tpc_dbg_info_chn2_31_16                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_47_32                                 : 16, // [15:0]
+                      tpc_dbg_info_chn2_63_48                                 : 16; // [31:16]
+             uint32_t tpc_dbg_info_chn2_79_64                                 : 16; // [15:0]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint32_t phytx_tx_end_sw_info_15_0                               : 16, // [15:0]
+                      phytx_tx_end_sw_info_31_16                              : 16; // [31:16]
+             uint32_t phytx_tx_end_sw_info_47_32                              : 16, // [15:0]
+                      phytx_tx_end_sw_info_63_48                              : 16; // [31:16]
+#else
+             uint32_t rate_mcs                                                :  4, // [31:28]
+                      dot11ax_su_extended                                     :  1, // [27:27]
+                      pkt_type                                                :  4, // [26:23]
+                      reserved_0                                              : 20, // [22:3]
+                      phytx_abort_request_info_valid                          :  1, // [2:2]
+                      phytx_pkt_end_info_valid                                :  1, // [1:1]
+                      success                                                 :  1; // [0:0]
+             uint32_t service_cbw                                             :  3, // [31:29]
+                      agc_cbw                                                 :  3, // [28:26]
+                      reserved_1a                                             :  2, // [25:24]
+                      duration_field                                          : 16, // [23:8]
+                      status                                                  :  1, // [7:7]
+                      rx_pwr_mgmt                                             :  1, // [6:6]
+                      frame_subtype                                           :  4, // [5:2]
+                      frame_type                                              :  2; // [1:0]
+             uint32_t start_of_frame_timestamp_31_16                          : 16, // [31:16]
+                      start_of_frame_timestamp_15_0                           : 16; // [15:0]
+             uint32_t end_of_frame_timestamp_31_16                            : 16, // [31:16]
+                      end_of_frame_timestamp_15_0                             : 16; // [15:0]
+             uint32_t transmit_delay                                          : 16, // [31:16]
+                      reserved_4                                              :  1, // [15:15]
+                      dpdtrain_done                                           :  1, // [14:14]
+                      timing_status                                           :  2, // [13:12]
+                      tx_group_delay                                          : 12; // [11:0]
+             uint32_t tpc_dbg_info_cmn_31_16                                  : 16, // [31:16]
+                      tpc_dbg_info_cmn_15_0                                   : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_15_0                                  : 16, // [31:16]
+                      tpc_dbg_info_cmn_47_32                                  : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_47_32                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_31_16                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn1_79_64                                 : 16, // [31:16]
+                      tpc_dbg_info_chn1_63_48                                 : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_31_16                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_15_0                                  : 16; // [15:0]
+             uint32_t tpc_dbg_info_chn2_63_48                                 : 16, // [31:16]
+                      tpc_dbg_info_chn2_47_32                                 : 16; // [15:0]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint16_t tpc_dbg_info_chn2_79_64                                 : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_31_16                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_15_0                               : 16; // [15:0]
+             uint32_t phytx_tx_end_sw_info_63_48                              : 16, // [31:16]
+                      phytx_tx_end_sw_info_47_32                              : 16; // [15:0]
+#endif
+};
+
+
+/* Description		SUCCESS
+
+			When set, protection response has been received
+*/
+
+#define TX_FES_STATUS_PROT_SUCCESS_OFFSET                                           0x0000000000000000
+#define TX_FES_STATUS_PROT_SUCCESS_LSB                                              0
+#define TX_FES_STATUS_PROT_SUCCESS_MSB                                              0
+#define TX_FES_STATUS_PROT_SUCCESS_MASK                                             0x0000000000000001
+
+
+/* Description		PHYTX_PKT_END_INFO_VALID
+
+			All the fields originating from PHYTX_PKT_END TLV contain
+			 valid info
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_OFFSET                          0x0000000000000000
+#define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_LSB                             1
+#define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MSB                             1
+#define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MASK                            0x0000000000000002
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_VALID
+
+			Field Phytx_abort_request_info_details contains valid info
+			
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET                    0x0000000000000000
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_LSB                       2
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MSB                       2
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MASK                      0x0000000000000004
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_PROT_RESERVED_0_OFFSET                                        0x0000000000000000
+#define TX_FES_STATUS_PROT_RESERVED_0_LSB                                           3
+#define TX_FES_STATUS_PROT_RESERVED_0_MSB                                           22
+#define TX_FES_STATUS_PROT_RESERVED_0_MASK                                          0x00000000007ffff8
+
+
+/* Description		PKT_TYPE
+
+			Field only valid when success is set
+			Source of the info here is the 'RECEIVED_RESPONSE_INFO' 
+			TLV.
+			
+			Packet type:
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define TX_FES_STATUS_PROT_PKT_TYPE_OFFSET                                          0x0000000000000000
+#define TX_FES_STATUS_PROT_PKT_TYPE_LSB                                             23
+#define TX_FES_STATUS_PROT_PKT_TYPE_MSB                                             26
+#define TX_FES_STATUS_PROT_PKT_TYPE_MASK                                            0x0000000007800000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			Field only valid when success is set and pkt_type == 11ax
+			 OR pkt_type == 11be
+			Source of the info here is the 'RECEIVED_RESPONSE_INFO' 
+			TLV.
+			
+			When set, the 11ax or 11be reception was an extended range
+			 SU 
+*/
+
+#define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_OFFSET                               0x0000000000000000
+#define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_LSB                                  27
+#define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MSB                                  27
+#define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MASK                                 0x0000000008000000
+
+
+/* Description		RATE_MCS
+
+			Field only valid when success is set
+			Source of the info here is the 'RECEIVED_RESPONSE_INFO' 
+			TLV.
+			
+			For details, refer to  MCS_TYPE description
+			Note: This is "rate" in case of 11a/11b
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_RATE_MCS_OFFSET                                          0x0000000000000000
+#define TX_FES_STATUS_PROT_RATE_MCS_LSB                                             28
+#define TX_FES_STATUS_PROT_RATE_MCS_MSB                                             31
+#define TX_FES_STATUS_PROT_RATE_MCS_MASK                                            0x00000000f0000000
+
+
+/* Description		FRAME_TYPE
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			802.11 frame type field
+			This field applies for 11ah as well.
+*/
+
+#define TX_FES_STATUS_PROT_FRAME_TYPE_OFFSET                                        0x0000000000000000
+#define TX_FES_STATUS_PROT_FRAME_TYPE_LSB                                           32
+#define TX_FES_STATUS_PROT_FRAME_TYPE_MSB                                           33
+#define TX_FES_STATUS_PROT_FRAME_TYPE_MASK                                          0x0000000300000000
+
+
+/* Description		FRAME_SUBTYPE
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			802.11 frame subtype field
+			This field applies for 11ah as well.
+*/
+
+#define TX_FES_STATUS_PROT_FRAME_SUBTYPE_OFFSET                                     0x0000000000000000
+#define TX_FES_STATUS_PROT_FRAME_SUBTYPE_LSB                                        34
+#define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MSB                                        37
+#define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MASK                                       0x0000003c00000000
+
+
+/* Description		RX_PWR_MGMT
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			Power Management bit extracted from the header of the received
+			 frame.
+*/
+
+#define TX_FES_STATUS_PROT_RX_PWR_MGMT_OFFSET                                       0x0000000000000000
+#define TX_FES_STATUS_PROT_RX_PWR_MGMT_LSB                                          38
+#define TX_FES_STATUS_PROT_RX_PWR_MGMT_MSB                                          38
+#define TX_FES_STATUS_PROT_RX_PWR_MGMT_MASK                                         0x0000004000000000
+
+
+/* Description		STATUS
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			If set indicates that receive packet passed FCS check.
+*/
+
+#define TX_FES_STATUS_PROT_STATUS_OFFSET                                            0x0000000000000000
+#define TX_FES_STATUS_PROT_STATUS_LSB                                               39
+#define TX_FES_STATUS_PROT_STATUS_MSB                                               39
+#define TX_FES_STATUS_PROT_STATUS_MASK                                              0x0000008000000000
+
+
+/* Description		DURATION_FIELD
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			The contents of the duration field of the received frame.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_DURATION_FIELD_OFFSET                                    0x0000000000000000
+#define TX_FES_STATUS_PROT_DURATION_FIELD_LSB                                       40
+#define TX_FES_STATUS_PROT_DURATION_FIELD_MSB                                       55
+#define TX_FES_STATUS_PROT_DURATION_FIELD_MASK                                      0x00ffff0000000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_PROT_RESERVED_1A_OFFSET                                       0x0000000000000000
+#define TX_FES_STATUS_PROT_RESERVED_1A_LSB                                          56
+#define TX_FES_STATUS_PROT_RESERVED_1A_MSB                                          57
+#define TX_FES_STATUS_PROT_RESERVED_1A_MASK                                         0x0300000000000000
+
+
+/* Description		AGC_CBW
+
+			Field only valid when 'success' is set.
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			BW as detected by the AGC 
+			
+			<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_PROT_AGC_CBW_OFFSET                                           0x0000000000000000
+#define TX_FES_STATUS_PROT_AGC_CBW_LSB                                              58
+#define TX_FES_STATUS_PROT_AGC_CBW_MSB                                              60
+#define TX_FES_STATUS_PROT_AGC_CBW_MASK                                             0x1c00000000000000
+
+
+/* Description		SERVICE_CBW
+
+			Field only valid when 'success' is set.
+			
+			Source of the info here is the RECEIVED_RESPONSE_INFO TLV
+			
+			
+			This field reflects the BW extracted from the Serivce Field
+			 for 11ac mode of operation .
+			
+			This field is used in the context of Dynamic/Static BW evaluation
+			 purposes in TxPCU
+			CBW field extracted from Service field
+			
+			<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_PROT_SERVICE_CBW_OFFSET                                       0x0000000000000000
+#define TX_FES_STATUS_PROT_SERVICE_CBW_LSB                                          61
+#define TX_FES_STATUS_PROT_SERVICE_CBW_MSB                                          63
+#define TX_FES_STATUS_PROT_SERVICE_CBW_MASK                                         0xe000000000000000
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_OFFSET                     0x0000000000000008
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_LSB                        0
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_MSB                        15
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_MASK                       0x000000000000ffff
+
+
+/* Description		START_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			Start of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_OFFSET                    0x0000000000000008
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_LSB                       16
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_MSB                       31
+#define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_MASK                      0x00000000ffff0000
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 15:0 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all> 
+*/
+
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_OFFSET                       0x0000000000000008
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_LSB                          32
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_MSB                          47
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_MASK                         0x0000ffff00000000
+
+
+/* Description		END_OF_FRAME_TIMESTAMP_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			bits 31:16 of a 64 bit time stamp 
+			End of frame in the medium @960 MHz
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_OFFSET                      0x0000000000000008
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_LSB                         48
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_MSB                         63
+#define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_MASK                        0xffff000000000000
+
+
+/* Description		TX_GROUP_DELAY
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Group delay on TxTD+PHYRF path for this PPDU (packet BW 
+			dependent), useful for RTT
+			
+			Unit is 960MHz cycles.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TX_GROUP_DELAY_OFFSET                                    0x0000000000000010
+#define TX_FES_STATUS_PROT_TX_GROUP_DELAY_LSB                                       0
+#define TX_FES_STATUS_PROT_TX_GROUP_DELAY_MSB                                       11
+#define TX_FES_STATUS_PROT_TX_GROUP_DELAY_MASK                                      0x0000000000000fff
+
+
+/* Description		TIMING_STATUS
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			<enum 0 No_tx_timing_request> The MAC did not request for
+			 the transmission to start at a particular time
+			<enum 1 successful_tx_timing > MAC did request for transmission
+			 to start at a particular time and PHY was able to do so.
+			
+			<enum 2 tx_timing_not_honoured> PHY was not able to honour
+			 the requested transmit time by the MAC. The transmission
+			 started later, and field transmit_delay indicates how much
+			 later.
+			<legal 0-2>
+*/
+
+#define TX_FES_STATUS_PROT_TIMING_STATUS_OFFSET                                     0x0000000000000010
+#define TX_FES_STATUS_PROT_TIMING_STATUS_LSB                                        12
+#define TX_FES_STATUS_PROT_TIMING_STATUS_MSB                                        13
+#define TX_FES_STATUS_PROT_TIMING_STATUS_MASK                                       0x0000000000003000
+
+
+/* Description		DPDTRAIN_DONE
+
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			For DPD Training packets, this bit is set to indicate that
+			 DPD Training was successfully run to completion.  Also 
+			reused by Implicit BF Calibration Packets. This bit is intended
+			 for debug purposes.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_DPDTRAIN_DONE_OFFSET                                     0x0000000000000010
+#define TX_FES_STATUS_PROT_DPDTRAIN_DONE_LSB                                        14
+#define TX_FES_STATUS_PROT_DPDTRAIN_DONE_MSB                                        14
+#define TX_FES_STATUS_PROT_DPDTRAIN_DONE_MASK                                       0x0000000000004000
+
+
+/* Description		RESERVED_4
+
+			PHYTX_PKT_END info
+			
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_PROT_RESERVED_4_OFFSET                                        0x0000000000000010
+#define TX_FES_STATUS_PROT_RESERVED_4_LSB                                           15
+#define TX_FES_STATUS_PROT_RESERVED_4_MSB                                           15
+#define TX_FES_STATUS_PROT_RESERVED_4_MASK                                          0x0000000000008000
+
+
+/* Description		TRANSMIT_DELAY
+
+			PHYTX_PKT_END info
+			
+			The number of 480 MHz clock cycles that the transmission
+			 started after the actual requested transmit start time.
+			
+			Value saturates at 0xFFFF
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TRANSMIT_DELAY_OFFSET                                    0x0000000000000010
+#define TX_FES_STATUS_PROT_TRANSMIT_DELAY_LSB                                       16
+#define TX_FES_STATUS_PROT_TRANSMIT_DELAY_MSB                                       31
+#define TX_FES_STATUS_PROT_TRANSMIT_DELAY_MASK                                      0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CMN_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_OFFSET                             0x0000000000000010
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_LSB                                32
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_MSB                                47
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_MASK                               0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CMN_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_OFFSET                            0x0000000000000010
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_LSB                               48
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_MSB                               63
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_MASK                              0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CMN_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some TPC debug info that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_OFFSET                            0x0000000000000018
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_LSB                               0
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_MSB                               15
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_MASK                              0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN1_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_OFFSET                            0x0000000000000018
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_LSB                               16
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_MSB                               31
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_MASK                              0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN1_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_OFFSET                           0x0000000000000018
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_LSB                              32
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_MSB                              47
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_MASK                             0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_OFFSET                           0x0000000000000018
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_LSB                              48
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_MSB                              63
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_MASK                             0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN1_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_OFFSET                           0x0000000000000020
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_LSB                              0
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_MSB                              15
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_MASK                             0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN1_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the first selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_OFFSET                           0x0000000000000020
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_LSB                              16
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_MSB                              31
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_MASK                             0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN2_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_OFFSET                            0x0000000000000020
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_LSB                               32
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_MSB                               47
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_MASK                              0x0000ffff00000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_OFFSET                           0x0000000000000020
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_LSB                              48
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_MSB                              63
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_MASK                             0xffff000000000000
+
+
+/* Description		TPC_DBG_INFO_CHN2_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_OFFSET                           0x0000000000000028
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_LSB                              0
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_MSB                              15
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_MASK                             0x000000000000ffff
+
+
+/* Description		TPC_DBG_INFO_CHN2_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_OFFSET                           0x0000000000000028
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_LSB                              16
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_MSB                              31
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_MASK                             0x00000000ffff0000
+
+
+/* Description		TPC_DBG_INFO_CHN2_79_64
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some per-chain TPC debug info for the second selected chain
+			 that PHY can pass back to MAC FW
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_OFFSET                           0x0000000000000028
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_LSB                              32
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_MSB                              47
+#define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_MASK                             0x0000ffff00000000
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_DETAILS
+
+			Field only valid when PHYTX_ABORT_REQUEST_info_valid is 
+			set
+			
+			The reason why PHYTX is requested an abort
+*/
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Reason for early termination of TX packet by the PHY 
+			
+			<enum_type PHYTX_ABORT_ENUM>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000028
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB  48
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB  55
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x00ff000000000000
+
+
+/* Description		USER_NUMBER
+
+			For some errors, the user for which this error was detected
+			 can be indicated in this field.
+			<legal 0-36>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET      0x0000000000000028
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB         56
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB         61
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK        0x3f00000000000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET         0x0000000000000028
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB            62
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB            63
+#define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK           0xc000000000000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_15_0
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_OFFSET                         0x0000000000000030
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_LSB                            0
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_MSB                            15
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_MASK                           0x000000000000ffff
+
+
+/* Description		PHYTX_TX_END_SW_INFO_31_16
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_OFFSET                        0x0000000000000030
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_LSB                           16
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_MSB                           31
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_MASK                          0x00000000ffff0000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_47_32
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_OFFSET                        0x0000000000000030
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_LSB                           32
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_MSB                           47
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_MASK                          0x0000ffff00000000
+
+
+/* Description		PHYTX_TX_END_SW_INFO_63_48
+
+			PHYTX_PKT_END info
+			
+			Field only valid when PHYTX_PKT_END_info_valid is set
+			
+			Some PHY status data that PHY microcode can pass back to
+			 MAC FW, for any future requests, e.g. any DMA download 
+			time
+			<legal all>
+*/
+
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_OFFSET                        0x0000000000000030
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_LSB                           48
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_MSB                           63
+#define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_MASK                          0xffff000000000000
+
+
+
+#endif   // TX_FES_STATUS_PROT
diff --git a/hw/qca5332/tx_fes_status_start.h b/hw/qca5332/tx_fes_status_start.h
new file mode 100644
index 0000000..219654a
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_start.h
@@ -0,0 +1,334 @@
+
+/* 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_H_
+#define _TX_FES_STATUS_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_STATUS_START 4
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_START 2
+
+
+struct tx_fes_status_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t schedule_id                                             : 32; // [31:0]
+             uint32_t reserved_1a                                             :  8, // [7:0]
+                      transmit_start_reason                                   :  3, // [10:8]
+                      disabled_user_bitmap_36_32                              :  5, // [15:11]
+                      schedule_cmd_ring_id                                    :  5, // [20:16]
+                      fes_control_mode                                        :  2, // [22:21]
+                      schedule_try                                            :  4, // [26:23]
+                      medium_prot_type                                        :  3, // [29:27]
+                      reserved_1b                                             :  2; // [31:30]
+             uint32_t optimal_bw_try_count                                    :  4, // [3:0]
+                      number_of_users                                         :  7, // [10:4]
+                      coex_nack_count                                         :  5, // [15:11]
+                      cca_ed0                                                 : 16; // [31:16]
+             uint32_t disabled_user_bitmap_31_0                               : 32; // [31:0]
+#else
+             uint32_t schedule_id                                             : 32; // [31:0]
+             uint32_t reserved_1b                                             :  2, // [31:30]
+                      medium_prot_type                                        :  3, // [29:27]
+                      schedule_try                                            :  4, // [26:23]
+                      fes_control_mode                                        :  2, // [22:21]
+                      schedule_cmd_ring_id                                    :  5, // [20:16]
+                      disabled_user_bitmap_36_32                              :  5, // [15:11]
+                      transmit_start_reason                                   :  3, // [10:8]
+                      reserved_1a                                             :  8; // [7:0]
+             uint32_t cca_ed0                                                 : 16, // [31:16]
+                      coex_nack_count                                         :  5, // [15:11]
+                      number_of_users                                         :  7, // [10:4]
+                      optimal_bw_try_count                                    :  4; // [3:0]
+             uint32_t disabled_user_bitmap_31_0                               : 32; // [31:0]
+#endif
+};
+
+
+/* Description		SCHEDULE_ID
+
+			A field that SW can use to link this FES status to the schedule
+			 command that originated this transmission.
+*/
+
+#define TX_FES_STATUS_START_SCHEDULE_ID_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_START_SCHEDULE_ID_LSB                                         0
+#define TX_FES_STATUS_START_SCHEDULE_ID_MSB                                         31
+#define TX_FES_STATUS_START_SCHEDULE_ID_MASK                                        0x00000000ffffffff
+
+
+/* Description		RESERVED_1A
+
+			Hamilton v1 used this to report 'cca_ed0' but it was expanded
+			 and moved to word 2.
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_START_RESERVED_1A_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_START_RESERVED_1A_LSB                                         32
+#define TX_FES_STATUS_START_RESERVED_1A_MSB                                         39
+#define TX_FES_STATUS_START_RESERVED_1A_MASK                                        0x000000ff00000000
+
+
+/* Description		TRANSMIT_START_REASON
+
+			Indicates what the SCH start reason reason was for initiating
+			 this transmission.
+			
+			<enum 0 BO_based_transmit_start> The transmission of this
+			 PPDU got initiated by the scheduler due to Backoff expiration
+			
+			<enum 1 Trigger_based_transmit_start> The transmission of
+			 this PPDU got initiated by the scheduler due to reception
+			 (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU
+			 generated. Note that this can be an OFDMA trigger frame
+			 based transmission as well as some legacy trigger (PS-POLL, 
+			Qboost, U-APSD, etc.)  based transmission
+			<enum 2 Sifs_continuation_in_ongoing_burst> This transmission
+			 of this PPDU got initiated as part of SIFS continuation. 
+			An earlier PPDU was transmitted due to RBO expiration. Next
+			 command is also expected to be transmitted in SIFS burst.
+			
+			<enum 3 Sifs_continuation_last_command> This transmission
+			 of this PPDU got initiated as part of SIFS continuation
+			 and this is the last command in the burst. An earlier PPDU
+			 was transmitted due to RBO expiration.
+			<enum 4 NTBR_response_start> DO NOT USE
+			<legal 0-4>
+*/
+
+#define TX_FES_STATUS_START_TRANSMIT_START_REASON_OFFSET                            0x0000000000000000
+#define TX_FES_STATUS_START_TRANSMIT_START_REASON_LSB                               40
+#define TX_FES_STATUS_START_TRANSMIT_START_REASON_MSB                               42
+#define TX_FES_STATUS_START_TRANSMIT_START_REASON_MASK                              0x0000070000000000
+
+
+/* Description		DISABLED_USER_BITMAP_36_32
+
+			Bitmap of users that are disabled for this transmission, 
+			MSB 5 bits
+			
+			TXPCU converts disabled_group_bitmap_* in 'PCU_PPDU_SETUP_START' 
+			from groups to users.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_36_32_OFFSET                       0x0000000000000000
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_36_32_LSB                          43
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_36_32_MSB                          47
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_36_32_MASK                         0x0000f80000000000
+
+
+/* Description		SCHEDULE_CMD_RING_ID
+
+			The schedule command ring  that originated this transmission
+			
+			<enum 0 sch_cmd_ring_number0>
+			<enum 1 sch_cmd_ring_number1>
+			<enum 2 sch_cmd_ring_number2>
+			<enum 3 sch_cmd_ring_number3>
+			<enum 4 sch_cmd_ring_number4>
+			<enum 5 sch_cmd_ring_number5>
+			<enum 6 sch_cmd_ring_number6>
+			<enum 7 sch_cmd_ring_number7>
+			<enum 8 sch_cmd_ring_number8>
+			<enum 9 sch_cmd_ring_number9>
+			<enum 10 sch_cmd_ring_number10>
+			<enum 11 sch_cmd_ring_number11>
+			<enum 12 sch_cmd_ring_number12>
+			<enum 13 sch_cmd_ring_number13>
+			<enum 14 sch_cmd_ring_number14>
+			<enum 15 sch_cmd_ring_number15>
+			<enum 16 sch_cmd_ring_number16>
+			<enum 17 sch_cmd_ring_number17>
+			<enum 18 sch_cmd_ring_number18>
+			<enum 19 sch_cmd_ring_number19>
+			<enum 20 sch_cmd_ring_number20>
+			
+			 <legal 0-20>
+*/
+
+#define TX_FES_STATUS_START_SCHEDULE_CMD_RING_ID_OFFSET                             0x0000000000000000
+#define TX_FES_STATUS_START_SCHEDULE_CMD_RING_ID_LSB                                48
+#define TX_FES_STATUS_START_SCHEDULE_CMD_RING_ID_MSB                                52
+#define TX_FES_STATUS_START_SCHEDULE_CMD_RING_ID_MASK                               0x001f000000000000
+
+
+/* Description		FES_CONTROL_MODE
+
+			<enum 0  SW_transmit_mode>  No HW generated TLVs
+			<enum 1 PDG_transmit_mode> PDG  is activated to generate
+			 TLVs
+			
+			
+			Note: Final Bandwidth selection is always performed by TX
+			 PCU.
+			
+			<legal 0-1>
+*/
+
+#define TX_FES_STATUS_START_FES_CONTROL_MODE_OFFSET                                 0x0000000000000000
+#define TX_FES_STATUS_START_FES_CONTROL_MODE_LSB                                    53
+#define TX_FES_STATUS_START_FES_CONTROL_MODE_MSB                                    54
+#define TX_FES_STATUS_START_FES_CONTROL_MODE_MASK                                   0x0060000000000000
+
+
+/* Description		SCHEDULE_TRY
+
+			The number of times this scheduler command has been tried
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_SCHEDULE_TRY_OFFSET                                     0x0000000000000000
+#define TX_FES_STATUS_START_SCHEDULE_TRY_LSB                                        55
+#define TX_FES_STATUS_START_SCHEDULE_TRY_MSB                                        58
+#define TX_FES_STATUS_START_SCHEDULE_TRY_MASK                                       0x0780000000000000
+
+
+/* Description		MEDIUM_PROT_TYPE
+
+			Self Gen Medium Prot type used
+			<enum 0 No_protection>
+			<enum 1 RTS_legacy>
+			<enum 2 RTS_11ac_static_bw>
+			<enum 3 RTS_11ac_dynamic_bw>
+			<enum 4 CTS2Self>
+			<enum 5 QoS_Null_no_ack_3addr>
+			<enum 6 QoS_Null_no_ack_4addr>
+			
+			<legal 0-6>
+			Field only valid for user0 FES status.
+*/
+
+#define TX_FES_STATUS_START_MEDIUM_PROT_TYPE_OFFSET                                 0x0000000000000000
+#define TX_FES_STATUS_START_MEDIUM_PROT_TYPE_LSB                                    59
+#define TX_FES_STATUS_START_MEDIUM_PROT_TYPE_MSB                                    61
+#define TX_FES_STATUS_START_MEDIUM_PROT_TYPE_MASK                                   0x3800000000000000
+
+
+/* Description		RESERVED_1B
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_START_RESERVED_1B_OFFSET                                      0x0000000000000000
+#define TX_FES_STATUS_START_RESERVED_1B_LSB                                         62
+#define TX_FES_STATUS_START_RESERVED_1B_MSB                                         63
+#define TX_FES_STATUS_START_RESERVED_1B_MASK                                        0xc000000000000000
+
+
+/* Description		OPTIMAL_BW_TRY_COUNT
+
+			This field indicates how many times this scheduling command
+			 has been flushed by TXPCU  as a result of most desired 
+			BW not being available.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_OPTIMAL_BW_TRY_COUNT_OFFSET                             0x0000000000000008
+#define TX_FES_STATUS_START_OPTIMAL_BW_TRY_COUNT_LSB                                0
+#define TX_FES_STATUS_START_OPTIMAL_BW_TRY_COUNT_MSB                                3
+#define TX_FES_STATUS_START_OPTIMAL_BW_TRY_COUNT_MASK                               0x000000000000000f
+
+
+/* Description		NUMBER_OF_USERS
+
+			The number of users in this transmission.
+*/
+
+#define TX_FES_STATUS_START_NUMBER_OF_USERS_OFFSET                                  0x0000000000000008
+#define TX_FES_STATUS_START_NUMBER_OF_USERS_LSB                                     4
+#define TX_FES_STATUS_START_NUMBER_OF_USERS_MSB                                     10
+#define TX_FES_STATUS_START_NUMBER_OF_USERS_MASK                                    0x00000000000007f0
+
+
+/* Description		COEX_NACK_COUNT
+
+			Consumer: SCH
+			Producer: TXPCU
+			
+			The number of times PDG informed the SCHeduler module that
+			 for this scheduling command, the WLAN transmission can 
+			not be initialized due to getting a NACK response from the
+			 Coex engine, or PDG not being able to fit a transmission
+			 within the timing constraints given by Coex.
+			
+			Note that SCH will (re)set this count to 0 at the start 
+			of reading a new SCH command.
+			This count is maintained on a per ring basis by the SCHeduler
+			
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_COEX_NACK_COUNT_OFFSET                                  0x0000000000000008
+#define TX_FES_STATUS_START_COEX_NACK_COUNT_LSB                                     11
+#define TX_FES_STATUS_START_COEX_NACK_COUNT_MSB                                     15
+#define TX_FES_STATUS_START_COEX_NACK_COUNT_MASK                                    0x000000000000f800
+
+
+/* Description		CCA_ED0
+
+			Used by TXPCU to report CCA status at time of transmit bandwidth
+			 selection.  Each bit is a sample of BUSY/IDLE of ED[0] (as
+			 provided by SCH to TXPCU) for each 20 MHz sub-band. These
+			 stats could potentially be used in future for rate adaptation.
+			
+			Hamilton v1 used this to report 'current_tx_duration' but
+			 it was unreliable and changed to expand 'cca_ed0' to 16-bit.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_CCA_ED0_OFFSET                                          0x0000000000000008
+#define TX_FES_STATUS_START_CCA_ED0_LSB                                             16
+#define TX_FES_STATUS_START_CCA_ED0_MSB                                             31
+#define TX_FES_STATUS_START_CCA_ED0_MASK                                            0x00000000ffff0000
+
+
+/* Description		DISABLED_USER_BITMAP_31_0
+
+			Bitmap of users that are disabled for this transmission, 
+			LSB 32 bits
+			
+			TXPCU converts disabled_group_bitmap_* in 'PCU_PPDU_SETUP_START' 
+			from groups to users.
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_31_0_OFFSET                        0x0000000000000008
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_31_0_LSB                           32
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_31_0_MSB                           63
+#define TX_FES_STATUS_START_DISABLED_USER_BITMAP_31_0_MASK                          0xffffffff00000000
+
+
+
+#endif   // TX_FES_STATUS_START
diff --git a/hw/qca5332/tx_fes_status_start_ppdu.h b/hw/qca5332/tx_fes_status_start_ppdu.h
new file mode 100644
index 0000000..5a37bda
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_start_ppdu.h
@@ -0,0 +1,626 @@
+
+/* 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_PPDU_H_
+#define _TX_FES_STATUS_START_PPDU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_STATUS_START_PPDU 4
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_START_PPDU 2
+
+
+struct tx_fes_status_start_ppdu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ppdu_timestamp_lower_32                                 : 32; // [31:0]
+             uint32_t ppdu_timestamp_upper_32                                 : 32; // [31:0]
+             uint32_t subband_mask                                            : 16, // [15:0]
+                      ndp_frame                                               :  2, // [17:16]
+                      reserved_2b                                             :  2, // [19:18]
+                      coex_based_tx_bw                                        :  3, // [22:20]
+                      coex_based_ant_mask                                     :  8, // [30:23]
+                      reserved_2c                                             :  1; // [31:31]
+             uint32_t coex_based_tx_pwr_shared_ant                            :  8, // [7:0]
+                      coex_based_tx_pwr_ant                                   :  8, // [15:8]
+                      concurrent_bt_tx                                        :  1, // [16:16]
+                      concurrent_wlan_tx                                      :  1, // [17:17]
+                      concurrent_wan_tx                                       :  1, // [18:18]
+                      concurrent_wan_rx                                       :  1, // [19:19]
+                      coex_pwr_reduction_bt                                   :  1, // [20:20]
+                      coex_pwr_reduction_wlan                                 :  1, // [21:21]
+                      coex_pwr_reduction_wan                                  :  1, // [22:22]
+                      coex_result_alt_based                                   :  1, // [23:23]
+                      request_packet_bw                                       :  3, // [26:24]
+                      response_type                                           :  5; // [31:27]
+#else
+             uint32_t ppdu_timestamp_lower_32                                 : 32; // [31:0]
+             uint32_t ppdu_timestamp_upper_32                                 : 32; // [31:0]
+             uint32_t reserved_2c                                             :  1, // [31:31]
+                      coex_based_ant_mask                                     :  8, // [30:23]
+                      coex_based_tx_bw                                        :  3, // [22:20]
+                      reserved_2b                                             :  2, // [19:18]
+                      ndp_frame                                               :  2, // [17:16]
+                      subband_mask                                            : 16; // [15:0]
+             uint32_t response_type                                           :  5, // [31:27]
+                      request_packet_bw                                       :  3, // [26:24]
+                      coex_result_alt_based                                   :  1, // [23:23]
+                      coex_pwr_reduction_wan                                  :  1, // [22:22]
+                      coex_pwr_reduction_wlan                                 :  1, // [21:21]
+                      coex_pwr_reduction_bt                                   :  1, // [20:20]
+                      concurrent_wan_rx                                       :  1, // [19:19]
+                      concurrent_wan_tx                                       :  1, // [18:18]
+                      concurrent_wlan_tx                                      :  1, // [17:17]
+                      concurrent_bt_tx                                        :  1, // [16:16]
+                      coex_based_tx_pwr_ant                                   :  8, // [15:8]
+                      coex_based_tx_pwr_shared_ant                            :  8; // [7:0]
+#endif
+};
+
+
+/* Description		PPDU_TIMESTAMP_LOWER_32
+
+			Global timer value at start of Protection transmission
+*/
+
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_OFFSET                     0x0000000000000000
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_LSB                        0
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MSB                        31
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MASK                       0x00000000ffffffff
+
+
+/* Description		PPDU_TIMESTAMP_UPPER_32
+
+			Global timer value at start of Protection transmission
+*/
+
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_OFFSET                     0x0000000000000000
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_LSB                        32
+#define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MSB                        63
+#define TX_FES_STATUS_START_PPDU_PPDU_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 [8:4] for the 'Response_type' expected
+			 and bits [10:9] for the 'ndp_frame' field from 'TX_FES_SETUP.'
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_OFFSET                                0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_LSB                                   0
+#define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MSB                                   15
+#define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MASK                                  0x000000000000ffff
+
+
+/* Description		NDP_FRAME
+
+			Bit copied from the TX_FES_SETUP TLV
+			
+			<enum 0 no_ndp>No NDP transmission
+			<enum 1 beamforming_ndp>Beamforming NDP
+			<enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
+			<enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
+*/
+
+#define TX_FES_STATUS_START_PPDU_NDP_FRAME_OFFSET                                   0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_NDP_FRAME_LSB                                      16
+#define TX_FES_STATUS_START_PPDU_NDP_FRAME_MSB                                      17
+#define TX_FES_STATUS_START_PPDU_NDP_FRAME_MASK                                     0x0000000000030000
+
+
+/* Description		RESERVED_2B
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_START_PPDU_RESERVED_2B_OFFSET                                 0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_RESERVED_2B_LSB                                    18
+#define TX_FES_STATUS_START_PPDU_RESERVED_2B_MSB                                    19
+#define TX_FES_STATUS_START_PPDU_RESERVED_2B_MASK                                   0x00000000000c0000
+
+
+/* Description		COEX_BASED_TX_BW
+
+			Field valid for regular PPDU 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_PPDU_COEX_BASED_TX_BW_OFFSET                            0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_LSB                               20
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MSB                               22
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MASK                              0x0000000000700000
+
+
+/* Description		COEX_BASED_ANT_MASK
+
+			Field valid for regular PPDU or Response 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_PPDU_COEX_BASED_ANT_MASK_OFFSET                         0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_LSB                            23
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MSB                            30
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MASK                           0x000000007f800000
+
+
+/* Description		RESERVED_2C
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_START_PPDU_RESERVED_2C_OFFSET                                 0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_RESERVED_2C_LSB                                    31
+#define TX_FES_STATUS_START_PPDU_RESERVED_2C_MSB                                    31
+#define TX_FES_STATUS_START_PPDU_RESERVED_2C_MASK                                   0x0000000080000000
+
+
+/* Description		COEX_BASED_TX_PWR_SHARED_ANT
+
+			Field valid for regular PPDU or Response frame transmission
+			
+			
+			Granted tx power for the shared antenna.
+			
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_OFFSET                0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_LSB                   32
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MSB                   39
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MASK                  0x000000ff00000000
+
+
+/* Description		COEX_BASED_TX_PWR_ANT
+
+			Field valid for regular PPDU or Response frame transmission
+			
+			
+			Granted tx power for the unshared antenna
+			Transmit Power in s6.2 format. 
+			In units of 0.25 dBm
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_OFFSET                       0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_LSB                          40
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MSB                          47
+#define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MASK                         0x0000ff0000000000
+
+
+/* Description		CONCURRENT_BT_TX
+
+			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_PPDU_CONCURRENT_BT_TX_OFFSET                            0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_LSB                               48
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MSB                               48
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MASK                              0x0001000000000000
+
+
+/* Description		CONCURRENT_WLAN_TX
+
+			Field valid for regular PPDU or Response 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_PPDU_CONCURRENT_WLAN_TX_OFFSET                          0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_LSB                             49
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MSB                             49
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MASK                            0x0002000000000000
+
+
+/* Description		CONCURRENT_WAN_TX
+
+			Field valid for regular PPDU or Response 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_PPDU_CONCURRENT_WAN_TX_OFFSET                           0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_LSB                              50
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MSB                              50
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MASK                             0x0004000000000000
+
+
+/* Description		CONCURRENT_WAN_RX
+
+			Field valid for regular PPDU or Response 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_PPDU_CONCURRENT_WAN_RX_OFFSET                           0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_LSB                              51
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MSB                              51
+#define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MASK                             0x0008000000000000
+
+
+/* Description		COEX_PWR_REDUCTION_BT
+
+			Field valid for regular or response frame transmission.
+			When set, transmit power is reduced due to BT coex reason
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_OFFSET                       0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_LSB                          52
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MSB                          52
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MASK                         0x0010000000000000
+
+
+/* Description		COEX_PWR_REDUCTION_WLAN
+
+			Field valid for regular or response frame transmission.
+			When set, transmit power is reduced due to wlan coex reason
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_OFFSET                     0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_LSB                        53
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MSB                        53
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MASK                       0x0020000000000000
+
+
+/* Description		COEX_PWR_REDUCTION_WAN
+
+			Field valid for regular or response frame transmission.
+			When set, transmit power is reduced due to wan coex reason
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_OFFSET                      0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_LSB                         54
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MSB                         54
+#define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MASK                        0x0040000000000000
+
+
+/* Description		COEX_RESULT_ALT_BASED
+
+			Field valid for regular PPDU or Response 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_PPDU_COEX_RESULT_ALT_BASED_OFFSET                       0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_LSB                          55
+#define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MSB                          55
+#define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MASK                         0x0080000000000000
+
+
+/* Description		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_PPDU_REQUEST_PACKET_BW_OFFSET                           0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_LSB                              56
+#define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MSB                              58
+#define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MASK                             0x0700000000000000
+
+
+/* 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_PPDU_RESPONSE_TYPE_OFFSET                               0x0000000000000008
+#define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_LSB                                  59
+#define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MSB                                  63
+#define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MASK                                 0xf800000000000000
+
+
+
+#endif   // TX_FES_STATUS_START_PPDU
diff --git a/hw/qca5332/tx_fes_status_start_prot.h b/hw/qca5332/tx_fes_status_start_prot.h
new file mode 100644
index 0000000..0f5b330
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_start_prot.h
@@ -0,0 +1,595 @@
+
+/* 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
diff --git a/hw/qca5332/tx_fes_status_user_ppdu.h b/hw/qca5332/tx_fes_status_user_ppdu.h
new file mode 100644
index 0000000..8f46864
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_user_ppdu.h
@@ -0,0 +1,532 @@
+
+/* 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_USER_PPDU_H_
+#define _TX_FES_STATUS_USER_PPDU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FES_STATUS_USER_PPDU 6
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_USER_PPDU 3
+
+
+struct tx_fes_status_user_ppdu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t underflow_mpdu_count                                    :  9, // [8:0]
+                      data_underflow_warning                                  :  2, // [10:9]
+                      bw_drop_underflow_warning                               :  1, // [11:11]
+                      qc_eosp_setting                                         :  1, // [12:12]
+                      fc_more_data_setting                                    :  1, // [13:13]
+                      fc_pwr_mgt_setting                                      :  1, // [14:14]
+                      mpdu_tx_count                                           :  9, // [23:15]
+                      user_blocked                                            :  1, // [24:24]
+                      pre_trig_response_delim_count                           :  7; // [31:25]
+             uint32_t underflow_byte_count                                    : 16, // [15:0]
+                      coex_abort_mpdu_count_valid                             :  1, // [16:16]
+                      coex_abort_mpdu_count                                   :  9, // [25:17]
+                      transmitted_tid                                         :  4, // [29:26]
+                      txdma_dropped_mpdu_warning                              :  1, // [30:30]
+                      reserved_1                                              :  1; // [31:31]
+             uint32_t duration                                                : 16, // [15:0]
+                      num_eof_delim_added                                     : 16; // [31:16]
+             uint32_t psdu_octet                                              : 24, // [23:0]
+                      qos_buf_state                                           :  8; // [31:24]
+             uint32_t num_null_delim_added                                    : 22, // [21:0]
+                      reserved_4a                                             :  2, // [23:22]
+                      cv_corr_user_valid_in_phy                               :  1, // [24:24]
+                      nss                                                     :  3, // [27:25]
+                      mcs                                                     :  4; // [31:28]
+             uint32_t ht_control                                              : 32; // [31:0]
+#else
+             uint32_t pre_trig_response_delim_count                           :  7, // [31:25]
+                      user_blocked                                            :  1, // [24:24]
+                      mpdu_tx_count                                           :  9, // [23:15]
+                      fc_pwr_mgt_setting                                      :  1, // [14:14]
+                      fc_more_data_setting                                    :  1, // [13:13]
+                      qc_eosp_setting                                         :  1, // [12:12]
+                      bw_drop_underflow_warning                               :  1, // [11:11]
+                      data_underflow_warning                                  :  2, // [10:9]
+                      underflow_mpdu_count                                    :  9; // [8:0]
+             uint32_t reserved_1                                              :  1, // [31:31]
+                      txdma_dropped_mpdu_warning                              :  1, // [30:30]
+                      transmitted_tid                                         :  4, // [29:26]
+                      coex_abort_mpdu_count                                   :  9, // [25:17]
+                      coex_abort_mpdu_count_valid                             :  1, // [16:16]
+                      underflow_byte_count                                    : 16; // [15:0]
+             uint32_t num_eof_delim_added                                     : 16, // [31:16]
+                      duration                                                : 16; // [15:0]
+             uint32_t qos_buf_state                                           :  8, // [31:24]
+                      psdu_octet                                              : 24; // [23:0]
+             uint32_t mcs                                                     :  4, // [31:28]
+                      nss                                                     :  3, // [27:25]
+                      cv_corr_user_valid_in_phy                               :  1, // [24:24]
+                      reserved_4a                                             :  2, // [23:22]
+                      num_null_delim_added                                    : 22; // [21:0]
+             uint32_t ht_control                                              : 32; // [31:0]
+#endif
+};
+
+
+/* Description		UNDERFLOW_MPDU_COUNT
+
+			The MPDU count correctly received from TX DMA when the first
+			 underrun condition was detected
+			<legal 0-256>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_LSB                            0
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_MSB                            8
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_MASK                           0x00000000000001ff
+
+
+/* Description		DATA_UNDERFLOW_WARNING
+
+			Mac data underflow warning for this user
+			
+			<enum 0 no_data_underrun> No data underflow
+			<enum 1 data_underrun_between_mpdu> PCU experienced data
+			 underflow in between MPDUs
+			<enum 2 data_underrun_within_mpdu> PCU experienced data 
+			underflow within an MPDU
+			<legal 0-2>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_OFFSET                       0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_LSB                          9
+#define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_MSB                          10
+#define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_MASK                         0x0000000000000600
+
+
+/* Description		BW_DROP_UNDERFLOW_WARNING
+
+			When set, data underflow happened while TXPCU was busy with
+			 dropping a frame that is only allowed to go out at certain
+			 BW, which is not the BW of the current transmission
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_OFFSET                    0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_LSB                       11
+#define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_MSB                       11
+#define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_MASK                      0x0000000000000800
+
+
+/* Description		QC_EOSP_SETTING
+
+			This field indicates if TX PCU set the eosp bit in the QoS
+			 control field for this user (indicated in field User_Id.)
+			
+			0: No action
+			1: eosp bit is set in all the transmitted frames. This is
+			 done upon request of the PDG.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_OFFSET                              0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_LSB                                 12
+#define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_MSB                                 12
+#define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_MASK                                0x0000000000001000
+
+
+/* Description		FC_MORE_DATA_SETTING
+
+			This field indicates what the setting was of the More data
+			 bit in the Frame control field for this user (indicated
+			 in field User_Id.) 
+			
+			Note that TXPCU, depending on programming, might overwrite
+			 this bit in the Frame control field or just passes on what
+			 SW and/or OLE has already programmed. Either way, TXPCU
+			 just blindly copies the final setting of this "more Data" 
+			bit in the frame control field into this field in the TLV.
+			
+			
+			0: more_data bit NOT set
+			1: more_data bit is set
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_LSB                            13
+#define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_MSB                            13
+#define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_MASK                           0x0000000000002000
+
+
+/* Description		FC_PWR_MGT_SETTING
+
+			This field indicates what the setting was of the pwr bit
+			 in the Frame control field for this user (indicated in 
+			field User_Id.)
+			
+			Note that TXPCU never manipulates the pwr bit in the FC 
+			field. Generating the correct setting is all managed by 
+			TX OLE.
+			TXPCU just reports here what the pwr setting was of the (last) 
+			transmitted MPDU.
+			
+			0: pwr_mgt bit NOT set
+			1: pwr_mgt bit is set
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_OFFSET                           0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_LSB                              14
+#define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_MSB                              14
+#define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_MASK                             0x0000000000004000
+
+
+/* Description		MPDU_TX_COUNT
+
+			Number of MPDU frames transmitted
+			
+			Note: MPDUs that had an underrun during transmission will
+			 still be listed here. The assumption is that underrun is
+			 a very rare occasion, and any miscounting can therefor 
+			be accepted. If underrun happens too often, SW should change
+			 the density settings.
+			<legal 0-256>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_OFFSET                                0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_LSB                                   15
+#define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_MSB                                   23
+#define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_MASK                                  0x0000000000ff8000
+
+
+/* Description		USER_BLOCKED
+
+			When set, TXPCU received the TX_PEER_ENTRY TLV with bit 'Block_this_user' 
+			set. As a result TXDMA did not push in any MPDUs for this
+			 user and non were expected to be transmitted. TXPCU will
+			 therefor NOT report any underrun conditions for this user
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_OFFSET                                 0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_LSB                                    24
+#define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_MSB                                    24
+#define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_MASK                                   0x0000000001000000
+
+
+/* Description		PRE_TRIG_RESPONSE_DELIM_COUNT
+
+			This field is only valid when this TX_FES_STATUS_USER_PPDU
+			 is generated in the context of sending a response to a 
+			received trigger frame....(=> TX_FES_STATUS start indicated
+			 for field Transmit_start_reason ==  Trigger_based_transmit_start)
+			
+			
+			The number of NULL delimiters the TXPCU passed on to the
+			 PHY before any real MPDU (response) data is given to the
+			 PHY that originated from the SCHeduler command.
+			
+			NOTE that this should not be flagged as an underrun condition.
+			
+			
+			In units of 32 delimiters.
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_OFFSET                0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_LSB                   25
+#define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_MSB                   31
+#define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_MASK                  0x00000000fe000000
+
+
+/* Description		UNDERFLOW_BYTE_COUNT
+
+			The number of bytes correctly received for this MPDU when
+			 the first underrun condition was detected
+			
+			In case of self-gen + SCH related data, self-gen will not
+			 be part of the underflow byte count. For example, in case
+			 of BA/CBF, if underrun is hit immediately after BA/CBF 
+			is sent, the underflow byte count will be 0.the BA/CBF bytes
+			 will not be part of the underflow byte count.
+*/
+
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_OFFSET                         0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_LSB                            32
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_MSB                            47
+#define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_MASK                           0x0000ffff00000000
+
+
+/* Description		COEX_ABORT_MPDU_COUNT_VALID
+
+			When set to 1, the (A-MPDU) transmission was silently aborted
+			 in the middle of transmission. The PHY faked the remaining
+			 transmission on the medium, so that TX PCU is still waiting
+			 for the BA frame to be received.  
+*/
+
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_OFFSET                  0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_LSB                     48
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_MSB                     48
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_MASK                    0x0001000000000000
+
+
+/* Description		COEX_ABORT_MPDU_COUNT
+
+			Field only valid when 'Coex_abort_mpdu_count_valid' is set.
+			
+			The number of MPDU frames that were properly sent bdoefore
+			 the coex transmit abort request was received
+			<legal 0-256>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_OFFSET                        0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_LSB                           49
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_MSB                           57
+#define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_MASK                          0x03fe000000000000
+
+
+/* Description		TRANSMITTED_TID
+
+			TID field blindy copied over from the TX_QUEUE_EXTENSION
+			 TLV, field qos_ctrl[3:0]
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_OFFSET                              0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_LSB                                 58
+#define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_MSB                                 61
+#define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_MASK                                0x3c00000000000000
+
+
+/* Description		TXDMA_DROPPED_MPDU_WARNING
+
+			Indication to FW a warning that Tx DMA has dropped MPDUs
+			 due to SFM FIFO full condition
+			TXPCU fills this from OR of all TXDMA_dropped_mpdu_warning
+			 in 'TX_MPDU_STARTs' for this PPDU.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_OFFSET                   0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_LSB                      62
+#define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_MSB                      62
+#define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_MASK                     0x4000000000000000
+
+
+/* Description		RESERVED_1
+
+			Reserved and not used by HW
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_RESERVED_1_OFFSET                                   0x0000000000000000
+#define TX_FES_STATUS_USER_PPDU_RESERVED_1_LSB                                      63
+#define TX_FES_STATUS_USER_PPDU_RESERVED_1_MSB                                      63
+#define TX_FES_STATUS_USER_PPDU_RESERVED_1_MASK                                     0x8000000000000000
+
+
+/* Description		DURATION
+
+			The value of the duration field that TXPCU inserted in transmitted
+			 frames, for Tx Monitor to report
+			
+			For frames of encap type Ethernet or 802_3 TXPCU will always
+			 insert this value
+			
+			
+			For frames of encap type: RAW and Native WiFi, TXPCU will
+			 check the 'Duration_field_mask' setting in TX_RAW_OR_NATIVE_FRAME_SETUP
+			 TLV to find out if overwrite is enabled. (This is per user)
+			
+			
+			In case of multi TID transmission of Multi STA transmission, 
+			TXPCU will look at the 'TX_RAW_OR_NATIVE_FRAME_SETUP' of
+			 the 'first user'
+			Hamilton v1 used this for 'num_null_delim_added' and bits
+			 [15:0] of word 4 for this field.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_DURATION_OFFSET                                     0x0000000000000008
+#define TX_FES_STATUS_USER_PPDU_DURATION_LSB                                        0
+#define TX_FES_STATUS_USER_PPDU_DURATION_MSB                                        15
+#define TX_FES_STATUS_USER_PPDU_DURATION_MASK                                       0x000000000000ffff
+
+
+/* Description		NUM_EOF_DELIM_ADDED
+
+			The total number of EOF pad delimiters added by TXPCU to
+			 the current PPDU for the MD/multi-TID group this user belongs
+			 to
+			
+			Set to 0xFFFF if the number exceeds the field width
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_OFFSET                          0x0000000000000008
+#define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_LSB                             16
+#define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_MSB                             31
+#define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_MASK                            0x00000000ffff0000
+
+
+/* Description		PSDU_OCTET
+
+			Field only valid in case in 'TX_FES_STATUS_START' the field
+			 Transmit_start_reason != Trigger_based_transmit_start
+			
+			PSDU length in octets which includes all useful data in 
+			a packet which includes EOF padding and final padding (including
+			 the last 0 - 3 bytes).
+			
+			This is copied by TXPCU from 'PCU_PPDU_SETUP_USER.'
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_OFFSET                                   0x0000000000000008
+#define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_LSB                                      32
+#define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_MSB                                      55
+#define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_MASK                                     0x00ffffff00000000
+
+
+/* Description		QOS_BUF_STATE
+
+			The value of the buffer state field in the QoS control that
+			 TXPCU inserted in transmitted frames, for Tx Monitor to
+			 report
+			
+			TXPCU checks the '*Buf_state*' settings in 'TX_QUEUE_EXTENSION' 
+			TLV to determine the value to insert.
+			
+			If TXPCU did not overwrite the buffer state field, this 
+			shall be set to 0x0.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_OFFSET                                0x0000000000000008
+#define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_LSB                                   56
+#define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_MSB                                   63
+#define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_MASK                                  0xff00000000000000
+
+
+/* Description		NUM_NULL_DELIM_ADDED
+
+			The total number of non-EOF pad/null delimiters added by
+			 TXPCU to the current PPDU for this user
+			
+			Set to 0x3FFFFF if the number exceeds the field width
+			Hamilton v1 used bits [15:0] for 'Duration' and bits [23:16] 
+			for 'Qos_Buf_state' using bits [15:0] of word 2 for this
+			 field.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_OFFSET                         0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_LSB                            0
+#define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_MSB                            21
+#define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_MASK                           0x00000000003fffff
+
+
+/* Description		RESERVED_4A
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_RESERVED_4A_OFFSET                                  0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_RESERVED_4A_LSB                                     22
+#define TX_FES_STATUS_USER_PPDU_RESERVED_4A_MSB                                     23
+#define TX_FES_STATUS_USER_PPDU_RESERVED_4A_MASK                                    0x0000000000c00000
+
+
+/* Description		CV_CORR_USER_VALID_IN_PHY
+
+			PDG sets this as 1 for up to 8 users enabled in 'PHYTX_CV_CORR_STATUS' 
+			after CV correlation, to be copied from 'PCU_PPDU_SETUP_USER.'
+			
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_OFFSET                    0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_LSB                       24
+#define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_MSB                       24
+#define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_MASK                      0x0000000001000000
+
+
+/* Description		NSS
+
+			Number of Spatial Streams occupied by the User, to be copied
+			 from 'PCU_PPDU_SETUP_USER' by TXPCU
+			
+			<enum 0 1_spatial_stream>Single spatial stream
+			<enum 1 2_spatial_streams>2 spatial streams
+			<enum 2 3_spatial_streams>3 spatial streams
+			<enum 3 4_spatial_streams>4 spatial streams
+			<enum 4 5_spatial_streams>5 spatial streams
+			<enum 5 6_spatial_streams>6 spatial streams
+			<enum 6 7_spatial_streams>7 spatial streams
+			<enum 7 8_spatial_streams>8 spatial streams
+*/
+
+#define TX_FES_STATUS_USER_PPDU_NSS_OFFSET                                          0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_NSS_LSB                                             25
+#define TX_FES_STATUS_USER_PPDU_NSS_MSB                                             27
+#define TX_FES_STATUS_USER_PPDU_NSS_MASK                                            0x000000000e000000
+
+
+/* Description		MCS
+
+			Modulation Coding Scheme for the User, to be copied from
+			 'PCU_PPDU_SETUP_USER' by TXPCU
+			
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_MCS_OFFSET                                          0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_MCS_LSB                                             28
+#define TX_FES_STATUS_USER_PPDU_MCS_MSB                                             31
+#define TX_FES_STATUS_USER_PPDU_MCS_MASK                                            0x00000000f0000000
+
+
+/* Description		HT_CONTROL
+
+			The value of the HT control field that TXPCU inserted in
+			 transmitted frames, for Tx Monitor to report
+			
+			TXPCU checks the various HT-control-related settings in 'TX_QUEUE_EXTENSION' 
+			TLV to determine the value to insert.
+			
+			If TXPCU did not overwrite the HT control field, this shall
+			 be set to 0x0.
+			<legal all>
+*/
+
+#define TX_FES_STATUS_USER_PPDU_HT_CONTROL_OFFSET                                   0x0000000000000010
+#define TX_FES_STATUS_USER_PPDU_HT_CONTROL_LSB                                      32
+#define TX_FES_STATUS_USER_PPDU_HT_CONTROL_MSB                                      63
+#define TX_FES_STATUS_USER_PPDU_HT_CONTROL_MASK                                     0xffffffff00000000
+
+
+
+#endif   // TX_FES_STATUS_USER_PPDU
diff --git a/hw/qca5332/tx_fes_status_user_response.h b/hw/qca5332/tx_fes_status_user_response.h
new file mode 100644
index 0000000..92b170a
--- /dev/null
+++ b/hw/qca5332/tx_fes_status_user_response.h
@@ -0,0 +1,192 @@
+
+/* 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_USER_RESPONSE_H_
+#define _TX_FES_STATUS_USER_RESPONSE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phytx_abort_request_info.h"
+#define NUM_OF_DWORDS_TX_FES_STATUS_USER_RESPONSE 2
+
+#define NUM_OF_QWORDS_TX_FES_STATUS_USER_RESPONSE 1
+
+
+struct tx_fes_status_user_response {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t fes_transmit_result                                     :  4, // [3:0]
+                      reserved_0                                              : 28; // [31:4]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+             uint16_t reserved_after_struct16                                 : 16; // [31:16]
+#else
+             uint32_t reserved_0                                              : 28, // [31:4]
+                      fes_transmit_result                                     :  4; // [3:0]
+             uint32_t reserved_after_struct16                                 : 16; // [31:16]
+             struct   phytx_abort_request_info                                  phytx_abort_request_info_details;
+#endif
+};
+
+
+/* Description		FES_TRANSMIT_RESULT
+
+			Transmit result:
+			
+			<enum 0 tx_ok> Successful transmission of entire Frame exchange
+			 sequence
+			<enum 1 prot_resp_rx_timeout> 
+			No Protection response frame received so timeout is triggered. 
+			
+			<enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
+			 so timeout is triggered. 
+			<enum 3 resp_frame_crc_err> Response frame was received 
+			with an invalid FCS.
+			<enum 4 SU_Response_type_mismatch> Response frame is received
+			 without CRC error but it's not matched with expected SU_Response_type. 
+			
+			<enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
+			 any error but the Nr, Nc, BW, type or token in VHT MIMO
+			 control field is not matched with expected values which
+			 are specified by TX_FES_SETUP.cbf_* fields. 
+			 <enum 7 MU_Response_type_mismatch> Response frame is received
+			 without CRC error but it's not matched with expected SU_Response_type. 
+			
+			<enum 8 MU_Response_mpdu_not_valid>  For this user, no MPDU
+			 was received at all, or all received MPDUs had an FCS error.
+			
+			
+			<enum 9 MU_UL_not_enough_user_response> An MU UL response
+			 reception was expected. That response came but the threshold
+			 for number of successful user receptions was not met.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			<enum 10 Transmit_data_null_ratio_not_met> transmission 
+			was successful and proper responses have been received. 
+			But the required ratio between useful MPDU data and null
+			 delimiters was not met as specified by field : Fes_continuation_ratio_threshold. 
+			The FES (and potentially the SIFS burst) shall be terminated
+			 by the SCHeduler
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			
+			<enum 6 TB_ranging_resp_timeout> A TB ranging response was
+			 expected for a sounding TF, but the response did not arrive
+			 and timeout is triggered.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			<enum 11 tb_ranging_resp_mismatch> A TB ranging response
+			 was expected for a sounding TF, but the reception did not
+			 match the expected response.
+			NOTE: This e-num will only be used in the TX_FES_STATUS_END
+			 TLV...
+			
+			<legal 0-11>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_OFFSET                      0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_LSB                         0
+#define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MSB                         3
+#define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MASK                        0x000000000000000f
+
+
+/* Description		RESERVED_0
+
+			Bits [15:4]: BAR_start_sequence_number:
+			
+			Starting sequence number to be overwritten by TXPCU for 
+			BAR or MU-BAR Trigger, to be copied from 'MPDU_QUEUE_OVERVIEW' 
+			by TXPCU
+			
+			Bit [16]: BAR_SSN_overwrite_enable:
+			
+			Enable for TXPCU overwrite of the starting sequence number
+			 for BAR or MU-BAR Trigger, to be copied from 'TX_QUEUE_EXTENSION' 
+			by TXPCU
+			
+			Not supported in Hamilton v1
+			<legal 0-8191>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_OFFSET                               0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_LSB                                  4
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_MSB                                  31
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_MASK                                 0x00000000fffffff0
+
+
+/* Description		PHYTX_ABORT_REQUEST_INFO_DETAILS
+
+			The reason why PHYTX is requesting an abort
+*/
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Reason for early termination of TX packet by the PHY 
+			
+			<enum_type PHYTX_ABORT_ENUM>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000
+
+
+/* Description		USER_NUMBER
+
+			For some errors, the user for which this error was detected
+			 can be indicated in this field.
+			<legal 0-36>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 40
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 45
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f0000000000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB   46
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB   47
+#define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK  0x0000c00000000000
+
+
+/* Description		RESERVED_AFTER_STRUCT16
+
+			<legal 0>
+*/
+
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_OFFSET                  0x0000000000000000
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_LSB                     48
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_MSB                     63
+#define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_MASK                    0xffff000000000000
+
+
+
+#endif   // TX_FES_STATUS_USER_RESPONSE
diff --git a/hw/qca5332/tx_flush_req.h b/hw/qca5332/tx_flush_req.h
new file mode 100644
index 0000000..dd50ed4
--- /dev/null
+++ b/hw/qca5332/tx_flush_req.h
@@ -0,0 +1,752 @@
+
+/* 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_FLUSH_REQ_H_
+#define _TX_FLUSH_REQ_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_FLUSH_REQ 2
+
+#define NUM_OF_QWORDS_TX_FLUSH_REQ 1
+
+
+struct tx_flush_req {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t flush_req_reason                                        :  8, // [7:0]
+                      phytx_abort_reason                                      :  8, // [15:8]
+                      flush_req_user_number_or_link_id                        :  6, // [21:16]
+                      mlo_abort_reason                                        :  5, // [26:22]
+                      reserved_0a                                             :  5; // [31:27]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             :  5, // [31:27]
+                      mlo_abort_reason                                        :  5, // [26:22]
+                      flush_req_user_number_or_link_id                        :  6, // [21:16]
+                      phytx_abort_reason                                      :  8, // [15:8]
+                      flush_req_reason                                        :  8; // [7:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		FLUSH_REQ_REASON
+
+			The reason why the flush request was generated.
+			
+			<enum 0 reserved_code>This is included for clean implementation
+			 and verification. This code should NOT be used during a
+			 valid FLUSH. It is used as a keeper value when flush logic
+			 is idle
+			<enum 1 txpcu_flreq_code_txop_exceeded>Flush request issued
+			 by TXPCU in case of a WCOEX abort.
+			<enum 2 crypt_flreq_rx_int_tx>This is a corner case scenario. 
+			A situation where:
+			a.A RX is just over and CCA indication is IDLE
+			b.Crypt is still busy decrypting
+			c.A TX just starts.
+			The TX should be tried later. This situation may be rare. 
+			Just taking an extra precaution.
+			<enum 3 txpcu_flreq_code_rts_pkt_cca_abort>This is the static
+			 BW failure happening right after start_tx for either RTS
+			 frame or data packet
+			<enum 4 txpcu_flreq_code_cts_cca_abort>This is the static
+			 BW failure in the protection sequence (CTS).
+			<enum 5 pdg_flreq_code_txop_abort>This is PDG signaling 
+			not enough TXOP for transmission
+			<enum 6 sw_explicit_flush_termination>When SW issues a flush
+			 WHICH CAUSES AN ONGOING FES to terminate
+			<enum 7 fes_stp_not_enough_txop_rem>Not enough TXOP remaining
+			 in either SW or HW mode. This checks if the remaining TXOP
+			 < a parameterized minimum time. Currently half SIFS duration
+			 (5 us).
+			<enum 8 hwsch_sch_tlv_zero_hdr_err>HWSCH flush when Parser
+			 engine encounters a header with all zeros in the DWORD
+			<enum 9 fes_stp_tlv_time_exceeded_bkof_exp>Issued in case
+			 TLV transmission exceeds start_tx time
+			<enum 10 fes_stp_sw_fes_time_gt_hw>SW mode abort. When HWSCH
+			 determines that none of the SW programmed (upto 3) BW times
+			 can fit into the current TXOP remaining
+			<enum 11 txpcu_flreq_ppdu_allow_bw_fields_not_set>Flush 
+			request issued by TXPCU in case none of the PPDU_ALLOW_BW_* 
+			fields are set in PCU_PPDU_SETUP TLV
+			<enum 12 txpcu_false_mu_reception>Flush request issued by
+			 TXPCU if RXPCU initiates a response generation for a MU
+			 reception even though MU reception was not expected
+			<enum 13 hwsch_coex_abort>Flush request issued by HWSCH 
+			when a coex event caused this transmit to be aborted
+			<enum 14 hwsch_svd_rdy_timeout>Flush request issued by HWSCH
+			 when the PHY does not return the SVD_READY before a timeout
+			 expires
+			<enum 15 num_mpdu_count_zero>Flush request issued by TXPCU
+			 when the number of MPDU counter for selected BW is zero
+			
+			<enum 16 unsupported_cbf>Flush request issued by TXPCU if
+			 TXPCU receives TX_PKT_END with error_unsupported_cbf during
+			 CV transfer.
+			<enum 17 txpcu_flreq_pcu_ppdu_setup_init_not_valid>Indicates
+			 TXPCU has not received PCU_PPDU_SETUP_INIT from PDG, by
+			 the time it received PRE_START_TX from HWSCH.
+			<enum 18 txpcu_flreq_pcu_ppdu_setup_start_not_valid>Indicates
+			 TXPCU has not received PCU_PPDU_SETUP_START from PDG, by
+			 the time it received START_TX from HWSCH.
+			<enum 19 txpcu_flreq_tx_phy_descriptor_not_valid>Indicates
+			 TXPCU has not received TX_PHY_DESCRIPTOR within REQD_TLVS_WAIT_TIME
+			 after receiving START_TX from HWSCH.
+			<enum 20 txpcu_req_tlvs_timeout_for_cbf>TXPCU did nor receive
+			 the CBF info TLVs from the PHY fast enough which resulted
+			 in a timeout.
+			<enum 21 txdma_flreq_no_of_mpdu_less_than_limit_status>Indicates
+			 the total number of MPDUs that needs to be send out by 
+			TXDMA is less than the number indicated by PDG/TXPCU in 
+			the MPDU_LIMIT_STATUS
+			<enum 22 txole_flreq_frag_en_amsdu_ampdu>Fragmentation is
+			 enabled in TX_FES_SETUP for an AMSDU or AMPDU
+			<enum 23 txole_flreq_more_frag_set_for_last_seg>more_frag
+			 bit in TX_FES_SETUP TLV is set for the last MPDU fragment
+			
+			<enum 24 txpcu_flreq_start_tx_bw_mismatch>Indicates TXPCU
+			 has detected a mismatch between BWs detected at PRE_START_TX
+			 and START_TX
+			<enum 25 txpcu_flreq_coex_bw_not_allowed>flush request and
+			 is asserted by TXPCU when the final negotiated BW from 
+			COEX is not allowed by SW
+			<enum 26 txole_flreq_frag_en_sw_encrypted>flush request 
+			and is asserted by TXPCU when the final negotiated BW from
+			 COEX is not allowed by SW
+			<enum 27 txole_flreq_frag_en_buffer_chaining>Fragmentation
+			 is enabled in raw mode buffer chaining mode.
+			<enum 28 txole_flreq_pv1_type3_amsdu_error>A1 and A2 set
+			 to MAC addresses for 11ah PV1 short frame which is an AMSDU
+			
+			<enum 29 txole_flreq_pv1_wrong_key_type>An unsupported key_type
+			 is set for a PV1 frames. WEP, TKIP and WAPI are not supported
+			 for PV1 frames
+			<enum 30 txole_flreq_illegal_frame>Unexpected Tx Mpdu length. 
+			Asserted if the MSDU PACKET TLV length is less than the 
+			expected WMAC header
+			<enum 31 pdg_flreq_coex_reasons>Asserted by PDG when COEX
+			 related logic in PDG requires a flush request.
+			<enum 32 wifi_txole_no_full_msdu_for_checksum_en>Full MSDU
+			 packet was not provided by TXDMA when checksum/TSO/fragmentation
+			 was enabled
+			<enum 33 wifi_txole_length_mismatch_802_3_eth_frame>The 
+			length field in the incoming 802.3 ethernet frame doesn't
+			 match with the actual number of bytes in the data TLV.
+			<enum 34 wifi_txole_pv0_amsdu_frame_err>Non-QoS frames are
+			 queued as part of AMSDU
+			<enum 35 wifi_txole_pv0_wrong_key_type>Key type in peer 
+			table set to NO_CIPHER for protected frames
+			<enum 36 wifi_fes_stp_cca_busy_in_pifs>This flush is initiated
+			 by scheduler when (if enabled) CCA goes busy in the middle
+			 of a PIFS burst
+			<enum 37 prot_frame_data_underrun>This flush is initiated
+			 by TXPCU when a protection frame is send, but TXPCU has
+			 not received address fields in time.
+			<enum 38 pdg_no_length_received>PDG generated this flush
+			 request because not one MPDU length info has been received
+			 at the required timeout (which is programmable)
+			<enum 39 pdg_wrong_preamble_req_order>PDG generated this
+			 flush request because PHY issued an unexpected preamble
+			 request type
+			<enum 40 txpcu_flreq_retry_for_optimal_bw>The most desired
+			 BW was not available, and TXPCU would like to try the most
+			 optimal transmit BW again after a new BO period.
+			<enum 41 wifi_txole_incomplete_llc_frame>LLC received incomplete
+			 frame
+			<enum 42 pdg_cts_lower_bw_fit_err>PDG received a CTS frame
+			 that reduced the BW, As a result the MPDU does not fit 
+			in the previous reserved time, the thus this transmission
+			 is aborted
+			<enum 43 pdg_cts_shorter_dur_fit_err>PDG received a CTS 
+			frame that a reduced duration field. As a result the MPDU
+			 does not fit in the previous reserved time, the thus this
+			 transmission is aborted
+			
+			Note the duration field in CTS can be reduced as a result
+			 of COEX reasons
+			<enum 44 hwsch_sch_tlv_len_oor_err>HWSCH flush when Parser
+			 engine encounters a header whose length is greater than
+			 511 dwords. This excludes DUMMY TLVs.
+			<enum 45 hwsch_sch_tlv_taglen_mismatch_err>HWSCH flush when
+			 Parser engine encounters a header whose TAG does not match
+			 the XML specified length. This check excludes zero length
+			 and variable length TLVs
+			<enum 46 hwsch_sch_tlv_sfm_tracking_err>HWSCH flush when
+			 Parser engine encounters a non contiguous error check code, 
+			while reading SFM. This check is primarily to catch data
+			 write or read issues within the buffering process of scheduler
+			 TLV in SFM
+			<enum 47 wifitx_flush_rssi_above_obss_nonsrg_thr>When HWSCH
+			 attempts to transmit a packet based on OBSS_PD non-SRG 
+			opportunity, a flush with this code is generated if "ReceivedRssi
+			 from RXPCU > Scheduler_cmd.RssiAltNonSrg".
+			<enum 48 wifitx_flush_rssi_above_obss_srg_thr>When HWSCH
+			 attempts to transmit a packet based on OBSS_PD non-SRG 
+			opportunity, a flush with this code is generated if "ReceivedRssi
+			 from RXPCU > Scheduler_cmd.RssiAltSrg".
+			<enum 49 wifitx_flush_rssi_above_srp_pwr_thr>When HWSCH 
+			attempts to transmit a packet within an SRP opportunity 
+			window, a flush with this code is generated if "Scheduler_cmd.SrpAltPwr
+			 > SRP_less_RSSI".
+			<enum 50 hwsch_unexpected_sch_tlv_end_err>parse errors
+			<enum 51 hwsch_sch_tlv_tag_oor_err>HWSCH flush when Parser
+			 engine encounters a header whose TAG is not listed in the
+			 XML TAG table
+			<enum 52 txpcu_phytx_abort_err>An abort from PHY TX got 
+			received
+			<enum 53 txpcu_coex_soft_abort_err>A soft from coex got 
+			received before even a single MPDU got transmitted. Therefor
+			 transmission is terminated.
+			<enum 54 pdg_min_user_count_missed>PDG was asked to start
+			 an MU transmission, but the number of users with actual
+			 data was less then the threshold (Min_users_with_data_count)
+			
+			<enum 55 pdg_min_byte_count_missed>PDG was asked to start
+			 an SU transmission, but the number of bytes that PDG has
+			 been informed about that can be transmitted is less then
+			 the required threshold (min_ppdu_bytes)
+			<enum 56 pdg_min_mpdu_count_missed>PDG was asked to start
+			 an SU transmission, but the number of MPDUs that PDG has
+			 been informed about that can be transmitted is less then
+			 the required threshold (min_mpdus_in_ppdu)
+			<enum 57 pdg_cannot_pad_min_ppdu_time>PDG uses this code
+			 when the min PPDU time to pad up to (pad_min_ppdu_time) 
+			can not be met due to other boundary conditions (e.g. FES
+			 time/TXOP time/TBTT)
+			<enum 58 ucode_flush_request>Flush request initiated by 
+			the ucode (M3)
+			<enum 59 txpcu_resp_frame_flushed>TXPCU uses this code on
+			 encountering an error condition (e.g. late MACTX_PHY_DESC
+			 or CV error) while generating a response.
+			<enum 60 hwsch_sifs_burst_svd_ready_timeout>This flush code
+			 is used by HWSCH to indicate that during SIFS bursting, 
+			an SVD_READY timeout was detected, which resulted in the
+			 SIFS burst to be aborted.
+			<enum 61 txpcu_phy_data_request_to_early>TXPCU has not been
+			 properly initialized when the first data request from the
+			 PHY has been seen.
+			<enum 62 txpcu_trigger_response_cs_check_fail>TXPCU found
+			 that the medium was not idle for the Carries Sense check
+			 that PDG indicated was needed for the triggered response
+			 frame.
+			<enum 63 pdg_ofdma_max_unused_space_violation>PDG found 
+			out that when trying to assign the RUs among the available
+			 users, the number of unused RUs remained above the allowed
+			 threshold 
+			<enum 64 crypto_tx_user_capacity_exceeded>This happens when
+			 Crypto receives TLVs for more TX users than it can support
+			 at that point of time
+			<enum 65 crypto_tx_non_mu_key_type_rcvd>This happens when
+			 Crypto receives unsupported Key types (WEP, TKIP) for MU
+			
+			<enum 66 txpcu_cbf_resp_abort>CBF response generation by
+			 TXPCU ran into issues due to info not being available from
+			 the PHY
+			<enum 67 txpcu_phy_nap_received_during_tx>TXPCU received
+			 a PHY NAP TLV from rxpcu while a transmission was ongoing. 
+			The transmission will be terminated with this abort reason.
+			
+			<enum 68 rxpcu_trigger_with_fcs_error>RXPCU found out that
+			 the trigger frame that was received and for which the TX
+			 path has been activated to generate a response, had an 
+			FCS error.
+			<enum 69 pdg_flreq_coex_bt_higher_priority>Asserted by PDG
+			 when COEX indicated to PDG that the transmit request is
+			 NOT granted because a higher priority BT activity is ongoing.
+			
+			<enum 70 txpcu_txrx_conflict_detected>TXPCU detected a conflict
+			 between an FES transmission and a self-gen response transmission. 
+			This is when the PHY + RXPCU delays cause a self-gen to 
+			overlap with the pre-backoff time from HWSCH for the next
+			 FES.
+			<enum 71 pdg_mu_cts_ru_allocation_corruption>PDG received
+			 a MU-RTS trigger for which the CTS RU response setting 
+			is not valid
+			<enum 72 pdg_trig_for_blocked_ru>PDG received a trigger 
+			based transmission request for an RU size that is blocked
+			 by SW.
+			<enum 73 pdg_trig_response_mode_corruption>Asserted when
+			 PDG gets a TX_FES_SETUP with field "Fes_in_11ax_Trigger_response_config" 
+			not being in sync with what it was expecting.
+			<enum 74 pdg_invalid_trigger_config_received>PDG received
+			 OFDMA_TRIGGER_DETAILS and the configuration in there (which
+			 RXPCU gets from the trigger frame has invalid field value
+			 combinations
+			<enum 75 txole_msdu_too_long>This flush request will be 
+			asserted if the length of a checksum enabled MSDU is more
+			 than 2400 bytes.
+			<enum 76 txole_inconsistent_mesh>This flush request will
+			 be asserted if mesh_enable is set for an MSDU subframe 
+			while its not set for another MSDU subframe in the same 
+			AMSDU
+			<enum 77 txole_mesh_enable_for_ethernet>This flush request
+			 will be asserted if mesh_enable is set for an ethernet 
+			frame
+			<enum 78 txpcu_trig_response_mode_corruption>Asserted when
+			 TXPCU gets a TX_FES_SETUP with field "ofdma_triggered_response" 
+			not being in sync with what it was expecting.
+			<enum 79 pdg_11ax_invalid_rate_setup>PDG received an 11ax
+			 transmit set of parameters that is not allowed or not supported
+			
+			<enum 80 txpcu_trig_response_info_too_late>TXPCU generates
+			 this flush request because trigger response transmission
+			 setup info from the SCH was received too late
+			<enum 81 wifitx_flush_obss_pd_disabled_for_tx>When HWSCH
+			 attempts to transmit a packet having obss_pd disabled within
+			 an obss_pd opportunity window this flush code is generated
+			
+			<enum 82 wifitx_flush_srp_disabled_for_tx>When HWSCH attempts
+			 to transmit a packet having SRP disabled within an obss_pd
+			 opportunity window this flush code is generated
+			<enum 83 pdg_flreq_code_srp_sr_missed>In SRP SR, PDG will
+			 generate flush if receiving PDG_TX_REQ in a blocking window
+			 around SRP SR limit
+			<enum 84 pdg_rbo_user_limit_no_data>PDG generates when no
+			 data can be sent for the users specified by TX_FES_SETUP
+			 field "RBO_must_have_data_user_limit."
+			<enum 85 pdg_no_cbf_response_received>Used by PDG for an
+			 MU-MIMO sounding plus steering burst when it did not receive
+			 CBF from any recipient STA
+			<enum 86 pdg_flreq_unexpected_notify_frame>PDG generates
+			 when encountering a 'HARD_NOTIFY' or a 'SEMI_HARD_NOTIFY' 
+			frame unless ignore_tx_notify_setting is set in 'PDG_FES_SETUP'
+			
+			<enum 87 pdg_flush_min_ppdu_time_missed>PDG was asked to
+			 start a transmission, but the time required to transmit
+			 the PPDU is less than the required threshold (flush_min_ppdu_time)
+			
+			<enum 88 txpcu_flreq_rxpcu_setup_config_error>Used by TXPCU
+			 when Tx is complete and it is about to generate 'EXPECTED_RESPONSE' 
+			but it has not got any 'RXPCU_SETUP_COMPLETE' although 'rxpcu_setup_complete_present' 
+			was set in 'TX_FES_SETUP'
+			<enum 89 txpcu_flreq_late_trig_tlvs>Used by TXPCU when the
+			 'RECEIVED_TRIGER_INFO' TLV is sent to SCH after the 'pre_phy_desc' 
+			timer has expired, if enabled
+			<enum 90 pdg_flreq_notify_mpdu_late>Used by PDG when the
+			 first 'MPDU_INFO' is not available when sending 'PCU_PPDU_SETUP_START' 
+			so PDG has assumed a regular MPDU ('FW_tx_notify_frame = 
+			NO_TX_NOTIFY'), but later the MPDU turned out to be a notify
+			 frame, if enabled
+			<enum 91 txdma_flreq_sfm_full>TXDMA generates this flush
+			 request when it gets 'MPDU_INFO's for a user that it is
+			 unable to write into SFM since its SFM allocation is full.
+			
+			<enum 92 txpcu_flreq_pre_phy_desc_late>Used in TXPCU for
+			 generating a flush request when 'PRE_PHY_DESC' is received
+			 late (determined by a timer)
+			<enum 93 pdg_flreq_cannot_fit_trig_response>This flush request
+			 code is used by PDG if the trigger response MPDUs cannot
+			 be fit to avoid sending only null delimiters for e.g. unassociated
+			 UORA and colliding with another STA with valid data.
+			<enum 94 pdg_flreq_unexpected_fes_setup>Flush request used
+			 by PDG in case of unexpected 'TX_FES_SETUP'
+			<enum 95 pdg_flreq_code_mlo_abort>Flush request used by 
+			PDG in case of MLO constraints forcing an abort
+			<enum 96 hwsch_bkoff_trunc_seq_abort>Flush request used 
+			by HWSCH if an MLO backoff truncation request resulted in
+			 a forced abort to avoid windows too close to transmissions
+			
+			<enum 97 txole_flreq_illegal_frag_settings>Flush request
+			 used by TXOLE if fragmentation is requested but the settings
+			 are illegal
+			<enum 98 txpcu_flreq_mac_flex_overwrite_err>Flush request
+			 used by TXPCU when required overwrite TLVs are not received
+			 from microcode, or when overwrite TLVs are dropped in MAC
+			 due to SFM full condition
+			<enum 99 txpcu_lmr_req_timeout>Flush request by TXPCU if
+			 PHY does not respond to 'MACRX_LMR_READ_REQUEST' or 'MACRX_LMR_DATA_REQUEST' 
+			on time
+			<enum 100 txpcu_lmr_phyrx_err_abort>Flush request by TXPCU
+			 if PHY sent 'PHYRX_LMR_TRANSFER_ABORT' or 'PHYRX_LMR_READ_REQUEST_ACK' 
+			with status anything other than OK
+			<enum 101 txpcu_rx_bitmap_ack_mismatch>Flush request by 
+			TXPCU on getting a mismatched TLV from RXPCU for 'RX_FRAME_*BITMAP_ACK' (1Kbit
+			 instead of 256-bit or vice versa)
+			<enum 102 txpcu_rx_incorrect_ba_cnt_for_ampdu>Flush request
+			 by TXPCU on getting an 'RX_RESPONSE_REQUIRED_INFO' with
+			 A-MPDU set, VHT Ack clear and 'response_ba*_cnt' zero, 
+			to avoid a system hang
+			<enum 103 txpcu_flreq_cbf_done_delayed>Flush request by 
+			TXPCU on not getting a 'MACTX_CBF_DONE' from RXPCU after
+			 sending 'RESPONSE_END_STATUS' TLV
+			<enum 104 txpcu_flreq_sfm_full>Flush request by TXPCU if
+			 SFM indicates 'user_fifo_full'
+			<enum 105 pdg_flreq_calc_psdu_length_too_low>PDG was asked
+			 to start an MU transmission, but one of the users' RU is
+			 such that within the PPDU time the PSDU length that can
+			 be fit is too low (based on a threshold in a PDG register)
+			
+			<enum 106 pdg_flush_min_ppdu_time_obss_sr_missed>PDG was
+			 asked to start an OBSS PD SR transmission, but the time
+			 required to transmit the PPDU is less than the required
+			 threshold (flush_min_ppdu_time_obss_pd_sr)
+			<enum 107 pdg_flreq_code_txop_abort_obss_sr>PDG was asked
+			 to start an OBSS PD SR transmission, but the time required
+			 for the FES is more than the OBSS PPDU duration (max_fes_time_obss_pd_sr)
+			
+			<enum 108 pdg_flreq_cv_corr_tlv_timeout>PDG timed out waiting
+			 for CV correlation TLVs from microcode
+			<enum 109 pdg_flreq_pri_user_cbf_fail>Flush request from
+			 PDG if CV correlation is enabled and the 'PHYTX_CV_CORR_STATUS' 
+			from microcode indicates that the primary user's CBF has
+			 failed
+			<enum 110 hwsch_sfm_availability_check_fail>HWSCH-issued
+			 flush when the SFM availability check fails during a SIFS
+			 burst or when fetching part 2 TLVs
+			<enum 111 pdg_cannot_pad_response_time>PDG uses this code
+			 when the response time to pad up to (required_response_time) 
+			cannot be met due to the frame length in 'PDG_RESPONSE' 
+			exceeding the calculated padded length
+			<enum 112 ul_mu_rx_early_abort>Flush request to terminate
+			 an FES when RXPCU aborted an UL MU reception early because
+			 at the end of the "early_termination_window," the required
+			 number of users with at least one valid MPDU delimiter 
+			was not reached.
+			
+			This is unsupported in Beryllium.
+			<enum 113 reserved_flush_code_25>Placeholder for future 
+			needs
+			<enum 114 reserved_flush_code_26>TXPCU uses this code when
+			 more than the configured maximum CTS2SELF are being sent.
+			
+			<enum 115 reserved_flush_code_27>TXPCU uses this code when
+			 at the time of the main PPDU transmission, fewer than the
+			 configured minimum CTS2SELF were sent.
+			<enum 116 reserved_flush_code_28>Placeholder for future 
+			needs
+			<enum 117 reserved_flush_code_29>Placeholder for future 
+			needs
+			<enum 118 reserved_flush_code_30>Placeholder for future 
+			needs
+			<enum 119 reserved_flush_code_31>Placeholder for future 
+			needs
+			<enum 120 reserved_flush_code_32>Placeholder for future 
+			needs
+			<enum 121 reserved_flush_code_33>Placeholder for future 
+			needs
+			<enum 122 reserved_flush_code_34>Placeholder for future 
+			needs
+			<enum 123 reserved_flush_code_35>Placeholder for future 
+			needs
+			<enum 124 reserved_flush_code_36>Placeholder for future 
+			needs
+			<enum 125 reserved_flush_code_37>Placeholder for future 
+			needs
+			<enum 126 reserved_flush_code_38>Placeholder for future 
+			needs
+			<enum 127 unknown_flush_request_code>Used by SCH when it
+			 receives an undefined flush request reason code
+*/
+
+#define TX_FLUSH_REQ_FLUSH_REQ_REASON_OFFSET                                        0x0000000000000000
+#define TX_FLUSH_REQ_FLUSH_REQ_REASON_LSB                                           0
+#define TX_FLUSH_REQ_FLUSH_REQ_REASON_MSB                                           7
+#define TX_FLUSH_REQ_FLUSH_REQ_REASON_MASK                                          0x00000000000000ff
+
+
+/* Description		PHYTX_ABORT_REASON
+
+			Field only valid when Flush_req_reason == TXPCU_PHYTX_ABORT_ERR
+			
+			
+			<enum 0 no_phytx_error_reported>This value is the default
+			 value the MAC will fill in the status TLV (when not PHY
+			 abort was received).
+			
+			Note that when PHY generates the PHYTX_ABORT_REQUEST, this
+			 value shall never be used.
+			<enum 1 error_txtd_ifft_underrun>PHY ran out of transmit
+			 data due to transmit underrun - this field is user-specific
+			 (see user_number field)
+			<enum 2 error_tx_invalid_tlv>
+			<enum 3 error_tx_unexpected_tlv>
+			<enum 4 error_tx_pkt_end_error>
+			<enum 5 error_tx_bw_is_gt_dyn_bw>
+			<enum 6 error_txtd_pkt_start_error>
+			<enum 7 error_txfd_pre_phy_tlv_ooo>
+			<enum 8 error_txtd_mu_data_underrun>
+			<enum 9 error_tx_legacy_rate_illegal>
+			<enum 10 error_tx_fifo_error>
+			<enum 11 error_tx_ack_wd_error>
+			<enum 12 error_tx_tpc_miss>
+			<enum 13 error_mac_tx_abort>
+			<enum 14 error_tx_pcss_phy_desc_wdg_timeout>
+			<enum 15 error_unsupported_cbf>
+			<enum 16 error_cv_static_bandwidth_mismatch>
+			<enum 17 error_cv_dynamic_bandwidth_mismatch>
+			<enum 18 error_cv_unsupported_nss_total>
+			<enum 19 error_nss_bf_params_mismatch>
+			<enum 20 error_txbf_fail>
+			<enum 21 error_txbf_snd_fail>This used to be called 'error_illegal_nss.'
+			
+			<enum 22 error_otp_txbf>
+			<enum 23 error_tx_inv_chainmask>
+			<enum 24 error_cv_index_assign_overload>This error indicates
+			 that CV prefetch command indicated a CV index that is not
+			 available.
+			<enum 25 error_cv_index_delete>This error indicates that
+			 CV delete command indicated a CV index that did not contain
+			 any valid info
+			<enum 26 error_tx_he_rate_illegal>Error found with the HE
+			 transmission parameters
+			<enum 27 error_tx_pcss_wdg_timeout>
+			<enum 28 error_tx_tlv_tag_mismatch>
+			<enum 29 error_tx_cck_fifo_flush>
+			<enum 30 error_tx_no_mac_pkt_end>
+			<enum 31 error_tx_abort_for_mac_war>
+			<enum 32 error_tx_stuck>
+			<enum 33 error_tx_invalid_uplink_tlv>
+			<enum 34 error_txfd_txcck_illegal_tx_rate_error>
+			<enum 35 error_txfd_txcck_underrun_error>
+			<enum 36 error_txfd_mpi_req_grant_error>
+			<enum 37 error_txfd_control_tlv_fifo_ovfl_error>
+			<enum 38 error_txfd_tlv_fifo_overflow_error>
+			<enum 39 error_txfd_data_fifo_underflow_error>
+			<enum 40 error_txfd_data_fifo_overflow_error>
+			<enum 41 error_txfd_service_fifo_overflow_error>
+			<enum 42 error_txfd_he_sigb_fifo_overflow_error>
+			<enum 43 error_txfd_spurious_data_fifo_error>
+			<enum 44 error_txfd_he_siga_fifo_ovfl_error>
+			<enum 45 error_txfd_unknown_tlv_error>
+			<enum 46 error_txfd_mac_response_ordering_error>
+			<enum 47 error_txfd_unexpected_mac_pkt_end_error>
+			<enum 48 error_txfd_tlv_fifo_rd_hang_error>All FIFO read
+			 hang errors use this value.
+			<enum 49 error_txfd_tlv_fifo_no_rd_error>All FIFO no read
+			 errors use this value.
+			<enum 50 error_txfd_ordering_fifo_no_rd_error>
+			<enum 51 error_txfd_illegal_cf_tlv_error>
+			<enum 52 error_txfd_user_ru_hang_error>
+			<enum 53 error_txfd_stream_ru_hang_error>
+			<enum 54 error_txfd_num_pad_bits_error>
+			<enum 55 error_txfd_phy_abort_ack_wd_to_error>
+			<enum 56 error_txfd_pre_pkt_isr_not_done_before_phy_desc_error>
+			
+			<enum 57 error_txfd_bf_weights_not_ready_error>
+			<enum 58 error_txfd_req_timer_breach_error>
+			<enum 59 error_txfd_wd_to_error>
+			<enum 60 error_txfd_legacy_bf_weights_not_ready_error>
+			<enum 61 error_txfd_axi_slave_to_error>
+			<enum 62 error_txfd_hw_acc_error>
+			<enum 63 error_txfd_txb_req_fifo_underrun_error>
+			<enum 64 error_txfd_unknown_ru_alloc_error>
+			<enum 65 error_txfd_more_user_desc_per_user_tlvs_error>
+			<enum 66 error_txfd_ldpc_param_calc_to_error>
+			<enum 69 error_txfd_cbf_start_before_expect_cbf_clear_error>
+			
+			<enum 70 error_txfd_out_of_range_cbf_user_id_error>
+			<enum 71 error_txfd_less_cbf_data_error>
+			<enum 72 error_txfd_more_cbf_data_error>
+			<enum 73 error_txfd_cbf_done_not_received_error>
+			<enum 74 error_txfd_mpi_cbf_valid_to_error>
+			<enum 75 error_txfd_cbf_start_missing_error>
+			<enum 76 error_txfd_mimo_ctrl_error>
+			<enum 77 error_txfd_cbf_buffer_ovfl_error>
+			<enum 78 error_txfd_dma0_hang_error>
+			<enum 79 error_txfd_dma1_hang_error>
+			<enum 80 error_txfd_b2b_cbf_start_error>
+			<enum 81 error_txfd_b2b_cbf_done_error>
+			<enum 82 error_txfd_unsaved_cv_error>
+			<enum 83 error_txfd_wt_mem_wr_conflict_error>
+			<enum 84 error_txfd_wt_mem_rd_conflict_error>
+			<enum 85 error_txfd_qre_intf_to_error>
+			<enum 86 error_txfd_qre_txbf_stomp_rx_error>
+			<enum 87 error_txfd_qre_rx_stomp_txbf_error>
+			<enum 88 error_txfd_precoding_start_before_bf_param_clr_error>
+			
+			<enum 89 error_txfd_tone_map_lut_rd_conflict_error>
+			<enum 90 error_txfd_precoding_fifo_ovfl_error>
+			<enum 91 error_txfd_precoding_fifo_udfl_error>
+			<enum 92 error_txfd_txbf_axi_slave_to_error>
+			<enum 93 error_txfd_less_prefetch_tlvs_error>
+			<enum 94 error_txfd_more_prefetch_tlvs_error>
+			<enum 95 error_txfd_prefetch_fifo_ovfl_error>
+			<enum 96 error_txfd_prefetch_fifo_udfl_error>
+			<enum 97 error_txfd_precoding_error>
+			<enum 98 error_txfd_cv_ctrl_state_to_error>
+			<enum 99 error_txfd_txbfp_qre_tone_udfl_error>
+			<enum 100 error_txfd_less_bf_param_per_user_tlvs_error>
+			<enum 101 error_txfd_more_bf_param_per_user_tlvs_error>
+			<enum 102 error_txfd_bf_param_common_unexpected_error>
+			<enum 103 error_txfd_less_expect_cbf_per_user_tlvs_error>
+			
+			<enum 104 error_txfd_more_expect_cbf_per_user_tlvs_error>
+			
+			<enum 105 error_txfd_precoding_stg1_stg2_wait_to_error>
+			<enum 106 error_txfd_expect_cbf_per_user_before_common_error>
+			
+			<enum 107 error_txfd_prefetch_per_user_before_common_error>
+			
+			<enum 108 error_txfd_bf_param_per_user_before_common_error>
+			
+			<enum 109 error_txfd_ndp_cbf_bw_mismatch_error>
+			<enum 110 error_txtd_tx_pre_desc_error>
+			<enum 111 error_txtd_tx_desc_error>
+			<enum 112 error_txtd_start_error>
+			<enum 113 error_txtd_sym_error>
+			<enum 114 error_txtd_multi_sym_error>
+			<enum 115 error_txtd_pre_data_error>
+			<enum 116 error_txtd_pkt_data_error>
+			<enum 117 error_txtd_pkt_end_error>
+			<enum 118 error_txtd_tx_frame_unexp>
+			<enum 119 error_txtd_start_unexp>
+			<enum 120 error_txtd_fft_error_1>
+			<enum 121 error_txtd_fft_error_2>
+			<enum 122 error_txtd_uld_sym_cp_len_zero>
+			<enum 123 error_txtd_start_done>
+			<enum 124 error_txtd_start_nonidle>
+			<enum 125 error_txtd_tx_abort_nonidle>
+			<enum 126 error_txtd_tx_abort_done>
+			<enum 127 error_txtd_tx_abort_idle>
+			<enum 128 error_txtd_cck_sample_overflow>
+			<enum 129 error_txtd_cck_timeout>
+			<enum 130 error_txtd_ofdm_sym_mismatch>
+			<enum 131 error_txtd_tx_vld_unalign_error>
+			<enum 132 error_txtd_fft_cdc_fifo>This is the merged Rx/Tx
+			 CDC FIFO empty/full error code
+			<enum 133 error_mac_tb_ppdu_abort>All 'error_txtd_chn' codes
+			 use this value as well.
+			<enum 136 error_abort_req_from_macrx_enum_05>This code is
+			 used to abort the Tx when MAC Rx issues an abort request
+			 with code 05 "macrx_abort_too_much_bad_data."
+			<enum 137 error_tx_extra_sym_mismatch>
+			<enum 138 error_tx_vht_length_not_multiple_of_3>
+			<enum 139 error_tx_11b_rate_illegal>
+			<enum 140 error_tx_ht_rate_illegal>
+			<enum 141 error_tx_vht_rate_illegal>
+			<enum 142 error_mac_rf_only_abort>
+			<enum 255 error_tx_invalid_error_code>
+*/
+
+#define TX_FLUSH_REQ_PHYTX_ABORT_REASON_OFFSET                                      0x0000000000000000
+#define TX_FLUSH_REQ_PHYTX_ABORT_REASON_LSB                                         8
+#define TX_FLUSH_REQ_PHYTX_ABORT_REASON_MSB                                         15
+#define TX_FLUSH_REQ_PHYTX_ABORT_REASON_MASK                                        0x000000000000ff00
+
+
+/* Description		FLUSH_REQ_USER_NUMBER_OR_LINK_ID
+
+			Field only valid when Flush_req_reason == TXPCU_PHYTX_ABORT_ERR
+			 or PDG_FLREQ_CODE_{TXOP, MLO}_ABORT
+			
+			In case of TXPCU_PHYTX_ABORT_ERR, for some errors, the user
+			 for which this error was detected can be indicated in this
+			 field.
+			
+			In case of PDG_FLREQ_CODE_*_ABORT due to MLO, this field
+			 will carry the partner link ID and validity due to which
+			 the abort was initiated.
+			Bit [5]: partner link ID valid
+			Bits [4:3]: set to 0 
+			Bits [2:0]: partner link ID
+			<legal 0-39>
+*/
+
+#define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_OFFSET                        0x0000000000000000
+#define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_LSB                           16
+#define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_MSB                           21
+#define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_MASK                          0x00000000003f0000
+
+
+/* Description		MLO_ABORT_REASON
+
+			Field valid only when Flush_req_reason == PDG_FLREQ_CODE_{TXOP, 
+			MLO}_ABORT
+			
+			<enum 0 sw_blocked_self> SW-specified block of the peer 
+			for self-link
+			<enum 1 sw_blocked_partner> SW-specified block of the peer
+			 from a partner link
+			<enum 2 rx_ongoing> Blocked due to RX ongoing in partner
+			 link
+			<enum 3 cts2self_truncated> MLO truncated CTS2SELF leading
+			 to abort
+			<enum 4 max_padding_exceeded> Maximum padding exceeded
+			<enum 5 max_overlap_exceeded> Maximum overlap duration exceeded
+			
+			<enum 6 user_collision_threshold_exceeded> User collision
+			 threshold for MU exceeded
+			<enum 7 sw_blocked_vdev_id> SW-specified block due to VDEV
+			 ID collision with a non-MLO broadcast/multicast
+			<enum 8 r2r_response_truncated> 
+			<enum 10 emlsr_blackout> Blocked due to EMLSR black-out 
+			window
+			<enum 16 t2_response_changed> T2 response changed in 'MLO_TX_RESP'
+			
+			<enum 17 ppdu_duration_zero> PPDU duration zero in 'MLO_TX_RESP'
+			
+			<enum 18 ppdu_duration_bigger_than_allowed> PPDU duration
+			 bigger than allowed in non-response mode 'MLO_TX_RESP'
+			<enum 19 ppdu_padding_not_allowed> PPDU in non-A-MPDU format
+			 cannot be padded
+			<enum 20 resp_ppdu_duration_truncated> PPDU duration truncated
+			 in response mode 'MLO_TX_RESP'
+			<enum 21 ppdu_duration_limit> flush generated due to TXOP
+			 abort
+			<enum 22 overview_mpdu_cnt_zero> flush generated due to 
+			TXOP abort as MPDU count is zero for all users in 'MPDU_QUEUE_OVERVIEW'
+			
+			<enum 23 overview_not_ready> flush generated due to MLO 
+			abort as 'MPDU_QUEUE_OVERVIEW' is not ready for all users
+			 at PPDU phase
+			<enum 24 trigger_frame_mlo_alignment_fail> Trigger frame
+			 end-alignment cannot be met, e.g. due to LDPC extra symbol
+			
+			<enum 9 mlo_reserved>
+*/
+
+#define TX_FLUSH_REQ_MLO_ABORT_REASON_OFFSET                                        0x0000000000000000
+#define TX_FLUSH_REQ_MLO_ABORT_REASON_LSB                                           22
+#define TX_FLUSH_REQ_MLO_ABORT_REASON_MSB                                           26
+#define TX_FLUSH_REQ_MLO_ABORT_REASON_MASK                                          0x0000000007c00000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define TX_FLUSH_REQ_RESERVED_0A_OFFSET                                             0x0000000000000000
+#define TX_FLUSH_REQ_RESERVED_0A_LSB                                                27
+#define TX_FLUSH_REQ_RESERVED_0A_MSB                                                31
+#define TX_FLUSH_REQ_RESERVED_0A_MASK                                               0x00000000f8000000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define TX_FLUSH_REQ_TLV64_PADDING_OFFSET                                           0x0000000000000000
+#define TX_FLUSH_REQ_TLV64_PADDING_LSB                                              32
+#define TX_FLUSH_REQ_TLV64_PADDING_MSB                                              63
+#define TX_FLUSH_REQ_TLV64_PADDING_MASK                                             0xffffffff00000000
+
+
+
+#endif   // TX_FLUSH_REQ
diff --git a/hw/qca5332/tx_mpdu_start.h b/hw/qca5332/tx_mpdu_start.h
new file mode 100644
index 0000000..08e64f3
--- /dev/null
+++ b/hw/qca5332/tx_mpdu_start.h
@@ -0,0 +1,788 @@
+
+/* 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_MPDU_START_H_
+#define _TX_MPDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_MPDU_START 10
+
+#define NUM_OF_QWORDS_TX_MPDU_START 5
+
+
+struct tx_mpdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mpdu_length                                             : 14, // [13:0]
+                      frame_not_from_tqm                                      :  1, // [14:14]
+                      vht_control_present                                     :  1, // [15:15]
+                      mpdu_header_length                                      :  8, // [23:16]
+                      retry_count                                             :  7, // [30:24]
+                      wds                                                     :  1; // [31:31]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t pn_47_32                                                : 16, // [15:0]
+                      mpdu_sequence_number                                    : 12, // [27:16]
+                      raw_already_encrypted                                   :  1, // [28:28]
+                      frame_type                                              :  2, // [30:29]
+                      txdma_dropped_mpdu_warning                              :  1; // [31:31]
+             uint32_t iv_byte_0                                               :  8, // [7:0]
+                      iv_byte_1                                               :  8, // [15:8]
+                      iv_byte_2                                               :  8, // [23:16]
+                      iv_byte_3                                               :  8; // [31:24]
+             uint32_t iv_byte_4                                               :  8, // [7:0]
+                      iv_byte_5                                               :  8, // [15:8]
+                      iv_byte_6                                               :  8, // [23:16]
+                      iv_byte_7                                               :  8; // [31:24]
+             uint32_t iv_byte_8                                               :  8, // [7:0]
+                      iv_byte_9                                               :  8, // [15:8]
+                      iv_byte_10                                              :  8, // [23:16]
+                      iv_byte_11                                              :  8; // [31:24]
+             uint32_t iv_byte_12                                              :  8, // [7:0]
+                      iv_byte_13                                              :  8, // [15:8]
+                      iv_byte_14                                              :  8, // [23:16]
+                      iv_byte_15                                              :  8; // [31:24]
+             uint32_t iv_byte_16                                              :  8, // [7:0]
+                      iv_byte_17                                              :  8, // [15:8]
+                      iv_len                                                  :  5, // [20:16]
+                      icv_len                                                 :  5, // [25:21]
+                      vht_control_offset                                      :  6; // [31:26]
+             uint32_t mpdu_type                                               :  1, // [0:0]
+                      transmit_bw_restriction                                 :  1, // [1:1]
+                      allowed_transmit_bw                                     :  4, // [5:2]
+                      tx_notify_frame                                         :  3, // [8:6]
+                      reserved_8a                                             : 23; // [31:9]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t wds                                                     :  1, // [31:31]
+                      retry_count                                             :  7, // [30:24]
+                      mpdu_header_length                                      :  8, // [23:16]
+                      vht_control_present                                     :  1, // [15:15]
+                      frame_not_from_tqm                                      :  1, // [14:14]
+                      mpdu_length                                             : 14; // [13:0]
+             uint32_t pn_31_0                                                 : 32; // [31:0]
+             uint32_t txdma_dropped_mpdu_warning                              :  1, // [31:31]
+                      frame_type                                              :  2, // [30:29]
+                      raw_already_encrypted                                   :  1, // [28:28]
+                      mpdu_sequence_number                                    : 12, // [27:16]
+                      pn_47_32                                                : 16; // [15:0]
+             uint32_t iv_byte_3                                               :  8, // [31:24]
+                      iv_byte_2                                               :  8, // [23:16]
+                      iv_byte_1                                               :  8, // [15:8]
+                      iv_byte_0                                               :  8; // [7:0]
+             uint32_t iv_byte_7                                               :  8, // [31:24]
+                      iv_byte_6                                               :  8, // [23:16]
+                      iv_byte_5                                               :  8, // [15:8]
+                      iv_byte_4                                               :  8; // [7:0]
+             uint32_t iv_byte_11                                              :  8, // [31:24]
+                      iv_byte_10                                              :  8, // [23:16]
+                      iv_byte_9                                               :  8, // [15:8]
+                      iv_byte_8                                               :  8; // [7:0]
+             uint32_t iv_byte_15                                              :  8, // [31:24]
+                      iv_byte_14                                              :  8, // [23:16]
+                      iv_byte_13                                              :  8, // [15:8]
+                      iv_byte_12                                              :  8; // [7:0]
+             uint32_t vht_control_offset                                      :  6, // [31:26]
+                      icv_len                                                 :  5, // [25:21]
+                      iv_len                                                  :  5, // [20:16]
+                      iv_byte_17                                              :  8, // [15:8]
+                      iv_byte_16                                              :  8; // [7:0]
+             uint32_t reserved_8a                                             : 23, // [31:9]
+                      tx_notify_frame                                         :  3, // [8:6]
+                      allowed_transmit_bw                                     :  4, // [5:2]
+                      transmit_bw_restriction                                 :  1, // [1:1]
+                      mpdu_type                                               :  1; // [0:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MPDU_LENGTH
+
+			Consumer: TXOLE/CRYPTO/TXPCU
+			Producer: TXDMA
+			
+			Expected Length of the entire MPDU, which includes all MSDUs
+			 within the MPDU and all OLE and Crypto processing. This
+			 length includes the FCS field.
+*/
+
+#define TX_MPDU_START_MPDU_LENGTH_OFFSET                                            0x0000000000000000
+#define TX_MPDU_START_MPDU_LENGTH_LSB                                               0
+#define TX_MPDU_START_MPDU_LENGTH_MSB                                               13
+#define TX_MPDU_START_MPDU_LENGTH_MASK                                              0x0000000000003fff
+
+
+/* Description		FRAME_NOT_FROM_TQM
+
+			When set, TXPCU shall not take this frame into account for
+			 indicating to TQM how many frames from it's queue got transmitted.
+			
+			
+			TXDMA gets this field from the TX_MSDU_DETAILS STRUCT (of
+			 the first MSDU in the MPDU) in the MSDU link descriptor.
+			
+			
+			SW sets this bit (in TX_MSDU_DETAILS STRUCT) when it generates
+			 a frame outside of the TQM path and that frame can be intermingled
+			 with the other frames from the TQM. For example a trigger
+			 frame embedded or put in front of data frames from TQM 
+			within the same A-MPDU. For this SW generated frame, TXPCU
+			 shall not include this frame in the transmit frame count
+			 that is reported to TQM as that would result in incorrect
+			 reporting to TQM.
+			
+			<legal all>
+*/
+
+#define TX_MPDU_START_FRAME_NOT_FROM_TQM_OFFSET                                     0x0000000000000000
+#define TX_MPDU_START_FRAME_NOT_FROM_TQM_LSB                                        14
+#define TX_MPDU_START_FRAME_NOT_FROM_TQM_MSB                                        14
+#define TX_MPDU_START_FRAME_NOT_FROM_TQM_MASK                                       0x0000000000004000
+
+
+/* Description		VHT_CONTROL_PRESENT
+
+			TXOLE sets this bit when it added 4 placeholder bytes for
+			 VHT-CONTROL field in the MPDU header.
+			
+			For RAW frames, OLE will set this bit and compute  vht_control_offset
+			 when the order bit and QoS bit in frame_control field are
+			 set to 1. For RAW management frame, this bit will be set
+			 if order bit is set to 1.
+			
+			Used by TXPCU, to find out if it needs to overwrite the 
+			HE-CONTROL field.
+			<legal all>
+*/
+
+#define TX_MPDU_START_VHT_CONTROL_PRESENT_OFFSET                                    0x0000000000000000
+#define TX_MPDU_START_VHT_CONTROL_PRESENT_LSB                                       15
+#define TX_MPDU_START_VHT_CONTROL_PRESENT_MSB                                       15
+#define TX_MPDU_START_VHT_CONTROL_PRESENT_MASK                                      0x0000000000008000
+
+
+/* Description		MPDU_HEADER_LENGTH
+
+			This field is filled in by the OLE
+			Used by PCU, This prevents PCU from having to do this again
+			 (in the same way))
+*/
+
+#define TX_MPDU_START_MPDU_HEADER_LENGTH_OFFSET                                     0x0000000000000000
+#define TX_MPDU_START_MPDU_HEADER_LENGTH_LSB                                        16
+#define TX_MPDU_START_MPDU_HEADER_LENGTH_MSB                                        23
+#define TX_MPDU_START_MPDU_HEADER_LENGTH_MASK                                       0x0000000000ff0000
+
+
+/* Description		RETRY_COUNT
+
+			Consumer: TXOLE/TXPCU
+			Producer: TXDMA
+			
+			The number of times the frame is transmitted
+			<legal all>
+*/
+
+#define TX_MPDU_START_RETRY_COUNT_OFFSET                                            0x0000000000000000
+#define TX_MPDU_START_RETRY_COUNT_LSB                                               24
+#define TX_MPDU_START_RETRY_COUNT_MSB                                               30
+#define TX_MPDU_START_RETRY_COUNT_MASK                                              0x000000007f000000
+
+
+/* Description		WDS
+
+			If set the current packet is 4-address frame.  
+			
+			Required because an aggregate can include some frames with
+			 3 address format and other frames with 4 address format. 
+			 Used by the OLE during encapsulation.  
+			
+			TXDMA sets this when wds in the extension descriptor is 
+			set.
+			
+			If no extension descriptor is used for this MPDU, TXDMA 
+			gets the setting for this bit from a control register in
+			 TXDMA
+			<legal all>
+*/
+
+#define TX_MPDU_START_WDS_OFFSET                                                    0x0000000000000000
+#define TX_MPDU_START_WDS_LSB                                                       31
+#define TX_MPDU_START_WDS_MSB                                                       31
+#define TX_MPDU_START_WDS_MASK                                                      0x0000000080000000
+
+
+/* Description		PN_31_0
+
+			Consumer: TXOLE
+			Producer: TXDMA
+			
+			Bits 31 - 0 for the Packet Number used by encryption
+			<legal all>
+*/
+
+#define TX_MPDU_START_PN_31_0_OFFSET                                                0x0000000000000000
+#define TX_MPDU_START_PN_31_0_LSB                                                   32
+#define TX_MPDU_START_PN_31_0_MSB                                                   63
+#define TX_MPDU_START_PN_31_0_MASK                                                  0xffffffff00000000
+
+
+/* Description		PN_47_32
+
+			Consumer: TXOLE
+			Producer: TXDMA
+			
+			Bits 47 - 32 for the Packet Number used by encryption
+			<legal all>
+*/
+
+#define TX_MPDU_START_PN_47_32_OFFSET                                               0x0000000000000008
+#define TX_MPDU_START_PN_47_32_LSB                                                  0
+#define TX_MPDU_START_PN_47_32_MSB                                                  15
+#define TX_MPDU_START_PN_47_32_MASK                                                 0x000000000000ffff
+
+
+/* Description		MPDU_SEQUENCE_NUMBER
+
+			Consumer: TXOLE
+			Producer: TXDMA
+			
+			Sequence number assigned to this MPDU
+			<legal all>
+*/
+
+#define TX_MPDU_START_MPDU_SEQUENCE_NUMBER_OFFSET                                   0x0000000000000008
+#define TX_MPDU_START_MPDU_SEQUENCE_NUMBER_LSB                                      16
+#define TX_MPDU_START_MPDU_SEQUENCE_NUMBER_MSB                                      27
+#define TX_MPDU_START_MPDU_SEQUENCE_NUMBER_MASK                                     0x000000000fff0000
+
+
+/* Description		RAW_ALREADY_ENCRYPTED
+
+			Consumer: CRYPTO
+			Producer: TXDMA
+			
+			If set it indicates that the RAW MPDU has already been encrypted
+			 and does not require HW encryption.  If clear and if the
+			 frame control indicates that this is a "protected" MPDU
+			 and the peer key type indicates a cipher type then the 
+			HW is expected to encrypt this packet.
+			<legal all> 
+*/
+
+#define TX_MPDU_START_RAW_ALREADY_ENCRYPTED_OFFSET                                  0x0000000000000008
+#define TX_MPDU_START_RAW_ALREADY_ENCRYPTED_LSB                                     28
+#define TX_MPDU_START_RAW_ALREADY_ENCRYPTED_MSB                                     28
+#define TX_MPDU_START_RAW_ALREADY_ENCRYPTED_MASK                                    0x0000000010000000
+
+
+/* Description		FRAME_TYPE
+
+			Consumer: TXMON
+			Producer: TXOLE
+			
+			802.11 frame type field
+			
+			TXDMA fills this as zero and TXOLE overwrites it.
+			
+			<legal all>
+*/
+
+#define TX_MPDU_START_FRAME_TYPE_OFFSET                                             0x0000000000000008
+#define TX_MPDU_START_FRAME_TYPE_LSB                                                29
+#define TX_MPDU_START_FRAME_TYPE_MSB                                                30
+#define TX_MPDU_START_FRAME_TYPE_MASK                                               0x0000000060000000
+
+
+/* Description		TXDMA_DROPPED_MPDU_WARNING
+
+			Consumer: FW
+			Producer: TXDMA
+			
+			Indication to TXPCU to indicate to FW a warning that Tx 
+			DMA has dropped MPDUs due to SFM FIFO full condition
+			<legal all> 
+*/
+
+#define TX_MPDU_START_TXDMA_DROPPED_MPDU_WARNING_OFFSET                             0x0000000000000008
+#define TX_MPDU_START_TXDMA_DROPPED_MPDU_WARNING_LSB                                31
+#define TX_MPDU_START_TXDMA_DROPPED_MPDU_WARNING_MSB                                31
+#define TX_MPDU_START_TXDMA_DROPPED_MPDU_WARNING_MASK                               0x0000000080000000
+
+
+/* Description		IV_BYTE_0
+
+			Byte 0 of the IV field of the MPDU
+			Based on the Encryption type the iv_byte_0 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			 
+*/
+
+#define TX_MPDU_START_IV_BYTE_0_OFFSET                                              0x0000000000000008
+#define TX_MPDU_START_IV_BYTE_0_LSB                                                 32
+#define TX_MPDU_START_IV_BYTE_0_MSB                                                 39
+#define TX_MPDU_START_IV_BYTE_0_MASK                                                0x000000ff00000000
+
+
+/* Description		IV_BYTE_1
+
+			Byte 1 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_1 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_1_OFFSET                                              0x0000000000000008
+#define TX_MPDU_START_IV_BYTE_1_LSB                                                 40
+#define TX_MPDU_START_IV_BYTE_1_MSB                                                 47
+#define TX_MPDU_START_IV_BYTE_1_MASK                                                0x0000ff0000000000
+
+
+/* Description		IV_BYTE_2
+
+			Byte 2 of the IV field of the MDPU 
+			Based on the Encryption type the iv_byte_2 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_2_OFFSET                                              0x0000000000000008
+#define TX_MPDU_START_IV_BYTE_2_LSB                                                 48
+#define TX_MPDU_START_IV_BYTE_2_MSB                                                 55
+#define TX_MPDU_START_IV_BYTE_2_MASK                                                0x00ff000000000000
+
+
+/* Description		IV_BYTE_3
+
+			Byte 3 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_3 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_3_OFFSET                                              0x0000000000000008
+#define TX_MPDU_START_IV_BYTE_3_LSB                                                 56
+#define TX_MPDU_START_IV_BYTE_3_MSB                                                 63
+#define TX_MPDU_START_IV_BYTE_3_MASK                                                0xff00000000000000
+
+
+/* Description		IV_BYTE_4
+
+			Byte 4 of the IV field of the MPDU
+			Based on the Encryption type the iv_byte_4 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_4_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_4_LSB                                                 0
+#define TX_MPDU_START_IV_BYTE_4_MSB                                                 7
+#define TX_MPDU_START_IV_BYTE_4_MASK                                                0x00000000000000ff
+
+
+/* Description		IV_BYTE_5
+
+			Byte 5 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_5 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_5_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_5_LSB                                                 8
+#define TX_MPDU_START_IV_BYTE_5_MSB                                                 15
+#define TX_MPDU_START_IV_BYTE_5_MASK                                                0x000000000000ff00
+
+
+/* Description		IV_BYTE_6
+
+			Byte 6 of the IV field of the MDPU 
+			Based on the Encryption type the iv_byte_6 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_6_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_6_LSB                                                 16
+#define TX_MPDU_START_IV_BYTE_6_MSB                                                 23
+#define TX_MPDU_START_IV_BYTE_6_MASK                                                0x0000000000ff0000
+
+
+/* Description		IV_BYTE_7
+
+			Byte 7 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_7 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_7_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_7_LSB                                                 24
+#define TX_MPDU_START_IV_BYTE_7_MSB                                                 31
+#define TX_MPDU_START_IV_BYTE_7_MASK                                                0x00000000ff000000
+
+
+/* Description		IV_BYTE_8
+
+			Byte 8 of the IV field of the MPDU
+			Based on the Encryption type the iv_byte_8 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_8_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_8_LSB                                                 32
+#define TX_MPDU_START_IV_BYTE_8_MSB                                                 39
+#define TX_MPDU_START_IV_BYTE_8_MASK                                                0x000000ff00000000
+
+
+/* Description		IV_BYTE_9
+
+			Byte 9 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_9 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_9_OFFSET                                              0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_9_LSB                                                 40
+#define TX_MPDU_START_IV_BYTE_9_MSB                                                 47
+#define TX_MPDU_START_IV_BYTE_9_MASK                                                0x0000ff0000000000
+
+
+/* Description		IV_BYTE_10
+
+			Byte 10 of the IV field of the MDPU 
+			Based on the Encryption type the iv_byte_10 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_10_OFFSET                                             0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_10_LSB                                                48
+#define TX_MPDU_START_IV_BYTE_10_MSB                                                55
+#define TX_MPDU_START_IV_BYTE_10_MASK                                               0x00ff000000000000
+
+
+/* Description		IV_BYTE_11
+
+			Byte 11 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_11 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_11_OFFSET                                             0x0000000000000010
+#define TX_MPDU_START_IV_BYTE_11_LSB                                                56
+#define TX_MPDU_START_IV_BYTE_11_MSB                                                63
+#define TX_MPDU_START_IV_BYTE_11_MASK                                               0xff00000000000000
+
+
+/* Description		IV_BYTE_12
+
+			Byte 8 of the IV field of the MPDU
+			Based on the Encryption type the iv_byte_12 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_12_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_12_LSB                                                0
+#define TX_MPDU_START_IV_BYTE_12_MSB                                                7
+#define TX_MPDU_START_IV_BYTE_12_MASK                                               0x00000000000000ff
+
+
+/* Description		IV_BYTE_13
+
+			Byte 9 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_13 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_13_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_13_LSB                                                8
+#define TX_MPDU_START_IV_BYTE_13_MSB                                                15
+#define TX_MPDU_START_IV_BYTE_13_MASK                                               0x000000000000ff00
+
+
+/* Description		IV_BYTE_14
+
+			Byte 10 of the IV field of the MDPU 
+			Based on the Encryption type the iv_byte_14 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_14_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_14_LSB                                                16
+#define TX_MPDU_START_IV_BYTE_14_MSB                                                23
+#define TX_MPDU_START_IV_BYTE_14_MASK                                               0x0000000000ff0000
+
+
+/* Description		IV_BYTE_15
+
+			Byte 11 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_15 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_15_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_15_LSB                                                24
+#define TX_MPDU_START_IV_BYTE_15_MSB                                                31
+#define TX_MPDU_START_IV_BYTE_15_MASK                                               0x00000000ff000000
+
+
+/* Description		IV_BYTE_16
+
+			Byte 8 of the IV field of the MPDU
+			Based on the Encryption type the iv_byte_16 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_16_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_16_LSB                                                32
+#define TX_MPDU_START_IV_BYTE_16_MSB                                                39
+#define TX_MPDU_START_IV_BYTE_16_MASK                                               0x000000ff00000000
+
+
+/* Description		IV_BYTE_17
+
+			Byte 9 of the IV field of the MPDU 
+			Based on the Encryption type the iv_byte_17 takes the appropriate
+			 meaning. For IV formats,  refer to the crypto MLDR document
+			
+*/
+
+#define TX_MPDU_START_IV_BYTE_17_OFFSET                                             0x0000000000000018
+#define TX_MPDU_START_IV_BYTE_17_LSB                                                40
+#define TX_MPDU_START_IV_BYTE_17_MSB                                                47
+#define TX_MPDU_START_IV_BYTE_17_MASK                                               0x0000ff0000000000
+
+
+/* Description		IV_LEN
+
+			Length of the IV field generated by Tx OLE
+*/
+
+#define TX_MPDU_START_IV_LEN_OFFSET                                                 0x0000000000000018
+#define TX_MPDU_START_IV_LEN_LSB                                                    48
+#define TX_MPDU_START_IV_LEN_MSB                                                    52
+#define TX_MPDU_START_IV_LEN_MASK                                                   0x001f000000000000
+
+
+/* Description		ICV_LEN
+
+			Length of the ICV field generated by Tx OLE. OLE will insert
+			 zeros in the ICV field when it pushes a frame
+*/
+
+#define TX_MPDU_START_ICV_LEN_OFFSET                                                0x0000000000000018
+#define TX_MPDU_START_ICV_LEN_LSB                                                   53
+#define TX_MPDU_START_ICV_LEN_MSB                                                   57
+#define TX_MPDU_START_ICV_LEN_MASK                                                  0x03e0000000000000
+
+
+/* Description		VHT_CONTROL_OFFSET
+
+			Field only valid when vht_control_present is set.
+			
+			Field filled in by TXOLE, used by TXPCU
+			
+			The starting byte number of the VHT control field in the
+			 header
+			<legal all>
+*/
+
+#define TX_MPDU_START_VHT_CONTROL_OFFSET_OFFSET                                     0x0000000000000018
+#define TX_MPDU_START_VHT_CONTROL_OFFSET_LSB                                        58
+#define TX_MPDU_START_VHT_CONTROL_OFFSET_MSB                                        63
+#define TX_MPDU_START_VHT_CONTROL_OFFSET_MASK                                       0xfc00000000000000
+
+
+/* Description		MPDU_TYPE
+
+			Indicates the type of MPDU that OLE will generate:
+			
+			<enum 0    mpdu_type_basic> This MPDU is not in the A-MSDU
+			 format (meaning there is no A-MSDU delimeter present) if
+			 there is only 1 MSDU in the MPDU. When there are multiple
+			 MSDUs in the MPDU, there is no choice, and the MSDUs within
+			 the MPDU shall all have A-MSDU delimiters in front of them.
+			
+			<enum 1    mpdu_type_amsdu> The MSDUs within the MPDU will
+			 all have to be in the A-MSDU format, even if there is just
+			 a single MSDU embedded in the MPDU. In other words, there
+			 is always an A-MSDU delimiter in front of the MSDU(s) in
+			 the MPDU.
+			This is not supported in Hastings80 and HastingsPrime.
+			<legal all>
+*/
+
+#define TX_MPDU_START_MPDU_TYPE_OFFSET                                              0x0000000000000020
+#define TX_MPDU_START_MPDU_TYPE_LSB                                                 0
+#define TX_MPDU_START_MPDU_TYPE_MSB                                                 0
+#define TX_MPDU_START_MPDU_TYPE_MASK                                                0x0000000000000001
+
+
+/* Description		TRANSMIT_BW_RESTRICTION
+
+			Consumer: TXPCU
+			Producer: TXDMA
+			
+			1'b0: This is a normal frame and there are no restrictions
+			 on the BW that this frame can be transmitted on.
+			
+			1'b1: This MPDU is only allowed to be transmitted at certain
+			 BWs. The one and only allowed BW is indicated in field 
+			allowed_transmit_bw
+			When TXPCU has made a BW selection and then encounters this
+			 frame, the frame will be dropped and TXPCU will continue
+			 transmitting the next frame (assuming there is no BW restriction
+			 on that one)
+			<legal all>
+*/
+
+#define TX_MPDU_START_TRANSMIT_BW_RESTRICTION_OFFSET                                0x0000000000000020
+#define TX_MPDU_START_TRANSMIT_BW_RESTRICTION_LSB                                   1
+#define TX_MPDU_START_TRANSMIT_BW_RESTRICTION_MSB                                   1
+#define TX_MPDU_START_TRANSMIT_BW_RESTRICTION_MASK                                  0x0000000000000002
+
+
+/* Description		ALLOWED_TRANSMIT_BW
+
+			Consumer: TXPCU
+			Producer: TXDMA
+			
+			Field only valid when transmit_bw_restriction is set
+			
+			TXDMA gets this from the three or four upper bits of the
+			 "Sw_buffer_cookie" field from the TX_MPDU_DETAILS STRUCT
+			
+			
+			In case of NON punctured transmission:
+			allowed_transmit_bw[2:0] = 3'b000: 20 MHz TX only
+			allowed_transmit_bw[2:0] = 3'b001: 40 MHz TX only
+			allowed_transmit_bw[2:0] = 3'b010: 80 MHz TX only
+			allowed_transmit_bw[2:0] = 3'b011: 160 MHz TX only
+			allowed_transmit_bw[2:0] = 3'b100: 240 MHz TX only
+			allowed_transmit_bw[2:0] = 3'b101: 320 MHz TX only
+			allowed_transmit_bw[2:1] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			allowed_transmit_bw[3:0] = 4'b0000: pattern 0 only
+			allowed_transmit_bw[3:0] = 4'b0001: pattern 1 only
+			allowed_transmit_bw[3:0] = 4'b0010: pattern 2 only
+			allowed_transmit_bw[3:0] = 4'b0011: pattern 3 only
+			allowed_transmit_bw[3:0] = 4'b0100: pattern 4 only
+			allowed_transmit_bw[3:0] = 4'b0101: pattern 5 only
+			allowed_transmit_bw[3:0] = 4'b0110: pattern 6 only
+			allowed_transmit_bw[3:0] = 4'b0111: pattern 7 only
+			allowed_transmit_bw[3:0] = 4'b1000: pattern 8 only
+			allowed_transmit_bw[3:0] = 4'b1001: pattern 9 only
+			allowed_transmit_bw[3:0] = 4'b1010: pattern 10 only
+			allowed_transmit_bw[3:0] = 4'b1011: pattern 11 only
+			allowed_transmit_bw[3:2] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal 0-11>
+*/
+
+#define TX_MPDU_START_ALLOWED_TRANSMIT_BW_OFFSET                                    0x0000000000000020
+#define TX_MPDU_START_ALLOWED_TRANSMIT_BW_LSB                                       2
+#define TX_MPDU_START_ALLOWED_TRANSMIT_BW_MSB                                       5
+#define TX_MPDU_START_ALLOWED_TRANSMIT_BW_MASK                                      0x000000000000003c
+
+
+/* Description		TX_NOTIFY_FRAME
+
+			Consumer: TQM/PDG/TXOLE
+			Producer: FW/SW
+			
+			When clear, this frame does not require any special handling.
+			
+			
+			When set, this MPDU contains an MSDU with the 'FW_tx_notify_frame' 
+			field set.
+			This means this MPDU is a special frame that requires special
+			 handling in TQM.
+			
+			Note that FW/SW shall always set the amsdu_not_allowed bit
+			 in 'TX_MSDU_DETAILS' for any notify frame.
+			
+			<enum 0 NO_TX_NOTIFY> Not a notify frame
+			<enum 1 TX_HARD_NOTIFY>
+			<enum 2 TX_SOFT_NOTIFY>
+			<enum 3 TX_SEMI_HARD_NOTIFY>
+			<enum 4 TX_SEMI_HARD_NOTIFY_CURR_RATE> Rate cannot be overridden
+			 by PDG
+			<legal 0-4>
+*/
+
+#define TX_MPDU_START_TX_NOTIFY_FRAME_OFFSET                                        0x0000000000000020
+#define TX_MPDU_START_TX_NOTIFY_FRAME_LSB                                           6
+#define TX_MPDU_START_TX_NOTIFY_FRAME_MSB                                           8
+#define TX_MPDU_START_TX_NOTIFY_FRAME_MASK                                          0x00000000000001c0
+
+
+/* Description		RESERVED_8A
+
+			Bit 9: self_gen:
+			
+			Field only used in the MAC-flexibility feature in TXPCU 
+			and PHY microcode
+			
+			0: Indicates a normal data MPDU
+			1: Indicates a self-gen MPDU
+			
+			Not supported in Hamilton/Waikiki v1
+			<legal 0-1>
+*/
+
+#define TX_MPDU_START_RESERVED_8A_OFFSET                                            0x0000000000000020
+#define TX_MPDU_START_RESERVED_8A_LSB                                               9
+#define TX_MPDU_START_RESERVED_8A_MSB                                               31
+#define TX_MPDU_START_RESERVED_8A_MASK                                              0x00000000fffffe00
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define TX_MPDU_START_TLV64_PADDING_OFFSET                                          0x0000000000000020
+#define TX_MPDU_START_TLV64_PADDING_LSB                                             32
+#define TX_MPDU_START_TLV64_PADDING_MSB                                             63
+#define TX_MPDU_START_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // TX_MPDU_START
diff --git a/hw/qca5332/tx_msdu_extension.h b/hw/qca5332/tx_msdu_extension.h
new file mode 100644
index 0000000..59ad0b9
--- /dev/null
+++ b/hw/qca5332/tx_msdu_extension.h
@@ -0,0 +1,806 @@
+
+/* 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_MSDU_EXTENSION_H_
+#define _TX_MSDU_EXTENSION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18
+
+
+struct tx_msdu_extension {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tso_enable                                              :  1, // [0:0]
+                      reserved_0a                                             :  6, // [6:1]
+                      tcp_flag                                                :  9, // [15:7]
+                      tcp_flag_mask                                           :  9, // [24:16]
+                      reserved_0b                                             :  7; // [31:25]
+             uint32_t l2_length                                               : 16, // [15:0]
+                      ip_length                                               : 16; // [31:16]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t ip_identification                                       : 16, // [15:0]
+                      udp_length                                              : 16; // [31:16]
+             uint32_t checksum_offset                                         : 14, // [13:0]
+                      partial_checksum_en                                     :  1, // [14:14]
+                      reserved_4a                                             :  1, // [15:15]
+                      payload_start_offset                                    : 14, // [29:16]
+                      reserved_4b                                             :  2; // [31:30]
+             uint32_t payload_end_offset                                      : 14, // [13:0]
+                      reserved_5a                                             :  2, // [15:14]
+                      wds                                                     :  1, // [16:16]
+                      reserved_5b                                             : 15; // [31:17]
+             uint32_t buf0_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf0_ptr_39_32                                          :  8, // [7:0]
+                      extn_override                                           :  1, // [8:8]
+                      encap_type                                              :  2, // [10:9]
+                      encrypt_type                                            :  4, // [14:11]
+                      tqm_no_drop                                             :  1, // [15:15]
+                      buf0_len                                                : 16; // [31:16]
+             uint32_t buf1_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf1_ptr_39_32                                          :  8, // [7:0]
+                      epd                                                     :  1, // [8:8]
+                      mesh_enable                                             :  2, // [10:9]
+                      reserved_9a                                             :  5, // [15:11]
+                      buf1_len                                                : 16; // [31:16]
+             uint32_t buf2_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf2_ptr_39_32                                          :  8, // [7:0]
+                      dscp_tid_table_num                                      :  6, // [13:8]
+                      reserved_11a                                            :  2, // [15:14]
+                      buf2_len                                                : 16; // [31:16]
+             uint32_t buf3_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf3_ptr_39_32                                          :  8, // [7:0]
+                      reserved_13a                                            :  8, // [15:8]
+                      buf3_len                                                : 16; // [31:16]
+             uint32_t buf4_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf4_ptr_39_32                                          :  8, // [7:0]
+                      reserved_15a                                            :  8, // [15:8]
+                      buf4_len                                                : 16; // [31:16]
+             uint32_t buf5_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf5_ptr_39_32                                          :  8, // [7:0]
+                      reserved_17a                                            :  8, // [15:8]
+                      buf5_len                                                : 16; // [31:16]
+#else
+             uint32_t reserved_0b                                             :  7, // [31:25]
+                      tcp_flag_mask                                           :  9, // [24:16]
+                      tcp_flag                                                :  9, // [15:7]
+                      reserved_0a                                             :  6, // [6:1]
+                      tso_enable                                              :  1; // [0:0]
+             uint32_t ip_length                                               : 16, // [31:16]
+                      l2_length                                               : 16; // [15:0]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t udp_length                                              : 16, // [31:16]
+                      ip_identification                                       : 16; // [15:0]
+             uint32_t reserved_4b                                             :  2, // [31:30]
+                      payload_start_offset                                    : 14, // [29:16]
+                      reserved_4a                                             :  1, // [15:15]
+                      partial_checksum_en                                     :  1, // [14:14]
+                      checksum_offset                                         : 14; // [13:0]
+             uint32_t reserved_5b                                             : 15, // [31:17]
+                      wds                                                     :  1, // [16:16]
+                      reserved_5a                                             :  2, // [15:14]
+                      payload_end_offset                                      : 14; // [13:0]
+             uint32_t buf0_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf0_len                                                : 16, // [31:16]
+                      tqm_no_drop                                             :  1, // [15:15]
+                      encrypt_type                                            :  4, // [14:11]
+                      encap_type                                              :  2, // [10:9]
+                      extn_override                                           :  1, // [8:8]
+                      buf0_ptr_39_32                                          :  8; // [7:0]
+             uint32_t buf1_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf1_len                                                : 16, // [31:16]
+                      reserved_9a                                             :  5, // [15:11]
+                      mesh_enable                                             :  2, // [10:9]
+                      epd                                                     :  1, // [8:8]
+                      buf1_ptr_39_32                                          :  8; // [7:0]
+             uint32_t buf2_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf2_len                                                : 16, // [31:16]
+                      reserved_11a                                            :  2, // [15:14]
+                      dscp_tid_table_num                                      :  6, // [13:8]
+                      buf2_ptr_39_32                                          :  8; // [7:0]
+             uint32_t buf3_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf3_len                                                : 16, // [31:16]
+                      reserved_13a                                            :  8, // [15:8]
+                      buf3_ptr_39_32                                          :  8; // [7:0]
+             uint32_t buf4_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf4_len                                                : 16, // [31:16]
+                      reserved_15a                                            :  8, // [15:8]
+                      buf4_ptr_39_32                                          :  8; // [7:0]
+             uint32_t buf5_ptr_31_0                                           : 32; // [31:0]
+             uint32_t buf5_len                                                : 16, // [31:16]
+                      reserved_17a                                            :  8, // [15:8]
+                      buf5_ptr_39_32                                          :  8; // [7:0]
+#endif
+};
+
+
+/* Description		TSO_ENABLE
+
+			Enable transmit segmentation offload <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_TSO_ENABLE_OFFSET                                         0x00000000
+#define TX_MSDU_EXTENSION_TSO_ENABLE_LSB                                            0
+#define TX_MSDU_EXTENSION_TSO_ENABLE_MSB                                            0
+#define TX_MSDU_EXTENSION_TSO_ENABLE_MASK                                           0x00000001
+
+
+/* Description		RESERVED_0A
+
+			FW will set to 0, MAC will ignore.  <legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_0A_OFFSET                                        0x00000000
+#define TX_MSDU_EXTENSION_RESERVED_0A_LSB                                           1
+#define TX_MSDU_EXTENSION_RESERVED_0A_MSB                                           6
+#define TX_MSDU_EXTENSION_RESERVED_0A_MASK                                          0x0000007e
+
+
+/* Description		TCP_FLAG
+
+			TCP flags
+			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_TCP_FLAG_OFFSET                                           0x00000000
+#define TX_MSDU_EXTENSION_TCP_FLAG_LSB                                              7
+#define TX_MSDU_EXTENSION_TCP_FLAG_MSB                                              15
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK                                             0x0000ff80
+
+
+/* Description		TCP_FLAG_MASK
+
+			TCP flag mask. Tcp_flag is inserted into the header based
+			 on the mask, if TSO is enabled
+*/
+
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_OFFSET                                      0x00000000
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_LSB                                         16
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MSB                                         24
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MASK                                        0x01ff0000
+
+
+/* Description		RESERVED_0B
+
+			FW will set to 0, MAC will ignore.  <legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_0B_OFFSET                                        0x00000000
+#define TX_MSDU_EXTENSION_RESERVED_0B_LSB                                           25
+#define TX_MSDU_EXTENSION_RESERVED_0B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_0B_MASK                                          0xfe000000
+
+
+/* Description		L2_LENGTH
+
+			L2 length for the msdu, if TSO is enabled <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_L2_LENGTH_OFFSET                                          0x00000004
+#define TX_MSDU_EXTENSION_L2_LENGTH_LSB                                             0
+#define TX_MSDU_EXTENSION_L2_LENGTH_MSB                                             15
+#define TX_MSDU_EXTENSION_L2_LENGTH_MASK                                            0x0000ffff
+
+
+/* Description		IP_LENGTH
+
+			IP length for the msdu, if TSO is enabled <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_IP_LENGTH_OFFSET                                          0x00000004
+#define TX_MSDU_EXTENSION_IP_LENGTH_LSB                                             16
+#define TX_MSDU_EXTENSION_IP_LENGTH_MSB                                             31
+#define TX_MSDU_EXTENSION_IP_LENGTH_MASK                                            0xffff0000
+
+
+/* Description		TCP_SEQ_NUMBER
+
+			Tcp_seq_number for the msdu, if TSO is enabled <legal all>
+			
+*/
+
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_OFFSET                                     0x00000008
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_LSB                                        0
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MSB                                        31
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MASK                                       0xffffffff
+
+
+/* Description		IP_IDENTIFICATION
+
+			IP_identification for the msdu, if TSO is enabled <legal
+			 all>
+*/
+
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_OFFSET                                  0x0000000c
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_LSB                                     0
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MSB                                     15
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MASK                                    0x0000ffff
+
+
+/* Description		UDP_LENGTH
+
+			TXDMA is copies this field into MSDU START TLV
+*/
+
+#define TX_MSDU_EXTENSION_UDP_LENGTH_OFFSET                                         0x0000000c
+#define TX_MSDU_EXTENSION_UDP_LENGTH_LSB                                            16
+#define TX_MSDU_EXTENSION_UDP_LENGTH_MSB                                            31
+#define TX_MSDU_EXTENSION_UDP_LENGTH_MASK                                           0xffff0000
+
+
+/* Description		CHECKSUM_OFFSET
+
+			The calculated checksum from start offset to end offset 
+			will be added to the checksum at the offset given by this
+			 field<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_OFFSET                                    0x00000010
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_LSB                                       0
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MSB                                       13
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MASK                                      0x00003fff
+
+
+/* Description		PARTIAL_CHECKSUM_EN
+
+			Partial Checksum Enable Bit.
+			<legal 0-1>
+*/
+
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_OFFSET                                0x00000010
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_LSB                                   14
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MSB                                   14
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MASK                                  0x00004000
+
+
+/* Description		RESERVED_4A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_4A_OFFSET                                        0x00000010
+#define TX_MSDU_EXTENSION_RESERVED_4A_LSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_4A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_4A_MASK                                          0x00008000
+
+
+/* Description		PAYLOAD_START_OFFSET
+
+			L4 checksum calculations will start fromt this offset
+			<Legal all>
+*/
+
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_OFFSET                               0x00000010
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_LSB                                  16
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MSB                                  29
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MASK                                 0x3fff0000
+
+
+/* Description		RESERVED_4B
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_4B_OFFSET                                        0x00000010
+#define TX_MSDU_EXTENSION_RESERVED_4B_LSB                                           30
+#define TX_MSDU_EXTENSION_RESERVED_4B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_4B_MASK                                          0xc0000000
+
+
+/* Description		PAYLOAD_END_OFFSET
+
+			L4 checksum calculations will end at this offset. 
+			<Legal all>
+*/
+
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_OFFSET                                 0x00000014
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_LSB                                    0
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MSB                                    13
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MASK                                   0x00003fff
+
+
+/* Description		RESERVED_5A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_5A_OFFSET                                        0x00000014
+#define TX_MSDU_EXTENSION_RESERVED_5A_LSB                                           14
+#define TX_MSDU_EXTENSION_RESERVED_5A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_5A_MASK                                          0x0000c000
+
+
+/* Description		WDS
+
+			If set the current packet is 4-address frame.  Required 
+			because an aggregate can include some frames with 3 address
+			 format and other frames with 4 address format.  Used by
+			 the OLE during encapsulation.  
+			Note: there is also global wds tx control in the TX_PEER_ENTRY
+			
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_WDS_OFFSET                                                0x00000014
+#define TX_MSDU_EXTENSION_WDS_LSB                                                   16
+#define TX_MSDU_EXTENSION_WDS_MSB                                                   16
+#define TX_MSDU_EXTENSION_WDS_MASK                                                  0x00010000
+
+
+/* Description		RESERVED_5B
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_5B_OFFSET                                        0x00000014
+#define TX_MSDU_EXTENSION_RESERVED_5B_LSB                                           17
+#define TX_MSDU_EXTENSION_RESERVED_5B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_5B_MASK                                          0xfffe0000
+
+
+/* Description		BUF0_PTR_31_0
+
+			Lower 32 bits of the first buffer pointer 
+			
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_OFFSET                                      0x00000018
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF0_PTR_39_32
+
+			Upper 8 bits of the first buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_OFFSET                                     0x0000001c
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		EXTN_OVERRIDE
+
+			Field only used by TCL
+			
+			When set, the fields encap_type, Encrypt_type, TQM_NO_DROP, 
+			EPD and mesh_enable are valid and override any TCL per-bank
+			 registers specifying these values (except TQM_NO_DROP).
+			
+			
+			When clear, the values for encap_type, Encrypt_type, EPD, 
+			mesh_enable and DSCP_TID_TABLE_NUM are taken from per-bank
+			 registers in TCL and TQM_NO_DROP is not being requested
+			 by SW.
+			
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_OFFSET                                      0x0000001c
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_LSB                                         8
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MSB                                         8
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MASK                                        0x00000100
+
+
+/* Description		ENCAP_TYPE
+
+			Field only used by TCL, only valid if Extn_override is set.
+			
+			
+			Indicates the encapsulation that HW will perform:
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> DO NOT USE. Indicate Ethernet
+			
+			Used by the OLE during encapsulation.
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_OFFSET                                         0x0000001c
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_LSB                                            9
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_MSB                                            10
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_MASK                                           0x00000600
+
+
+/* Description		ENCRYPT_TYPE
+
+			Field only used by TCL, only valid if Extn_override is set
+			 and encap_type = RAW
+			
+			Indicates type of decrypt cipher used (as defined in the
+			 peer entry)
+			<enum 0 wep_40> WEP 40-bit
+			<enum 1 wep_104> WEP 104-bit
+			<enum 2 tkip_no_mic> TKIP without MIC
+			<enum 3 wep_128> WEP 128-bit
+			<enum 4 tkip_with_mic> TKIP with MIC
+			<enum 5 wapi> WAPI
+			<enum 6 aes_ccmp_128> AES CCMP 128
+			<enum 7 no_cipher> No crypto
+			<enum 8 aes_ccmp_256> AES CCMP 256
+			<enum 9 aes_gcmp_128> AES CCMP 128
+			<enum 10 aes_gcmp_256> AES CCMP 256
+			<enum 11 wapi_gcm_sm4> WAPI GCM SM4
+			
+			<enum 12 wep_varied_width> DO not use... Only for higher
+			 layer modules..
+			<legal 0-12>
+*/
+
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_OFFSET                                       0x0000001c
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_LSB                                          11
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MSB                                          14
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MASK                                         0x00007800
+
+
+/* Description		TQM_NO_DROP
+
+			Field only used by TCL, only valid if Extn_override is set.
+			
+			
+			This bit is used to stop TQM from dropping MSDUs while adding
+			 them to MSDU flows1'b1: Do not drop MSDU when any of the
+			 threshold value is met while adding MSDU in a flow1'b1: 
+			Drop MSDU when any of the threshold value is met while adding
+			 MSDU in a flow
+			Note: TCL can also have CCE/LCE rules to set 'TQM_NO_DROP' 
+			which will be OR'd to this value.
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_OFFSET                                        0x0000001c
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_LSB                                           15
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_MSB                                           15
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_MASK                                          0x00008000
+
+
+/* Description		BUF0_LEN
+
+			Length of the first buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF0_LEN_OFFSET                                           0x0000001c
+#define TX_MSDU_EXTENSION_BUF0_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF0_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF0_LEN_MASK                                             0xffff0000
+
+
+/* Description		BUF1_PTR_31_0
+
+			Lower 32 bits of the second buffer pointer 
+			
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_OFFSET                                      0x00000020
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF1_PTR_39_32
+
+			Upper 8 bits of the second buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_OFFSET                                     0x00000024
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		EPD
+
+			Field only used by TCL, only valid if Extn_override is set.
+			
+			
+			When this bit is set then input packet is an EPD type
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_EPD_OFFSET                                                0x00000024
+#define TX_MSDU_EXTENSION_EPD_LSB                                                   8
+#define TX_MSDU_EXTENSION_EPD_MSB                                                   8
+#define TX_MSDU_EXTENSION_EPD_MASK                                                  0x00000100
+
+
+/* Description		MESH_ENABLE
+
+			Field only used by TCL, only valid if Extn_override is set.
+			
+			
+			If set to a non-zero value:
+			* For raw WiFi frames, this indicates transmission to a 
+			mesh STA, enabling the interpretation of the 'Mesh Control
+			 Present' bit (bit 8) of QoS Control (otherwise this bit
+			 is ignored). The interpretation of the A-MSDU 'Length' 
+			field is decided by the e-numerations below.
+			* For native WiFi frames, this indicates that a 'Mesh Control' 
+			field is present between the header and the LLC. The three
+			 non-zero values are interchangeable.
+			
+			<enum 0 MESH_DISABLE>
+			<enum 1 MESH_Q2Q> A-MSDU 'Length' is big endian and includes
+			 the length of Mesh Control.
+			<enum 2 MESH_11S_BE> A-MSDU 'Length' is big endian and excludes
+			 the length of Mesh Control.
+			<enum 3 MESH_11S_LE> A-MSDU 'Length' is little endian and
+			 excludes the length of Mesh Control. This is 802.11s-compliant.
+			
+			<legal 0-3>
+*/
+
+#define TX_MSDU_EXTENSION_MESH_ENABLE_OFFSET                                        0x00000024
+#define TX_MSDU_EXTENSION_MESH_ENABLE_LSB                                           9
+#define TX_MSDU_EXTENSION_MESH_ENABLE_MSB                                           10
+#define TX_MSDU_EXTENSION_MESH_ENABLE_MASK                                          0x00000600
+
+
+/* Description		RESERVED_9A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_9A_OFFSET                                        0x00000024
+#define TX_MSDU_EXTENSION_RESERVED_9A_LSB                                           11
+#define TX_MSDU_EXTENSION_RESERVED_9A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_9A_MASK                                          0x0000f800
+
+
+/* Description		BUF1_LEN
+
+			Length of the second buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF1_LEN_OFFSET                                           0x00000024
+#define TX_MSDU_EXTENSION_BUF1_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF1_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF1_LEN_MASK                                             0xffff0000
+
+
+/* Description		BUF2_PTR_31_0
+
+			Lower 32 bits of the third buffer pointer 
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_OFFSET                                      0x00000028
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF2_PTR_39_32
+
+			Upper 8 bits of the third buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_OFFSET                                     0x0000002c
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		DSCP_TID_TABLE_NUM
+
+			Field only used by TCL, only valid if Extn_override is set.
+			
+			
+			This specifies the DSCP to TID mapping table to be used 
+			for the MSDU
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_OFFSET                                 0x0000002c
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_LSB                                    8
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MSB                                    13
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MASK                                   0x00003f00
+
+
+/* Description		RESERVED_11A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_11A_OFFSET                                       0x0000002c
+#define TX_MSDU_EXTENSION_RESERVED_11A_LSB                                          14
+#define TX_MSDU_EXTENSION_RESERVED_11A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_11A_MASK                                         0x0000c000
+
+
+/* Description		BUF2_LEN
+
+			Length of the third buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF2_LEN_OFFSET                                           0x0000002c
+#define TX_MSDU_EXTENSION_BUF2_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF2_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF2_LEN_MASK                                             0xffff0000
+
+
+/* Description		BUF3_PTR_31_0
+
+			Lower 32 bits of the fourth buffer pointer
+			
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			 <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_OFFSET                                      0x00000030
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF3_PTR_39_32
+
+			Upper 8 bits of the fourth buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_OFFSET                                     0x00000034
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		RESERVED_13A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_13A_OFFSET                                       0x00000034
+#define TX_MSDU_EXTENSION_RESERVED_13A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_13A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_13A_MASK                                         0x0000ff00
+
+
+/* Description		BUF3_LEN
+
+			Length of the fourth buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF3_LEN_OFFSET                                           0x00000034
+#define TX_MSDU_EXTENSION_BUF3_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF3_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF3_LEN_MASK                                             0xffff0000
+
+
+/* Description		BUF4_PTR_31_0
+
+			Lower 32 bits of the fifth buffer pointer 
+			
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			<legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_OFFSET                                      0x00000038
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF4_PTR_39_32
+
+			Upper 8 bits of the fifth buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_OFFSET                                     0x0000003c
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		RESERVED_15A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_15A_OFFSET                                       0x0000003c
+#define TX_MSDU_EXTENSION_RESERVED_15A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_15A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_15A_MASK                                         0x0000ff00
+
+
+/* Description		BUF4_LEN
+
+			Length of the fifth buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF4_LEN_OFFSET                                           0x0000003c
+#define TX_MSDU_EXTENSION_BUF4_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF4_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF4_LEN_MASK                                             0xffff0000
+
+
+/* Description		BUF5_PTR_31_0
+
+			Lower 32 bits of the sixth buffer pointer
+			
+			NOTE: SW/FW manages the 'cookie' info related to this buffer
+			 together with the 'cookie' info for this MSDU_EXTENSION
+			 descriptor
+			 <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_OFFSET                                      0x00000040
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MASK                                        0xffffffff
+
+
+/* Description		BUF5_PTR_39_32
+
+			Upper 8 bits of the sixth buffer pointer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_OFFSET                                     0x00000044
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MASK                                       0x000000ff
+
+
+/* Description		RESERVED_17A
+
+			<Legal 0>
+*/
+
+#define TX_MSDU_EXTENSION_RESERVED_17A_OFFSET                                       0x00000044
+#define TX_MSDU_EXTENSION_RESERVED_17A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_17A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_17A_MASK                                         0x0000ff00
+
+
+/* Description		BUF5_LEN
+
+			Length of the sixth buffer <legal all>
+*/
+
+#define TX_MSDU_EXTENSION_BUF5_LEN_OFFSET                                           0x00000044
+#define TX_MSDU_EXTENSION_BUF5_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF5_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF5_LEN_MASK                                             0xffff0000
+
+
+
+#endif   // TX_MSDU_EXTENSION
diff --git a/hw/qca5332/tx_msdu_start.h b/hw/qca5332/tx_msdu_start.h
new file mode 100644
index 0000000..a433f1f
--- /dev/null
+++ b/hw/qca5332/tx_msdu_start.h
@@ -0,0 +1,538 @@
+
+/* 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_MSDU_START_H_
+#define _TX_MSDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_MSDU_START 8
+
+#define NUM_OF_QWORDS_TX_MSDU_START 4
+
+
+struct tx_msdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t msdu_len                                                : 14, // [13:0]
+                      first_msdu                                              :  1, // [14:14]
+                      last_msdu                                               :  1, // [15:15]
+                      encap_type                                              :  2, // [17:16]
+                      epd_en                                                  :  1, // [18:18]
+                      da_sa_present                                           :  2, // [20:19]
+                      ipv4_checksum_en                                        :  1, // [21:21]
+                      udp_over_ipv4_checksum_en                               :  1, // [22:22]
+                      udp_over_ipv6_checksum_en                               :  1, // [23:23]
+                      tcp_over_ipv4_checksum_en                               :  1, // [24:24]
+                      tcp_over_ipv6_checksum_en                               :  1, // [25:25]
+                      dummy_msdu_delimitation                                 :  1, // [26:26]
+                      reserved_0a                                             :  5; // [31:27]
+             uint32_t tso_enable                                              :  1, // [0:0]
+                      reserved_1a                                             :  6, // [6:1]
+                      tcp_flag                                                :  9, // [15:7]
+                      tcp_flag_mask                                           :  9, // [24:16]
+                      mesh_enable                                             :  1, // [25:25]
+                      reserved_1b                                             :  6; // [31:26]
+             uint32_t l2_length                                               : 16, // [15:0]
+                      ip_length                                               : 16; // [31:16]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t ip_identification                                       : 16, // [15:0]
+                      checksum_offset                                         : 13, // [28:16]
+                      partial_checksum_en                                     :  1, // [29:29]
+                      reserved_4                                              :  2; // [31:30]
+             uint32_t payload_start_offset                                    : 14, // [13:0]
+                      reserved_5a                                             :  2, // [15:14]
+                      payload_end_offset                                      : 14, // [29:16]
+                      reserved_5b                                             :  2; // [31:30]
+             uint32_t udp_length                                              : 16, // [15:0]
+                      reserved_6                                              : 16; // [31:16]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             :  5, // [31:27]
+                      dummy_msdu_delimitation                                 :  1, // [26:26]
+                      tcp_over_ipv6_checksum_en                               :  1, // [25:25]
+                      tcp_over_ipv4_checksum_en                               :  1, // [24:24]
+                      udp_over_ipv6_checksum_en                               :  1, // [23:23]
+                      udp_over_ipv4_checksum_en                               :  1, // [22:22]
+                      ipv4_checksum_en                                        :  1, // [21:21]
+                      da_sa_present                                           :  2, // [20:19]
+                      epd_en                                                  :  1, // [18:18]
+                      encap_type                                              :  2, // [17:16]
+                      last_msdu                                               :  1, // [15:15]
+                      first_msdu                                              :  1, // [14:14]
+                      msdu_len                                                : 14; // [13:0]
+             uint32_t reserved_1b                                             :  6, // [31:26]
+                      mesh_enable                                             :  1, // [25:25]
+                      tcp_flag_mask                                           :  9, // [24:16]
+                      tcp_flag                                                :  9, // [15:7]
+                      reserved_1a                                             :  6, // [6:1]
+                      tso_enable                                              :  1; // [0:0]
+             uint32_t ip_length                                               : 16, // [31:16]
+                      l2_length                                               : 16; // [15:0]
+             uint32_t tcp_seq_number                                          : 32; // [31:0]
+             uint32_t reserved_4                                              :  2, // [31:30]
+                      partial_checksum_en                                     :  1, // [29:29]
+                      checksum_offset                                         : 13, // [28:16]
+                      ip_identification                                       : 16; // [15:0]
+             uint32_t reserved_5b                                             :  2, // [31:30]
+                      payload_end_offset                                      : 14, // [29:16]
+                      reserved_5a                                             :  2, // [15:14]
+                      payload_start_offset                                    : 14; // [13:0]
+             uint32_t reserved_6                                              : 16, // [31:16]
+                      udp_length                                              : 16; // [15:0]
+             uint32_t tlv64_padding                                           : 32; // [31:0]
+#endif
+};
+
+
+/* Description		MSDU_LEN
+
+			MSDU length before encapsulation. It is the same value as
+			 the length in the MSDU packet TLV
+*/
+
+#define TX_MSDU_START_MSDU_LEN_OFFSET                                               0x0000000000000000
+#define TX_MSDU_START_MSDU_LEN_LSB                                                  0
+#define TX_MSDU_START_MSDU_LEN_MSB                                                  13
+#define TX_MSDU_START_MSDU_LEN_MASK                                                 0x0000000000003fff
+
+
+/* Description		FIRST_MSDU
+
+			If set the current MSDU is the first MSDU in MPDU.  Used
+			 by the OLE during encapsulation.
+*/
+
+#define TX_MSDU_START_FIRST_MSDU_OFFSET                                             0x0000000000000000
+#define TX_MSDU_START_FIRST_MSDU_LSB                                                14
+#define TX_MSDU_START_FIRST_MSDU_MSB                                                14
+#define TX_MSDU_START_FIRST_MSDU_MASK                                               0x0000000000004000
+
+
+/* Description		LAST_MSDU
+
+			If set the current MSDU is the last MSDU in MPDU.  Used 
+			by the OLE during encapsulation.
+*/
+
+#define TX_MSDU_START_LAST_MSDU_OFFSET                                              0x0000000000000000
+#define TX_MSDU_START_LAST_MSDU_LSB                                                 15
+#define TX_MSDU_START_LAST_MSDU_MSB                                                 15
+#define TX_MSDU_START_LAST_MSDU_MASK                                                0x0000000000008000
+
+
+/* Description		ENCAP_TYPE
+
+			Indicates the encapsulation that HW will perform:
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX) or 802.3 (uses SNAP/LLC) 
+			
+			<enum 3 802_3> DO NOT USE. Indicate Ethernet
+			Used by the OLE during encapsulation.
+			<legal all>
+*/
+
+#define TX_MSDU_START_ENCAP_TYPE_OFFSET                                             0x0000000000000000
+#define TX_MSDU_START_ENCAP_TYPE_LSB                                                16
+#define TX_MSDU_START_ENCAP_TYPE_MSB                                                17
+#define TX_MSDU_START_ENCAP_TYPE_MASK                                               0x0000000000030000
+
+
+/* Description		EPD_EN
+
+			Consumer: TXOLE
+			Producer: SW/TCL
+			
+			If set to one use EPD instead of LPD
+			<legal all>
+*/
+
+#define TX_MSDU_START_EPD_EN_OFFSET                                                 0x0000000000000000
+#define TX_MSDU_START_EPD_EN_LSB                                                    18
+#define TX_MSDU_START_EPD_EN_MSB                                                    18
+#define TX_MSDU_START_EPD_EN_MASK                                                   0x0000000000040000
+
+
+/* Description		DA_SA_PRESENT
+
+			Used for 11ah
+			
+			Indicates the encapsulation that HW will perform:
+			<enum 0 DA_SA_IS_ABSENT> DA and SA absent
+			<enum 1 DA_IS_PRESENT>  DA Present, SA Absent
+			<enum 2 SA_IS_PRESENT>  
+			<enum 3 DA_SA_IS_PRESENT>  Both DA and SA are present 
+			Used by the OLE during encapsulation.
+			
+			TXDMA gets this configuration from a sw configuration register.
+			
+			
+			<legal all>
+*/
+
+#define TX_MSDU_START_DA_SA_PRESENT_OFFSET                                          0x0000000000000000
+#define TX_MSDU_START_DA_SA_PRESENT_LSB                                             19
+#define TX_MSDU_START_DA_SA_PRESENT_MSB                                             20
+#define TX_MSDU_START_DA_SA_PRESENT_MASK                                            0x0000000000180000
+
+
+/* Description		IPV4_CHECKSUM_EN
+
+			Enable IPv4 checksum replacement
+*/
+
+#define TX_MSDU_START_IPV4_CHECKSUM_EN_OFFSET                                       0x0000000000000000
+#define TX_MSDU_START_IPV4_CHECKSUM_EN_LSB                                          21
+#define TX_MSDU_START_IPV4_CHECKSUM_EN_MSB                                          21
+#define TX_MSDU_START_IPV4_CHECKSUM_EN_MASK                                         0x0000000000200000
+
+
+/* Description		UDP_OVER_IPV4_CHECKSUM_EN
+
+			Enable UDP over IPv4 checksum replacement.  UDP checksum
+			 over IPv4 is optional for TCP/IP stacks.
+*/
+
+#define TX_MSDU_START_UDP_OVER_IPV4_CHECKSUM_EN_OFFSET                              0x0000000000000000
+#define TX_MSDU_START_UDP_OVER_IPV4_CHECKSUM_EN_LSB                                 22
+#define TX_MSDU_START_UDP_OVER_IPV4_CHECKSUM_EN_MSB                                 22
+#define TX_MSDU_START_UDP_OVER_IPV4_CHECKSUM_EN_MASK                                0x0000000000400000
+
+
+/* Description		UDP_OVER_IPV6_CHECKSUM_EN
+
+			Enable UDP over IPv6 checksum replacement.  UDP checksum
+			 over IPv6 is mandatory for TCP/IP stacks.
+*/
+
+#define TX_MSDU_START_UDP_OVER_IPV6_CHECKSUM_EN_OFFSET                              0x0000000000000000
+#define TX_MSDU_START_UDP_OVER_IPV6_CHECKSUM_EN_LSB                                 23
+#define TX_MSDU_START_UDP_OVER_IPV6_CHECKSUM_EN_MSB                                 23
+#define TX_MSDU_START_UDP_OVER_IPV6_CHECKSUM_EN_MASK                                0x0000000000800000
+
+
+/* Description		TCP_OVER_IPV4_CHECKSUM_EN
+
+			Enable TCP checksum over IPv4 replacement
+*/
+
+#define TX_MSDU_START_TCP_OVER_IPV4_CHECKSUM_EN_OFFSET                              0x0000000000000000
+#define TX_MSDU_START_TCP_OVER_IPV4_CHECKSUM_EN_LSB                                 24
+#define TX_MSDU_START_TCP_OVER_IPV4_CHECKSUM_EN_MSB                                 24
+#define TX_MSDU_START_TCP_OVER_IPV4_CHECKSUM_EN_MASK                                0x0000000001000000
+
+
+/* Description		TCP_OVER_IPV6_CHECKSUM_EN
+
+			Enable TCP checksum over IPv6 eplacement
+*/
+
+#define TX_MSDU_START_TCP_OVER_IPV6_CHECKSUM_EN_OFFSET                              0x0000000000000000
+#define TX_MSDU_START_TCP_OVER_IPV6_CHECKSUM_EN_LSB                                 25
+#define TX_MSDU_START_TCP_OVER_IPV6_CHECKSUM_EN_MSB                                 25
+#define TX_MSDU_START_TCP_OVER_IPV6_CHECKSUM_EN_MASK                                0x0000000002000000
+
+
+/* Description		DUMMY_MSDU_DELIMITATION
+
+			This bit is mainly for debug.
+			
+			TXDMA sets this bit when sending a dummy 'TX_MSDU_END' + 'TX_MSDU_START' 
+			sequence for a user to delimit user arbitration where it
+			 could switch to packet data from other users before continuing
+			 this MSDU.
+			
+			This is done mainly for long raw Wi-Fi packets where TXDMA
+			 needs to switch users in the midst of the packet but other
+			 blocks assume TXDMA switch only at MSDU boundaries.
+			<legal all>
+*/
+
+#define TX_MSDU_START_DUMMY_MSDU_DELIMITATION_OFFSET                                0x0000000000000000
+#define TX_MSDU_START_DUMMY_MSDU_DELIMITATION_LSB                                   26
+#define TX_MSDU_START_DUMMY_MSDU_DELIMITATION_MSB                                   26
+#define TX_MSDU_START_DUMMY_MSDU_DELIMITATION_MASK                                  0x0000000004000000
+
+
+/* Description		RESERVED_0A
+
+			FW will set to 0, MAC will ignore.  <legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_0A_OFFSET                                            0x0000000000000000
+#define TX_MSDU_START_RESERVED_0A_LSB                                               27
+#define TX_MSDU_START_RESERVED_0A_MSB                                               31
+#define TX_MSDU_START_RESERVED_0A_MASK                                              0x00000000f8000000
+
+
+/* Description		TSO_ENABLE
+
+			Enable transmit segmentation offload.
+			
+			In case MSDU_EXTENSION is used, TXDMA gets the setting for
+			 this bit from that descriptor.
+			In case MSDU_EXTENSION is NOT use, TXDMA gets the setting
+			 for this bit from an internal SW programmable register.
+			
+			 <legal all>
+*/
+
+#define TX_MSDU_START_TSO_ENABLE_OFFSET                                             0x0000000000000000
+#define TX_MSDU_START_TSO_ENABLE_LSB                                                32
+#define TX_MSDU_START_TSO_ENABLE_MSB                                                32
+#define TX_MSDU_START_TSO_ENABLE_MASK                                               0x0000000100000000
+
+
+/* Description		RESERVED_1A
+
+			FW will set to 0, MAC will ignore.  <legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_1A_OFFSET                                            0x0000000000000000
+#define TX_MSDU_START_RESERVED_1A_LSB                                               33
+#define TX_MSDU_START_RESERVED_1A_MSB                                               38
+#define TX_MSDU_START_RESERVED_1A_MASK                                              0x0000007e00000000
+
+
+/* Description		TCP_FLAG
+
+			TCP flags
+			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
+*/
+
+#define TX_MSDU_START_TCP_FLAG_OFFSET                                               0x0000000000000000
+#define TX_MSDU_START_TCP_FLAG_LSB                                                  39
+#define TX_MSDU_START_TCP_FLAG_MSB                                                  47
+#define TX_MSDU_START_TCP_FLAG_MASK                                                 0x0000ff8000000000
+
+
+/* Description		TCP_FLAG_MASK
+
+			TCP flag mask. Tcp_flag is inserted into the header based
+			 on the mask, if TSO is enabled
+*/
+
+#define TX_MSDU_START_TCP_FLAG_MASK_OFFSET                                          0x0000000000000000
+#define TX_MSDU_START_TCP_FLAG_MASK_LSB                                             48
+#define TX_MSDU_START_TCP_FLAG_MASK_MSB                                             56
+#define TX_MSDU_START_TCP_FLAG_MASK_MASK                                            0x01ff000000000000
+
+
+/* Description		MESH_ENABLE
+
+			If set to 1:
+			
+			* For raw WiFi frames, this indicates transmission to a 
+			mesh STA but is ignored by HW
+			
+			* For native WiFi frames, this is used to indicate to TX
+			 OLE that a 'Mesh Control' field is present between the 
+			header and the LLC
+*/
+
+#define TX_MSDU_START_MESH_ENABLE_OFFSET                                            0x0000000000000000
+#define TX_MSDU_START_MESH_ENABLE_LSB                                               57
+#define TX_MSDU_START_MESH_ENABLE_MSB                                               57
+#define TX_MSDU_START_MESH_ENABLE_MASK                                              0x0200000000000000
+
+
+/* Description		RESERVED_1B
+
+			FW will set to 0, MAC will ignore.  <legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_1B_OFFSET                                            0x0000000000000000
+#define TX_MSDU_START_RESERVED_1B_LSB                                               58
+#define TX_MSDU_START_RESERVED_1B_MSB                                               63
+#define TX_MSDU_START_RESERVED_1B_MASK                                              0xfc00000000000000
+
+
+/* Description		L2_LENGTH
+
+			L2 length for the msdu, if TSO is enabled <legal all>
+*/
+
+#define TX_MSDU_START_L2_LENGTH_OFFSET                                              0x0000000000000008
+#define TX_MSDU_START_L2_LENGTH_LSB                                                 0
+#define TX_MSDU_START_L2_LENGTH_MSB                                                 15
+#define TX_MSDU_START_L2_LENGTH_MASK                                                0x000000000000ffff
+
+
+/* Description		IP_LENGTH
+
+			IP length for the msdu, if TSO is enabled <legal all>
+*/
+
+#define TX_MSDU_START_IP_LENGTH_OFFSET                                              0x0000000000000008
+#define TX_MSDU_START_IP_LENGTH_LSB                                                 16
+#define TX_MSDU_START_IP_LENGTH_MSB                                                 31
+#define TX_MSDU_START_IP_LENGTH_MASK                                                0x00000000ffff0000
+
+
+/* Description		TCP_SEQ_NUMBER
+
+			Tcp_seq_number for the msdu, if TSO is enabled <legal all>
+			
+*/
+
+#define TX_MSDU_START_TCP_SEQ_NUMBER_OFFSET                                         0x0000000000000008
+#define TX_MSDU_START_TCP_SEQ_NUMBER_LSB                                            32
+#define TX_MSDU_START_TCP_SEQ_NUMBER_MSB                                            63
+#define TX_MSDU_START_TCP_SEQ_NUMBER_MASK                                           0xffffffff00000000
+
+
+/* Description		IP_IDENTIFICATION
+
+			IP_identification for the msdu, if TSO is enabled <legal
+			 all>
+*/
+
+#define TX_MSDU_START_IP_IDENTIFICATION_OFFSET                                      0x0000000000000010
+#define TX_MSDU_START_IP_IDENTIFICATION_LSB                                         0
+#define TX_MSDU_START_IP_IDENTIFICATION_MSB                                         15
+#define TX_MSDU_START_IP_IDENTIFICATION_MASK                                        0x000000000000ffff
+
+
+/* Description		CHECKSUM_OFFSET
+
+			The calculated checksum from start offset to end offset 
+			will be added to the checksum at the offset given by this
+			 field<legal all>
+*/
+
+#define TX_MSDU_START_CHECKSUM_OFFSET_OFFSET                                        0x0000000000000010
+#define TX_MSDU_START_CHECKSUM_OFFSET_LSB                                           16
+#define TX_MSDU_START_CHECKSUM_OFFSET_MSB                                           28
+#define TX_MSDU_START_CHECKSUM_OFFSET_MASK                                          0x000000001fff0000
+
+
+/* Description		PARTIAL_CHECKSUM_EN
+
+			Enable Partial Checksum, MAV feature
+*/
+
+#define TX_MSDU_START_PARTIAL_CHECKSUM_EN_OFFSET                                    0x0000000000000010
+#define TX_MSDU_START_PARTIAL_CHECKSUM_EN_LSB                                       29
+#define TX_MSDU_START_PARTIAL_CHECKSUM_EN_MSB                                       29
+#define TX_MSDU_START_PARTIAL_CHECKSUM_EN_MASK                                      0x0000000020000000
+
+
+/* Description		RESERVED_4
+
+			<legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_4_OFFSET                                             0x0000000000000010
+#define TX_MSDU_START_RESERVED_4_LSB                                                30
+#define TX_MSDU_START_RESERVED_4_MSB                                                31
+#define TX_MSDU_START_RESERVED_4_MASK                                               0x00000000c0000000
+
+
+/* Description		PAYLOAD_START_OFFSET
+
+			L4 checksum calculations will start fromt this offset
+			<legal all>
+*/
+
+#define TX_MSDU_START_PAYLOAD_START_OFFSET_OFFSET                                   0x0000000000000010
+#define TX_MSDU_START_PAYLOAD_START_OFFSET_LSB                                      32
+#define TX_MSDU_START_PAYLOAD_START_OFFSET_MSB                                      45
+#define TX_MSDU_START_PAYLOAD_START_OFFSET_MASK                                     0x00003fff00000000
+
+
+/* Description		RESERVED_5A
+
+			<legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_5A_OFFSET                                            0x0000000000000010
+#define TX_MSDU_START_RESERVED_5A_LSB                                               46
+#define TX_MSDU_START_RESERVED_5A_MSB                                               47
+#define TX_MSDU_START_RESERVED_5A_MASK                                              0x0000c00000000000
+
+
+/* Description		PAYLOAD_END_OFFSET
+
+			L4 checksum calculations will end at this offset. 
+			<legal all>
+*/
+
+#define TX_MSDU_START_PAYLOAD_END_OFFSET_OFFSET                                     0x0000000000000010
+#define TX_MSDU_START_PAYLOAD_END_OFFSET_LSB                                        48
+#define TX_MSDU_START_PAYLOAD_END_OFFSET_MSB                                        61
+#define TX_MSDU_START_PAYLOAD_END_OFFSET_MASK                                       0x3fff000000000000
+
+
+/* Description		RESERVED_5B
+
+			<legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_5B_OFFSET                                            0x0000000000000010
+#define TX_MSDU_START_RESERVED_5B_LSB                                               62
+#define TX_MSDU_START_RESERVED_5B_MSB                                               63
+#define TX_MSDU_START_RESERVED_5B_MASK                                              0xc000000000000000
+
+
+/* Description		UDP_LENGTH
+
+			This field indicates UDP length/UDP lite checksum coverage
+			 field to be used by L4 checksum engine in case TSO is enabled
+			 for UDP/UDP lite respectively 
+			<legal all>
+*/
+
+#define TX_MSDU_START_UDP_LENGTH_OFFSET                                             0x0000000000000018
+#define TX_MSDU_START_UDP_LENGTH_LSB                                                0
+#define TX_MSDU_START_UDP_LENGTH_MSB                                                15
+#define TX_MSDU_START_UDP_LENGTH_MASK                                               0x000000000000ffff
+
+
+/* Description		RESERVED_6
+
+			<legal 0>
+*/
+
+#define TX_MSDU_START_RESERVED_6_OFFSET                                             0x0000000000000018
+#define TX_MSDU_START_RESERVED_6_LSB                                                16
+#define TX_MSDU_START_RESERVED_6_MSB                                                31
+#define TX_MSDU_START_RESERVED_6_MASK                                               0x00000000ffff0000
+
+
+/* Description		TLV64_PADDING
+
+			Automatic DWORD padding inserted while converting TLV32 
+			to TLV64 for 64 bit ARCH
+			<legal 0>
+*/
+
+#define TX_MSDU_START_TLV64_PADDING_OFFSET                                          0x0000000000000018
+#define TX_MSDU_START_TLV64_PADDING_LSB                                             32
+#define TX_MSDU_START_TLV64_PADDING_MSB                                             63
+#define TX_MSDU_START_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif   // TX_MSDU_START
diff --git a/hw/qca5332/tx_peer_entry.h b/hw/qca5332/tx_peer_entry.h
new file mode 100644
index 0000000..049351b
--- /dev/null
+++ b/hw/qca5332/tx_peer_entry.h
@@ -0,0 +1,868 @@
+
+/* 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_PEER_ENTRY_H_
+#define _TX_PEER_ENTRY_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_PEER_ENTRY 18
+
+#define NUM_OF_QWORDS_TX_PEER_ENTRY 9
+
+
+struct tx_peer_entry {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mac_addr_a_31_0                                         : 32; // [31:0]
+             uint32_t mac_addr_a_47_32                                        : 16, // [15:0]
+                      mac_addr_b_15_0                                         : 16; // [31:16]
+             uint32_t mac_addr_b_47_16                                        : 32; // [31:0]
+             uint32_t use_ad_b                                                :  1, // [0:0]
+                      strip_insert_vlan_inner                                 :  1, // [1:1]
+                      strip_insert_vlan_outer                                 :  1, // [2:2]
+                      vlan_llc_mode                                           :  1, // [3:3]
+                      key_type                                                :  4, // [7:4]
+                      a_msdu_wds_ad3_ad4                                      :  3, // [10:8]
+                      ignore_hard_filters                                     :  1, // [11:11]
+                      ignore_soft_filters                                     :  1, // [12:12]
+                      epd_output                                              :  1, // [13:13]
+                      wds                                                     :  1, // [14:14]
+                      insert_or_strip                                         :  1, // [15:15]
+                      sw_filter_id                                            : 16; // [31:16]
+             uint32_t temporal_key_31_0                                       : 32; // [31:0]
+             uint32_t temporal_key_63_32                                      : 32; // [31:0]
+             uint32_t temporal_key_95_64                                      : 32; // [31:0]
+             uint32_t temporal_key_127_96                                     : 32; // [31:0]
+             uint32_t temporal_key_159_128                                    : 32; // [31:0]
+             uint32_t temporal_key_191_160                                    : 32; // [31:0]
+             uint32_t temporal_key_223_192                                    : 32; // [31:0]
+             uint32_t temporal_key_255_224                                    : 32; // [31:0]
+             uint32_t sta_partial_aid                                         : 11, // [10:0]
+                      transmit_vif                                            :  4, // [14:11]
+                      block_this_user                                         :  1, // [15:15]
+                      mesh_amsdu_mode                                         :  2, // [17:16]
+                      use_qos_alt_mute_mask                                   :  1, // [18:18]
+                      dl_ul_direction                                         :  1, // [19:19]
+                      reserved_12                                             : 12; // [31:20]
+             uint32_t insert_vlan_outer_tci                                   : 16, // [15:0]
+                      insert_vlan_inner_tci                                   : 16; // [31:16]
+             uint32_t multi_link_addr_ad1_31_0                                : 32; // [31:0]
+             uint32_t multi_link_addr_ad1_47_32                               : 16, // [15:0]
+                      multi_link_addr_ad2_15_0                                : 16; // [31:16]
+             uint32_t multi_link_addr_ad2_47_16                               : 32; // [31:0]
+             uint32_t multi_link_addr_crypto_enable                           :  1, // [0:0]
+                      reserved_17a                                            : 15, // [15:1]
+                      sw_peer_id                                              : 16; // [31:16]
+#else
+             uint32_t mac_addr_a_31_0                                         : 32; // [31:0]
+             uint32_t mac_addr_b_15_0                                         : 16, // [31:16]
+                      mac_addr_a_47_32                                        : 16; // [15:0]
+             uint32_t mac_addr_b_47_16                                        : 32; // [31:0]
+             uint32_t sw_filter_id                                            : 16, // [31:16]
+                      insert_or_strip                                         :  1, // [15:15]
+                      wds                                                     :  1, // [14:14]
+                      epd_output                                              :  1, // [13:13]
+                      ignore_soft_filters                                     :  1, // [12:12]
+                      ignore_hard_filters                                     :  1, // [11:11]
+                      a_msdu_wds_ad3_ad4                                      :  3, // [10:8]
+                      key_type                                                :  4, // [7:4]
+                      vlan_llc_mode                                           :  1, // [3:3]
+                      strip_insert_vlan_outer                                 :  1, // [2:2]
+                      strip_insert_vlan_inner                                 :  1, // [1:1]
+                      use_ad_b                                                :  1; // [0:0]
+             uint32_t temporal_key_31_0                                       : 32; // [31:0]
+             uint32_t temporal_key_63_32                                      : 32; // [31:0]
+             uint32_t temporal_key_95_64                                      : 32; // [31:0]
+             uint32_t temporal_key_127_96                                     : 32; // [31:0]
+             uint32_t temporal_key_159_128                                    : 32; // [31:0]
+             uint32_t temporal_key_191_160                                    : 32; // [31:0]
+             uint32_t temporal_key_223_192                                    : 32; // [31:0]
+             uint32_t temporal_key_255_224                                    : 32; // [31:0]
+             uint32_t reserved_12                                             : 12, // [31:20]
+                      dl_ul_direction                                         :  1, // [19:19]
+                      use_qos_alt_mute_mask                                   :  1, // [18:18]
+                      mesh_amsdu_mode                                         :  2, // [17:16]
+                      block_this_user                                         :  1, // [15:15]
+                      transmit_vif                                            :  4, // [14:11]
+                      sta_partial_aid                                         : 11; // [10:0]
+             uint32_t insert_vlan_inner_tci                                   : 16, // [31:16]
+                      insert_vlan_outer_tci                                   : 16; // [15:0]
+             uint32_t multi_link_addr_ad1_31_0                                : 32; // [31:0]
+             uint32_t multi_link_addr_ad2_15_0                                : 16, // [31:16]
+                      multi_link_addr_ad1_47_32                               : 16; // [15:0]
+             uint32_t multi_link_addr_ad2_47_16                               : 32; // [31:0]
+             uint32_t sw_peer_id                                              : 16, // [31:16]
+                      reserved_17a                                            : 15, // [15:1]
+                      multi_link_addr_crypto_enable                           :  1; // [0:0]
+#endif
+};
+
+
+/* Description		MAC_ADDR_A_31_0
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Lower 32 bits of the MAC address A used by HW for encapsulating
+			 802.11
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_MAC_ADDR_A_31_0_OFFSET                                        0x0000000000000000
+#define TX_PEER_ENTRY_MAC_ADDR_A_31_0_LSB                                           0
+#define TX_PEER_ENTRY_MAC_ADDR_A_31_0_MSB                                           31
+#define TX_PEER_ENTRY_MAC_ADDR_A_31_0_MASK                                          0x00000000ffffffff
+
+
+/* Description		MAC_ADDR_A_47_32
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Upper 16 bits of the MAC address A used by HW for encapsulating
+			 802.11
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_MAC_ADDR_A_47_32_OFFSET                                       0x0000000000000000
+#define TX_PEER_ENTRY_MAC_ADDR_A_47_32_LSB                                          32
+#define TX_PEER_ENTRY_MAC_ADDR_A_47_32_MSB                                          47
+#define TX_PEER_ENTRY_MAC_ADDR_A_47_32_MASK                                         0x0000ffff00000000
+
+
+/* Description		MAC_ADDR_B_15_0
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Lower 16 bits of the MAC address B used by HW for encapsulating
+			 802.11
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_MAC_ADDR_B_15_0_OFFSET                                        0x0000000000000000
+#define TX_PEER_ENTRY_MAC_ADDR_B_15_0_LSB                                           48
+#define TX_PEER_ENTRY_MAC_ADDR_B_15_0_MSB                                           63
+#define TX_PEER_ENTRY_MAC_ADDR_B_15_0_MASK                                          0xffff000000000000
+
+
+/* Description		MAC_ADDR_B_47_16
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Upper 32 bits of the MAC address B used by HW for encapsulating
+			 802.11
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_MAC_ADDR_B_47_16_OFFSET                                       0x0000000000000008
+#define TX_PEER_ENTRY_MAC_ADDR_B_47_16_LSB                                          0
+#define TX_PEER_ENTRY_MAC_ADDR_B_47_16_MSB                                          31
+#define TX_PEER_ENTRY_MAC_ADDR_B_47_16_MASK                                         0x00000000ffffffff
+
+
+/* Description		USE_AD_B
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			The bit is only evaluated when this MSDU is the first MSDU
+			 in an MPDU. For other MSDUs this bit setting is ignored.
+			
+			It is part of the sw_msdu_param coming from the QM ADD frame
+			 command.
+			
+			Normally in AP mode the DA address is used as the RA.  This
+			 is normally fine but the use_ad_b bit should be set when
+			 DA is a multicast/broadcast address but we want to send
+			 this packet using the destination STA address which will
+			 be held in the mac_addr_b field of the peer descriptor.
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_USE_AD_B_OFFSET                                               0x0000000000000008
+#define TX_PEER_ENTRY_USE_AD_B_LSB                                                  32
+#define TX_PEER_ENTRY_USE_AD_B_MSB                                                  32
+#define TX_PEER_ENTRY_USE_AD_B_MASK                                                 0x0000000100000000
+
+
+/* Description		STRIP_INSERT_VLAN_INNER
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Strip or insert C-VLAN during encapsulation.
+			Insert_or_strip determines whether C-VLAN is to be stripped
+			 or inserted.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_INNER_OFFSET                                0x0000000000000008
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_INNER_LSB                                   33
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_INNER_MSB                                   33
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_INNER_MASK                                  0x0000000200000000
+
+
+/* Description		STRIP_INSERT_VLAN_OUTER
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Strip or insert S-VLAN during encapsulation.
+			Insert or strip determines whether S-VLAN is to be stripped
+			 or inserted.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_OUTER_OFFSET                                0x0000000000000008
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_OUTER_LSB                                   34
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_OUTER_MSB                                   34
+#define TX_PEER_ENTRY_STRIP_INSERT_VLAN_OUTER_MASK                                  0x0000000400000000
+
+
+/* Description		VLAN_LLC_MODE
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			If set encapsulate/decapsulate using the Scorpion compatible
+			 VLAN LLC format
+*/
+
+#define TX_PEER_ENTRY_VLAN_LLC_MODE_OFFSET                                          0x0000000000000008
+#define TX_PEER_ENTRY_VLAN_LLC_MODE_LSB                                             35
+#define TX_PEER_ENTRY_VLAN_LLC_MODE_MSB                                             35
+#define TX_PEER_ENTRY_VLAN_LLC_MODE_MASK                                            0x0000000800000000
+
+
+/* Description		KEY_TYPE
+
+			Consumer: TX OLE, TX CRYPTO
+			Producer: SW
+			
+			The key_type indicates the cipher suite corresponding to
+			 this peer entry:
+			<enum 0 wep_40> WEP 40-bit
+			<enum 1 wep_104> WEP 104-bit
+			<enum 2 tkip_no_mic> TKIP without MIC
+			<enum 3 wep_128> WEP 128-bit
+			<enum 4 tkip_with_mic> TKIP with MIC
+			<enum 5 wapi> WAPI
+			<enum 6 aes_ccmp_128> AES CCMP 128
+			<enum 7 no_cipher> No crypto
+			<enum 8 aes_ccmp_256> AES CCMP 256
+			<enum 9 aes_gcmp_128> AES GCMP 128
+			<enum 10 aes_gcmp_256> AES GCMP 256
+			<enum 11 wapi_gcm_sm4> WAPI GCM SM4
+			
+			<enum 12 wep_varied_width> DO NOT USE. This Key type ONLY
+			 to be used for RX side
+			
+			<legal 0-12>
+*/
+
+#define TX_PEER_ENTRY_KEY_TYPE_OFFSET                                               0x0000000000000008
+#define TX_PEER_ENTRY_KEY_TYPE_LSB                                                  36
+#define TX_PEER_ENTRY_KEY_TYPE_MSB                                                  39
+#define TX_PEER_ENTRY_KEY_TYPE_MASK                                                 0x000000f000000000
+
+
+/* Description		A_MSDU_WDS_AD3_AD4
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			Determines the selection of AD3 and AD4 for A-MSDU 4 address
+			 frames (WDS):
+			<enum 0 ad3_a__ad4_a> AD3 = AD_A, AD4 = AD_A
+			<enum 1 ad3_a__ad4_b> AD3 = AD_A, AD4 = AD_B
+			<enum 2 ad3_b__ad4_a> AD3 = AD_B, AD4 = AD_A
+			<enum 3 ad3_b__ad4_b> AD3 = AD_B, AD4 = AD_B
+			<enum 4 ad3_da__ad4_sa> AD3 = DA, AD4 = SA
+			<legal 0-4>
+*/
+
+#define TX_PEER_ENTRY_A_MSDU_WDS_AD3_AD4_OFFSET                                     0x0000000000000008
+#define TX_PEER_ENTRY_A_MSDU_WDS_AD3_AD4_LSB                                        40
+#define TX_PEER_ENTRY_A_MSDU_WDS_AD3_AD4_MSB                                        42
+#define TX_PEER_ENTRY_A_MSDU_WDS_AD3_AD4_MASK                                       0x0000070000000000
+
+
+/* Description		IGNORE_HARD_FILTERS
+
+			SW can program this bit to 0x1 to ignore HARD filter conditions
+			 and HWSCH will proceed with transmission, even if the HARD
+			 filter bit is set in Filter LUT.
+			Note that SOFT filter conditions will filter the command, 
+			even if this bit is set and ignore_soft_filters is not set
+			
+			For filtering all frames marked in the Filter LUT, both 
+			ignore_soft_filters and ignore_hard_filters should be set
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_IGNORE_HARD_FILTERS_OFFSET                                    0x0000000000000008
+#define TX_PEER_ENTRY_IGNORE_HARD_FILTERS_LSB                                       43
+#define TX_PEER_ENTRY_IGNORE_HARD_FILTERS_MSB                                       43
+#define TX_PEER_ENTRY_IGNORE_HARD_FILTERS_MASK                                      0x0000080000000000
+
+
+/* Description		IGNORE_SOFT_FILTERS
+
+			SW can program this bit to 0x1 to ignore SOFT filter conditions
+			 and HWSCH will proceed with transmission, even if the SOFT
+			 filter bit is set in Filter LUT.
+			Note that HARD filter conditions will filter the command, 
+			even if this bit is set and ignore_hard_filters is not set
+			
+			For filtering all frames marked in the Filter LUT, both 
+			ignore_soft_filters and ignore_hard_filters should be set
+			
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_IGNORE_SOFT_FILTERS_OFFSET                                    0x0000000000000008
+#define TX_PEER_ENTRY_IGNORE_SOFT_FILTERS_LSB                                       44
+#define TX_PEER_ENTRY_IGNORE_SOFT_FILTERS_MSB                                       44
+#define TX_PEER_ENTRY_IGNORE_SOFT_FILTERS_MASK                                      0x0000100000000000
+
+
+/* Description		EPD_OUTPUT
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			If set use EPD instead of LPD
+*/
+
+#define TX_PEER_ENTRY_EPD_OUTPUT_OFFSET                                             0x0000000000000008
+#define TX_PEER_ENTRY_EPD_OUTPUT_LSB                                                45
+#define TX_PEER_ENTRY_EPD_OUTPUT_MSB                                                45
+#define TX_PEER_ENTRY_EPD_OUTPUT_MASK                                               0x0000200000000000
+
+
+/* Description		WDS
+
+			If set all the frames in this transmission (for this user) 
+			are 4-address frame.  
+			
+			If not all frames need to use 4 address format, SW has per
+			 frame 'wds' control, by using the 'wds' flag in the MSDU_EXTENSION
+			 descriptor
+			
+			Used by the OLE during encapsulation.  
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_WDS_OFFSET                                                    0x0000000000000008
+#define TX_PEER_ENTRY_WDS_LSB                                                       46
+#define TX_PEER_ENTRY_WDS_MSB                                                       46
+#define TX_PEER_ENTRY_WDS_MASK                                                      0x0000400000000000
+
+
+/* Description		INSERT_OR_STRIP
+
+			<enum 0 TXOLE_STRIP_VLAN> TXOLE will strip inner or outer
+			 VLAN (if present in the frame) based on Strip_insert_vlan_{inner, 
+			outer}
+			<enum 1 TXOLE_INSERT_VLAN> TXOLE will insert inner or outer
+			 VLAN (only if absent in the frame) based on Strip_insert_vlan_{inner, 
+			outer} with the TCI(s) given by Insert_vlan_{inner, outer}_tci
+			
+			NOTE: Strip VLAN is not supported by TCL.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_INSERT_OR_STRIP_OFFSET                                        0x0000000000000008
+#define TX_PEER_ENTRY_INSERT_OR_STRIP_LSB                                           47
+#define TX_PEER_ENTRY_INSERT_OR_STRIP_MSB                                           47
+#define TX_PEER_ENTRY_INSERT_OR_STRIP_MASK                                          0x0000800000000000
+
+
+/* Description		SW_FILTER_ID
+
+			Consumer: SCH
+			Producer: SW
+			
+			The full STA AID.
+			Use by SCH to determine if transmission for this STA should
+			 be filtered as it just went into power save state.
+			In case of MU transmission, it means only this STA needs
+			 to be removed from the transmission...
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_SW_FILTER_ID_OFFSET                                           0x0000000000000008
+#define TX_PEER_ENTRY_SW_FILTER_ID_LSB                                              48
+#define TX_PEER_ENTRY_SW_FILTER_ID_MSB                                              63
+#define TX_PEER_ENTRY_SW_FILTER_ID_MASK                                             0xffff000000000000
+
+
+/* Description		TEMPORAL_KEY_31_0
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			First 32 bits of the temporal key material.  The temporal
+			 key for WEP 40-bit uses the first 40 bits, WEP 104-bit 
+			uses the first 104 bits, WEP 128-bit uses all 128 bits, 
+			TKIP with/without MIC uses 128 bits, WAPI uses all 128 bits, 
+			and AES-CCM uses all 128 bits.
+			
+			Note that for TKIP, the 64 MIC bits are located in fields
+			 'temporal_key[255:192]
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_31_0_OFFSET                                      0x0000000000000010
+#define TX_PEER_ENTRY_TEMPORAL_KEY_31_0_LSB                                         0
+#define TX_PEER_ENTRY_TEMPORAL_KEY_31_0_MSB                                         31
+#define TX_PEER_ENTRY_TEMPORAL_KEY_31_0_MASK                                        0x00000000ffffffff
+
+
+/* Description		TEMPORAL_KEY_63_32
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Second 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_63_32_OFFSET                                     0x0000000000000010
+#define TX_PEER_ENTRY_TEMPORAL_KEY_63_32_LSB                                        32
+#define TX_PEER_ENTRY_TEMPORAL_KEY_63_32_MSB                                        63
+#define TX_PEER_ENTRY_TEMPORAL_KEY_63_32_MASK                                       0xffffffff00000000
+
+
+/* Description		TEMPORAL_KEY_95_64
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Third 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_95_64_OFFSET                                     0x0000000000000018
+#define TX_PEER_ENTRY_TEMPORAL_KEY_95_64_LSB                                        0
+#define TX_PEER_ENTRY_TEMPORAL_KEY_95_64_MSB                                        31
+#define TX_PEER_ENTRY_TEMPORAL_KEY_95_64_MASK                                       0x00000000ffffffff
+
+
+/* Description		TEMPORAL_KEY_127_96
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Fourth 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_127_96_OFFSET                                    0x0000000000000018
+#define TX_PEER_ENTRY_TEMPORAL_KEY_127_96_LSB                                       32
+#define TX_PEER_ENTRY_TEMPORAL_KEY_127_96_MSB                                       63
+#define TX_PEER_ENTRY_TEMPORAL_KEY_127_96_MASK                                      0xffffffff00000000
+
+
+/* Description		TEMPORAL_KEY_159_128
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Fifth 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.  
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_159_128_OFFSET                                   0x0000000000000020
+#define TX_PEER_ENTRY_TEMPORAL_KEY_159_128_LSB                                      0
+#define TX_PEER_ENTRY_TEMPORAL_KEY_159_128_MSB                                      31
+#define TX_PEER_ENTRY_TEMPORAL_KEY_159_128_MASK                                     0x00000000ffffffff
+
+
+/* Description		TEMPORAL_KEY_191_160
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Final 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.  
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_191_160_OFFSET                                   0x0000000000000020
+#define TX_PEER_ENTRY_TEMPORAL_KEY_191_160_LSB                                      32
+#define TX_PEER_ENTRY_TEMPORAL_KEY_191_160_MSB                                      63
+#define TX_PEER_ENTRY_TEMPORAL_KEY_191_160_MASK                                     0xffffffff00000000
+
+
+/* Description		TEMPORAL_KEY_223_192
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Final 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.  
+			
+			For TKIP this is the TX MIC key[31:0].
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_223_192_OFFSET                                   0x0000000000000028
+#define TX_PEER_ENTRY_TEMPORAL_KEY_223_192_LSB                                      0
+#define TX_PEER_ENTRY_TEMPORAL_KEY_223_192_MSB                                      31
+#define TX_PEER_ENTRY_TEMPORAL_KEY_223_192_MASK                                     0x00000000ffffffff
+
+
+/* Description		TEMPORAL_KEY_255_224
+
+			Consumer: TX CRYPTO
+			Producer: SW
+			
+			Final 32 bits of the temporal key material.  See the description
+			 of temporal_key_31_0.  
+			
+			For TKIP this is the TX MIC key[63:32].
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TEMPORAL_KEY_255_224_OFFSET                                   0x0000000000000028
+#define TX_PEER_ENTRY_TEMPORAL_KEY_255_224_LSB                                      32
+#define TX_PEER_ENTRY_TEMPORAL_KEY_255_224_MSB                                      63
+#define TX_PEER_ENTRY_TEMPORAL_KEY_255_224_MASK                                     0xffffffff00000000
+
+
+/* Description		STA_PARTIAL_AID
+
+			This field in only used by the PDG. All other modules should
+			 ignore this field.
+			
+			This field is only valid in case of a transmission at VHT
+			 rates or HE rates.
+			
+			For VHT:
+			This field is the Partial AID to be filled in to the VHT
+			 preamble.
+			
+			For HE:
+			This field is the sta_aid to be filled into the SIG B field.
+			
+			
+			In 11ah mode of operation, this field is provided by SW 
+			to populate the the ID value of the SIG preamble of the 
+			PPDU
+*/
+
+#define TX_PEER_ENTRY_STA_PARTIAL_AID_OFFSET                                        0x0000000000000030
+#define TX_PEER_ENTRY_STA_PARTIAL_AID_LSB                                           0
+#define TX_PEER_ENTRY_STA_PARTIAL_AID_MSB                                           10
+#define TX_PEER_ENTRY_STA_PARTIAL_AID_MASK                                          0x00000000000007ff
+
+
+/* Description		TRANSMIT_VIF
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			The VIF for this transmission. Used in MCC mode to control/overwrite
+			 the PM bit settings.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_TRANSMIT_VIF_OFFSET                                           0x0000000000000030
+#define TX_PEER_ENTRY_TRANSMIT_VIF_LSB                                              11
+#define TX_PEER_ENTRY_TRANSMIT_VIF_MSB                                              14
+#define TX_PEER_ENTRY_TRANSMIT_VIF_MASK                                             0x0000000000007800
+
+
+/* Description		BLOCK_THIS_USER
+
+			Consumer: PDG
+			Producer: SCH
+			
+			Set by SCH when a MU transmission is started and this STA
+			 has (just) entered or is in power save mode. 
+			Due to the MU transmission SCH shall not terminate this 
+			MU transmission (as is done with SU transmission), but continue
+			 with the transmissions for all other STAs. 
+			
+			As a result of this bit being set, PDG will at certain moment
+			 generate the MPDU limit TLV with field Num_mpdu_user set
+			 to 0 
+			
+			PDG shall treat this user as a user without any data. All
+			 rules related to terminating MU transmissions when too 
+			many users do not have any data shall include this user 
+			as a user having zero data. 
+			
+			When clear, PDG can ignore this bit
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_BLOCK_THIS_USER_OFFSET                                        0x0000000000000030
+#define TX_PEER_ENTRY_BLOCK_THIS_USER_LSB                                           15
+#define TX_PEER_ENTRY_BLOCK_THIS_USER_MSB                                           15
+#define TX_PEER_ENTRY_BLOCK_THIS_USER_MASK                                          0x0000000000008000
+
+
+/* Description		MESH_AMSDU_MODE
+
+			Consumer: TX OLE
+			Producer: SW
+			
+			This field is used only when the first MSDU of any MPDU 
+			that TX OLE encounters is in Native WiFi format and includes
+			 a 'Mesh Control' field between the header and the LLC.
+			
+			The creation of the A-MSDU 'Length' field in the MPDU (if
+			 aggregating multiple MSDUs) is decided by the value of 
+			this field.
+			
+			<enum 0 MESH_MODE_0> DO NOT USE
+			<enum 1 MESH_MODE_Q2Q> A-MSDU 'Length' is big endian and
+			 includes the length of Mesh Control.
+			<enum 2 MESH_MODE_11S_BE> A-MSDU 'Length' is big endian 
+			and excludes the length of Mesh Control.
+			<enum 3 MESH_MODE_11S_LE> A-MSDU 'Length' is little endian
+			 and excludes the length of Mesh Control. This is 802.11s-compliant.
+			
+			
+			NOTE 1: For compatibility TXOLE treats MESH_MODE_0 identically
+			 to MESH_MODE_Q2Q.
+			
+			NOTE 2: This e-numeration is different from other fields
+			 named Mesh_sta or mesh_enable where the value zero disables
+			 mesh processing.
+			<legal 0-3>
+*/
+
+#define TX_PEER_ENTRY_MESH_AMSDU_MODE_OFFSET                                        0x0000000000000030
+#define TX_PEER_ENTRY_MESH_AMSDU_MODE_LSB                                           16
+#define TX_PEER_ENTRY_MESH_AMSDU_MODE_MSB                                           17
+#define TX_PEER_ENTRY_MESH_AMSDU_MODE_MASK                                          0x0000000000030000
+
+
+/* Description		USE_QOS_ALT_MUTE_MASK
+
+			Lithium and prior generation WAPI implementations did not
+			 mute any QoS Control bits when generating the AAD. Setting
+			 this bit chooses an alternative configurable QoS Control
+			 mute mask in Crypto for compatibility with those chips.
+			
+			
+			For AES, alternative configurable QoS Control mute mask 
+			is required in Crypto to support SPP A-MSDUs for increased
+			 security.
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_USE_QOS_ALT_MUTE_MASK_OFFSET                                  0x0000000000000030
+#define TX_PEER_ENTRY_USE_QOS_ALT_MUTE_MASK_LSB                                     18
+#define TX_PEER_ENTRY_USE_QOS_ALT_MUTE_MASK_MSB                                     18
+#define TX_PEER_ENTRY_USE_QOS_ALT_MUTE_MASK_MASK                                    0x0000000000040000
+
+
+/* Description		DL_UL_DIRECTION
+
+			'Direction' to be inferred for raw WiFi esp. management 
+			frames sent to a multi-link peer, for translating RA and/or
+			 TA.
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_DL_UL_DIRECTION_OFFSET                                        0x0000000000000030
+#define TX_PEER_ENTRY_DL_UL_DIRECTION_LSB                                           19
+#define TX_PEER_ENTRY_DL_UL_DIRECTION_MSB                                           19
+#define TX_PEER_ENTRY_DL_UL_DIRECTION_MASK                                          0x0000000000080000
+
+
+/* Description		RESERVED_12
+
+			<legal 0>
+*/
+
+#define TX_PEER_ENTRY_RESERVED_12_OFFSET                                            0x0000000000000030
+#define TX_PEER_ENTRY_RESERVED_12_LSB                                               20
+#define TX_PEER_ENTRY_RESERVED_12_MSB                                               31
+#define TX_PEER_ENTRY_RESERVED_12_MASK                                              0x00000000fff00000
+
+
+/* Description		INSERT_VLAN_OUTER_TCI
+
+			The tag control info to use when TXOLE inserts outer VLAN
+			 if enabled by Strip_insert_vlan_outer and Insert_or_strip
+			
+*/
+
+#define TX_PEER_ENTRY_INSERT_VLAN_OUTER_TCI_OFFSET                                  0x0000000000000030
+#define TX_PEER_ENTRY_INSERT_VLAN_OUTER_TCI_LSB                                     32
+#define TX_PEER_ENTRY_INSERT_VLAN_OUTER_TCI_MSB                                     47
+#define TX_PEER_ENTRY_INSERT_VLAN_OUTER_TCI_MASK                                    0x0000ffff00000000
+
+
+/* Description		INSERT_VLAN_INNER_TCI
+
+			The tag control info to use when TXOLE inserts inner VLAN
+			 if enabled by Strip_insert_vlan_inner and Insert_or_strip
+			
+*/
+
+#define TX_PEER_ENTRY_INSERT_VLAN_INNER_TCI_OFFSET                                  0x0000000000000030
+#define TX_PEER_ENTRY_INSERT_VLAN_INNER_TCI_LSB                                     48
+#define TX_PEER_ENTRY_INSERT_VLAN_INNER_TCI_MSB                                     63
+#define TX_PEER_ENTRY_INSERT_VLAN_INNER_TCI_MASK                                    0xffff000000000000
+
+
+/* Description		MULTI_LINK_ADDR_AD1_31_0
+
+			Consumer: TX CRYPTO
+			Producer: FW
+			
+			Field only valid if Multi_link_addr_crypto_enable is set
+			
+			
+			Multi-link receiver address (address1) for transmissions
+			 matching this peer entry, bits [31:0]
+*/
+
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_31_0_OFFSET                               0x0000000000000038
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_31_0_LSB                                  0
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_31_0_MSB                                  31
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_31_0_MASK                                 0x00000000ffffffff
+
+
+/* Description		MULTI_LINK_ADDR_AD1_47_32
+
+			Consumer: TX CRYPTO
+			Producer: FW
+			
+			Field only valid if Multi_link_addr_crypto_enable is set
+			
+			
+			Multi-link receiver address (address1) for transmissions
+			 matching this peer entry, bits [47:32]
+*/
+
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_47_32_OFFSET                              0x0000000000000038
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_47_32_LSB                                 32
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_47_32_MSB                                 47
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD1_47_32_MASK                                0x0000ffff00000000
+
+
+/* Description		MULTI_LINK_ADDR_AD2_15_0
+
+			Consumer: TX CRYPTO
+			Producer: FW
+			
+			Field only valid if Multi_link_addr_crypto_enable is set
+			
+			
+			Multi-link transmitter address (address2) for transmissions
+			 matching this peer entry, bits [15:0]
+*/
+
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_15_0_OFFSET                               0x0000000000000038
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_15_0_LSB                                  48
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_15_0_MSB                                  63
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_15_0_MASK                                 0xffff000000000000
+
+
+/* Description		MULTI_LINK_ADDR_AD2_47_16
+
+			Consumer: TX CRYPTO
+			Producer: FW
+			
+			Field only valid if Multi_link_addr_crypto_enable is set
+			
+			
+			Multi-link transmitter address (address2) for transmissions
+			 matching this peer entry, bits [47:16]
+*/
+
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_47_16_OFFSET                              0x0000000000000040
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_47_16_LSB                                 0
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_47_16_MSB                                 31
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_AD2_47_16_MASK                                0x00000000ffffffff
+
+
+/* Description		MULTI_LINK_ADDR_CRYPTO_ENABLE
+
+			Consumer: TX CRYPTO
+			Producer: FW
+			
+			If set, TX CRYPTO shall convert Address1, Address2 and BSSID
+			 of received data frames to multi-link addresses for the
+			 AAD and Nonce during encryption.
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_CRYPTO_ENABLE_OFFSET                          0x0000000000000040
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_CRYPTO_ENABLE_LSB                             32
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_CRYPTO_ENABLE_MSB                             32
+#define TX_PEER_ENTRY_MULTI_LINK_ADDR_CRYPTO_ENABLE_MASK                            0x0000000100000000
+
+
+/* Description		RESERVED_17A
+
+			<legal 0>
+*/
+
+#define TX_PEER_ENTRY_RESERVED_17A_OFFSET                                           0x0000000000000040
+#define TX_PEER_ENTRY_RESERVED_17A_LSB                                              33
+#define TX_PEER_ENTRY_RESERVED_17A_MSB                                              47
+#define TX_PEER_ENTRY_RESERVED_17A_MASK                                             0x0000fffe00000000
+
+
+/* Description		SW_PEER_ID
+
+			This field indicates a unique peer identifier provided by
+			 FW, to be logged via TXMON to host SW.
+			
+			<legal all>
+*/
+
+#define TX_PEER_ENTRY_SW_PEER_ID_OFFSET                                             0x0000000000000040
+#define TX_PEER_ENTRY_SW_PEER_ID_LSB                                                48
+#define TX_PEER_ENTRY_SW_PEER_ID_MSB                                                63
+#define TX_PEER_ENTRY_SW_PEER_ID_MASK                                               0xffff000000000000
+
+
+
+#endif   // TX_PEER_ENTRY
diff --git a/hw/qca5332/tx_queue_extension.h b/hw/qca5332/tx_queue_extension.h
new file mode 100644
index 0000000..f935e47
--- /dev/null
+++ b/hw/qca5332/tx_queue_extension.h
@@ -0,0 +1,870 @@
+
+/* 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_QUEUE_EXTENSION_H_
+#define _TX_QUEUE_EXTENSION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_QUEUE_EXTENSION 14
+
+#define NUM_OF_QWORDS_TX_QUEUE_EXTENSION 7
+
+
+struct tx_queue_extension {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t frame_ctl                                               : 16, // [15:0]
+                      qos_ctl                                                 : 16; // [31:16]
+             uint32_t ampdu_flag                                              :  1, // [0:0]
+                      tx_notify_no_htc_override                               :  1, // [1:1]
+                      reserved_1a                                             :  7, // [8:2]
+                      checksum_tso_disable_for_frag                           :  1, // [9:9]
+                      key_id                                                  :  8, // [17:10]
+                      qos_buf_state_overwrite                                 :  1, // [18:18]
+                      buf_state_sta_id                                        :  1, // [19:19]
+                      buf_state_source                                        :  1, // [20:20]
+                      ht_control_overwrite_enable                             :  1, // [21:21]
+                      ht_control_overwrite_source                             :  4, // [25:22]
+                      reserved_1b                                             :  6; // [31:26]
+             uint32_t ul_headroom_insertion_enable                            :  1, // [0:0]
+                      ul_headroom_offset                                      :  5, // [5:1]
+                      bqrp_insertion_enable                                   :  1, // [6:6]
+                      bqrp_offset                                             :  5, // [11:7]
+                      ul_headroom_rsvd_7_6                                    :  2, // [13:12]
+                      bqr_rsvd_9_8                                            :  2, // [15:14]
+                      base_pn_63_48                                           : 16; // [31:16]
+             uint32_t base_pn_95_64                                           : 32; // [31:0]
+             uint32_t base_pn_127_96                                          : 32; // [31:0]
+             uint32_t ht_control_field_bw20                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw40                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw80                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw160                                  : 32; // [31:0]
+             uint32_t ht_control_overwrite_mask                               : 32; // [31:0]
+             uint32_t cas_control_info                                        :  8, // [7:0]
+                      cas_offset                                              :  5, // [12:8]
+                      cas_insertion_enable                                    :  1, // [13:13]
+                      reserved_10a                                            :  2, // [15:14]
+                      ht_control_overwrite_source_for_srp                     :  4, // [19:16]
+                      ht_control_overwrite_source_for_bsrp                    :  4, // [23:20]
+                      reserved_10b                                            :  6, // [29:24]
+                      mpdu_hdr_len_override_en                                :  1, // [30:30]
+                      bar_ssn_overwrite_enable                                :  1; // [31:31]
+             uint32_t bar_ssn_offset                                          : 12, // [11:0]
+                      mpdu_hdr_len_override_val                               :  9, // [20:12]
+                      reserved_11a                                            : 11; // [31:21]
+             uint32_t ht_control_field_bw320                                  : 32; // [31:0]
+             uint32_t fw2sw_info                                              : 32; // [31:0]
+#else
+             uint32_t qos_ctl                                                 : 16, // [31:16]
+                      frame_ctl                                               : 16; // [15:0]
+             uint32_t reserved_1b                                             :  6, // [31:26]
+                      ht_control_overwrite_source                             :  4, // [25:22]
+                      ht_control_overwrite_enable                             :  1, // [21:21]
+                      buf_state_source                                        :  1, // [20:20]
+                      buf_state_sta_id                                        :  1, // [19:19]
+                      qos_buf_state_overwrite                                 :  1, // [18:18]
+                      key_id                                                  :  8, // [17:10]
+                      checksum_tso_disable_for_frag                           :  1, // [9:9]
+                      reserved_1a                                             :  7, // [8:2]
+                      tx_notify_no_htc_override                               :  1, // [1:1]
+                      ampdu_flag                                              :  1; // [0:0]
+             uint32_t base_pn_63_48                                           : 16, // [31:16]
+                      bqr_rsvd_9_8                                            :  2, // [15:14]
+                      ul_headroom_rsvd_7_6                                    :  2, // [13:12]
+                      bqrp_offset                                             :  5, // [11:7]
+                      bqrp_insertion_enable                                   :  1, // [6:6]
+                      ul_headroom_offset                                      :  5, // [5:1]
+                      ul_headroom_insertion_enable                            :  1; // [0:0]
+             uint32_t base_pn_95_64                                           : 32; // [31:0]
+             uint32_t base_pn_127_96                                          : 32; // [31:0]
+             uint32_t ht_control_field_bw20                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw40                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw80                                   : 32; // [31:0]
+             uint32_t ht_control_field_bw160                                  : 32; // [31:0]
+             uint32_t ht_control_overwrite_mask                               : 32; // [31:0]
+             uint32_t bar_ssn_overwrite_enable                                :  1, // [31:31]
+                      mpdu_hdr_len_override_en                                :  1, // [30:30]
+                      reserved_10b                                            :  6, // [29:24]
+                      ht_control_overwrite_source_for_bsrp                    :  4, // [23:20]
+                      ht_control_overwrite_source_for_srp                     :  4, // [19:16]
+                      reserved_10a                                            :  2, // [15:14]
+                      cas_insertion_enable                                    :  1, // [13:13]
+                      cas_offset                                              :  5, // [12:8]
+                      cas_control_info                                        :  8; // [7:0]
+             uint32_t reserved_11a                                            : 11, // [31:21]
+                      mpdu_hdr_len_override_val                               :  9, // [20:12]
+                      bar_ssn_offset                                          : 12; // [11:0]
+             uint32_t ht_control_field_bw320                                  : 32; // [31:0]
+             uint32_t fw2sw_info                                              : 32; // [31:0]
+#endif
+};
+
+
+/* Description		FRAME_CTL
+
+			Consumer: TXOLE
+			Producer: SW 
+			
+			
+			802.11 Frame control field: 
+			fc [1:0]: Protocol Version
+			fc[7:2]: type/subtypeFor non-11ah  fc[3:2] = Type  fc[7:4] = 
+			Subtype For 11ah  fc[4:2] = Typefc[7:5] = PTID/SubType
+			fc [8]: To DS ( for Non-11ah)  From DS ( for 11ah )
+			fc [9]: From DS ( for Non-11ah )
+			  More Frag ( for 11ah )
+			fc [10]: More Frag ( for Non-11ah )
+			  Power Management ( for 11ah)
+			fc [11]: Retry ( for Non-11ah )
+			  More Data ( for 11ah )
+			fc [12]: Pwr Mgt ( for Non-11ah )
+			  Protected Frame ( for 11ah )
+			fc [13]: More Data( for Non-11ah )
+			  EOSP ( for 11ah )
+			fc [14]: Protected Frame ( for Non-11ah)
+			  Relayed Frame ( for 11ah )
+			fc [15]: Order ( for Non-11ah )
+			Ack Policy ( for 11ah )
+			Used by OLE during the encapsulation process for Native 
+			WiFi, Ethernet II, and 802.3.
+			When the Order field is set, TXOLE shall insert 4 placeholder
+			 bytes for the HE-control field in the frame. TXPCU will
+			 overwrite them with the final actual value...
+*/
+
+#define TX_QUEUE_EXTENSION_FRAME_CTL_OFFSET                                         0x0000000000000000
+#define TX_QUEUE_EXTENSION_FRAME_CTL_LSB                                            0
+#define TX_QUEUE_EXTENSION_FRAME_CTL_MSB                                            15
+#define TX_QUEUE_EXTENSION_FRAME_CTL_MASK                                           0x000000000000ffff
+
+
+/* Description		QOS_CTL
+
+			Consumer: TXOLE
+			Producer: SW 
+			
+			QoS control field is valid if the type field is data and
+			 the upper bit of the subtype field is set.  The field decode
+			 is as below:
+			qos_ctl[3:0]: TID
+			qos_ctl[4]: EOSP (with some exceptions)
+			qos_ctl[6:5]: Ack Policy
+			0x0: Normal Ack or Implicit BAR
+			0x1: No Ack
+			0x2: No explicit Ack or PSMP Ack (not supported)
+			0x3: Block Ack (Not supported)
+			Qos_ctl[7]: A-MSDU Present (with some exceptions)
+			Qos_ctl[15:8]: TXOP limit, AP PS buffer state, TXOP duration
+			 requested or queue size 
+			This field is inserted into the 802.11 header during the
+			 encapsulation process
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_QOS_CTL_OFFSET                                           0x0000000000000000
+#define TX_QUEUE_EXTENSION_QOS_CTL_LSB                                              16
+#define TX_QUEUE_EXTENSION_QOS_CTL_MSB                                              31
+#define TX_QUEUE_EXTENSION_QOS_CTL_MASK                                             0x00000000ffff0000
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: PDG/TXPCU
+			Producer: SW 
+			
+			Note: 
+			For legacy rate transmissions (11 b and 11a, an 11g), this
+			 bit shall always be set to zero.
+			
+			0:
+			For legacy and .11n rates:
+			MPDUs are only allowed to be sent out 1 at a time in NON
+			 A-MPDU format.
+			For .11ac and .11ax rates:
+			MPDUs are sent out in S-MPDU format (TXPCU sets the 'EOF' 
+			bit in the MPDU delimiter).
+			1: All MPDUs should be sent out using the A-MPDU format, 
+			even if there is only one MPDU.
+			
+			Note that this bit should be set to 0 in order to construct
+			 an S-MPDU frame. VHT and HE frames are all A-MPDU format
+			 but if this bit is clear, EOF bit is set to 1 for the MPDU
+			 delimiter in A-MPDU, which is the indicator of S-MPDU and
+			 solicits ACK rather than BA as response frame. 
+			
+			This bit shall be set to 1 for any MD (Multi Destination) 
+			transmission.
+*/
+
+#define TX_QUEUE_EXTENSION_AMPDU_FLAG_OFFSET                                        0x0000000000000000
+#define TX_QUEUE_EXTENSION_AMPDU_FLAG_LSB                                           32
+#define TX_QUEUE_EXTENSION_AMPDU_FLAG_MSB                                           32
+#define TX_QUEUE_EXTENSION_AMPDU_FLAG_MASK                                          0x0000000100000000
+
+
+/* Description		TX_NOTIFY_NO_HTC_OVERRIDE
+
+			When set, and a 'TX_MPDU_START' TLV has Tx_notify_frame 
+			set to TX_HARD_NOTIFY or TX_SOFT_NOTIFY or TX_SEMI_HARD_NOTIFY, 
+			then PDG would have updated the rate fields for a legacy
+			 PPDU which may not support HT Control.
+			
+			In this case TXOLE shall not:
+			set the Order/+HTC bit in the 'Frame Control,'
+			include 4 bytes for TXPCU to fill the HT Control, or
+			set vht_control_present in 'TX_MPDU_START,'
+			even if requested, and instead shall subtract '4' from the
+			 mpdu_length in 'TX_MPDU_START' and overwrite it.
+			
+			Hamilton v1 used bits [29:26], [8:1] along with word 11 
+			bits [31:12] for 'HT_control_field_bw320.'
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_OFFSET                         0x0000000000000000
+#define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_LSB                            33
+#define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MSB                            33
+#define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MASK                           0x0000000200000000
+
+
+/* Description		RESERVED_1A
+
+			Hamilton v1 used bits [29:26], [8:1] along with word 11 
+			bits [31:12] for 'HT_control_field_bw320.'
+			<legal 0>
+*/
+
+#define TX_QUEUE_EXTENSION_RESERVED_1A_OFFSET                                       0x0000000000000000
+#define TX_QUEUE_EXTENSION_RESERVED_1A_LSB                                          34
+#define TX_QUEUE_EXTENSION_RESERVED_1A_MSB                                          40
+#define TX_QUEUE_EXTENSION_RESERVED_1A_MASK                                         0x000001fc00000000
+
+
+/* Description		CHECKSUM_TSO_DISABLE_FOR_FRAG
+
+			Field only valid in case of level-1 fragmentation, identified
+			 by TXOLE getting the 'TX_FRAG_STATE' TLV
+			
+			If set, TXOLE disables all checksum and TSO overwrites for
+			 the fragment(s) being transmitted.
+			
+			This is useful if it is known that the checksum and TSO 
+			overwrites affect only the first fragment (or first few 
+			fragments) and for the rest these can be safely disabled.
+			
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_OFFSET                     0x0000000000000000
+#define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_LSB                        41
+#define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MSB                        41
+#define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MASK                       0x0000020000000000
+
+
+/* Description		KEY_ID
+
+			Field only valid in case of encryption, and TXOLE being 
+			instructured to insert the IV.
+			
+			TXOLE blindly copies this field into the key ID octet (which
+			 is part of the IV) of the encrypted frame.
+			
+			For AES/TKIP the encoding is:
+			key_id_octet[7:6]: key ID
+			key_id_octet[5]: extended IV: 
+			key_id_octet[4:0]: Reserved bits
+			
+			For WEP the encoding is:
+			key_id_octet[7:6]: key ID
+			key_id_octet[5]: extended IV: 
+			key_id_octet[4:0]: Reserved bits
+			
+			For WAPI the encoding is:
+			key_id_octet[7:2]: Reserved bits
+			key_id_octet[1:0]: key ID
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_KEY_ID_OFFSET                                            0x0000000000000000
+#define TX_QUEUE_EXTENSION_KEY_ID_LSB                                               42
+#define TX_QUEUE_EXTENSION_KEY_ID_MSB                                               49
+#define TX_QUEUE_EXTENSION_KEY_ID_MASK                                              0x0003fc0000000000
+
+
+/* Description		QOS_BUF_STATE_OVERWRITE
+
+			When clear, TXPCU shall not overwrite buffer state field
+			 in the QoS frame control field.
+			
+			When set, TXPCU shall overwrite the buffer state field in
+			 the QoS frame control field, with info that SW has programmed
+			 in TXPCU registers. Note that TXPCU shall pick up the values
+			 related to this TID.
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_OFFSET                           0x0000000000000000
+#define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_LSB                              50
+#define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MSB                              50
+#define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MASK                             0x0004000000000000
+
+
+/* Description		BUF_STATE_STA_ID
+
+			Field only valid when QoS_Buf_state_overwrite is set.
+			
+			This field indicates what the STA ID register source is 
+			of the buffer status.
+			
+			1'b0: TXPCU registers: STA0_buf_status_... 
+			1'b1: TXPCU registers: STA1_buf_status_... 
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_OFFSET                                  0x0000000000000000
+#define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_LSB                                     51
+#define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MSB                                     51
+#define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MASK                                    0x0008000000000000
+
+
+/* Description		BUF_STATE_SOURCE
+
+			Field only valid when QoS_Buf_state_overwrite is set.
+			
+			This field indicates what the source is of the actual value
+			 TXPCU will insert
+			
+			<enum 0 BUF_STATE_TID_BASED> TXPCU looks at the TID field
+			 in the QoS control frame and based on this TID, selects
+			 the buffer source value from the corresponding TID register.
+			
+			<enum 1 BUF_STATE_SUM_BASED> TXPCU inserts the value from
+			 the buffer_state_sum register
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_OFFSET                                  0x0000000000000000
+#define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_LSB                                     52
+#define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MSB                                     52
+#define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MASK                                    0x0010000000000000
+
+
+/* Description		HT_CONTROL_OVERWRITE_ENABLE
+
+			When set, TXPCU shall overwrite some (or all) of the HT_CONTROL
+			 field with values that are programmed in TXPCU registers: 
+			HT_CONTROL_OVERWRITE_IX???
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_OFFSET                       0x0000000000000000
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_LSB                          53
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MSB                          53
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MASK                         0x0020000000000000
+
+
+/* Description		HT_CONTROL_OVERWRITE_SOURCE
+
+			Field only valid when HT_control_overwrite_enable  is set.
+			
+			
+			This field indicates the index of the TXPCU register HT_CONTROL_OVERWRITE_IX??? 
+			That is the source of the overwrite data.
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_OFFSET                       0x0000000000000000
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_LSB                          54
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MSB                          57
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MASK                         0x03c0000000000000
+
+
+/* Description		RESERVED_1B
+
+			Hamilton v1 used bits [29:26], [8:1] along with word 11 
+			bits [31:12] for 'HT_control_field_bw320.'
+			<legal 0>
+*/
+
+#define TX_QUEUE_EXTENSION_RESERVED_1B_OFFSET                                       0x0000000000000000
+#define TX_QUEUE_EXTENSION_RESERVED_1B_LSB                                          58
+#define TX_QUEUE_EXTENSION_RESERVED_1B_MSB                                          63
+#define TX_QUEUE_EXTENSION_RESERVED_1B_MASK                                         0xfc00000000000000
+
+
+/* Description		UL_HEADROOM_INSERTION_ENABLE
+
+			When set, and this transmission services a trigger response
+			 transmission, TXPCU shall create and insert the UL headroom
+			 info in the HE control field, starting at offset indicated
+			 by field: UL_headroom_offset
+			
+			See HT/HE control overwrite order NOTE after this table
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_OFFSET                      0x0000000000000008
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_LSB                         0
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MSB                         0
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MASK                        0x0000000000000001
+
+
+/* Description		UL_HEADROOM_OFFSET
+
+			Field only valid when UL_headroom_insertion_enable is set.
+			
+			
+			The bit location in HE_CONTROL Field where TXPCU will start
+			 writing the the 4 bit Control ID field that needs to be
+			 inserted, followed by the lower 6 bits of the 8 bit bit
+			 UL_headroom info (UPH Control). 
+			
+			NOTE: currently on 6 bits are defined in the UPH control
+			 field. The upper two bits are provided by SW in UL_headroom_rsvd_7_6.
+			
+			
+			<legal 2-20>
+*/
+
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_OFFSET                                0x0000000000000008
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_LSB                                   1
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MSB                                   5
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MASK                                  0x000000000000003e
+
+
+/* Description		BQRP_INSERTION_ENABLE
+
+			When set, and this transmission services a BQRP trigger 
+			response transmission, TXPCU shall create and insert the
+			 BQR control field into the HE control field, as well as
+			 the 4 bit preceding Control ID field.
+			
+			See HT/HE control overwrite order NOTE after this table
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_OFFSET                             0x0000000000000008
+#define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_LSB                                6
+#define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MSB                                6
+#define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MASK                               0x0000000000000040
+
+
+/* Description		BQRP_OFFSET
+
+			Field only valid when BQRP_insertion_enable is set.
+			
+			The bit location in HE_CONTROL Field where TXPCU will start
+			 writing the 4 bit Control ID field that needs to be inserted, 
+			followed by the lower 8 bits of the 10 bit BQR control field.
+			
+			
+			NOTE: currently only 8 bits are defined in the 10 bit BQR
+			 control field. The upper two bits are provided by SW in
+			 BQR_rsvd_9_8.
+			
+			<legal 2-20>
+*/
+
+#define TX_QUEUE_EXTENSION_BQRP_OFFSET_OFFSET                                       0x0000000000000008
+#define TX_QUEUE_EXTENSION_BQRP_OFFSET_LSB                                          7
+#define TX_QUEUE_EXTENSION_BQRP_OFFSET_MSB                                          11
+#define TX_QUEUE_EXTENSION_BQRP_OFFSET_MASK                                         0x0000000000000f80
+
+
+/* Description		UL_HEADROOM_RSVD_7_6
+
+			These will be used by TXPCU to fill the upper two bits of
+			 the UPH control field.
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_OFFSET                              0x0000000000000008
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_LSB                                 12
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MSB                                 13
+#define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MASK                                0x0000000000003000
+
+
+/* Description		BQR_RSVD_9_8
+
+			These will be used by TXPCU to fill the upper two bits of
+			 the BQR control field.
+			NOTE: When overwriting CAS control (8-bit) at the same offset
+			 as BQR control (10-bit), TXPCU will ignore the BQR overwrite, 
+			including these upper two bits.
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_OFFSET                                      0x0000000000000008
+#define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_LSB                                         14
+#define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MSB                                         15
+#define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MASK                                        0x000000000000c000
+
+
+/* Description		BASE_PN_63_48
+
+			Upper bits PN number, in case a larger then 48 bit PN number
+			 needs to be inserted in the transmit frame.
+			
+			63-48 bits of the 128-bit packet number
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BASE_PN_63_48_OFFSET                                     0x0000000000000008
+#define TX_QUEUE_EXTENSION_BASE_PN_63_48_LSB                                        16
+#define TX_QUEUE_EXTENSION_BASE_PN_63_48_MSB                                        31
+#define TX_QUEUE_EXTENSION_BASE_PN_63_48_MASK                                       0x00000000ffff0000
+
+
+/* Description		BASE_PN_95_64
+
+			Upper bits PN number, in case a larger then 48 bit PN number
+			 needs to be inserted in the transmit frame.
+			
+			95-64 bits of the 128-bit packet number
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BASE_PN_95_64_OFFSET                                     0x0000000000000008
+#define TX_QUEUE_EXTENSION_BASE_PN_95_64_LSB                                        32
+#define TX_QUEUE_EXTENSION_BASE_PN_95_64_MSB                                        63
+#define TX_QUEUE_EXTENSION_BASE_PN_95_64_MASK                                       0xffffffff00000000
+
+
+/* Description		BASE_PN_127_96
+
+			Upper bits PN number, in case a larger then 48 bit PN number
+			 needs to be inserted in the transmit frame.
+			
+			127-96 bits of the 128-bit packet number
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BASE_PN_127_96_OFFSET                                    0x0000000000000010
+#define TX_QUEUE_EXTENSION_BASE_PN_127_96_LSB                                       0
+#define TX_QUEUE_EXTENSION_BASE_PN_127_96_MSB                                       31
+#define TX_QUEUE_EXTENSION_BASE_PN_127_96_MASK                                      0x00000000ffffffff
+
+
+/* Description		HT_CONTROL_FIELD_BW20
+
+			Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
+			  is set.
+			
+			Note that TXPCU might overwrite some fields. This is controlled
+			 with field  HT_control_overwrite_enable
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_OFFSET                             0x0000000000000010
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_LSB                                32
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MSB                                63
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MASK                               0xffffffff00000000
+
+
+/* Description		HT_CONTROL_FIELD_BW40
+
+			Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
+			  is set.
+			
+			Note that TXPCU might overwrite some fields. This is controlled
+			 with field  HT_control_overwrite_enable
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_OFFSET                             0x0000000000000018
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_LSB                                0
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MSB                                31
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MASK                               0x00000000ffffffff
+
+
+/* Description		HT_CONTROL_FIELD_BW80
+
+			Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
+			  is set.
+			
+			Note that TXPCU might overwrite some fields. This is controlled
+			 with field  HT_control_overwrite_enable
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_OFFSET                             0x0000000000000018
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_LSB                                32
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MSB                                63
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MASK                               0xffffffff00000000
+
+
+/* Description		HT_CONTROL_FIELD_BW160
+
+			Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
+			  is set.
+			
+			Note that TXPCU might overwrite some fields. This is controlled
+			 with field  HT_control_overwrite_enable
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_OFFSET                            0x0000000000000020
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_LSB                               0
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MSB                               31
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MASK                              0x00000000ffffffff
+
+
+/* Description		HT_CONTROL_OVERWRITE_MASK
+
+			Field only valid when HT_control_overwrite_enable  is set.
+			
+			
+			This field indicates which bits of the HT_CONTROL_FIELD 
+			shall be overwritten with bits from TXPCU register HT_CONTROL_OVERWRITE_IX??? 
+			
+			Every bit that needs to be overwritten is set to 1 in this
+			 register.
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_OFFSET                         0x0000000000000020
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_LSB                            32
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MSB                            63
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MASK                           0xffffffff00000000
+
+
+/* Description		CAS_CONTROL_INFO
+
+			This contains 8-bit CAS control field to be used for transmission
+			 during SRP window
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_OFFSET                                  0x0000000000000028
+#define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_LSB                                     0
+#define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MSB                                     7
+#define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MASK                                    0x00000000000000ff
+
+
+/* Description		CAS_OFFSET
+
+			5 bit offset for CAS insertion
+			<legal 2-20>
+*/
+
+#define TX_QUEUE_EXTENSION_CAS_OFFSET_OFFSET                                        0x0000000000000028
+#define TX_QUEUE_EXTENSION_CAS_OFFSET_LSB                                           8
+#define TX_QUEUE_EXTENSION_CAS_OFFSET_MSB                                           12
+#define TX_QUEUE_EXTENSION_CAS_OFFSET_MASK                                          0x0000000000001f00
+
+
+/* Description		CAS_INSERTION_ENABLE
+
+			single bit used as ENABLE for CAS control insertion for 
+			transmission during SRP window
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_OFFSET                              0x0000000000000028
+#define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_LSB                                 13
+#define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MSB                                 13
+#define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MASK                                0x0000000000002000
+
+
+/* Description		RESERVED_10A
+
+			<legal 0>
+*/
+
+#define TX_QUEUE_EXTENSION_RESERVED_10A_OFFSET                                      0x0000000000000028
+#define TX_QUEUE_EXTENSION_RESERVED_10A_LSB                                         14
+#define TX_QUEUE_EXTENSION_RESERVED_10A_MSB                                         15
+#define TX_QUEUE_EXTENSION_RESERVED_10A_MASK                                        0x000000000000c000
+
+
+/* Description		HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP
+
+			4-bit index similar to HT_control_overwrite_source field
+			 to be used for transmission during SRP window
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_OFFSET               0x0000000000000028
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_LSB                  16
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MSB                  19
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MASK                 0x00000000000f0000
+
+
+/* Description		HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP
+
+			4-bit index similar to HT_control_overwrite_source field
+			 to be used for response to BSRP triggers (even during SRP
+			 window)
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_OFFSET              0x0000000000000028
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_LSB                 20
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MSB                 23
+#define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MASK                0x0000000000f00000
+
+
+/* Description		RESERVED_10B
+
+			<legal 0>
+*/
+
+#define TX_QUEUE_EXTENSION_RESERVED_10B_OFFSET                                      0x0000000000000028
+#define TX_QUEUE_EXTENSION_RESERVED_10B_LSB                                         24
+#define TX_QUEUE_EXTENSION_RESERVED_10B_MSB                                         29
+#define TX_QUEUE_EXTENSION_RESERVED_10B_MASK                                        0x000000003f000000
+
+
+/* Description		MPDU_HDR_LEN_OVERRIDE_EN
+
+			This is for the FW override of MPDU overhead length programmed
+			 in the TQM queue.
+			
+			If enabled, PDG will update the length of each MPDU by subtracting
+			 the value of field Mpdu_header_length  in 'MPDU_QUEUE_OVERVIEW' 
+			and adding Mpdu_hdr_len_override_val (in this TLV).
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_OFFSET                          0x0000000000000028
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_LSB                             30
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MSB                             30
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MASK                            0x0000000040000000
+
+
+/* Description		BAR_SSN_OVERWRITE_ENABLE
+
+			If enabled, TXPCU will overwrite the starting sequence number
+			 in case of Tx BAR or MU-BAR Trigger from with the sequence
+			 number from 'MPDU_QUEUE_OVERVIEW'
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_OFFSET                          0x0000000000000028
+#define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_LSB                             31
+#define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MSB                             31
+#define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MASK                            0x0000000080000000
+
+
+/* Description		BAR_SSN_OFFSET
+
+			Offset to the starting sequence number in case of Tx BAR
+			 or MU-BAR Trigger that TXPCU can overwrite with the sequence
+			 number from 'MPDU_QUEUE_OVERVIEW'
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_OFFSET                                    0x0000000000000028
+#define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_LSB                                       32
+#define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MSB                                       43
+#define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MASK                                      0x00000fff00000000
+
+
+/* Description		MPDU_HDR_LEN_OVERRIDE_VAL
+
+			This is for the FW override of MPDU overhead length programmed
+			 in the TQM queue.
+			
+			See field Mpdu_hdr_len_override_en.
+			
+			Hamilton v1 used bits [31:12] along with word 1 bits [29:26], [8:1] 
+			for 'HT_control_field_bw320.'
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_OFFSET                         0x0000000000000028
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_LSB                            44
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MSB                            52
+#define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MASK                           0x001ff00000000000
+
+
+/* Description		RESERVED_11A
+
+			Hamilton v1 used bits [31:12] along with word 1 bits [29:26], [8:1] 
+			for 'HT_control_field_bw320.'
+			<legal 0>
+*/
+
+#define TX_QUEUE_EXTENSION_RESERVED_11A_OFFSET                                      0x0000000000000028
+#define TX_QUEUE_EXTENSION_RESERVED_11A_LSB                                         53
+#define TX_QUEUE_EXTENSION_RESERVED_11A_MSB                                         63
+#define TX_QUEUE_EXTENSION_RESERVED_11A_MASK                                        0xffe0000000000000
+
+
+/* Description		HT_CONTROL_FIELD_BW320
+
+			Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
+			  is set.
+			
+			Note that TXPCU might overwrite some fields. This is controlled
+			 with field  HT_control_overwrite_enable
+			
+			See HT/HE control overwrite order NOTE after this table
+			
+			Hamilton v1 did not include this (and any subsequent) word.
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_OFFSET                            0x0000000000000030
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_LSB                               0
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MSB                               31
+#define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MASK                              0x00000000ffffffff
+
+
+/* Description		FW2SW_INFO
+
+			This field is provided by FW, to be logged via TXMON to 
+			host SW. It is transparent to HW.
+			
+			<legal all>
+*/
+
+#define TX_QUEUE_EXTENSION_FW2SW_INFO_OFFSET                                        0x0000000000000030
+#define TX_QUEUE_EXTENSION_FW2SW_INFO_LSB                                           32
+#define TX_QUEUE_EXTENSION_FW2SW_INFO_MSB                                           63
+#define TX_QUEUE_EXTENSION_FW2SW_INFO_MASK                                          0xffffffff00000000
+
+
+
+#endif   // TX_QUEUE_EXTENSION
diff --git a/hw/qca5332/tx_rate_stats_info.h b/hw/qca5332/tx_rate_stats_info.h
new file mode 100644
index 0000000..4a8549b
--- /dev/null
+++ b/hw/qca5332/tx_rate_stats_info.h
@@ -0,0 +1,268 @@
+
+/* 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_RATE_STATS_INFO_H_
+#define _TX_RATE_STATS_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2
+
+
+struct tx_rate_stats_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tx_rate_stats_info_valid                                :  1, // [0:0]
+                      transmit_bw                                             :  3, // [3:1]
+                      transmit_pkt_type                                       :  4, // [7:4]
+                      transmit_stbc                                           :  1, // [8:8]
+                      transmit_ldpc                                           :  1, // [9:9]
+                      transmit_sgi                                            :  2, // [11:10]
+                      transmit_mcs                                            :  4, // [15:12]
+                      ofdma_transmission                                      :  1, // [16:16]
+                      tones_in_ru                                             : 12, // [28:17]
+                      reserved_0a                                             :  3; // [31:29]
+             uint32_t ppdu_transmission_tsf                                   : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             :  3, // [31:29]
+                      tones_in_ru                                             : 12, // [28:17]
+                      ofdma_transmission                                      :  1, // [16:16]
+                      transmit_mcs                                            :  4, // [15:12]
+                      transmit_sgi                                            :  2, // [11:10]
+                      transmit_ldpc                                           :  1, // [9:9]
+                      transmit_stbc                                           :  1, // [8:8]
+                      transmit_pkt_type                                       :  4, // [7:4]
+                      transmit_bw                                             :  3, // [3:1]
+                      tx_rate_stats_info_valid                                :  1; // [0:0]
+             uint32_t ppdu_transmission_tsf                                   : 32; // [31:0]
+#endif
+};
+
+
+/* Description		TX_RATE_STATS_INFO_VALID
+
+			When set all other fields in this STRUCT contain valid info.
+			
+			
+			When clear, none of the other fields contain valid info.
+			
+			<legal all>
+*/
+
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_OFFSET                          0x00000000
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_LSB                             0
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_MSB                             0
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_MASK                            0x00000001
+
+
+/* Description		TRANSMIT_BW
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Indicates the BW of the upcoming transmission that shall
+			 likely start in about 3 -4 us on the medium
+			
+			<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_RATE_STATS_INFO_TRANSMIT_BW_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_LSB                                          1
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_MSB                                          3
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_MASK                                         0x0000000e
+
+
+/* Description		TRANSMIT_PKT_TYPE
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The packet type
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_OFFSET                                 0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_LSB                                    4
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_MSB                                    7
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_MASK                                   0x000000f0
+
+
+/* Description		TRANSMIT_STBC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, STBC transmission rate was used.
+*/
+
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_OFFSET                                     0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_LSB                                        8
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_MSB                                        8
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_MASK                                       0x00000100
+
+
+/* Description		TRANSMIT_LDPC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, use LDPC transmission rates
+*/
+
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_OFFSET                                     0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_LSB                                        9
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_MSB                                        9
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_MASK                                       0x00000200
+
+
+/* Description		TRANSMIT_SGI
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			Specify the right GI for HE-Ranging NDPs (11az)/Short NDP.
+			
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_OFFSET                                      0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_LSB                                         10
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_MSB                                         11
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_MASK                                        0x00000c00
+
+
+/* Description		TRANSMIT_MCS
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_OFFSET                                      0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_LSB                                         12
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_MSB                                         15
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_MASK                                        0x0000f000
+
+
+/* Description		OFDMA_TRANSMISSION
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			
+			Set when the transmission was an OFDMA transmission (DL 
+			or UL).
+			<legal all>
+*/
+
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_OFFSET                                0x00000000
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_LSB                                   16
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_MSB                                   16
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_MASK                                  0x00010000
+
+
+/* Description		TONES_IN_RU
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The number of tones in the RU used.
+			<legal all>
+*/
+
+#define TX_RATE_STATS_INFO_TONES_IN_RU_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_TONES_IN_RU_LSB                                          17
+#define TX_RATE_STATS_INFO_TONES_IN_RU_MSB                                          28
+#define TX_RATE_STATS_INFO_TONES_IN_RU_MASK                                         0x1ffe0000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define TX_RATE_STATS_INFO_RESERVED_0A_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_RESERVED_0A_LSB                                          29
+#define TX_RATE_STATS_INFO_RESERVED_0A_MSB                                          31
+#define TX_RATE_STATS_INFO_RESERVED_0A_MASK                                         0xe0000000
+
+
+/* Description		PPDU_TRANSMISSION_TSF
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Based on a HWSCH configuration register setting, this field
+			 either contains:
+			
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame finished.
+			OR
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame started
+			
+			<legal all>
+*/
+
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_OFFSET                             0x00000004
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_LSB                                0
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_MSB                                31
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_MASK                               0xffffffff
+
+
+
+#endif   // TX_RATE_STATS_INFO
diff --git a/hw/qca5332/tx_raw_or_native_frame_setup.h b/hw/qca5332/tx_raw_or_native_frame_setup.h
new file mode 100644
index 0000000..cee238a
--- /dev/null
+++ b/hw/qca5332/tx_raw_or_native_frame_setup.h
@@ -0,0 +1,1033 @@
+
+/* 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_RAW_OR_NATIVE_FRAME_SETUP_H_
+#define _TX_RAW_OR_NATIVE_FRAME_SETUP_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 2
+
+#define NUM_OF_QWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 1
+
+
+struct tx_raw_or_native_frame_setup {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t fc_to_ds_mask                                           :  1, // [0:0]
+                      fc_from_ds_mask                                         :  1, // [1:1]
+                      fc_more_frag_mask                                       :  1, // [2:2]
+                      fc_retry_mask                                           :  1, // [3:3]
+                      fc_pwr_mgt_mask                                         :  1, // [4:4]
+                      fc_more_data_mask                                       :  1, // [5:5]
+                      fc_prot_frame_mask                                      :  1, // [6:6]
+                      fc_order_mask                                           :  1, // [7:7]
+                      duration_field_mask                                     :  1, // [8:8]
+                      sequence_control_mask                                   :  1, // [9:9]
+                      qc_tid_mask                                             :  1, // [10:10]
+                      qc_eosp_mask                                            :  1, // [11:11]
+                      qc_ack_policy_mask                                      :  1, // [12:12]
+                      qc_amsdu_mask                                           :  1, // [13:13]
+                      reserved_0a                                             :  1, // [14:14]
+                      qc_15to8_mask                                           :  1, // [15:15]
+                      iv_mask                                                 :  1, // [16:16]
+                      fc_to_ds_setting                                        :  1, // [17:17]
+                      fc_from_ds_setting                                      :  1, // [18:18]
+                      fc_more_frag_setting                                    :  1, // [19:19]
+                      fc_retry_setting                                        :  2, // [21:20]
+                      fc_pwr_mgt_setting                                      :  1, // [22:22]
+                      fc_more_data_setting                                    :  2, // [24:23]
+                      fc_prot_frame_setting                                   :  2, // [26:25]
+                      fc_order_setting                                        :  1, // [27:27]
+                      qc_tid_setting                                          :  4; // [31:28]
+             uint32_t qc_eosp_setting                                         :  2, // [1:0]
+                      qc_ack_policy_setting                                   :  2, // [3:2]
+                      qc_amsdu_setting                                        :  1, // [4:4]
+                      qc_15to8_setting                                        :  8, // [12:5]
+                      mlo_addr_override                                       :  1, // [13:13]
+                      mlo_ignore_addr3_override                               :  1, // [14:14]
+                      sequence_control_source                                 :  1, // [15:15]
+                      fragment_number                                         :  4, // [19:16]
+                      sequence_number                                         : 12; // [31:20]
+#else
+             uint32_t qc_tid_setting                                          :  4, // [31:28]
+                      fc_order_setting                                        :  1, // [27:27]
+                      fc_prot_frame_setting                                   :  2, // [26:25]
+                      fc_more_data_setting                                    :  2, // [24:23]
+                      fc_pwr_mgt_setting                                      :  1, // [22:22]
+                      fc_retry_setting                                        :  2, // [21:20]
+                      fc_more_frag_setting                                    :  1, // [19:19]
+                      fc_from_ds_setting                                      :  1, // [18:18]
+                      fc_to_ds_setting                                        :  1, // [17:17]
+                      iv_mask                                                 :  1, // [16:16]
+                      qc_15to8_mask                                           :  1, // [15:15]
+                      reserved_0a                                             :  1, // [14:14]
+                      qc_amsdu_mask                                           :  1, // [13:13]
+                      qc_ack_policy_mask                                      :  1, // [12:12]
+                      qc_eosp_mask                                            :  1, // [11:11]
+                      qc_tid_mask                                             :  1, // [10:10]
+                      sequence_control_mask                                   :  1, // [9:9]
+                      duration_field_mask                                     :  1, // [8:8]
+                      fc_order_mask                                           :  1, // [7:7]
+                      fc_prot_frame_mask                                      :  1, // [6:6]
+                      fc_more_data_mask                                       :  1, // [5:5]
+                      fc_pwr_mgt_mask                                         :  1, // [4:4]
+                      fc_retry_mask                                           :  1, // [3:3]
+                      fc_more_frag_mask                                       :  1, // [2:2]
+                      fc_from_ds_mask                                         :  1, // [1:1]
+                      fc_to_ds_mask                                           :  1; // [0:0]
+             uint32_t sequence_number                                         : 12, // [31:20]
+                      fragment_number                                         :  4, // [19:16]
+                      sequence_control_source                                 :  1, // [15:15]
+                      mlo_ignore_addr3_override                               :  1, // [14:14]
+                      mlo_addr_override                                       :  1, // [13:13]
+                      qc_15to8_setting                                        :  8, // [12:5]
+                      qc_amsdu_setting                                        :  1, // [4:4]
+                      qc_ack_policy_setting                                   :  2, // [3:2]
+                      qc_eosp_setting                                         :  2; // [1:0]
+#endif
+};
+
+
+/* Description		FC_TO_DS_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			Note: Enc_type is NOT allowed b
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_to_ds_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+			
+			In 11ah mode of Operation, same description as above applies
+			 if this field is a part of FC field of the MPDU. This field
+			 does not apply to Short MAC header (PV=1) and is ignored
+			 by HW
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_OFFSET                           0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_LSB                              0
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MSB                              0
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MASK                             0x0000000000000001
+
+
+/* Description		FC_FROM_DS_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_from_ds_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+			
+			In 11ah mode of Operation, same description as above applies
+			 if this field is a part of FC field of the MPDU.
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_OFFSET                         0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_LSB                            1
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MSB                            1
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MASK                           0x0000000000000002
+
+
+/* Description		FC_MORE_FRAG_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_more_frag_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_OFFSET                       0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_LSB                          2
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MSB                          2
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MASK                         0x0000000000000004
+
+
+/* Description		FC_RETRY_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the setting
+			 for this field on the retry_bitmap_31_0 and retry_bitmap_63_32
+			 fields in the MPDU_queue_extension descriptor
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_retry_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_OFFSET                           0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_LSB                              3
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MSB                              3
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MASK                             0x0000000000000008
+
+
+/* Description		FC_PWR_MGT_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_pwr_mgt_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_OFFSET                         0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_LSB                            4
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MSB                            4
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MASK                           0x0000000000000010
+
+
+/* Description		FC_MORE_DATA_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			TX_PCU has the abilty of overwrite the More data field, 
+			based on the Set_fc_more_data field in the PPDU_SS_... TLVs
+			 given by PDG.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_more_data_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_OFFSET                       0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_LSB                          5
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MSB                          5
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MASK                         0x0000000000000020
+
+
+/* Description		FC_PROT_FRAME_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the setting
+			 for the Protected frame bit on the key_type setting  in
+			 the peer entry. When NO encryption is needed, the bit will
+			 be set to 0, When the any encryption is needed, the bit
+			 will be set to 0.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_prot_frame_setting. When fc_prot_frame_setting is set, 
+			OLE will encrypt the frame, based on the encryption type
+			 indicate with the key_type setting  in the peer entry
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_OFFSET                      0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_LSB                         6
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MSB                         6
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MASK                        0x0000000000000040
+
+
+/* Description		FC_ORDER_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will get the setting
+			 from the frame_ctl field in the MPDU_queue extension data
+			 structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			fc_order_setting.
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+			
+			In 11ah mode of Operation, same description as above applies
+			 if this field is a part of FC field of the MPDU.
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_OFFSET                           0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_LSB                              7
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MSB                              7
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MASK                             0x0000000000000080
+
+
+/* Description		DURATION_FIELD_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, TX PCU will get the
+			 value for this field from the Duration fields in the PPDU_SS_... 
+			TLVs from PDG.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (TX_PCU) will insert is coming from the
+			 Duration fields in the PPDU_SS_... TLVs from PDG (similar
+			 as with NON RAW/Native WiFi frames).
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+			
+			In 11ah mode of Operation, same description as above applies
+			 if this field is a part of FC field of the MPDU.
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_OFFSET                     0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_LSB                        8
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MSB                        8
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MASK                       0x0000000000000100
+
+
+/* Description		SEQUENCE_CONTROL_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on sequence number field in the TX_MPDU_START
+			 descriptor
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is dependent on the 
+			setting in the 'sequence_control_source' field
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_OFFSET                   0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_LSB                      9
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MSB                      9
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MASK                     0x0000000000000200
+
+
+/* Description		QC_TID_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on the qos_ctl field from the MPDU_queue_ext
+			 data structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update this field. 
+			The value that HW (OLE) will insert is the given in field: 
+			qc_tid_setting.
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_OFFSET                             0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_LSB                                10
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MSB                                10
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MASK                               0x0000000000000400
+
+
+/* Description		QC_EOSP_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on the qos_ctl field from the MPDU_queue_ext
+			 data structure.
+			
+			TX_PCU has the abilty of overwrite the QoS eosp field, based
+			 on the Set_fc_more_data field in the PPDU_SS_... TLVs given
+			 by PDG.
+			
+			<enum 0 mask_disable>: HW is allowed to update the QoS eosp
+			 field. The value that HW (OLE) will insert is the given
+			 in field: qc_eosp_setting.
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+			
+			In 11ah mode of Operation, same description as above applies
+			 if this field is a part of FC field of the MPDU.
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_OFFSET                            0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_LSB                               11
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MSB                               11
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MASK                              0x0000000000000800
+
+
+/* Description		QC_ACK_POLICY_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on the qos_ctl field from the MPDU_queue_ext
+			 data structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update the QoS ack
+			 policy field. The value that HW (OLE) will insert is determined
+			 by field: qc_ack_policy_setting.
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_OFFSET                      0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_LSB                         12
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MSB                         12
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MASK                        0x0000000000001000
+
+
+/* Description		QC_AMSDU_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on the qos_ctl field from the MPDU_queue_ext
+			 data structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update the QoS amsdu
+			 field. The value that HW (OLE) will insert is determined
+			 by field: qc_amsdu_setting.
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_OFFSET                           0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_LSB                              13
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MSB                              13
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MASK                             0x0000000000002000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0> 
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_OFFSET                             0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_LSB                                14
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MSB                                14
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MASK                               0x0000000000004000
+
+
+/* Description		QC_15TO8_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the value
+			 for  this field on the qos_ctl field from the MPDU_queue_ext
+			 data structure.
+			
+			<enum 0 mask_disable>: HW is allowed to update the QoS control
+			 field, bits 15-8. The value that HW (OLE) will insert is
+			 determined by field: qc_15to8_setting.
+			
+			<enum 1 mask_enable>: HW is not allowed to update the contents
+			 of this field.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_OFFSET                           0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_LSB                              15
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MSB                              15
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MASK                             0x0000000000008000
+
+
+/* Description		IV_MASK
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MPDU frames with MSDU enc_type == RAW
+			 or Native WiFi
+			
+			Note: 
+			When enc_type != RAW or Native WiFi, OLE will base the IV
+			 field insertion/value on the on the encryption type indicate
+			 with the key_type setting  in the peer entry
+			
+			<enum 0 mask_disable>: OLE is allowed to overwrite the IV
+			 field, in case key_type setting  in the peer entry indicates
+			 some encryption.
+			
+			<enum 1 mask_enable>: OLE  is not allowed to overwrite any
+			 of the IV field contents.
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_OFFSET                                 0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_LSB                                    16
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MSB                                    16
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MASK                                   0x0000000000010000
+
+
+/* Description		FC_TO_DS_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_to_ds_mask is not set.
+			
+			<enum 0 clear>: OLE will set the frame control field, to
+			 ds bit to 0
+			<enum 1 set>: OLE will set the frame control field, to ds
+			 bit to 1
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_OFFSET                        0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_LSB                           17
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MSB                           17
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MASK                          0x0000000000020000
+
+
+/* Description		FC_FROM_DS_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_from_ds_mask is not set.
+			
+			<enum 0 clear>: OLE will set the frame control field, from
+			 ds bit to 0
+			<enum 1 set>: OLE will set the frame control field, from
+			 ds bit to 1
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_OFFSET                      0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_LSB                         18
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MSB                         18
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MASK                        0x0000000000040000
+
+
+/* Description		FC_MORE_FRAG_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_more_frag_mask is not set.
+			
+			
+			<enum 0 clear>: OLE will set the frame control field, more
+			 frag bit to 0
+			<enum 1 set>: OLE will set the frame control field, more
+			 frag bit to 1
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_OFFSET                    0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_LSB                       19
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MSB                       19
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MASK                      0x0000000000080000
+
+
+/* Description		FC_RETRY_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_retry_mask is not set.
+			
+			<enum 0 fc_retry_clear>: OLE will set the frame control 
+			field, retry bit to 0
+			<enum 1 fc_retry_set>: OLE will set the frame control field, 
+			retry bit to 1
+			<enum 2 fc_retry_bimap_based>: OLE will base the setting
+			 for this field on the retry_bitmap_31_0 and retry_bitmap_63_32
+			 fields in the MPDU_queue_extension descriptor
+			
+			<legal 0-2>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_OFFSET                        0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_LSB                           20
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MSB                           21
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MASK                          0x0000000000300000
+
+
+/* Description		FC_PWR_MGT_SETTING
+
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_pwr_mgt_mask is not set.
+			
+			<enum 0 clear>: OLE will set the frame control field, pwr_mgt
+			 bit to 0
+			<enum 1 set>: OLE will set the frame control field, pwr_mgt
+			 bit to 1
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_OFFSET                      0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_LSB                         22
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MSB                         22
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MASK                        0x0000000000400000
+
+
+/* Description		FC_MORE_DATA_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_more_Data_mask is not set.
+			
+			
+			<enum 0 fc_more_data_clear>: OLE will set the frame control
+			 field, More data bit to 0
+			<enum 1 fc_more_data_set>: OLE will set the frame control
+			 field, More data bit to 1
+			
+			<enum 2 fc_more_data_pdg_based>: OLE will set the Frame 
+			control, More data bit to 0, but TX_PCU has the abilty to
+			 overwrite this based on the Set_fc_more_data field in the
+			 PPDU_SS_... TLVs given by PDG.
+			
+			<legal 0-2>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_OFFSET                    0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_LSB                       23
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MSB                       24
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MASK                      0x0000000001800000
+
+
+/* Description		FC_PROT_FRAME_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_prot_frame_mask is not set.
+			
+			
+			<enum 0 fc_prot_frame_clear>: OLE will set the frame control
+			 field , "Protected Frame" bit to 0
+			<enum 1 fc_prot_frame_set>: OLE will set the frame control
+			 field , "Protected Frame" bit to 1
+			<enum 2 fc_prot_frame_encap_type_based>: OLE configures 
+			the Frame Control field, Prot frame bit according to the
+			 following rule: 
+			When the encryption type indicated with the key_type setting
+			  in the peer entry is set to no crypto, the Frame control
+			 "Protected Frame" bit is set to 0. 
+			When the encryption type indicated with the key_type setting
+			 in the peer entry is set to some encryption type, the OLE
+			 will set the frame control "Protected Frame" bit to 1.
+			OLE changes only the value of the prot_frame bit. It won't
+			 push IV in the frame according to this bit.
+			
+			<legal 0-2>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_OFFSET                   0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_LSB                      25
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MSB                      26
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MASK                     0x0000000006000000
+
+
+/* Description		FC_ORDER_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Fc_order_mask is not set.
+			
+			<enum 0 clear>: OLE will set the frame control field , order
+			 bit to 0
+			<enum 1 set>: OLE will set the frame control field , order
+			 bit to 1
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_OFFSET                        0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_LSB                           27
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MSB                           27
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MASK                          0x0000000008000000
+
+
+/* Description		QC_TID_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Qc_tid_mask is not set.
+			
+			OLE sets the TID field in the QoS control field to this 
+			value.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_OFFSET                          0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_LSB                             28
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MSB                             31
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MASK                            0x00000000f0000000
+
+
+/* Description		QC_EOSP_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Qc_eosp_mask is not set.
+			
+			<enum 0 qc_eosp_clear>: OLE will set the QoS control bit
+			 to 0
+			<enum 1 qc_eosp_set>: OLE will set the QoS control bit to
+			 1
+			<enum 2 qc_eosp_pdg_based>: OLE will set the QoS control
+			 bit to 0, but TX_PCU has the abilty of overwrite the QoS
+			 eosp field, based on the Set_fc_more_data field in the 
+			PPDU_SS_... TLVs given by PDG.
+			
+			<legal 0-2>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_OFFSET                         0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_LSB                            32
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MSB                            33
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MASK                           0x0000000300000000
+
+
+/* Description		QC_ACK_POLICY_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Qc_ack_policy_mask is not set.
+			
+			
+			This is is QoS ACK policy value that RXOLE shall put in 
+			the ACK policy field in the QoS control field
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_OFFSET                   0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_LSB                      34
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MSB                      35
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MASK                     0x0000000c00000000
+
+
+/* Description		QC_AMSDU_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Qc_amsdu_mask is not set.
+			
+			<enum 0 clear>: OLE will set the QoS control field amsdu
+			 bit to 0
+			<enum 1 set>: OLE will set the QoS control field amsdu bit
+			 to 1
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_OFFSET                        0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_LSB                           36
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MSB                           36
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MASK                          0x0000001000000000
+
+
+/* Description		QC_15TO8_SETTING
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			Field only valid when field Qc_15to8_mask is not set.
+			
+			OLE sets bit 8 to 16 in the QoS control field to this value.
+			
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_OFFSET                        0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_LSB                           37
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MSB                           44
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MASK                          0x00001fe000000000
+
+
+/* Description		MLO_ADDR_OVERRIDE
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			
+			Enables address translation for raw Wi-Fi frames to multi-link
+			 peers, esp. management frames
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_OFFSET                       0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_LSB                          45
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MSB                          45
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MASK                         0x0000200000000000
+
+
+/* Description		MLO_IGNORE_ADDR3_OVERRIDE
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi when Mlo_addr_override is set.
+			
+			Preserves Address3 (BSSID) for raw Wi-Fi management frames
+			 to multi-link peers.
+			
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_OFFSET               0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_LSB                  46
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MSB                  46
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MASK                 0x0000400000000000
+
+
+/* Description		SEQUENCE_CONTROL_SOURCE
+
+			Field only valid when field Sequence_control_mask is set
+			 to 'mask_disable'.
+			
+			<enum 0 seq_ctrl_source_mpdu_start>: OLE will set the sequence
+			 control field based on what is indicated in the TX_MPDU_START
+			 TLV. 
+			
+			<enum 1 seq_ctrl_source_this_tlv>: OLE will set the sequence
+			 control field based on what is indicated in this TLV, fields
+			 Fragment_number and Sequence_number
+			Note that this setting assumes that there is only a single
+			 RAW or Native Wifi MPDU for this user in the transmit path. 
+			This works well for level 1 fragmentation. Reason that there
+			 should only be a single RAW or Native WiFi frames is that
+			 with this feature they would all get the same sequence + 
+			fragment  number
+			
+			<legal 0-1>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_OFFSET                 0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_LSB                    47
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MSB                    47
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MASK                   0x0000800000000000
+
+
+/* Description		FRAGMENT_NUMBER
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			
+			Field only valid when field Sequence_control_mask =  mask_disable
+			 AND sequence_control_source is set to seq_ctrl_source_this_tlv
+			
+			
+			The Fragment number to be filled in 
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_OFFSET                         0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_LSB                            48
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MSB                            51
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MASK                           0x000f000000000000
+
+
+/* Description		SEQUENCE_NUMBER
+
+			Consumer: TXOLE
+			Producer: SW
+			
+			Field only valid for MSDU frames with enc_type == RAW or
+			 Native WiFi.
+			
+			Field only valid when field Sequence_control_mask =  mask_disable
+			 AND sequence_control_source is set to seq_ctrl_source_this_tlv
+			
+			
+			The Sequence number to be filled in 
+			<legal all>
+*/
+
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_OFFSET                         0x0000000000000000
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_LSB                            52
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MSB                            63
+#define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MASK                           0xfff0000000000000
+
+
+
+#endif   // TX_RAW_OR_NATIVE_FRAME_SETUP
diff --git a/hw/qca5332/txpcu_buffer_basics.h b/hw/qca5332/txpcu_buffer_basics.h
new file mode 100644
index 0000000..bf14c8e
--- /dev/null
+++ b/hw/qca5332/txpcu_buffer_basics.h
@@ -0,0 +1,96 @@
+
+/* 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 _TXPCU_BUFFER_BASICS_H_
+#define _TXPCU_BUFFER_BASICS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TXPCU_BUFFER_BASICS 1
+
+
+struct txpcu_buffer_basics {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t available_memory                                        :  8, // [7:0]
+                      partial_tx_data_tlv_count                               :  8, // [15:8]
+                      tx_data_tlv_count                                       : 16; // [31:16]
+#else
+             uint32_t tx_data_tlv_count                                       : 16, // [31:16]
+                      partial_tx_data_tlv_count                               :  8, // [15:8]
+                      available_memory                                        :  8; // [7:0]
+#endif
+};
+
+
+/* Description		AVAILABLE_MEMORY
+
+			The amount of TX_FIFO memory in 128 byte units that is available. 
+			
+			TXPCU gets this from the Avail_fifo_mem signal from SFM.
+			
+			
+			When SFM is indicating a larger available amount, that value
+			 shall be saturated to 0xFF in this field.
+			
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_OFFSET                                 0x00000000
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_LSB                                    0
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_MSB                                    7
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_MASK                                   0x000000ff
+
+
+/* Description		PARTIAL_TX_DATA_TLV_COUNT
+
+			The number of  16 bytes units received of the TX_DATA TLV
+			 that is currently under reception by TXPCU. 
+			Value saturates at 255 in case TX_DATA TLV length is larger
+			 then 4080 bytes. This is unlikely as TX_DATA will generally
+			 not be larger then then the Max MSDU size.
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_OFFSET                        0x00000000
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_LSB                           8
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_MSB                           15
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_MASK                          0x0000ff00
+
+
+/* Description		TX_DATA_TLV_COUNT
+
+			The number of completely received TX_DATA TLVs (of all the
+			 users together) received by TXPCU
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_OFFSET                                0x00000000
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_LSB                                   16
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_MSB                                   31
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_MASK                                  0xffff0000
+
+
+
+#endif   // TXPCU_BUFFER_BASICS
diff --git a/hw/qca5332/txpcu_buffer_status.h b/hw/qca5332/txpcu_buffer_status.h
new file mode 100644
index 0000000..84241a2
--- /dev/null
+++ b/hw/qca5332/txpcu_buffer_status.h
@@ -0,0 +1,147 @@
+
+/* 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 _TXPCU_BUFFER_STATUS_H_
+#define _TXPCU_BUFFER_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "txpcu_buffer_basics.h"
+#define NUM_OF_DWORDS_TXPCU_BUFFER_STATUS 2
+
+#define NUM_OF_QWORDS_TXPCU_BUFFER_STATUS 1
+
+
+struct txpcu_buffer_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   txpcu_buffer_basics                                       txpcu_basix_buffer_info;
+             uint32_t reserved                                                : 15, // [14:0]
+                      msdu_end                                                :  1, // [15:15]
+                      tx_data_sync_value                                      : 16; // [31:16]
+#else
+             struct   txpcu_buffer_basics                                       txpcu_basix_buffer_info;
+             uint32_t tx_data_sync_value                                      : 16, // [31:16]
+                      msdu_end                                                :  1, // [15:15]
+                      reserved                                                : 15; // [14:0]
+#endif
+};
+
+
+/* Description		TXPCU_BASIX_BUFFER_INFO
+
+			Global overview of the TXPCU buffer
+			<legal all>
+*/
+
+
+/* Description		AVAILABLE_MEMORY
+
+			The amount of TX_FIFO memory in 128 byte units that is available. 
+			
+			TXPCU gets this from the Avail_fifo_mem signal from SFM.
+			
+			
+			When SFM is indicating a larger available amount, that value
+			 shall be saturated to 0xFF in this field.
+			
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_AVAILABLE_MEMORY_OFFSET         0x0000000000000000
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_AVAILABLE_MEMORY_LSB            0
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_AVAILABLE_MEMORY_MSB            7
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_AVAILABLE_MEMORY_MASK           0x00000000000000ff
+
+
+/* Description		PARTIAL_TX_DATA_TLV_COUNT
+
+			The number of  16 bytes units received of the TX_DATA TLV
+			 that is currently under reception by TXPCU. 
+			Value saturates at 255 in case TX_DATA TLV length is larger
+			 then 4080 bytes. This is unlikely as TX_DATA will generally
+			 not be larger then then the Max MSDU size.
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_OFFSET 0x0000000000000000
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_LSB   8
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_MSB   15
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_MASK  0x000000000000ff00
+
+
+/* Description		TX_DATA_TLV_COUNT
+
+			The number of completely received TX_DATA TLVs (of all the
+			 users together) received by TXPCU
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_TX_DATA_TLV_COUNT_OFFSET        0x0000000000000000
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_TX_DATA_TLV_COUNT_LSB           16
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_TX_DATA_TLV_COUNT_MSB           31
+#define TXPCU_BUFFER_STATUS_TXPCU_BASIX_BUFFER_INFO_TX_DATA_TLV_COUNT_MASK          0x00000000ffff0000
+
+
+/* Description		RESERVED
+
+			<legal 0>
+*/
+
+#define TXPCU_BUFFER_STATUS_RESERVED_OFFSET                                         0x0000000000000000
+#define TXPCU_BUFFER_STATUS_RESERVED_LSB                                            32
+#define TXPCU_BUFFER_STATUS_RESERVED_MSB                                            46
+#define TXPCU_BUFFER_STATUS_RESERVED_MASK                                           0x00007fff00000000
+
+
+/* Description		MSDU_END
+
+			Bit to indicate that TXPCU has received an entire MSDU and
+			 'TX_MSDU_END'
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_STATUS_MSDU_END_OFFSET                                         0x0000000000000000
+#define TXPCU_BUFFER_STATUS_MSDU_END_LSB                                            47
+#define TXPCU_BUFFER_STATUS_MSDU_END_MSB                                            47
+#define TXPCU_BUFFER_STATUS_MSDU_END_MASK                                           0x0000800000000000
+
+
+/* Description		TX_DATA_SYNC_VALUE
+
+			The last received sync_value number from the TX_DATA_SYNC
+			 TLV
+			At reception of TX_FES_SETUP, TXPCU initializes this value
+			 to 0
+			<legal all>
+*/
+
+#define TXPCU_BUFFER_STATUS_TX_DATA_SYNC_VALUE_OFFSET                               0x0000000000000000
+#define TXPCU_BUFFER_STATUS_TX_DATA_SYNC_VALUE_LSB                                  48
+#define TXPCU_BUFFER_STATUS_TX_DATA_SYNC_VALUE_MSB                                  63
+#define TXPCU_BUFFER_STATUS_TX_DATA_SYNC_VALUE_MASK                                 0xffff000000000000
+
+
+
+#endif   // TXPCU_BUFFER_STATUS
diff --git a/hw/qca5332/txpcu_user_buffer_status.h b/hw/qca5332/txpcu_user_buffer_status.h
new file mode 100644
index 0000000..cff449f
--- /dev/null
+++ b/hw/qca5332/txpcu_user_buffer_status.h
@@ -0,0 +1,163 @@
+
+/* 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 _TXPCU_USER_BUFFER_STATUS_H_
+#define _TXPCU_USER_BUFFER_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "txpcu_buffer_basics.h"
+#define NUM_OF_DWORDS_TXPCU_USER_BUFFER_STATUS 2
+
+#define NUM_OF_QWORDS_TXPCU_USER_BUFFER_STATUS 1
+
+
+struct txpcu_user_buffer_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   txpcu_buffer_basics                                       txpcu_basic_buffer_info;
+             uint32_t stored_word_count_user                                  : 14, // [13:0]
+                      reserved_1a                                             :  1, // [14:14]
+                      msdu_end                                                :  1, // [15:15]
+                      tx_data_sync_value                                      : 16; // [31:16]
+#else
+             struct   txpcu_buffer_basics                                       txpcu_basic_buffer_info;
+             uint32_t tx_data_sync_value                                      : 16, // [31:16]
+                      msdu_end                                                :  1, // [15:15]
+                      reserved_1a                                             :  1, // [14:14]
+                      stored_word_count_user                                  : 14; // [13:0]
+#endif
+};
+
+
+/* Description		TXPCU_BASIC_BUFFER_INFO
+
+			Global overview of the TXPCU buffer
+			<legal all>
+*/
+
+
+/* Description		AVAILABLE_MEMORY
+
+			The amount of TX_FIFO memory in 128 byte units that is available. 
+			
+			TXPCU gets this from the Avail_fifo_mem signal from SFM.
+			
+			
+			When SFM is indicating a larger available amount, that value
+			 shall be saturated to 0xFF in this field.
+			
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_AVAILABLE_MEMORY_OFFSET    0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_AVAILABLE_MEMORY_LSB       0
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_AVAILABLE_MEMORY_MSB       7
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_AVAILABLE_MEMORY_MASK      0x00000000000000ff
+
+
+/* Description		PARTIAL_TX_DATA_TLV_COUNT
+
+			The number of  16 bytes units received of the TX_DATA TLV
+			 that is currently under reception by TXPCU. 
+			Value saturates at 255 in case TX_DATA TLV length is larger
+			 then 4080 bytes. This is unlikely as TX_DATA will generally
+			 not be larger then then the Max MSDU size.
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_OFFSET 0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_LSB 8
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_MSB 15
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_PARTIAL_TX_DATA_TLV_COUNT_MASK 0x000000000000ff00
+
+
+/* Description		TX_DATA_TLV_COUNT
+
+			The number of completely received TX_DATA TLVs (of all the
+			 users together) received by TXPCU
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_TX_DATA_TLV_COUNT_OFFSET   0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_TX_DATA_TLV_COUNT_LSB      16
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_TX_DATA_TLV_COUNT_MSB      31
+#define TXPCU_USER_BUFFER_STATUS_TXPCU_BASIC_BUFFER_INFO_TX_DATA_TLV_COUNT_MASK     0x00000000ffff0000
+
+
+/* Description		STORED_WORD_COUNT_USER
+
+			Number of 4 word units (4 x 32 bits)  stored for this user
+			 in the buffer
+			
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_STORED_WORD_COUNT_USER_OFFSET                      0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_STORED_WORD_COUNT_USER_LSB                         32
+#define TXPCU_USER_BUFFER_STATUS_STORED_WORD_COUNT_USER_MSB                         45
+#define TXPCU_USER_BUFFER_STATUS_STORED_WORD_COUNT_USER_MASK                        0x00003fff00000000
+
+
+/* Description		RESERVED_1A
+
+			<legal 0>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_RESERVED_1A_OFFSET                                 0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_RESERVED_1A_LSB                                    46
+#define TXPCU_USER_BUFFER_STATUS_RESERVED_1A_MSB                                    46
+#define TXPCU_USER_BUFFER_STATUS_RESERVED_1A_MASK                                   0x0000400000000000
+
+
+/* Description		MSDU_END
+
+			Bit to indicate that TXPCU has received an entire MSDU and
+			 'TX_MSDU_END'
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_MSDU_END_OFFSET                                    0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_MSDU_END_LSB                                       47
+#define TXPCU_USER_BUFFER_STATUS_MSDU_END_MSB                                       47
+#define TXPCU_USER_BUFFER_STATUS_MSDU_END_MASK                                      0x0000800000000000
+
+
+/* Description		TX_DATA_SYNC_VALUE
+
+			The last received sync_value number from the TX_DATA_SYNC
+			 TLV
+			At reception of TX_FES_SETUP, TXPCU initializes this value
+			 to 0
+			<legal all>
+*/
+
+#define TXPCU_USER_BUFFER_STATUS_TX_DATA_SYNC_VALUE_OFFSET                          0x0000000000000000
+#define TXPCU_USER_BUFFER_STATUS_TX_DATA_SYNC_VALUE_LSB                             48
+#define TXPCU_USER_BUFFER_STATUS_TX_DATA_SYNC_VALUE_MSB                             63
+#define TXPCU_USER_BUFFER_STATUS_TX_DATA_SYNC_VALUE_MASK                            0xffff000000000000
+
+
+
+#endif   // TXPCU_USER_BUFFER_STATUS
diff --git a/hw/qca5332/u_sig_eht_su_mu_info.h b/hw/qca5332/u_sig_eht_su_mu_info.h
new file mode 100644
index 0000000..9dc8a1f
--- /dev/null
+++ b/hw/qca5332/u_sig_eht_su_mu_info.h
@@ -0,0 +1,385 @@
+
+/* 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 _U_SIG_EHT_SU_MU_INFO_H_
+#define _U_SIG_EHT_SU_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_U_SIG_EHT_SU_MU_INFO 2
+
+
+struct u_sig_eht_su_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_version                                             :  3, // [2:0]
+                      transmit_bw                                             :  3, // [5:3]
+                      dl_ul_flag                                              :  1, // [6:6]
+                      bss_color_id                                            :  6, // [12:7]
+                      txop_duration                                           :  7, // [19:13]
+                      disregard_0a                                            :  5, // [24:20]
+                      validate_0b                                             :  1, // [25:25]
+                      reserved_0c                                             :  6; // [31:26]
+             uint32_t eht_ppdu_sig_cmn_type                                   :  2, // [1:0]
+                      validate_1a                                             :  1, // [2:2]
+                      punctured_channel_information                           :  5, // [7:3]
+                      validate_1b                                             :  1, // [8:8]
+                      mcs_of_eht_sig                                          :  2, // [10:9]
+                      num_eht_sig_symbols                                     :  5, // [15:11]
+                      crc                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      dot11ax_su_extended                                     :  1, // [26:26]
+                      reserved_1d                                             :  3, // [29:27]
+                      rx_ndp                                                  :  1, // [30:30]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0c                                             :  6, // [31:26]
+                      validate_0b                                             :  1, // [25:25]
+                      disregard_0a                                            :  5, // [24:20]
+                      txop_duration                                           :  7, // [19:13]
+                      bss_color_id                                            :  6, // [12:7]
+                      dl_ul_flag                                              :  1, // [6:6]
+                      transmit_bw                                             :  3, // [5:3]
+                      phy_version                                             :  3; // [2:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      rx_ndp                                                  :  1, // [30:30]
+                      reserved_1d                                             :  3, // [29:27]
+                      dot11ax_su_extended                                     :  1, // [26:26]
+                      tail                                                    :  6, // [25:20]
+                      crc                                                     :  4, // [19:16]
+                      num_eht_sig_symbols                                     :  5, // [15:11]
+                      mcs_of_eht_sig                                          :  2, // [10:9]
+                      validate_1b                                             :  1, // [8:8]
+                      punctured_channel_information                           :  5, // [7:3]
+                      validate_1a                                             :  1, // [2:2]
+                      eht_ppdu_sig_cmn_type                                   :  2; // [1:0]
+#endif
+};
+
+
+/* Description		PHY_VERSION
+
+			<enum 0 U_SIG_VERSION_EHT>
+			Values 1 - 7 are reserved.
+			<legal 0
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_LSB                                        0
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_MSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_MASK                                       0x00000007
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU
+			
+			<enum 0 U_SIG_BW20> 20 MHz
+			<enum 1 U_SIG_BW40> 40 MHz
+			<enum 2 U_SIG_BW80> 80 MHz
+			<enum 3 U_SIG_BW160> 160 MHz
+			<enum 4 U_SIG_BW320> 320 MHz
+			<enum 5 U_SIG_BW320_2> DO NOT USE
+			
+			Microcode remaps 'U_SIG_BW320' based on channelization.
+			
+			On RX side, field used by MAC HW
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_LSB                                        3
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_MSB                                        5
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_MASK                                       0x00000038
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_OFFSET                                      0x00000000
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_LSB                                         6
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_MSB                                         6
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_MASK                                        0x00000040
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID
+			
+			Field used by MAC HW
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_OFFSET                                    0x00000000
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_LSB                                       7
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_MSB                                       12
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_MASK                                      0x00001f80
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field used by MAC HW
+			 <legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_OFFSET                                   0x00000000
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_LSB                                      13
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_MSB                                      19
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_MASK                                     0x000fe000
+
+
+/* Description		DISREGARD_0A
+
+			Note: spec indicates this shall be set to 1s
+			<legal 31>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_OFFSET                                    0x00000000
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_LSB                                       20
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_MSB                                       24
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_MASK                                      0x01f00000
+
+
+/* Description		VALIDATE_0B
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_LSB                                        25
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_MSB                                        25
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_MASK                                       0x02000000
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_LSB                                        26
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_MSB                                        31
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_MASK                                       0xfc000000
+
+
+/* Description		EHT_PPDU_SIG_CMN_TYPE
+
+			<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
+			<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
+			 EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
+			
+			<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
+			 content channels
+			<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
+			 content channel
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_OFFSET                           0x00000004
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_LSB                              0
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_MSB                              1
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_MASK                             0x00000003
+
+
+/* Description		VALIDATE_1A
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_LSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_MSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_MASK                                       0x00000004
+
+
+/* Description		PUNCTURED_CHANNEL_INFORMATION
+
+			For OFDMA BW 20 MHz or 40 MHz:
+			Set to all 1s, i.e. 31
+			
+			For OFDMA of higher BW:
+			Bit 3 = lowest 20 MHz in the current 80 MHz
+			Bit 6 = highest 20 MHz in the current 80 MHz
+			Bit 7 = 1
+			
+			Each bit indicates whether the 20 MHz is modulated or punctured
+			
+			0 = punctured
+			1 = modulated
+			
+			For non-OFDMA:
+			Set to a 5-bit value encoding the puncture pattern, a.k.a. 'U_sig_puncture_pattern_encoding' 
+			elsewhere in the data structures
+			
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_OFFSET                   0x00000004
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_LSB                      3
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_MSB                      7
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_MASK                     0x000000f8
+
+
+/* Description		VALIDATE_1B
+
+			Note: spec indicates this shall be set to 1
+			<legal 1>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_LSB                                        8
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_MSB                                        8
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_MASK                                       0x00000100
+
+
+/* Description		MCS_OF_EHT_SIG
+
+			Indicates the MCS of EHT-SIG
+			0 - 1: MCS 0 - 1
+			2: MCS 3
+			3: MCS 0 with DCM
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_OFFSET                                  0x00000004
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_LSB                                     9
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_MSB                                     10
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_MASK                                    0x00000600
+
+
+/* Description		NUM_EHT_SIG_SYMBOLS
+
+			Number of symbols
+			
+			The actual number of symbols is 1 larger than indicated 
+			in this field.
+			
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_OFFSET                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_LSB                                11
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_MSB                                15
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_MASK                               0x0000f800
+
+
+/* Description		CRC
+
+			CRC for U-SIG contents
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_CRC_OFFSET                                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_CRC_LSB                                                16
+#define U_SIG_EHT_SU_MU_INFO_CRC_MSB                                                19
+#define U_SIG_EHT_SU_MU_INFO_CRC_MASK                                               0x000f0000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_TAIL_OFFSET                                            0x00000004
+#define U_SIG_EHT_SU_MU_INFO_TAIL_LSB                                               20
+#define U_SIG_EHT_SU_MU_INFO_TAIL_MSB                                               25
+#define U_SIG_EHT_SU_MU_INFO_TAIL_MASK                                              0x03f00000
+
+
+/* Description		DOT11AX_SU_EXTENDED
+
+			TX side:
+			Set to 0
+			
+			RX side: On RX side, evaluated by MAC HW
+			
+			This is the only way for MAC RX to know that this was a 
+			U_SIG_EHT_SU received in extended range format.
+			
+			When set, the 11be frame is of the extended range format.
+			
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_OFFSET                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_LSB                                26
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_MSB                                26
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_MASK                               0x04000000
+
+
+/* Description		RESERVED_1D
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_LSB                                        27
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_MSB                                        29
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_MASK                                       0x38000000
+
+
+/* Description		RX_NDP
+
+			TX side:
+			Set to 0
+			
+			RX side: On RX side, looked at by MAC HW
+			
+			When set, PHY has received an (expected) NDP frame
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_OFFSET                                          0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_LSB                                             30
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_MSB                                             30
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_MASK                                            0x40000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the U-SIG CRC check 
+			has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                       0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                          31
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                          31
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                         0x80000000
+
+
+
+#endif   // U_SIG_EHT_SU_MU_INFO
diff --git a/hw/qca5332/u_sig_eht_tb_info.h b/hw/qca5332/u_sig_eht_tb_info.h
new file mode 100644
index 0000000..0c497fc
--- /dev/null
+++ b/hw/qca5332/u_sig_eht_tb_info.h
@@ -0,0 +1,277 @@
+
+/* 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 _U_SIG_EHT_TB_INFO_H_
+#define _U_SIG_EHT_TB_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_U_SIG_EHT_TB_INFO 2
+
+
+struct u_sig_eht_tb_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_version                                             :  3, // [2:0]
+                      transmit_bw                                             :  3, // [5:3]
+                      dl_ul_flag                                              :  1, // [6:6]
+                      bss_color_id                                            :  6, // [12:7]
+                      txop_duration                                           :  7, // [19:13]
+                      disregard_0a                                            :  6, // [25:20]
+                      reserved_0c                                             :  6; // [31:26]
+             uint32_t eht_ppdu_sig_cmn_type                                   :  2, // [1:0]
+                      validate_1a                                             :  1, // [2:2]
+                      spatial_reuse                                           :  8, // [10:3]
+                      disregard_1b                                            :  5, // [15:11]
+                      crc                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      reserved_1c                                             :  5, // [30:26]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0c                                             :  6, // [31:26]
+                      disregard_0a                                            :  6, // [25:20]
+                      txop_duration                                           :  7, // [19:13]
+                      bss_color_id                                            :  6, // [12:7]
+                      dl_ul_flag                                              :  1, // [6:6]
+                      transmit_bw                                             :  3, // [5:3]
+                      phy_version                                             :  3; // [2:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_1c                                             :  5, // [30:26]
+                      tail                                                    :  6, // [25:20]
+                      crc                                                     :  4, // [19:16]
+                      disregard_1b                                            :  5, // [15:11]
+                      spatial_reuse                                           :  8, // [10:3]
+                      validate_1a                                             :  1, // [2:2]
+                      eht_ppdu_sig_cmn_type                                   :  2; // [1:0]
+#endif
+};
+
+
+/* Description		PHY_VERSION
+
+			<enum 0 U_SIG_VERSION_EHT>
+			Values 1 - 7 are reserved.
+			<legal 0>
+*/
+
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_LSB                                           0
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_MSB                                           2
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_MASK                                          0x00000007
+
+
+/* Description		TRANSMIT_BW
+
+			Bandwidth of the PPDU, as indicated in the trigger frame
+			
+			
+			<enum 0 U_SIG_BW20> 20 MHz
+			<enum 1 U_SIG_BW40> 40 MHz
+			<enum 2 U_SIG_BW80> 80 MHz
+			<enum 3 U_SIG_BW160> 160 MHz
+			<enum 4 U_SIG_BW320> 320 MHz channelization scheme 1
+			<enum 5 U_SIG_BW320_2> 320 MHz channelization scheme 2
+			
+			On RX side, field used by MAC HW
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_LSB                                           3
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MSB                                           5
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MASK                                          0x00000038
+
+
+/* Description		DL_UL_FLAG
+
+			Differentiates between DL and UL transmission
+			
+			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
+			<enum 1 DL_UL_FLAG_IS_UL>
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_OFFSET                                         0x00000000
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_LSB                                            6
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MSB                                            6
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MASK                                           0x00000040
+
+
+/* Description		BSS_COLOR_ID
+
+			BSS color ID
+			
+			Field used by MAC HW
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_OFFSET                                       0x00000000
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_LSB                                          7
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MSB                                          12
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MASK                                         0x00001f80
+
+
+/* Description		TXOP_DURATION
+
+			Indicates the remaining time in the current TXOP
+			
+			Field used by MAC HW
+			 <legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_OFFSET                                      0x00000000
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_LSB                                         13
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_MSB                                         19
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_MASK                                        0x000fe000
+
+
+/* Description		DISREGARD_0A
+
+			Set to value indicated in the trigger frame
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_OFFSET                                       0x00000000
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_LSB                                          20
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_MSB                                          25
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_MASK                                         0x03f00000
+
+
+/* Description		RESERVED_0C
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_LSB                                           26
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_MSB                                           31
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_MASK                                          0xfc000000
+
+
+/* Description		EHT_PPDU_SIG_CMN_TYPE
+
+			<enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
+			<enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
+			 EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
+			
+			<enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
+			 content channels
+			<enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
+			 content channel
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_OFFSET                              0x00000004
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_LSB                                 0
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MSB                                 1
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MASK                                0x00000003
+
+
+/* Description		VALIDATE_1A
+
+			Set to value indicated in the trigger frame
+			<legal 1>
+*/
+
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_OFFSET                                        0x00000004
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_LSB                                           2
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_MSB                                           2
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_MASK                                          0x00000004
+
+
+/* Description		SPATIAL_REUSE
+
+			TODO: Placeholder
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_OFFSET                                      0x00000004
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_LSB                                         3
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MSB                                         10
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MASK                                        0x000007f8
+
+
+/* Description		DISREGARD_1B
+
+			Set to value indicated in the trigger frame
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_OFFSET                                       0x00000004
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_LSB                                          11
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_MSB                                          15
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_MASK                                         0x0000f800
+
+
+/* Description		CRC
+
+			CRC for U-SIG contents
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_CRC_OFFSET                                                0x00000004
+#define U_SIG_EHT_TB_INFO_CRC_LSB                                                   16
+#define U_SIG_EHT_TB_INFO_CRC_MSB                                                   19
+#define U_SIG_EHT_TB_INFO_CRC_MASK                                                  0x000f0000
+
+
+/* Description		TAIL
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_TB_INFO_TAIL_OFFSET                                               0x00000004
+#define U_SIG_EHT_TB_INFO_TAIL_LSB                                                  20
+#define U_SIG_EHT_TB_INFO_TAIL_MSB                                                  25
+#define U_SIG_EHT_TB_INFO_TAIL_MASK                                                 0x03f00000
+
+
+/* Description		RESERVED_1C
+
+			<legal 0>
+*/
+
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_OFFSET                                        0x00000004
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_LSB                                           26
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_MSB                                           30
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_MASK                                          0x7c000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the U-SIG CRC check 
+			has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000004
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+
+#endif   // U_SIG_EHT_TB_INFO
diff --git a/hw/qca5332/unallocated_ru_160_info.h b/hw/qca5332/unallocated_ru_160_info.h
new file mode 100644
index 0000000..af8639e
--- /dev/null
+++ b/hw/qca5332/unallocated_ru_160_info.h
@@ -0,0 +1,118 @@
+
+/* 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 _UNALLOCATED_RU_160_INFO_H_
+#define _UNALLOCATED_RU_160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNALLOCATED_RU_160_INFO 1
+
+
+struct unallocated_ru_160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t subband80_0_cc0                                         :  8, // [7:0]
+                      subband80_0_cc1                                         :  8, // [15:8]
+                      subband80_1_cc0                                         :  8, // [23:16]
+                      subband80_1_cc1                                         :  8; // [31:24]
+#else
+             uint32_t subband80_1_cc1                                         :  8, // [31:24]
+                      subband80_1_cc0                                         :  8, // [23:16]
+                      subband80_0_cc1                                         :  8, // [15:8]
+                      subband80_0_cc0                                         :  8; // [7:0]
+#endif
+};
+
+
+/* Description		SUBBAND80_0_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the lower 80 MHz
+			
+			Valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/ 
+			EHT_240/EHT_320
+			<legal all>
+*/
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_LSB                                 0
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_MSB                                 7
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_MASK                                0x000000ff
+
+
+/* Description		SUBBAND80_0_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the lower 80 MHz
+			
+			Valid for HE_40/HE_80/HE_160 (80+80)/ EHT_40/EHT_80/EHT_160/EHT_240/EHT_320
+			
+			<legal all>
+*/
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_LSB                                 8
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_MSB                                 15
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_MASK                                0x0000ff00
+
+
+/* Description		SUBBAND80_1_CC0
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_LSB                                 16
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_MSB                                 23
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_MASK                                0x00ff0000
+
+
+/* Description		SUBBAND80_1_CC1
+
+			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
+			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1) 
+			for the higher 80 MHz
+			
+			Valid for EHT_160/EHT_240/EHT_320
+			All 80 MHz subbands are identical for HE_160 (80+80).
+			<legal all>
+*/
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_LSB                                 24
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_MSB                                 31
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_MASK                                0xff000000
+
+
+
+#endif   // UNALLOCATED_RU_160_INFO
diff --git a/hw/qca5332/uniform_descriptor_header.h b/hw/qca5332/uniform_descriptor_header.h
new file mode 100644
index 0000000..ffe7562
--- /dev/null
+++ b/hw/qca5332/uniform_descriptor_header.h
@@ -0,0 +1,121 @@
+
+/* 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 _UNIFORM_DESCRIPTOR_HEADER_H_
+#define _UNIFORM_DESCRIPTOR_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_DESCRIPTOR_HEADER 1
+
+
+struct uniform_descriptor_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t owner                                                   :  4, // [3:0]
+                      buffer_type                                             :  4, // [7:4]
+                      reserved_0a                                             : 24; // [31:8]
+#else
+             uint32_t reserved_0a                                             : 24, // [31:8]
+                      buffer_type                                             :  4, // [7:4]
+                      owner                                                   :  4; // [3:0]
+#endif
+};
+
+
+/* Description		OWNER
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			The owner of this data structure:
+			<enum 0 WBM_owned> Buffer Manager currently owns this data
+			 structure.
+			<enum 1 SW_OR_FW_owned> Software of FW currently owns this
+			 data structure.
+			<enum 2 TQM_owned> Transmit Queue Manager currently owns
+			 this data structure.
+			<enum 3 RXDMA_owned> Receive DMA currently owns this data
+			 structure.
+			<enum 4 REO_owned> Reorder currently owns this data structure.
+			
+			<enum 5 SWITCH_owned> SWITCH currently owns this data structure.
+			
+			
+			<legal 0-5> 
+*/
+
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_OFFSET                                      0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_LSB                                         0
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_MSB                                         3
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_MASK                                        0x0000000f
+
+
+/* Description		BUFFER_TYPE
+
+			Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
+			Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO 
+			
+			Field describing what contents format is of this descriptor
+			
+			
+			<enum 0 Transmit_MSDU_Link_descriptor> 
+			<enum 1 Transmit_MPDU_Link_descriptor> 
+			<enum 2 Transmit_MPDU_Queue_head_descriptor>
+			<enum 3 Transmit_MPDU_Queue_ext_descriptor>
+			<enum 4 Transmit_flow_descriptor>
+			<enum 5 Transmit_buffer> NOT TO BE USED: 
+			
+			<enum 6 Receive_MSDU_Link_descriptor>
+			<enum 7 Receive_MPDU_Link_descriptor>
+			<enum 8 Receive_REO_queue_descriptor>
+			<enum 9 Receive_REO_queue_1k_descriptor>
+			<enum 10 Receive_REO_queue_ext_descriptor>
+			
+			<enum 11 Receive_buffer>
+			
+			<enum 12 Idle_link_list_entry>
+			
+			<legal 0-12> 
+*/
+
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                                0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                                   4
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                                   7
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                                  0x000000f0
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                                0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_LSB                                   8
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_MSB                                   31
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_MASK                                  0xffffff00
+
+
+
+#endif   // UNIFORM_DESCRIPTOR_HEADER
diff --git a/hw/qca5332/uniform_reo_cmd_header.h b/hw/qca5332/uniform_reo_cmd_header.h
new file mode 100644
index 0000000..7cdf192
--- /dev/null
+++ b/hw/qca5332/uniform_reo_cmd_header.h
@@ -0,0 +1,96 @@
+
+/* 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 _UNIFORM_REO_CMD_HEADER_H_
+#define _UNIFORM_REO_CMD_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER 1
+
+
+struct uniform_reo_cmd_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_cmd_number                                          : 16, // [15:0]
+                      reo_status_required                                     :  1, // [16:16]
+                      reserved_0a                                             : 15; // [31:17]
+#else
+             uint32_t reserved_0a                                             : 15, // [31:17]
+                      reo_status_required                                     :  1, // [16:16]
+                      reo_cmd_number                                          : 16; // [15:0]
+#endif
+};
+
+
+/* Description		REO_CMD_NUMBER
+
+			Consumer: REO/SW/DEBUG
+			Producer: SW 
+			
+			This number can be used by SW to track, identify and link
+			 the created commands with the command statusses
+			
+			
+			<legal all> 
+*/
+
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_OFFSET                                0x00000000
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_LSB                                   0
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_MSB                                   15
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_MASK                                  0x0000ffff
+
+
+/* Description		REO_STATUS_REQUIRED
+
+			Consumer: REO
+			Producer: SW 
+			
+			<enum 0 NoStatus> REO does not need to generate a status
+			 TLV for the execution of this command
+			<enum 1 StatusRequired> REO shall generate a status TLV 
+			for the execution of this command
+			
+			<legal all>
+*/
+
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                           0x00000000
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_LSB                              16
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_MSB                              16
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_MASK                             0x00010000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_OFFSET                                   0x00000000
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_LSB                                      17
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_MSB                                      31
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_MASK                                     0xfffe0000
+
+
+
+#endif   // UNIFORM_REO_CMD_HEADER
diff --git a/hw/qca5332/uniform_reo_status_header.h b/hw/qca5332/uniform_reo_status_header.h
new file mode 100644
index 0000000..fc53dde
--- /dev/null
+++ b/hw/qca5332/uniform_reo_status_header.h
@@ -0,0 +1,148 @@
+
+/* 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 _UNIFORM_REO_STATUS_HEADER_H_
+#define _UNIFORM_REO_STATUS_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_REO_STATUS_HEADER 2
+
+
+struct uniform_reo_status_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_status_number                                       : 16, // [15:0]
+                      cmd_execution_time                                      : 10, // [25:16]
+                      reo_cmd_execution_status                                :  2, // [27:26]
+                      reserved_0a                                             :  4; // [31:28]
+             uint32_t timestamp                                               : 32; // [31:0]
+#else
+             uint32_t reserved_0a                                             :  4, // [31:28]
+                      reo_cmd_execution_status                                :  2, // [27:26]
+                      cmd_execution_time                                      : 10, // [25:16]
+                      reo_status_number                                       : 16; // [15:0]
+             uint32_t timestamp                                               : 32; // [31:0]
+#endif
+};
+
+
+/* Description		REO_STATUS_NUMBER
+
+			Consumer: SW , DEBUG
+			Producer: REO
+			
+			The value in this field is equal to value of the 'REO_CMD_Number' 
+			field the REO command 
+			
+			This field helps to correlate the statuses with the REO 
+			commands.
+			
+			<legal all> 
+*/
+
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET                          0x00000000
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_LSB                             0
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_MSB                             15
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_MASK                            0x0000ffff
+
+
+/* Description		CMD_EXECUTION_TIME
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			The amount of time REO took to excecute the command. Note
+			 that this time does not include the duration of the command
+			 waiting in the command ring, before the execution started.
+			
+			
+			In us.
+			
+			<legal all>
+*/
+
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET                         0x00000000
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                            16
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                            25
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                           0x03ff0000
+
+
+/* Description		REO_CMD_EXECUTION_STATUS
+
+			Consumer: DEBUG
+			Producer: REO 
+			
+			Execution status of the command.
+			
+			<enum 0 reo_successful_execution> Command has successfully
+			 be executed
+			<enum 1 reo_blocked_execution> Command could not be executed
+			 as the queue or cache was blocked
+			<enum 2 reo_failed_execution> Command has encountered problems
+			 when executing, like the queue descriptor not being valid. 
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			<enum 3 reo_resource_blocked> Command is NOT  executed because
+			 one or more descriptors were blocked. This is SW programming
+			 mistake.
+			None of the status fields in the entire STATUS TLV are valid.
+			
+			
+			<legal  0-3>
+*/
+
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET                   0x00000000
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB                      26
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB                      27
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK                     0x0c000000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_OFFSET                                0x00000000
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_LSB                                   28
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_MSB                                   31
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_MASK                                  0xf0000000
+
+
+/* Description		TIMESTAMP
+
+			Timestamp at the moment that this status report is written.
+			
+			
+			<legal all>
+*/
+
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_OFFSET                                  0x00000004
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_LSB                                     0
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_MSB                                     31
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_MASK                                    0xffffffff
+
+
+
+#endif   // UNIFORM_REO_STATUS_HEADER
diff --git a/hw/qca5332/vht_sig_a_info.h b/hw/qca5332/vht_sig_a_info.h
new file mode 100644
index 0000000..ca680cd
--- /dev/null
+++ b/hw/qca5332/vht_sig_a_info.h
@@ -0,0 +1,395 @@
+
+/* 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 _VHT_SIG_A_INFO_H_
+#define _VHT_SIG_A_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_A_INFO 2
+
+
+struct vht_sig_a_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t bandwidth                                               :  2, // [1:0]
+                      vhta_reserved_0                                         :  1, // [2:2]
+                      stbc                                                    :  1, // [3:3]
+                      group_id                                                :  6, // [9:4]
+                      n_sts                                                   : 12, // [21:10]
+                      txop_ps_not_allowed                                     :  1, // [22:22]
+                      vhta_reserved_0b                                        :  1, // [23:23]
+                      reserved_0                                              :  8; // [31:24]
+             uint32_t gi_setting                                              :  2, // [1:0]
+                      su_mu_coding                                            :  1, // [2:2]
+                      ldpc_extra_symbol                                       :  1, // [3:3]
+                      mcs                                                     :  4, // [7:4]
+                      beamformed                                              :  1, // [8:8]
+                      vhta_reserved_1                                         :  1, // [9:9]
+                      crc                                                     :  8, // [17:10]
+                      tail                                                    :  6, // [23:18]
+                      reserved_1                                              :  7, // [30:24]
+                      rx_integrity_check_passed                               :  1; // [31:31]
+#else
+             uint32_t reserved_0                                              :  8, // [31:24]
+                      vhta_reserved_0b                                        :  1, // [23:23]
+                      txop_ps_not_allowed                                     :  1, // [22:22]
+                      n_sts                                                   : 12, // [21:10]
+                      group_id                                                :  6, // [9:4]
+                      stbc                                                    :  1, // [3:3]
+                      vhta_reserved_0                                         :  1, // [2:2]
+                      bandwidth                                               :  2; // [1:0]
+             uint32_t rx_integrity_check_passed                               :  1, // [31:31]
+                      reserved_1                                              :  7, // [30:24]
+                      tail                                                    :  6, // [23:18]
+                      crc                                                     :  8, // [17:10]
+                      vhta_reserved_1                                         :  1, // [9:9]
+                      beamformed                                              :  1, // [8:8]
+                      mcs                                                     :  4, // [7:4]
+                      ldpc_extra_symbol                                       :  1, // [3:3]
+                      su_mu_coding                                            :  1, // [2:2]
+                      gi_setting                                              :  2; // [1:0]
+#endif
+};
+
+
+/* Description		BANDWIDTH
+
+			Packet bandwidth
+			
+			<enum 0    20_MHZ_11AC>
+			<enum 1    40_MHZ_11AC>
+			<enum 2    80_MHZ_11AC>
+			<enum 3    160_MHZ_11AC>
+			
+			<legal 0-3>
+*/
+
+#define VHT_SIG_A_INFO_BANDWIDTH_OFFSET                                             0x00000000
+#define VHT_SIG_A_INFO_BANDWIDTH_LSB                                                0
+#define VHT_SIG_A_INFO_BANDWIDTH_MSB                                                1
+#define VHT_SIG_A_INFO_BANDWIDTH_MASK                                               0x00000003
+
+
+/* Description		VHTA_RESERVED_0
+
+			Reserved.  Set to 1 by MAC, PHY should ignore
+			<legal 1>
+*/
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_LSB                                          2
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_MSB                                          2
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_MASK                                         0x00000004
+
+
+/* Description		STBC
+
+			Space time block coding:
+			<enum 0     stbc_disabled>  Indicates STBC is disabled
+			<enum 1     stbc_enabled>  Indicates STBC is enabled on 
+			all streams
+			<legal 0-1>
+*/
+
+#define VHT_SIG_A_INFO_STBC_OFFSET                                                  0x00000000
+#define VHT_SIG_A_INFO_STBC_LSB                                                     3
+#define VHT_SIG_A_INFO_STBC_MSB                                                     3
+#define VHT_SIG_A_INFO_STBC_MASK                                                    0x00000008
+
+
+/* Description		GROUP_ID
+
+			In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 
+			to an AP or to a mesh STA, the Group ID field is set to 
+			0, otherwise it is set to 63.  In an NDP PPDU the Group 
+			ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
+			 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
+			 ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group 
+			ID).  <legal all>
+*/
+
+#define VHT_SIG_A_INFO_GROUP_ID_OFFSET                                              0x00000000
+#define VHT_SIG_A_INFO_GROUP_ID_LSB                                                 4
+#define VHT_SIG_A_INFO_GROUP_ID_MSB                                                 9
+#define VHT_SIG_A_INFO_GROUP_ID_MASK                                                0x000003f0
+
+
+/* Description		N_STS
+
+			For MU: 
+			3 bits/user with maximum of 4 users (user u uses
+			vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 
+			3) 
+			Set to 0 for 0 space time streams
+			Set to 1 for 1 space time stream
+			Set to 2 for 2 space time streams
+			Set to 3 for 3 space time streams
+			Set to 4 for 4 space time streams (not supported in Wifi
+			 3.0)
+			Values 5-7 are reserved
+			In this field, references to user "u" should be interpreted
+			 as MU user "u". As described in the previous chapter in
+			 this document (see chapter on User number), the MU user
+			 value for a given client is defined for each MU group that
+			 the client participates in. The MU user number is not related
+			 to the internal user number that is used within the BFer. 
+			
+			
+			
+			For SU:
+			vht_sig_a[0][12:10]
+			Set to 0 for 1 space time stream
+			Set to 1 for 2 space time streams
+			Set to 2 for 3 space time streams
+			Set to 3 for 4 space time streams 
+			Set to 4 for 5 space time streams 
+			Set to 5 for 6 space time streams
+			Set to 6 for 7 space time streams
+			Set to 7 for 8 space time streams
+			
+			vht_sig_a[0][21:13]
+			Partial AID: 
+			Set to the value of the TXVECTOR parameter PARTIAL_AID. 
+			Partial AID provides an abbreviated indication of the intended
+			 recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
+			 9.17a (Partial AID in VHT PPDUs)).
+			<legal all>
+*/
+
+#define VHT_SIG_A_INFO_N_STS_OFFSET                                                 0x00000000
+#define VHT_SIG_A_INFO_N_STS_LSB                                                    10
+#define VHT_SIG_A_INFO_N_STS_MSB                                                    21
+#define VHT_SIG_A_INFO_N_STS_MASK                                                   0x003ffc00
+
+
+/* Description		TXOP_PS_NOT_ALLOWED
+
+			E_num 0     txop_ps_allowed  Not supported: If set to by
+			 VHT AP if it allows non-AP VHT STAs in TXOP power save 
+			mode to enter Doze state during a TXOP
+			<enum 1     no_txop_ps_allowed> Otherwise
+			<legal 1>
+*/
+
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_OFFSET                                   0x00000000
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_LSB                                      22
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MSB                                      22
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MASK                                     0x00400000
+
+
+/* Description		VHTA_RESERVED_0B
+
+			Reserved: Should be set to 1 by the MAC and ignored by the
+			 PHY  <legal 1>
+*/
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_OFFSET                                      0x00000000
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_LSB                                         23
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MSB                                         23
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MASK                                        0x00800000
+
+
+/* Description		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 VHT_SIG_A_INFO_RESERVED_0_OFFSET                                            0x00000000
+#define VHT_SIG_A_INFO_RESERVED_0_LSB                                               24
+#define VHT_SIG_A_INFO_RESERVED_0_MSB                                               31
+#define VHT_SIG_A_INFO_RESERVED_0_MASK                                              0xff000000
+
+
+/* Description		GI_SETTING
+
+			<enum 0     normal_gi>  Indicates short guard interval is
+			 not used in the data field
+			<enum 1     short_gi>  Indicates short guard interval is
+			 used in the data field
+			<enum 3     short_gi_ambiguity>  Indicates short guard interval
+			 is used in the data field and NSYM mod 10 = 9
+			NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
+			 and PSDU_LENGTH calculation).
+			<legal 0,1,3>
+*/
+
+#define VHT_SIG_A_INFO_GI_SETTING_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_GI_SETTING_LSB                                               0
+#define VHT_SIG_A_INFO_GI_SETTING_MSB                                               1
+#define VHT_SIG_A_INFO_GI_SETTING_MASK                                              0x00000003
+
+
+/* Description		SU_MU_CODING
+
+			For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
+			 MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
+			 B2 indicates the coding used for user 0; set to 0 for BCC
+			 and 1 for LDPC. If the MU[0] NSTS field is 0, then this
+			 field is reserved and set to 1
+*/
+
+#define VHT_SIG_A_INFO_SU_MU_CODING_OFFSET                                          0x00000004
+#define VHT_SIG_A_INFO_SU_MU_CODING_LSB                                             2
+#define VHT_SIG_A_INFO_SU_MU_CODING_MSB                                             2
+#define VHT_SIG_A_INFO_SU_MU_CODING_MASK                                            0x00000004
+
+
+/* Description		LDPC_EXTRA_SYMBOL
+
+			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), 
+			or at least one LDPC user's PPDU encoding process (if an
+			 MU PPDU), results in an extra OFDM symbol (or symbols) 
+			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
+			 (Encoding process for MU PPDUs). Set to 0 otherwise.
+*/
+
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                     0x00000004
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_LSB                                        3
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MSB                                        3
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MASK                                       0x00000008
+
+
+/* Description		MCS
+
+			For SU:
+			Set to 0 for BPSK 1/2
+			Set to 1 for QPSK 1/2
+			Set to 2 for QPSK 3/4
+			Set to 3 for 16-QAM 1/2
+			Set to 4 for 16-QAM 3/4
+			Set to 5 for 64-QAM 2/3
+			Set to 6 for 64-QAM 3/4
+			Set to 7 for 64-QAM 5/6
+			Set to 8 for 256-QAM 3/4
+			Set to 9 for 256-QAM 5/6
+			For MU:
+			If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
+			 coding for user 1: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 
+			reserved and set to 1.
+			If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
+			 coding for user 2: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 
+			reserved and set to 1.
+			If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
+			 coding for user 3: set to 0 for BCC, 1 for LDPC.
+			If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 
+			reserved and set to 1.
+			vht_sig_a[1][7] is reserved and set to 1
+			<legal 0-15>
+*/
+
+#define VHT_SIG_A_INFO_MCS_OFFSET                                                   0x00000004
+#define VHT_SIG_A_INFO_MCS_LSB                                                      4
+#define VHT_SIG_A_INFO_MCS_MSB                                                      7
+#define VHT_SIG_A_INFO_MCS_MASK                                                     0x000000f0
+
+
+/* Description		BEAMFORMED
+
+			For SU:
+			Set to 1 if a Beamforming steering matrix is applied to 
+			the waveform in an SU transmission as described in IEEE802.11ac_D1.0
+			 Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
+			
+			For MU:
+			Reserved and set to 1
+			<legal 0-1>
+*/
+
+#define VHT_SIG_A_INFO_BEAMFORMED_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_BEAMFORMED_LSB                                               8
+#define VHT_SIG_A_INFO_BEAMFORMED_MSB                                               8
+#define VHT_SIG_A_INFO_BEAMFORMED_MASK                                              0x00000100
+
+
+/* Description		VHTA_RESERVED_1
+
+			Reserved and set to 1.  <legal 1>
+*/
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_LSB                                          9
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_MSB                                          9
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_MASK                                         0x00000200
+
+
+/* Description		CRC
+
+			CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
+			 (CRC calculation for HTSIG) with C7 in vht_sig_a[1][10], 
+			etc.  <legal all>
+*/
+
+#define VHT_SIG_A_INFO_CRC_OFFSET                                                   0x00000004
+#define VHT_SIG_A_INFO_CRC_LSB                                                      10
+#define VHT_SIG_A_INFO_CRC_MSB                                                      17
+#define VHT_SIG_A_INFO_CRC_MASK                                                     0x0003fc00
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder. 
+			 Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_A_INFO_TAIL_OFFSET                                                  0x00000004
+#define VHT_SIG_A_INFO_TAIL_LSB                                                     18
+#define VHT_SIG_A_INFO_TAIL_MSB                                                     23
+#define VHT_SIG_A_INFO_TAIL_MASK                                                    0x00fc0000
+
+
+/* Description		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 VHT_SIG_A_INFO_RESERVED_1_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_RESERVED_1_LSB                                               24
+#define VHT_SIG_A_INFO_RESERVED_1_MSB                                               30
+#define VHT_SIG_A_INFO_RESERVED_1_MASK                                              0x7f000000
+
+
+/* Description		RX_INTEGRITY_CHECK_PASSED
+
+			TX side: Set to 0
+			RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
+			 has passed, else set to 0
+			
+			<legal all>
+*/
+
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                             0x00000004
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                31
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                31
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                               0x80000000
+
+
+
+#endif   // VHT_SIG_A_INFO
diff --git a/hw/qca5332/vht_sig_b_mu160_info.h b/hw/qca5332/vht_sig_b_mu160_info.h
new file mode 100644
index 0000000..d119683
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_mu160_info.h
@@ -0,0 +1,499 @@
+
+/* 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 _VHT_SIG_B_MU160_INFO_H_
+#define _VHT_SIG_B_MU160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU160_INFO 8
+
+
+struct vht_sig_b_mu160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19, // [18:0]
+                      mcs                                                     :  4, // [22:19]
+                      tail                                                    :  6, // [28:23]
+                      reserved_0                                              :  3; // [31:29]
+             uint32_t length_copy_a                                           : 19, // [18:0]
+                      mcs_copy_a                                              :  4, // [22:19]
+                      tail_copy_a                                             :  6, // [28:23]
+                      reserved_1                                              :  3; // [31:29]
+             uint32_t length_copy_b                                           : 19, // [18:0]
+                      mcs_copy_b                                              :  4, // [22:19]
+                      tail_copy_b                                             :  6, // [28:23]
+                      reserved_2                                              :  3; // [31:29]
+             uint32_t length_copy_c                                           : 19, // [18:0]
+                      mcs_copy_c                                              :  4, // [22:19]
+                      tail_copy_c                                             :  6, // [28:23]
+                      reserved_3                                              :  3; // [31:29]
+             uint32_t length_copy_d                                           : 19, // [18:0]
+                      mcs_copy_d                                              :  4, // [22:19]
+                      tail_copy_d                                             :  6, // [28:23]
+                      reserved_4                                              :  3; // [31:29]
+             uint32_t length_copy_e                                           : 19, // [18:0]
+                      mcs_copy_e                                              :  4, // [22:19]
+                      tail_copy_e                                             :  6, // [28:23]
+                      reserved_5                                              :  3; // [31:29]
+             uint32_t length_copy_f                                           : 19, // [18:0]
+                      mcs_copy_f                                              :  4, // [22:19]
+                      tail_copy_f                                             :  6, // [28:23]
+                      mu_user_number                                          :  3; // [31:29]
+             uint32_t length_copy_g                                           : 19, // [18:0]
+                      mcs_copy_g                                              :  4, // [22:19]
+                      tail_copy_g                                             :  6, // [28:23]
+                      reserved_7                                              :  3; // [31:29]
+#else
+             uint32_t reserved_0                                              :  3, // [31:29]
+                      tail                                                    :  6, // [28:23]
+                      mcs                                                     :  4, // [22:19]
+                      length                                                  : 19; // [18:0]
+             uint32_t reserved_1                                              :  3, // [31:29]
+                      tail_copy_a                                             :  6, // [28:23]
+                      mcs_copy_a                                              :  4, // [22:19]
+                      length_copy_a                                           : 19; // [18:0]
+             uint32_t reserved_2                                              :  3, // [31:29]
+                      tail_copy_b                                             :  6, // [28:23]
+                      mcs_copy_b                                              :  4, // [22:19]
+                      length_copy_b                                           : 19; // [18:0]
+             uint32_t reserved_3                                              :  3, // [31:29]
+                      tail_copy_c                                             :  6, // [28:23]
+                      mcs_copy_c                                              :  4, // [22:19]
+                      length_copy_c                                           : 19; // [18:0]
+             uint32_t reserved_4                                              :  3, // [31:29]
+                      tail_copy_d                                             :  6, // [28:23]
+                      mcs_copy_d                                              :  4, // [22:19]
+                      length_copy_d                                           : 19; // [18:0]
+             uint32_t reserved_5                                              :  3, // [31:29]
+                      tail_copy_e                                             :  6, // [28:23]
+                      mcs_copy_e                                              :  4, // [22:19]
+                      length_copy_e                                           : 19; // [18:0]
+             uint32_t mu_user_number                                          :  3, // [31:29]
+                      tail_copy_f                                             :  6, // [28:23]
+                      mcs_copy_f                                              :  4, // [22:19]
+                      length_copy_f                                           : 19; // [18:0]
+             uint32_t reserved_7                                              :  3, // [31:29]
+                      tail_copy_g                                             :  6, // [28:23]
+                      mcs_copy_g                                              :  4, // [22:19]
+                      length_copy_g                                           : 19; // [18:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 <legal all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_OFFSET                                          0x00000000
+#define VHT_SIG_B_MU160_INFO_LENGTH_LSB                                             0
+#define VHT_SIG_B_MU160_INFO_LENGTH_MSB                                             18
+#define VHT_SIG_B_MU160_INFO_LENGTH_MASK                                            0x0007ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field  <legal 0-11>
+			
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU160_INFO_MCS_LSB                                                19
+#define VHT_SIG_B_MU160_INFO_MCS_MSB                                                22
+#define VHT_SIG_B_MU160_INFO_MCS_MASK                                               0x00780000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_OFFSET                                            0x00000000
+#define VHT_SIG_B_MU160_INFO_TAIL_LSB                                               23
+#define VHT_SIG_B_MU160_INFO_TAIL_MSB                                               28
+#define VHT_SIG_B_MU160_INFO_TAIL_MASK                                              0x1f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length". This field is not valid for RX packets
+			 <legal all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_A
+
+			Same as "mcs". This field is not valid for RX packets  <legal
+			 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail". This field is not valid for RX packets  <legal
+			 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_OFFSET                                     0x00000004
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_1
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_B
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_OFFSET                                     0x00000008
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_2
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_C
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_OFFSET                                     0x0000000c
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_3
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_D
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_D
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_OFFSET                                      0x00000010
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_D
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_OFFSET                                     0x00000010
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_4
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_OFFSET                                      0x00000010
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_E
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_E
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_OFFSET                                      0x00000014
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_E
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_OFFSET                                     0x00000014
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_5
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_OFFSET                                      0x00000014
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_MASK                                        0xe0000000
+
+
+/* Description		LENGTH_COPY_F
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_F
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_OFFSET                                      0x00000018
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_F
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_OFFSET                                     0x00000018
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_MASK                                       0x1f800000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.   <legal
+			 0-3>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_OFFSET                                  0x00000018
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_LSB                                     29
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_MSB                                     31
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_MASK                                    0xe0000000
+
+
+/* Description		LENGTH_COPY_G
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_MASK                                     0x0007ffff
+
+
+/* Description		MCS_COPY_G
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_OFFSET                                      0x0000001c
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_MASK                                        0x00780000
+
+
+/* Description		TAIL_COPY_G
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_OFFSET                                     0x0000001c
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_7
+
+			<legal 0>
+*/
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_OFFSET                                      0x0000001c
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_MASK                                        0xe0000000
+
+
+
+#endif   // VHT_SIG_B_MU160_INFO
diff --git a/hw/qca5332/vht_sig_b_mu20_info.h b/hw/qca5332/vht_sig_b_mu20_info.h
new file mode 100644
index 0000000..8f84595
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_mu20_info.h
@@ -0,0 +1,116 @@
+
+/* 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 _VHT_SIG_B_MU20_INFO_H_
+#define _VHT_SIG_B_MU20_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU20_INFO 1
+
+
+struct vht_sig_b_mu20_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 16, // [15:0]
+                      mcs                                                     :  4, // [19:16]
+                      tail                                                    :  6, // [25:20]
+                      mu_user_number                                          :  3, // [28:26]
+                      reserved_0                                              :  3; // [31:29]
+#else
+             uint32_t reserved_0                                              :  3, // [31:29]
+                      mu_user_number                                          :  3, // [28:26]
+                      tail                                                    :  6, // [25:20]
+                      mcs                                                     :  4, // [19:16]
+                      length                                                  : 16; // [15:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 
+			<legal all>
+*/
+
+#define VHT_SIG_B_MU20_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU20_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU20_INFO_LENGTH_MSB                                              15
+#define VHT_SIG_B_MU20_INFO_LENGTH_MASK                                             0x0000ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field 
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU20_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU20_INFO_MCS_LSB                                                 16
+#define VHT_SIG_B_MU20_INFO_MCS_MSB                                                 19
+#define VHT_SIG_B_MU20_INFO_MCS_MASK                                                0x000f0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			<legal all>
+*/
+
+#define VHT_SIG_B_MU20_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU20_INFO_TAIL_LSB                                                20
+#define VHT_SIG_B_MU20_INFO_TAIL_MSB                                                25
+#define VHT_SIG_B_MU20_INFO_TAIL_MASK                                               0x03f00000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.  
+			<legal 0-3>
+*/
+
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_OFFSET                                   0x00000000
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_LSB                                      26
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_MSB                                      28
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_MASK                                     0x1c000000
+
+
+/* Description		RESERVED_0
+
+			<legal 0>
+*/
+
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_MSB                                          31
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_MASK                                         0xe0000000
+
+
+
+#endif   // VHT_SIG_B_MU20_INFO
diff --git a/hw/qca5332/vht_sig_b_mu40_info.h b/hw/qca5332/vht_sig_b_mu40_info.h
new file mode 100644
index 0000000..4171642
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_mu40_info.h
@@ -0,0 +1,172 @@
+
+/* 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 _VHT_SIG_B_MU40_INFO_H_
+#define _VHT_SIG_B_MU40_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU40_INFO 2
+
+
+struct vht_sig_b_mu40_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 17, // [16:0]
+                      mcs                                                     :  4, // [20:17]
+                      tail                                                    :  6, // [26:21]
+                      reserved_0                                              :  2, // [28:27]
+                      mu_user_number                                          :  3; // [31:29]
+             uint32_t length_copy                                             : 17, // [16:0]
+                      mcs_copy                                                :  4, // [20:17]
+                      tail_copy                                               :  6, // [26:21]
+                      reserved_1                                              :  5; // [31:27]
+#else
+             uint32_t mu_user_number                                          :  3, // [31:29]
+                      reserved_0                                              :  2, // [28:27]
+                      tail                                                    :  6, // [26:21]
+                      mcs                                                     :  4, // [20:17]
+                      length                                                  : 17; // [16:0]
+             uint32_t reserved_1                                              :  5, // [31:27]
+                      tail_copy                                               :  6, // [26:21]
+                      mcs_copy                                                :  4, // [20:17]
+                      length_copy                                             : 17; // [16:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU40_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU40_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU40_INFO_LENGTH_MSB                                              16
+#define VHT_SIG_B_MU40_INFO_LENGTH_MASK                                             0x0001ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field 
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU40_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU40_INFO_MCS_LSB                                                 17
+#define VHT_SIG_B_MU40_INFO_MCS_MSB                                                 20
+#define VHT_SIG_B_MU40_INFO_MCS_MASK                                                0x001e0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  
+			<legal 0>
+*/
+
+#define VHT_SIG_B_MU40_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU40_INFO_TAIL_LSB                                                21
+#define VHT_SIG_B_MU40_INFO_TAIL_MSB                                                26
+#define VHT_SIG_B_MU40_INFO_TAIL_MASK                                               0x07e00000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_LSB                                          27
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_MSB                                          28
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_MASK                                         0x18000000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.   <legal
+			 0-3>
+*/
+
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_OFFSET                                   0x00000000
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_LSB                                      29
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MSB                                      31
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MASK                                     0xe0000000
+
+
+/* Description		LENGTH_COPY
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_LSB                                         0
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MSB                                         16
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MASK                                        0x0001ffff
+
+
+/* Description		MCS_COPY
+
+			Same as "mcs". This field is not valid for RX packets. <legal
+			 0-11>
+*/
+
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_OFFSET                                         0x00000004
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_LSB                                            17
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_MSB                                            20
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_MASK                                           0x001e0000
+
+
+/* Description		TAIL_COPY
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_OFFSET                                        0x00000004
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_LSB                                           21
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_MSB                                           26
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_MASK                                          0x07e00000
+
+
+/* Description		RESERVED_1
+
+			<legal 0>
+*/
+
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_LSB                                          27
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_MSB                                          31
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_MASK                                         0xf8000000
+
+
+
+#endif   // VHT_SIG_B_MU40_INFO
diff --git a/hw/qca5332/vht_sig_b_mu80_info.h b/hw/qca5332/vht_sig_b_mu80_info.h
new file mode 100644
index 0000000..46d7cd1
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_mu80_info.h
@@ -0,0 +1,271 @@
+
+/* 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 _VHT_SIG_B_MU80_INFO_H_
+#define _VHT_SIG_B_MU80_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU80_INFO 4
+
+
+struct vht_sig_b_mu80_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19, // [18:0]
+                      mcs                                                     :  4, // [22:19]
+                      tail                                                    :  6, // [28:23]
+                      reserved_0                                              :  3; // [31:29]
+             uint32_t length_copy_a                                           : 19, // [18:0]
+                      mcs_copy_a                                              :  4, // [22:19]
+                      tail_copy_a                                             :  6, // [28:23]
+                      reserved_1                                              :  3; // [31:29]
+             uint32_t length_copy_b                                           : 19, // [18:0]
+                      mcs_copy_b                                              :  4, // [22:19]
+                      tail_copy_b                                             :  6, // [28:23]
+                      mu_user_number                                          :  3; // [31:29]
+             uint32_t length_copy_c                                           : 19, // [18:0]
+                      mcs_copy_c                                              :  4, // [22:19]
+                      tail_copy_c                                             :  6, // [28:23]
+                      reserved_3                                              :  3; // [31:29]
+#else
+             uint32_t reserved_0                                              :  3, // [31:29]
+                      tail                                                    :  6, // [28:23]
+                      mcs                                                     :  4, // [22:19]
+                      length                                                  : 19; // [18:0]
+             uint32_t reserved_1                                              :  3, // [31:29]
+                      tail_copy_a                                             :  6, // [28:23]
+                      mcs_copy_a                                              :  4, // [22:19]
+                      length_copy_a                                           : 19; // [18:0]
+             uint32_t mu_user_number                                          :  3, // [31:29]
+                      tail_copy_b                                             :  6, // [28:23]
+                      mcs_copy_b                                              :  4, // [22:19]
+                      length_copy_b                                           : 19; // [18:0]
+             uint32_t reserved_3                                              :  3, // [31:29]
+                      tail_copy_c                                             :  6, // [28:23]
+                      mcs_copy_c                                              :  4, // [22:19]
+                      length_copy_c                                           : 19; // [18:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) 
+			 <legal all>
+*/
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU80_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU80_INFO_LENGTH_MSB                                              18
+#define VHT_SIG_B_MU80_INFO_LENGTH_MASK                                             0x0007ffff
+
+
+/* Description		MCS
+
+			Modulation as described in vht_sig_a mcs field  <legal 0-11>
+			
+*/
+
+#define VHT_SIG_B_MU80_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU80_INFO_MCS_LSB                                                 19
+#define VHT_SIG_B_MU80_INFO_MCS_MSB                                                 22
+#define VHT_SIG_B_MU80_INFO_MCS_MASK                                                0x00780000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU80_INFO_TAIL_LSB                                                23
+#define VHT_SIG_B_MU80_INFO_TAIL_MSB                                                28
+#define VHT_SIG_B_MU80_INFO_TAIL_MASK                                               0x1f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_MASK                                         0xe0000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length". This field is not valid for RX packets
+			 <legal all>
+*/
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_MASK                                      0x0007ffff
+
+
+/* Description		MCS_COPY_A
+
+			Same as "mcs". This field is not valid for RX packets  <legal
+			 0-11>
+*/
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_MASK                                         0x00780000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail". This field is not valid for RX packets  <legal
+			 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_MASK                                        0x1f800000
+
+
+/* Description		RESERVED_1
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_MASK                                         0xe0000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_MASK                                      0x0007ffff
+
+
+/* Description		MCS_COPY_B
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_OFFSET                                       0x00000008
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_MASK                                         0x00780000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_MASK                                        0x1f800000
+
+
+/* Description		MU_USER_NUMBER
+
+			Not part of VHT-SIG-B.
+			Mapping from user number (BFer hardware specific) to mu_user_number. 
+			The reader is directed to the previous chapter (User Number) 
+			for a definition of the terms user and mu_user.  <legal 
+			0-3>
+*/
+
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_OFFSET                                   0x00000008
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_LSB                                      29
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_MSB                                      31
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_MASK                                     0xe0000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length". This field is not valid for RX packets. <legal
+			 all>
+*/
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_MASK                                      0x0007ffff
+
+
+/* Description		MCS_COPY_C
+
+			Same as "mcs". This field is not valid for RX packets.  
+			
+			<legal 0-11>
+*/
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_OFFSET                                       0x0000000c
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_MASK                                         0x00780000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail". This field is not valid for RX packets. 
+			 <legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_MASK                                        0x1f800000
+
+
+/* Description		RESERVED_3
+
+			<legal 0>
+*/
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_OFFSET                                       0x0000000c
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_MASK                                         0xe0000000
+
+
+
+#endif   // VHT_SIG_B_MU80_INFO
diff --git a/hw/qca5332/vht_sig_b_su160_info.h b/hw/qca5332/vht_sig_b_su160_info.h
new file mode 100644
index 0000000..198b52e
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_su160_info.h
@@ -0,0 +1,584 @@
+
+/* 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 _VHT_SIG_B_SU160_INFO_H_
+#define _VHT_SIG_B_SU160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU160_INFO 8
+
+
+struct vht_sig_b_su160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 21, // [20:0]
+                      vhtb_reserved                                           :  2, // [22:21]
+                      tail                                                    :  6, // [28:23]
+                      reserved_0                                              :  2, // [30:29]
+                      rx_ndp                                                  :  1; // [31:31]
+             uint32_t length_copy_a                                           : 21, // [20:0]
+                      vhtb_reserved_copy_a                                    :  2, // [22:21]
+                      tail_copy_a                                             :  6, // [28:23]
+                      reserved_1                                              :  2, // [30:29]
+                      rx_ndp_copy_a                                           :  1; // [31:31]
+             uint32_t length_copy_b                                           : 21, // [20:0]
+                      vhtb_reserved_copy_b                                    :  2, // [22:21]
+                      tail_copy_b                                             :  6, // [28:23]
+                      reserved_2                                              :  2, // [30:29]
+                      rx_ndp_copy_b                                           :  1; // [31:31]
+             uint32_t length_copy_c                                           : 21, // [20:0]
+                      vhtb_reserved_copy_c                                    :  2, // [22:21]
+                      tail_copy_c                                             :  6, // [28:23]
+                      reserved_3                                              :  2, // [30:29]
+                      rx_ndp_copy_c                                           :  1; // [31:31]
+             uint32_t length_copy_d                                           : 21, // [20:0]
+                      vhtb_reserved_copy_d                                    :  2, // [22:21]
+                      tail_copy_d                                             :  6, // [28:23]
+                      reserved_4                                              :  2, // [30:29]
+                      rx_ndp_copy_d                                           :  1; // [31:31]
+             uint32_t length_copy_e                                           : 21, // [20:0]
+                      vhtb_reserved_copy_e                                    :  2, // [22:21]
+                      tail_copy_e                                             :  6, // [28:23]
+                      reserved_5                                              :  2, // [30:29]
+                      rx_ndp_copy_e                                           :  1; // [31:31]
+             uint32_t length_copy_f                                           : 21, // [20:0]
+                      vhtb_reserved_copy_f                                    :  2, // [22:21]
+                      tail_copy_f                                             :  6, // [28:23]
+                      reserved_6                                              :  2, // [30:29]
+                      rx_ndp_copy_f                                           :  1; // [31:31]
+             uint32_t length_copy_g                                           : 21, // [20:0]
+                      vhtb_reserved_copy_g                                    :  2, // [22:21]
+                      tail_copy_g                                             :  6, // [28:23]
+                      reserved_7                                              :  2, // [30:29]
+                      rx_ndp_copy_g                                           :  1; // [31:31]
+#else
+             uint32_t rx_ndp                                                  :  1, // [31:31]
+                      reserved_0                                              :  2, // [30:29]
+                      tail                                                    :  6, // [28:23]
+                      vhtb_reserved                                           :  2, // [22:21]
+                      length                                                  : 21; // [20:0]
+             uint32_t rx_ndp_copy_a                                           :  1, // [31:31]
+                      reserved_1                                              :  2, // [30:29]
+                      tail_copy_a                                             :  6, // [28:23]
+                      vhtb_reserved_copy_a                                    :  2, // [22:21]
+                      length_copy_a                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_b                                           :  1, // [31:31]
+                      reserved_2                                              :  2, // [30:29]
+                      tail_copy_b                                             :  6, // [28:23]
+                      vhtb_reserved_copy_b                                    :  2, // [22:21]
+                      length_copy_b                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_c                                           :  1, // [31:31]
+                      reserved_3                                              :  2, // [30:29]
+                      tail_copy_c                                             :  6, // [28:23]
+                      vhtb_reserved_copy_c                                    :  2, // [22:21]
+                      length_copy_c                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_d                                           :  1, // [31:31]
+                      reserved_4                                              :  2, // [30:29]
+                      tail_copy_d                                             :  6, // [28:23]
+                      vhtb_reserved_copy_d                                    :  2, // [22:21]
+                      length_copy_d                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_e                                           :  1, // [31:31]
+                      reserved_5                                              :  2, // [30:29]
+                      tail_copy_e                                             :  6, // [28:23]
+                      vhtb_reserved_copy_e                                    :  2, // [22:21]
+                      length_copy_e                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_f                                           :  1, // [31:31]
+                      reserved_6                                              :  2, // [30:29]
+                      tail_copy_f                                             :  6, // [28:23]
+                      vhtb_reserved_copy_f                                    :  2, // [22:21]
+                      length_copy_f                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_g                                           :  1, // [31:31]
+                      reserved_7                                              :  2, // [30:29]
+                      tail_copy_g                                             :  6, // [28:23]
+                      vhtb_reserved_copy_g                                    :  2, // [22:21]
+                      length_copy_g                                           : 21; // [20:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_OFFSET                                          0x00000000
+#define VHT_SIG_B_SU160_INFO_LENGTH_LSB                                             0
+#define VHT_SIG_B_SU160_INFO_LENGTH_MSB                                             20
+#define VHT_SIG_B_SU160_INFO_LENGTH_MASK                                            0x001fffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_OFFSET                                   0x00000000
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_LSB                                      21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MSB                                      22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MASK                                     0x00600000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_OFFSET                                            0x00000000
+#define VHT_SIG_B_SU160_INFO_TAIL_LSB                                               23
+#define VHT_SIG_B_SU160_INFO_TAIL_MSB                                               28
+#define VHT_SIG_B_SU160_INFO_TAIL_MASK                                              0x1f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_MASK                                        0x60000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_OFFSET                                          0x00000000
+#define VHT_SIG_B_SU160_INFO_RX_NDP_LSB                                             31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_MSB                                             31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_MASK                                            0x80000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_A
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_OFFSET                            0x00000004
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_OFFSET                                     0x00000004
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_1
+
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_A
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_B
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_OFFSET                            0x00000008
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_OFFSET                                     0x00000008
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_2
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_OFFSET                                      0x00000008
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_B
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_C
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_OFFSET                            0x0000000c
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_OFFSET                                     0x0000000c
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_3
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_OFFSET                                      0x0000000c
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_C
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_D
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_D
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_OFFSET                            0x00000010
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_D
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_OFFSET                                     0x00000010
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_4
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_OFFSET                                      0x00000010
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_D
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_E
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_E
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_OFFSET                            0x00000014
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_E
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_OFFSET                                     0x00000014
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_5
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_OFFSET                                      0x00000014
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_E
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_F
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_F
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_OFFSET                            0x00000018
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_F
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_OFFSET                                     0x00000018
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_6
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_OFFSET                                      0x00000018
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_F
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MASK                                     0x80000000
+
+
+/* Description		LENGTH_COPY_G
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MASK                                     0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_G
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_OFFSET                            0x0000001c
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MASK                              0x00600000
+
+
+/* Description		TAIL_COPY_G
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_OFFSET                                     0x0000001c
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MASK                                       0x1f800000
+
+
+/* Description		RESERVED_7
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_OFFSET                                      0x0000001c
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_MASK                                        0x60000000
+
+
+/* Description		RX_NDP_COPY_G
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MASK                                     0x80000000
+
+
+
+#endif   // VHT_SIG_B_SU160_INFO
diff --git a/hw/qca5332/vht_sig_b_su20_info.h b/hw/qca5332/vht_sig_b_su20_info.h
new file mode 100644
index 0000000..7b0bbb3
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_su20_info.h
@@ -0,0 +1,116 @@
+
+/* 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 _VHT_SIG_B_SU20_INFO_H_
+#define _VHT_SIG_B_SU20_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU20_INFO 1
+
+
+struct vht_sig_b_su20_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 17, // [16:0]
+                      vhtb_reserved                                           :  3, // [19:17]
+                      tail                                                    :  6, // [25:20]
+                      reserved                                                :  5, // [30:26]
+                      rx_ndp                                                  :  1; // [31:31]
+#else
+             uint32_t rx_ndp                                                  :  1, // [31:31]
+                      reserved                                                :  5, // [30:26]
+                      tail                                                    :  6, // [25:20]
+                      vhtb_reserved                                           :  3, // [19:17]
+                      length                                                  : 17; // [16:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define VHT_SIG_B_SU20_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU20_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU20_INFO_LENGTH_MSB                                              16
+#define VHT_SIG_B_SU20_INFO_LENGTH_MASK                                             0x0001ffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive
+			<legal 2,7>
+*/
+
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_LSB                                       17
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_MSB                                       19
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_MASK                                      0x000e0000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_SU20_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU20_INFO_TAIL_LSB                                                20
+#define VHT_SIG_B_SU20_INFO_TAIL_MSB                                                25
+#define VHT_SIG_B_SU20_INFO_TAIL_MASK                                               0x03f00000
+
+
+/* Description		RESERVED
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU20_INFO_RESERVED_OFFSET                                         0x00000000
+#define VHT_SIG_B_SU20_INFO_RESERVED_LSB                                            26
+#define VHT_SIG_B_SU20_INFO_RESERVED_MSB                                            30
+#define VHT_SIG_B_SU20_INFO_RESERVED_MASK                                           0x7c000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU20_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU20_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU20_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU20_INFO_RX_NDP_MASK                                             0x80000000
+
+
+
+#endif   // VHT_SIG_B_SU20_INFO
diff --git a/hw/qca5332/vht_sig_b_su40_info.h b/hw/qca5332/vht_sig_b_su40_info.h
new file mode 100644
index 0000000..4b9817d
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_su40_info.h
@@ -0,0 +1,182 @@
+
+/* 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 _VHT_SIG_B_SU40_INFO_H_
+#define _VHT_SIG_B_SU40_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU40_INFO 2
+
+
+struct vht_sig_b_su40_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19, // [18:0]
+                      vhtb_reserved                                           :  2, // [20:19]
+                      tail                                                    :  6, // [26:21]
+                      reserved                                                :  4, // [30:27]
+                      rx_ndp                                                  :  1; // [31:31]
+             uint32_t length_copy                                             : 19, // [18:0]
+                      vhtb_reserved_copy                                      :  2, // [20:19]
+                      tail_copy                                               :  6, // [26:21]
+                      reserved_copy                                           :  4, // [30:27]
+                      rx_ndp_copy                                             :  1; // [31:31]
+#else
+             uint32_t rx_ndp                                                  :  1, // [31:31]
+                      reserved                                                :  4, // [30:27]
+                      tail                                                    :  6, // [26:21]
+                      vhtb_reserved                                           :  2, // [20:19]
+                      length                                                  : 19; // [18:0]
+             uint32_t rx_ndp_copy                                             :  1, // [31:31]
+                      reserved_copy                                           :  4, // [30:27]
+                      tail_copy                                               :  6, // [26:21]
+                      vhtb_reserved_copy                                      :  2, // [20:19]
+                      length_copy                                             : 19; // [18:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define VHT_SIG_B_SU40_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU40_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU40_INFO_LENGTH_MSB                                              18
+#define VHT_SIG_B_SU40_INFO_LENGTH_MASK                                             0x0007ffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones and ignored on receive  <legal
+			 3>
+*/
+
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_LSB                                       19
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_MSB                                       20
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_MASK                                      0x00180000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_SU40_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU40_INFO_TAIL_LSB                                                21
+#define VHT_SIG_B_SU40_INFO_TAIL_MSB                                                26
+#define VHT_SIG_B_SU40_INFO_TAIL_MASK                                               0x07e00000
+
+
+/* Description		RESERVED
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU40_INFO_RESERVED_OFFSET                                         0x00000000
+#define VHT_SIG_B_SU40_INFO_RESERVED_LSB                                            27
+#define VHT_SIG_B_SU40_INFO_RESERVED_MSB                                            30
+#define VHT_SIG_B_SU40_INFO_RESERVED_MASK                                           0x78000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU40_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU40_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_MASK                                             0x80000000
+
+
+/* Description		LENGTH_COPY
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_LSB                                         0
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_MSB                                         18
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_MASK                                        0x0007ffff
+
+
+/* Description		VHTB_RESERVED_COPY
+
+			Same as "vhtb_reserved"  <legal 3>
+*/
+
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_OFFSET                               0x00000004
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_LSB                                  19
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_MSB                                  20
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_MASK                                 0x00180000
+
+
+/* Description		TAIL_COPY
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_OFFSET                                        0x00000004
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_LSB                                           21
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_MSB                                           26
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_MASK                                          0x07e00000
+
+
+/* Description		RESERVED_COPY
+
+			Same as "reserved"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_LSB                                       27
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_MSB                                       30
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_MASK                                      0x78000000
+
+
+/* Description		RX_NDP_COPY
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_LSB                                         31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_MSB                                         31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_MASK                                        0x80000000
+
+
+
+#endif   // VHT_SIG_B_SU40_INFO
diff --git a/hw/qca5332/vht_sig_b_su80_info.h b/hw/qca5332/vht_sig_b_su80_info.h
new file mode 100644
index 0000000..835035f
--- /dev/null
+++ b/hw/qca5332/vht_sig_b_su80_info.h
@@ -0,0 +1,316 @@
+
+/* 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 _VHT_SIG_B_SU80_INFO_H_
+#define _VHT_SIG_B_SU80_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU80_INFO 4
+
+
+struct vht_sig_b_su80_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 21, // [20:0]
+                      vhtb_reserved                                           :  2, // [22:21]
+                      tail                                                    :  6, // [28:23]
+                      reserved_0                                              :  2, // [30:29]
+                      rx_ndp                                                  :  1; // [31:31]
+             uint32_t length_copy_a                                           : 21, // [20:0]
+                      vhtb_reserved_copy_a                                    :  2, // [22:21]
+                      tail_copy_a                                             :  6, // [28:23]
+                      reserved_1                                              :  2, // [30:29]
+                      rx_ndp_copy_a                                           :  1; // [31:31]
+             uint32_t length_copy_b                                           : 21, // [20:0]
+                      vhtb_reserved_copy_b                                    :  2, // [22:21]
+                      tail_copy_b                                             :  6, // [28:23]
+                      reserved_2                                              :  2, // [30:29]
+                      rx_ndp_copy_b                                           :  1; // [31:31]
+             uint32_t length_copy_c                                           : 21, // [20:0]
+                      vhtb_reserved_copy_c                                    :  2, // [22:21]
+                      tail_copy_c                                             :  6, // [28:23]
+                      reserved_3                                              :  2, // [30:29]
+                      rx_ndp_copy_c                                           :  1; // [31:31]
+#else
+             uint32_t rx_ndp                                                  :  1, // [31:31]
+                      reserved_0                                              :  2, // [30:29]
+                      tail                                                    :  6, // [28:23]
+                      vhtb_reserved                                           :  2, // [22:21]
+                      length                                                  : 21; // [20:0]
+             uint32_t rx_ndp_copy_a                                           :  1, // [31:31]
+                      reserved_1                                              :  2, // [30:29]
+                      tail_copy_a                                             :  6, // [28:23]
+                      vhtb_reserved_copy_a                                    :  2, // [22:21]
+                      length_copy_a                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_b                                           :  1, // [31:31]
+                      reserved_2                                              :  2, // [30:29]
+                      tail_copy_b                                             :  6, // [28:23]
+                      vhtb_reserved_copy_b                                    :  2, // [22:21]
+                      length_copy_b                                           : 21; // [20:0]
+             uint32_t rx_ndp_copy_c                                           :  1, // [31:31]
+                      reserved_3                                              :  2, // [30:29]
+                      tail_copy_c                                             :  6, // [28:23]
+                      vhtb_reserved_copy_c                                    :  2, // [22:21]
+                      length_copy_c                                           : 21; // [20:0]
+#endif
+};
+
+
+/* Description		LENGTH
+
+			VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4)
+			
+			<legal all>
+*/
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU80_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU80_INFO_LENGTH_MSB                                              20
+#define VHT_SIG_B_SU80_INFO_LENGTH_MASK                                             0x001fffff
+
+
+/* Description		VHTB_RESERVED
+
+			Reserved:  Set  to all ones for non-NDP frames and ignored
+			 on receive  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_LSB                                       21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MSB                                       22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MASK                                      0x00600000
+
+
+/* Description		TAIL
+
+			Used to terminate the trellis of the convolutional decoder.
+			
+			Set to 0.  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU80_INFO_TAIL_LSB                                                23
+#define VHT_SIG_B_SU80_INFO_TAIL_MSB                                                28
+#define VHT_SIG_B_SU80_INFO_TAIL_MASK                                               0x1f800000
+
+
+/* Description		RESERVED_0
+
+			Not part of VHT-SIG-B.
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_MASK                                         0x60000000
+
+
+/* Description		RX_NDP
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU80_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_MASK                                             0x80000000
+
+
+/* Description		LENGTH_COPY_A
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MASK                                      0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_A
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_OFFSET                             0x00000004
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MASK                               0x00600000
+
+
+/* Description		TAIL_COPY_A
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MASK                                        0x1f800000
+
+
+/* Description		RESERVED_1
+
+			Reserved: Set to 0 and ignored on receive  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_MASK                                         0x60000000
+
+
+/* Description		RX_NDP_COPY_A
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MASK                                      0x80000000
+
+
+/* Description		LENGTH_COPY_B
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MASK                                      0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_B
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_OFFSET                             0x00000008
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MASK                               0x00600000
+
+
+/* Description		TAIL_COPY_B
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MASK                                        0x1f800000
+
+
+/* Description		RESERVED_2
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_OFFSET                                       0x00000008
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_MASK                                         0x60000000
+
+
+/* Description		RX_NDP_COPY_B
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MASK                                      0x80000000
+
+
+/* Description		LENGTH_COPY_C
+
+			Same as "length" <legal all>
+*/
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MASK                                      0x001fffff
+
+
+/* Description		VHTB_RESERVED_COPY_C
+
+			Same as "vhtb_reserved"  <legal 1,3>
+*/
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_OFFSET                             0x0000000c
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MASK                               0x00600000
+
+
+/* Description		TAIL_COPY_C
+
+			Same as "tail"  <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MASK                                        0x1f800000
+
+
+/* Description		RESERVED_3
+
+			Reserved: Set to 0 and ignored on receive <legal 0>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_OFFSET                                       0x0000000c
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_MASK                                         0x60000000
+
+
+/* Description		RX_NDP_COPY_C
+
+			Not part of VHT-SIG-B.
+			Used to identify received NDP frame
+			<legal 0,1>
+*/
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MASK                                      0x80000000
+
+
+
+#endif   // VHT_SIG_B_SU80_INFO
diff --git a/hw/qca5332/wbm2sw_completion_ring_rx.h b/hw/qca5332/wbm2sw_completion_ring_rx.h
new file mode 100644
index 0000000..cecd7e8
--- /dev/null
+++ b/hw/qca5332/wbm2sw_completion_ring_rx.h
@@ -0,0 +1,1023 @@
+
+/* 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 _WBM2SW_COMPLETION_RING_RX_H_
+#define _WBM2SW_COMPLETION_RING_RX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#define NUM_OF_DWORDS_WBM2SW_COMPLETION_RING_RX 8
+
+
+struct wbm2sw_completion_ring_rx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t release_source_module                                   :  3, // [2:0]
+                      bm_action                                               :  3, // [5:3]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      return_buffer_manager                                   :  4, // [12:9]
+                      reserved_2a                                             :  2, // [14:13]
+                      cache_id                                                :  1, // [15:15]
+                      cookie_conversion_status                                :  1, // [16:16]
+                      rxdma_push_reason                                       :  2, // [18:17]
+                      rxdma_error_code                                        :  5, // [23:19]
+                      reo_push_reason                                         :  2, // [25:24]
+                      reo_error_code                                          :  5, // [30:26]
+                      wbm_internal_error                                      :  1; // [31:31]
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_phys_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_phys_addr_39_32                                  :  8, // [7:0]
+                      sw_buffer_cookie                                        : 20, // [27:8]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t wbm_internal_error                                      :  1, // [31:31]
+                      reo_error_code                                          :  5, // [30:26]
+                      reo_push_reason                                         :  2, // [25:24]
+                      rxdma_error_code                                        :  5, // [23:19]
+                      rxdma_push_reason                                       :  2, // [18:17]
+                      cookie_conversion_status                                :  1, // [16:16]
+                      cache_id                                                :  1, // [15:15]
+                      reserved_2a                                             :  2, // [14:13]
+                      return_buffer_manager                                   :  4, // [12:9]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      bm_action                                               :  3, // [5:3]
+                      release_source_module                                   :  3; // [2:0]
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_phys_addr_31_0                                   : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      sw_buffer_cookie                                        : 20, // [27:8]
+                      buffer_phys_addr_39_32                                  :  8; // [7:0]
+#endif
+};
+
+
+/* Description		BUFFER_VIRT_ADDR_31_0
+
+			Lower 32 bits of the 64-bit virtual address corresponding
+			 to the MSDU being released
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_OFFSET                      0x00000000
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_MASK                        0xffffffff
+
+
+/* Description		BUFFER_VIRT_ADDR_63_32
+
+			Upper 32 bits of the 64-bit virtual address corresponding
+			 to the MSDU being released
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_OFFSET                     0x00000004
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_MSB                        31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_MASK                       0xffffffff
+
+
+/* Description		RELEASE_SOURCE_MODULE
+
+			Indicates which module initiated the release of this buffer
+			 or descriptor
+			
+			<enum 1 release_source_RXDMA> RXDMA released this buffer
+			 or descriptor
+			<enum 2 release_source_REO> REO released this buffer or 
+			descriptor
+			<enum 5 release_source_FW_RX> FW released this buffer or
+			 descriptor
+			<enum 4 release_source_SW_RX> SW released this buffer or
+			 descriptor
+			<enum 0 release_source_TQM> DO NOT USE
+			<enum 3 release_source_FW_TX> DO NOT USE
+			<enum 6 release_source_SW_TX> DO NOT USE
+			<legal 0-6>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_MSB                         2
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_MASK                        0x00000007
+
+
+/* Description		BM_ACTION
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when the field return_buffer_manager in
+			 the Released_buff_or_desc_addr_info indicates:
+			WBM_IDLE_BUF_LIST or
+			WBM_IDLE_DESC_LIST
+			
+			An MSDU extension descriptor shall never be marked as WBM
+			 being the 'owner', and thus WBM will forward it to FW/SW
+			
+			
+			<enum 0 Put_in_idle_list> Put the buffer or descriptor back
+			 in the idle list. In case of MSDU or MDPU link descriptor, 
+			BM does not need to check to release any individual MSDU
+			 buffers
+			
+			<enum 1 release_msdu_list > This BM action can only be used
+			 in combination with buffer_or_desc_type being msdu_link_descriptor. 
+			Field first_msdu_index points out which MSDU pointer in 
+			the MSDU link descriptor is the first of an MPDU that is
+			 released.
+			BM shall release all the MSDU buffers linked to this first
+			 MSDU buffer pointer. All related MSDU buffer pointer entries
+			 shall be set to value 0, which represents the 'NULL" pointer. 
+			When all MSDU buffer pointers in the MSDU link descriptor
+			 are 'NULL', the MSDU link descriptor itself shall also 
+			be released.
+			
+			<enum 2 Put_in_idle_list_expanded> CURRENTLY NOT IMPLEMENTED....
+			
+			Put the buffer or descriptor back in the idle list. Only
+			 valid in combination with buffer_or_desc_type indicating
+			 MDPU_link_descriptor.
+			BM shall release the MPDU link descriptor as well as all
+			 MSDUs that are linked to the MPDUs in this descriptor. 
+			
+			
+			TODO: Any restrictions?
+			<legal 0-2>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_OFFSET                                  0x00000008
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_LSB                                     3
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_MSB                                     5
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_MASK                                    0x00000038
+
+
+/* Description		BUFFER_OR_DESC_TYPE
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when WBM is marked as the return_buffer_manager
+			 in the Released_Buffer_address_info
+			
+			Indicates that type of buffer or descriptor is being released
+			
+			
+			<enum 0 MSDU_rel_buffer> The address points to an MSDU buffer
+			 
+			<enum 1 msdu_link_descriptor> The address points to an TX
+			 MSDU link descriptor
+			<enum 2 mpdu_link_descriptor> The address points to an MPDU
+			 link descriptor
+			<enum 3 msdu_ext_descriptor > The address points to an MSDU
+			 extension descriptor.
+			In case BM finds this one in a release ring, it passes it
+			 on to FW...
+			<enum 4 queue_ext_descriptor> The address points to an TQM
+			 queue extension descriptor. WBM should treat this is the
+			 same way as a link descriptor. That is, put the 128 byte
+			 buffer back in the link buffer idle list.
+			
+			TODO: Any restrictions?
+			<legal 0-4>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_OFFSET                        0x00000008
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_LSB                           6
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_MSB                           8
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_MASK                          0x000001c0
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			'Return_buffer_manager' field of the MSDU's buffer address
+			 info, for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_LSB                         9
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_MSB                         12
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_MASK                        0x00001e00
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_OFFSET                                0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_LSB                                   13
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_MSB                                   14
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_MASK                                  0x00006000
+
+
+/* Description		CACHE_ID
+
+			Indicates the WBM cache the MSDU was released from
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_OFFSET                                   0x00000008
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_LSB                                      15
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_MSB                                      15
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_MASK                                     0x00008000
+
+
+/* Description		COOKIE_CONVERSION_STATUS
+
+			0: 'Sw_buffer_cookie' not converted to 'Buffer_virt_addr'
+			
+			1: 'Sw_buffer_cookie' coverted to 'Buffer_virt_addr'
+			<legal 1>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_OFFSET                   0x00000008
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_LSB                      16
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_MSB                      16
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_MASK                     0x00010000
+
+
+/* Description		RXDMA_PUSH_REASON
+
+			Field only valid when Release_source_module is set to release_source_RXDMA
+			
+			
+			Indicates why rxdma pushed the frame to this ring
+			
+			<enum 0 rxdma_error_detected> RXDMA detected an error an
+			 pushed this frame to this queue
+			<enum 1 rxdma_routing_instruction> RXDMA pushed the frame
+			 to this queue per received routing instructions. No error
+			 within RXDMA was detected
+			<enum 2 rxdma_rx_flush> RXDMA received an RX_FLUSH. As a
+			 result the MSDU link descriptor might not have the "last_msdu_in_mpdu_flag" 
+			set, but instead WBM might just see a NULL pointer in the
+			 MSDU link descriptor. This is to be considered a normal
+			 condition for this scenario.
+			
+			<legal 0 - 2>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_OFFSET                          0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_LSB                             17
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_MSB                             18
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_MASK                            0x00060000
+
+
+/* Description		RXDMA_ERROR_CODE
+
+			Field only valid when 'rxdma_push_reason' set to 'rxdma_error_detected'.
+			
+			
+			<enum 0 rxdma_overflow_err>MPDU frame is not complete due
+			 to a FIFO overflow error in RXPCU.
+			<enum 1 rxdma_mpdu_length_err>MPDU frame is not complete
+			 due to receiving incomplete MPDU from the PHY
+			<enum 2 rxdma_fcs_err>FCS check on the MPDU frame failed
+			
+			<enum 3 rxdma_decrypt_err>CRYPTO reported a decryption error
+			 or CRYPTO received an encrypted frame, but did not get 
+			a valid corresponding key id in the peer entry.
+			<enum 4 rxdma_tkip_mic_err>CRYPTO reported a TKIP MIC error
+			
+			<enum 5 rxdma_unecrypted_err>CRYPTO reported an unencrypted
+			 frame error when encrypted was expected
+			<enum 6 rxdma_msdu_len_err>RX OLE reported an MSDU length
+			 error
+			<enum 7 rxdma_msdu_limit_err>RX OLE reported that max number
+			 of MSDUs allowed in an MPDU got exceeded
+			<enum 8 rxdma_wifi_parse_err>RX OLE reported a parsing error
+			
+			<enum 9 rxdma_amsdu_parse_err>RX OLE reported an A-MSDU 
+			parsing error
+			<enum 10 rxdma_sa_timeout_err>RX OLE reported a timeout 
+			during SA search
+			<enum 11 rxdma_da_timeout_err>RX OLE reported a timeout 
+			during DA search
+			<enum 12 rxdma_flow_timeout_err>RX OLE reported a timeout
+			 during flow search
+			<enum 13 rxdma_flush_request>RXDMA received a flush request
+			
+			<enum 14 rxdma_amsdu_fragment_err>Rx PCU reported A-MSDU
+			 present as well as a fragmented MPDU. A-MSDU defragmentation
+			 is not supported in Lithium SW so this is treated as an
+			 error.
+			<enum 15 rxdma_multicast_echo_err>RX OLE reported a multicast
+			 echo
+			<enum 16 rxdma_amsdu_addr_mismatch_err>RX OLE reported an
+			 A-MSDU with either 'from DS = 0' with an SA mismatching
+			 TA or 'to DS = 0' with a DA mismatching RA.
+			<enum 17 rxdma_unauthorized_wds_err>RX PCU reported that
+			 Rx peer entry did not indicate 'authorized_to_send_WDS' 
+			and also indicated 'from DS = to DS = 1.'
+			<enum 18 rxdma_groupcast_amsdu_or_wds_err>RX PCU reported
+			 a broadcast or multicast RA as well as either A-MSDU present
+			 or 'from DS = to DS = 1.'
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_OFFSET                           0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_LSB                              19
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_MSB                              23
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_MASK                             0x00f80000
+
+
+/* Description		REO_PUSH_REASON
+
+			Field only valid when Release_source_module is set to release_source_REO
+			
+			
+			Indicates why REO pushed the frame to this release ring
+			
+			<enum 0 reo_error_detected> Reo detected an error an pushed
+			 this frame to this queue
+			<enum 1 reo_routing_instruction> Reo pushed the frame to
+			 this queue per received routing instructions. No error 
+			within REO was detected
+			
+			<legal 0 - 1>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_OFFSET                            0x00000008
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_LSB                               24
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_MSB                               25
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_MASK                              0x03000000
+
+
+/* Description		REO_ERROR_CODE
+
+			Field only valid when 'Reo_push_reason' set to 'reo_error_detected'.
+			
+			
+			<enum 0 reo_queue_desc_addr_zero> Reo queue descriptor provided
+			 in the REO_ENTRANCE ring is set to 0
+			<enum 1 reo_queue_desc_not_valid> Reo queue descriptor valid
+			 bit is NOT set
+			<enum 2 ampdu_in_non_ba> AMPDU frame received without BA
+			 session having been setup.
+			<enum 3 non_ba_duplicate> Non-BA session, SN equal to SSN, 
+			Retry bit set: duplicate frame
+			<enum 4 ba_duplicate> BA session, duplicate frame
+			<enum 5 regular_frame_2k_jump> A normal (management/data
+			 frame) received with 2K jump in SN
+			<enum 6 bar_frame_2k_jump> A bar received with 2K jump in
+			 SSN
+			<enum 7 regular_frame_OOR> A normal (management/data frame) 
+			received with SN falling within the OOR window
+			<enum 8 bar_frame_OOR> A bar received with SSN falling within
+			 the OOR window
+			<enum 9 bar_frame_no_ba_session> A bar received without 
+			a BA session
+			<enum 10 bar_frame_sn_equals_ssn> A bar received with SSN
+			 equal to SN
+			<enum 11 pn_check_failed> PN Check Failed packet.
+			<enum 12 2k_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'Seq_2k_error_detected_flag' been set
+			 in the REO Queue descriptor
+			<enum 13 pn_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'pn_error_detected_flag' been set in 
+			the REO Queue descriptor
+			<enum 14 queue_descriptor_blocked_set> Frame is forwarded
+			 as a result of the queue descriptor(address) being blocked
+			 as SW/FW seems to be currently in the process of making
+			 updates to this descriptor...
+			
+			<legal 0-14>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_OFFSET                             0x00000008
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_LSB                                26
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_MSB                                30
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_MASK                               0x7c000000
+
+
+/* Description		WBM_INTERNAL_ERROR
+
+			Can only be set by WBM.
+			
+			Is set when WBM got a buffer pointer but the action was 
+			to push it to the idle link descriptor ring or do link related
+			 activity
+			OR
+			Is set when WBM got a link buffer pointer but the action
+			 was to push it to the buffer  descriptor ring 
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_LSB                            31
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_MSB                            31
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_MASK                           0x80000000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU whose link descriptors
+			 are being released from Rx DMA or REO
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET       0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB          0
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB          7
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK         0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET    0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB       8
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB       8
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK      0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET   0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB      9
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB      9
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK     0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET       0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB          10
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB          10
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK         0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET        0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB           11
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB           11
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK          0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET         0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB            13
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB            13
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK           0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB  14
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB  14
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET         0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB            15
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB            26
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK           0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET              0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                 28
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                 31
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET   0x00000010
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB      0
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB      31
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK     0xffffffff
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: TQM/SW
+			Producer: SW/SCH(from TXPCU, PDG) /WBM (from RXDMA)
+			
+			In case of RXDMA or REO releasing Rx MSDU link descriptors,' 
+			WBM fills this field with Rx_msdu_desc_info_details when
+			 releasing the MSDUs to SW (Maple/Spruce FR59859).
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB 0
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB 0
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK 0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB 1
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB 1
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK 0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB   2
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB   2
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK  0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB         3
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB         16
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK        0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET        0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB           17
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB           17
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK          0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB         18
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB         18
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK        0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB         19
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB         19
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK        0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET       0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB          20
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB          20
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK         0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB 21
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB 21
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK 0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB 22
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB 22
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK 0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET   0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB      23
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB      23
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK     0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB               24
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB               24
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK              0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB               25
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB               25
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK              0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET        0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB           26
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB           26
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK          0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB        27
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB        28
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK       0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB        29
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB        30
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK       0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB   31
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB   31
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK  0x80000000
+
+
+/* Description		BUFFER_PHYS_ADDR_31_0
+
+			LSB 32 bits of the physical address from the MSDU's buffer
+			 address info, for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_OFFSET                      0x00000018
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_MASK                        0xffffffff
+
+
+/* Description		BUFFER_PHYS_ADDR_39_32
+
+			MSB 8 bits of the physical address from the MSDU's buffer
+			 address info, for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_OFFSET                     0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_MSB                        7
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_MASK                       0x000000ff
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			'Sw_buffer_cookie' field of the MSDU's buffer address info
+			 used to fill 'Buffer_virt_addr_*,' for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_OFFSET                           0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_LSB                              8
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_MSB                              27
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_MASK                             0x0fffff00
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			If WBM_internal_error is set, this descriptor is sent to
+			 the dedicated 'WBM_ERROR_RELEASE' ring and Looping_count
+			 is used to indicate an error code.
+			
+			The values reported are documented further in the WBM MLD
+			 doc.
+			
+			If WBM_internal_error is not set, the following holds.
+			
+			A count value that indicates the number of times the producer
+			 of entries into the Buffer Manager Ring has looped around
+			 the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_OFFSET                              0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_LSB                                 28
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_MSB                                 31
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_MASK                                0xf0000000
+
+
+
+#endif   // WBM2SW_COMPLETION_RING_RX
diff --git a/hw/qca5332/wbm2sw_completion_ring_tx.h b/hw/qca5332/wbm2sw_completion_ring_tx.h
new file mode 100644
index 0000000..00ff460
--- /dev/null
+++ b/hw/qca5332/wbm2sw_completion_ring_tx.h
@@ -0,0 +1,839 @@
+
+/* 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 _WBM2SW_COMPLETION_RING_TX_H_
+#define _WBM2SW_COMPLETION_RING_TX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "tx_rate_stats_info.h"
+#define NUM_OF_DWORDS_WBM2SW_COMPLETION_RING_TX 8
+
+
+struct wbm2sw_completion_ring_tx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t release_source_module                                   :  3, // [2:0]
+                      cache_id                                                :  1, // [3:3]
+                      reserved_2a                                             :  2, // [5:4]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      return_buffer_manager                                   :  4, // [12:9]
+                      tqm_release_reason                                      :  4, // [16:13]
+                      rbm_override_valid                                      :  1, // [17:17]
+                      sw_buffer_cookie_11_0                                   : 12, // [29:18]
+                      cookie_conversion_status                                :  1, // [30:30]
+                      wbm_internal_error                                      :  1; // [31:31]
+             uint32_t tqm_status_number                                       : 24, // [23:0]
+                      transmit_count                                          :  7, // [30:24]
+                      sw_release_details_valid                                :  1; // [31:31]
+             uint32_t ack_frame_rssi                                          :  8, // [7:0]
+                      first_msdu                                              :  1, // [8:8]
+                      last_msdu                                               :  1, // [9:9]
+                      fw_tx_notify_frame                                      :  3, // [12:10]
+                      buffer_timestamp                                        : 19; // [31:13]
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      tid                                                     :  4, // [19:16]
+                      sw_buffer_cookie_19_12                                  :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             uint32_t buffer_virt_addr_31_0                                   : 32; // [31:0]
+             uint32_t buffer_virt_addr_63_32                                  : 32; // [31:0]
+             uint32_t wbm_internal_error                                      :  1, // [31:31]
+                      cookie_conversion_status                                :  1, // [30:30]
+                      sw_buffer_cookie_11_0                                   : 12, // [29:18]
+                      rbm_override_valid                                      :  1, // [17:17]
+                      tqm_release_reason                                      :  4, // [16:13]
+                      return_buffer_manager                                   :  4, // [12:9]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      reserved_2a                                             :  2, // [5:4]
+                      cache_id                                                :  1, // [3:3]
+                      release_source_module                                   :  3; // [2:0]
+             uint32_t sw_release_details_valid                                :  1, // [31:31]
+                      transmit_count                                          :  7, // [30:24]
+                      tqm_status_number                                       : 24; // [23:0]
+             uint32_t buffer_timestamp                                        : 19, // [31:13]
+                      fw_tx_notify_frame                                      :  3, // [12:10]
+                      last_msdu                                               :  1, // [9:9]
+                      first_msdu                                              :  1, // [8:8]
+                      ack_frame_rssi                                          :  8; // [7:0]
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t looping_count                                           :  4, // [31:28]
+                      sw_buffer_cookie_19_12                                  :  8, // [27:20]
+                      tid                                                     :  4, // [19:16]
+                      sw_peer_id                                              : 16; // [15:0]
+#endif
+};
+
+
+/* Description		BUFFER_VIRT_ADDR_31_0
+
+			Lower 32 bits of the 64-bit virtual address corresponding
+			 to the MSDU being released
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_OFFSET                      0x00000000
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_MASK                        0xffffffff
+
+
+/* Description		BUFFER_VIRT_ADDR_63_32
+
+			Upper 32 bits of the 64-bit virtual address corresponding
+			 to the MSDU being released
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_OFFSET                     0x00000004
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_MSB                        31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_MASK                       0xffffffff
+
+
+/* Description		RELEASE_SOURCE_MODULE
+
+			Indicates which module initiated the release of this buffer
+			 or descriptor
+			
+			<enum 1 release_source_RXDMA> DO NOT USE
+			<enum 2 release_source_REO> DO NOT USE
+			<enum 5 release_source_FW_RX> DO NOT USE
+			<enum 4 release_source_SW_RX> DO NOT USE
+			<enum 0 release_source_TQM> TQM released this buffer or 
+			descriptor
+			<enum 3 release_source_FW_TX> FW released this buffer or
+			 descriptor
+			<enum 6 release_source_SW_TX> SW released this buffer or
+			 descriptor
+			<legal 0-6>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_LSB                         0
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_MSB                         2
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_MASK                        0x00000007
+
+
+/* Description		CACHE_ID
+
+			To improve WBM performance, out-of-order completions may
+			 be allowed to process multiple MPDUs in parallel.
+			
+			The MSDUs released from each cache would be in order so 'First_msdu' 
+			and this field together can be used by SW to reorder the
+			 completions back to the original order by keeping all MSDUs
+			 of an MPDU from one cache together before switching to 
+			the next MPDU (from either cache).
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_OFFSET                                   0x00000008
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_LSB                                      3
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_MSB                                      3
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_MASK                                     0x00000008
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_OFFSET                                0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_LSB                                   4
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_MSB                                   5
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_MASK                                  0x00000030
+
+
+/* Description		BUFFER_OR_DESC_TYPE
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when WBM is marked as the return_buffer_manager
+			 in the Released_Buffer_address_info
+			
+			Indicates that type of buffer or descriptor is being released
+			
+			
+			<enum 0 MSDU_rel_buffer> The address points to an MSDU buffer
+			 
+			<enum 1 msdu_link_descriptor> The address points to an TX
+			 MSDU link descriptor
+			<enum 2 mpdu_link_descriptor> The address points to an MPDU
+			 link descriptor
+			<enum 3 msdu_ext_descriptor > The address points to an MSDU
+			 extension descriptor.
+			In case BM finds this one in a release ring, it passes it
+			 on to FW...
+			<enum 4 queue_ext_descriptor> The address points to an TQM
+			 queue extension descriptor. WBM should treat this is the
+			 same way as a link descriptor. That is, put the 128 byte
+			 buffer back in the link buffer idle list.
+			
+			<legal 0-4>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_OFFSET                        0x00000008
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_LSB                           6
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_MSB                           8
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_MASK                          0x000001c0
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			'Return_buffer_manager' field of the MSDU's  buffer address
+			 info, for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_LSB                         9
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_MSB                         12
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_MASK                        0x00001e00
+
+
+/* Description		TQM_RELEASE_REASON
+
+			Consumer: WBM/SW/FW
+			Producer: TQM
+			
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			(rr = Release Reason)
+			<enum 0 tqm_rr_frame_acked> frame is removed because an 
+			ACK of BA for it was received 
+			<enum 1 tqm_rr_rem_cmd_rem> frame is removed because a remove
+			 command of type "Remove_mpdus" initiated by SW
+			<enum 2 tqm_rr_rem_cmd_tx> frame is removed because a remove
+			 command of type "Remove_transmitted_mpdus" initiated by
+			 SW
+			<enum 3 tqm_rr_rem_cmd_notx> frame is removed because a 
+			remove command of type "Remove_untransmitted_mpdus" initiated
+			 by SW
+			<enum 4 tqm_rr_rem_cmd_aged> frame is removed because a 
+			remove command of type "Remove_aged_mpdus" or "Remove_aged_msdus" 
+			initiated by SW
+			<enum 5 tqm_fw_reason1> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 6 tqm_fw_reason2> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 7 tqm_fw_reason3> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 8 tqm_rr_rem_cmd_disable_queue> frame is removed because
+			 a remove command of type "remove_mpdus_and_disable_queue" 
+			or "remove_msdus_and_disable_flow" initiated by SW
+			<enum 9 tqm_rr_rem_cmd_till_nonmatching> frame is removed
+			 because remove command of type "remove_till_nonmatching_mpdu" 
+			initiated by SW
+			<enum 10 tqm_rr_drop_threshold> frame is dropped at TQM 
+			entrance due to one of slow/medium/hard drop threshold criteria
+			
+			<enum 11 tqm_rr_link_desc_unavailable> frame is dropped 
+			at TQM entrance due to the WBM2TQM_LINK_RING having fewer
+			 descriptors than a threshold programmed in TQM
+			<enum 12 tqm_rr_drop_or_invalid_msdu> frame is dropped at
+			 TQM entrance due to 'TQM_Drop_frame' being set or "null" 
+			MSDU flow pointer or MSDU flow pointer 'Flow_valid' being
+			 zero or MSDU_length being zero
+			<enum 13 tqm_rr_multicast_drop> frame is dropped at TQM 
+			entrance due to 'TQM_Drop_frame' being set with 'TCL_drop_reason' 
+			set to TCL_multicast_drop_for_vdev.
+			<enum 14 tqm_rr_vdev_mismatch_drop> frame is dropped at 
+			TQM entrance due to 'TQM_Drop_frame' being set with 'TCL_drop_reason' 
+			set to TCL_vdev_id_mismatch_drop.
+			Waikiki v1 and Hamilton v2 used value 12 for this.
+			
+			<legal 0-14>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_LSB                            13
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_MSB                            16
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_MASK                           0x0001e000
+
+
+/* Description		RBM_OVERRIDE_VALID
+
+			This is set to 0 for Tx cases not involving reinjection, 
+			and set to 1 for TQM release cases requiring FW reinjection
+			 (HastingsPrime FR54309).
+			
+			When set to 1, WBM releases the MSDU buffers to FW and overrides
+			 the tx_rate_stats field with words 2 and 3 of the 'TX_MSDU_DETAILS' 
+			structure, for FW reinjection of these MSDUs (HastingsPrime
+			 FR54309).
+			
+			When releasing to host SW, this will be 0 if there is no
+			 misprogramming.
+			<legal 0>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_LSB                            17
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_MSB                            17
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_MASK                           0x00020000
+
+
+/* Description		SW_BUFFER_COOKIE_11_0
+
+			LSB 12 bits of the 'Sw_buffer_cookie' field of the MSDU's
+			 buffer address info used to fill 'Buffer_virt_addr_*,' 
+			for debug
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_LSB                         18
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_MSB                         29
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_MASK                        0x3ffc0000
+
+
+/* Description		COOKIE_CONVERSION_STATUS
+
+			0: 'Sw_buffer_cookie' not converted to 'Buffer_virt_addr'
+			
+			1: 'Sw_buffer_cookie' coverted to 'Buffer_virt_addr'
+			<legal 1>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_OFFSET                   0x00000008
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_LSB                      30
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_MSB                      30
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_MASK                     0x40000000
+
+
+/* Description		WBM_INTERNAL_ERROR
+
+			Can only be set by WBM.
+			
+			Is set when WBM got a buffer pointer but the action was 
+			to push it to the idle link descriptor ring or do link related
+			 activity
+			OR
+			Is set when WBM got a link buffer pointer but the action
+			 was to push it to the buffer  descriptor ring 
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_LSB                            31
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_MSB                            31
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_MASK                           0x80000000
+
+
+/* Description		TQM_STATUS_NUMBER
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			The value in this field is equal to value of the 'TQM_CMD_Number' 
+			field from the TQM command or the 'TQM_add_cmd_Number' field
+			 from the TQM entrance ring descriptor LSB 24-bits.
+			
+			This field helps to correlate the statuses with the TQM 
+			commands.
+			
+			NOTE that SW could program this number to be equal to the
+			 PPDU_ID number in case direct correlation with the PPDU
+			 ID is desired
+			
+			<legal all> 
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_OFFSET                          0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_LSB                             0
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_MSB                             23
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_MASK                            0x00ffffff
+
+
+/* Description		TRANSMIT_COUNT
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			The number of times this frame has been transmitted
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_OFFSET                             0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_LSB                                24
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_MSB                                30
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_MASK                               0x7f000000
+
+
+/* Description		SW_RELEASE_DETAILS_VALID
+
+			Consumer: SW
+			Producer: WBM
+			
+			When set, some WBM specific release info for SW is valid.
+			
+			This is set when WMB got a 'release_msdu_list' command from
+			 TQM and the return buffer manager is not WMB. WBM will 
+			then de-aggregate all the MSDUs and pass them one at a time
+			 on to the 'buffer owner'
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_OFFSET                   0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_LSB                      31
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_MSB                      31
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_MASK                     0x80000000
+
+
+/* Description		ACK_FRAME_RSSI
+
+			This field is only valid when the source is TQM.
+			
+			If this frame is removed as the result of the reception 
+			of an ACK or BA, this field indicates the RSSI of the received
+			 ACK or BA frame. 
+			
+			When the frame is removed as result of a direct remove command
+			 from the SW,  this field is set to 0x0 (which is never 
+			a valid value when real RSSI is available)
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_OFFSET                             0x00000010
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_LSB                                0
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_MSB                                7
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_MASK                               0x000000ff
+
+
+/* Description		FIRST_MSDU
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			When set, this MSDU is the first MSDU pointed to in the 'release_msdu_list' 
+			command.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_OFFSET                                 0x00000010
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_LSB                                    8
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_MSB                                    8
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_MASK                                   0x00000100
+
+
+/* Description		LAST_MSDU
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			When set, this MSDU is the last MSDU pointed to in the 'release_msdu_list' 
+			command.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_OFFSET                                  0x00000010
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_LSB                                     9
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_MSB                                     9
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_MASK                                    0x00000200
+
+
+/* Description		FW_TX_NOTIFY_FRAME
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			This is the FW_tx_notify_frame field from the TX_MSDU_DETAILS
+			 for this frame from the MSDU link descriptor
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_OFFSET                         0x00000010
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_LSB                            10
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_MSB                            12
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_MASK                           0x00001c00
+
+
+/* Description		BUFFER_TIMESTAMP
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			This is the Buffer_timestamp field from the TX_MSDU_DETAILS
+			 for this frame from the MSDU link descriptor.
+			
+			Timestamp in units determined by the UMCMN 'TX_TIMESTAMP_RESOLUTION_SELECT' 
+			register
+			
+			Waikiki v1 and Hamilton used units of 1024 µs.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_OFFSET                           0x00000010
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_LSB                              13
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_MSB                              31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_MASK                             0xffffe000
+
+
+/* Description		TX_RATE_STATS
+
+			Consumer: TQM/SW
+			Producer: SW/SCH(from TXPCU, PDG) /WBM (from RXDMA)
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		TX_RATE_STATS_INFO_VALID
+
+			When set all other fields in this STRUCT contain valid info.
+			
+			
+			When clear, none of the other fields contain valid info.
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_LSB        0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MSB        0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MASK       0x00000001
+
+
+/* Description		TRANSMIT_BW
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Indicates the BW of the upcoming transmission that shall
+			 likely start in about 3 -4 us on the medium
+			
+			<enum_type BW_ENUM>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_LSB                     1
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MSB                     3
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MASK                    0x0000000e
+
+
+/* Description		TRANSMIT_PKT_TYPE
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The packet type
+			<enum_type PKT_TYPE_ENUM>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_LSB               4
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MSB               7
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MASK              0x000000f0
+
+
+/* Description		TRANSMIT_STBC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, STBC transmission rate was used.
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_OFFSET                0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_LSB                   8
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MSB                   8
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MASK                  0x00000100
+
+
+/* Description		TRANSMIT_LDPC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, use LDPC transmission rates
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_OFFSET                0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_LSB                   9
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MSB                   9
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MASK                  0x00000200
+
+
+/* Description		TRANSMIT_SGI
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			Specify the right GI for HE-Ranging NDPs (11az)/Short NDP.
+			
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_OFFSET                 0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_LSB                    10
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MSB                    11
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MASK                   0x00000c00
+
+
+/* Description		TRANSMIT_MCS
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_OFFSET                 0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_LSB                    12
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MSB                    15
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MASK                   0x0000f000
+
+
+/* Description		OFDMA_TRANSMISSION
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			
+			Set when the transmission was an OFDMA transmission (DL 
+			or UL).
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_OFFSET           0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_LSB              16
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MSB              16
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MASK             0x00010000
+
+
+/* Description		TONES_IN_RU
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The number of tones in the RU used.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_LSB                     17
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_MSB                     28
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_MASK                    0x1ffe0000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_LSB                     29
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_MSB                     31
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_MASK                    0xe0000000
+
+
+/* Description		PPDU_TRANSMISSION_TSF
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Based on a HWSCH configuration register setting, this field
+			 either contains:
+			
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame finished.
+			OR
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame started
+			
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_OFFSET        0x00000018
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_LSB           0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MSB           31
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MASK          0xffffffff
+
+
+/* Description		SW_PEER_ID
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			1) Release of msdu buffer due to drop_frame = 1. Flow is
+			 not fetched and hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			2) Release of msdu buffer due to Flow is not fetched and
+			 hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			3) Release of msdu link due to remove_mpdu or acked_mpdu
+			 command.
+			buffer_or_desc_type = e_num1 msdu_link_descriptortqm_release_reason
+			 can be:e_num 1 tqm_rr_rem_cmd_reme_num 2 tqm_rr_rem_cmd_tx
+			
+			e_num 3 tqm_rr_rem_cmd_notxe_num 4 tqm_rr_rem_cmd_aged (this
+			 e_num is used for REMOVE_MPDU as well as REMOVE_MSDU).
+			
+			Sw_peer_id from the TX_MSDU_FLOW descriptor or TX_MPDU_QUEUE
+			 descriptor
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_OFFSET                                 0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_LSB                                    0
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_MSB                                    15
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_MASK                                   0x0000ffff
+
+
+/* Description		TID
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			1) Release of msdu buffer due to drop_frame = 1. Flow is
+			 not fetched and hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			2) Release of msdu buffer due to Flow is not fetched and
+			 hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			3) Release of msdu link due to remove_mpdu or acked_mpdu
+			 command.
+			buffer_or_desc_type = e_num1 msdu_link_descriptortqm_release_reason
+			 can be:e_num 1 tqm_rr_rem_cmd_reme_num 2 tqm_rr_rem_cmd_tx
+			
+			e_num 3 tqm_rr_rem_cmd_notxe_num 4 tqm_rr_rem_cmd_aged (this
+			 e_num is used for REMOVE_MPDU as well as REMOVE_MSDU).
+			
+			
+			This field represents the TID from the TX_MSDU_FLOW descriptor
+			 or TX_MPDU_QUEUE descriptor
+			
+			 <legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_TID_OFFSET                                        0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_TID_LSB                                           16
+#define WBM2SW_COMPLETION_RING_TX_TID_MSB                                           19
+#define WBM2SW_COMPLETION_RING_TX_TID_MASK                                          0x000f0000
+
+
+/* Description		SW_BUFFER_COOKIE_19_12
+
+			MSB 8 bits of the 'Sw_buffer_cookie' field of the MSDU's
+			 buffer address info used to fill 'Buffer_virt_addr_*,' 
+			for debug.
+			WBM shall have configuration to copy 'TQM_Status_Number_31_24' 
+			from the WBM input descriptor here instead.
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_OFFSET                     0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_LSB                        20
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_MSB                        27
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_MASK                       0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			If WBM_internal_error is set, this descriptor is sent to
+			 the dedicated 'WBM_ERROR_RELEASE' ring and Looping_count
+			 is used to indicate an error code.
+			
+			The values reported are documented further in the WBM MLD
+			 doc.
+			
+			If WBM_internal_error is not set, the following holds.
+			
+			A count value that indicates the number of times the producer
+			 of entries into the Buffer Manager Ring has looped around
+			 the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_OFFSET                              0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_LSB                                 28
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_MSB                                 31
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_MASK                                0xf0000000
+
+
+
+#endif   // WBM2SW_COMPLETION_RING_TX
diff --git a/hw/qca5332/wbm_buffer_ring.h b/hw/qca5332/wbm_buffer_ring.h
new file mode 100644
index 0000000..f937042
--- /dev/null
+++ b/hw/qca5332/wbm_buffer_ring.h
@@ -0,0 +1,193 @@
+
+/* 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 _WBM_BUFFER_RING_H_
+#define _WBM_BUFFER_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_BUFFER_RING 2
+
+
+struct wbm_buffer_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_addr_info;
+#else
+             struct   buffer_addr_info                                          buf_addr_info;
+#endif
+};
+
+
+/* Description		BUF_ADDR_INFO
+
+			Consumer: WBM
+			Producer: WBM
+			
+			Details of the physical address of the buffer + source buffer
+			 owner +  some SW meta data.
+			All modules getting this buffer address info, shall keep
+			 all the 64 bits of info in this descriptor together and
+			 eventually all 64 bits shall be given back to WMB when 
+			the buffer is released.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                       0x00000000
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                          0
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                          31
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                         0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                      0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                         0
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                         7
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                        0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                  0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                     8
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                     11
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                    0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                       0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                          12
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                          31
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                         0xfffff000
+
+
+
+#endif   // WBM_BUFFER_RING
diff --git a/hw/qca5332/wbm_link_descriptor_ring.h b/hw/qca5332/wbm_link_descriptor_ring.h
new file mode 100644
index 0000000..c20ffb1
--- /dev/null
+++ b/hw/qca5332/wbm_link_descriptor_ring.h
@@ -0,0 +1,193 @@
+
+/* 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 _WBM_LINK_DESCRIPTOR_RING_H_
+#define _WBM_LINK_DESCRIPTOR_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_LINK_DESCRIPTOR_RING 2
+
+
+struct wbm_link_descriptor_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          desc_addr_info;
+#else
+             struct   buffer_addr_info                                          desc_addr_info;
+#endif
+};
+
+
+/* Description		DESC_ADDR_INFO
+
+			Consumer: WBM
+			Producer: WBM
+			
+			Details of the physical address of the buffer + source buffer
+			 owner +  some SW meta data
+			All modules getting this link descriptor address info, shall
+			 keep all the 64 bits in this descriptor together and eventually
+			 all 64 bits shall be given back to WBM when the link descriptor
+			 is released.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET             0x00000000
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB                0
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB                31
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK               0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET            0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB               0
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB               7
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK              0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET        0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB           8
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB           11
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK          0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET             0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB                12
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB                31
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK               0xfffff000
+
+
+
+#endif   // WBM_LINK_DESCRIPTOR_RING
diff --git a/hw/qca5332/wbm_release_ring.h b/hw/qca5332/wbm_release_ring.h
new file mode 100644
index 0000000..2dcf443
--- /dev/null
+++ b/hw/qca5332/wbm_release_ring.h
@@ -0,0 +1,420 @@
+
+/* 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 _WBM_RELEASE_RING_H_
+#define _WBM_RELEASE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING 8
+
+
+struct wbm_release_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3, // [2:0]
+                      reserved_2a                                             :  3, // [5:3]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      reserved_2b                                             : 22, // [30:9]
+                      wbm_internal_error                                      :  1; // [31:31]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 28, // [27:0]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1, // [31:31]
+                      reserved_2b                                             : 22, // [30:9]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      reserved_2a                                             :  3, // [5:3]
+                      release_source_module                                   :  3; // [2:0]
+             uint32_t reserved_3a                                             : 32; // [31:0]
+             uint32_t reserved_4a                                             : 32; // [31:0]
+             uint32_t reserved_5a                                             : 32; // [31:0]
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      reserved_7a                                             : 28; // [27:0]
+#endif
+};
+
+
+/* Description		RELEASED_BUFF_OR_DESC_ADDR_INFO
+
+			DO NOT USE. This may be a 'BUFFER_ADDR_INFO' structure or
+			 a 64-bit virtual address.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET    0x00000000
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB       0
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB       31
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK      0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET   0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB      0
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB      7
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK     0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB  8
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB  11
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET    0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB       12
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB       31
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK      0xfffff000
+
+
+/* Description		RELEASE_SOURCE_MODULE
+
+			Indicates which module initiated the release of this buffer
+			 or descriptor
+			
+			<enum 1 release_source_RXDMA> RXDMA released this buffer
+			 or descriptor
+			<enum 2 release_source_REO> REO released this buffer or 
+			descriptor
+			<enum 5 release_source_FW_RX> FW released this buffer or
+			 descriptor
+			<enum 4 release_source_SW_RX> SW released this buffer or
+			 descriptor
+			<enum 0 release_source_TQM> DO NOT USE
+			<enum 3 release_source_FW_TX> DO NOT USE
+			<enum 6 release_source_SW_TX> DO NOT USE
+			<legal 0-6>
+*/
+
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_LSB                                  0
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_MSB                                  2
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_MASK                                 0x00000007
+
+
+/* Description		RESERVED_2A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_2A_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RESERVED_2A_LSB                                            3
+#define WBM_RELEASE_RING_RESERVED_2A_MSB                                            5
+#define WBM_RELEASE_RING_RESERVED_2A_MASK                                           0x00000038
+
+
+/* Description		BUFFER_OR_DESC_TYPE
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when WBM is marked as the return_buffer_manager
+			 in the Released_Buffer_address_info
+			
+			Indicates that type of buffer or descriptor is being released
+			
+			
+			<enum 0 MSDU_rel_buffer> The address points to an MSDU buffer
+			 
+			<enum 1 msdu_link_descriptor> The address points to an TX
+			 MSDU link descriptor
+			<enum 2 mpdu_link_descriptor> The address points to an MPDU
+			 link descriptor
+			<enum 3 msdu_ext_descriptor > The address points to an MSDU
+			 extension descriptor.
+			In case BM finds this one in a release ring, it passes it
+			 on to FW...
+			<enum 4 queue_ext_descriptor> The address points to an TQM
+			 queue extension descriptor. WBM should treat this is the
+			 same way as a link descriptor. That is, put the 128 byte
+			 buffer back in the link buffer idle list.
+			
+			TODO: Any restrictions?
+			<legal 0-4>
+*/
+
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_LSB                                    6
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_MSB                                    8
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_MASK                                   0x000001c0
+
+
+/* Description		RESERVED_2B
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_2B_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RESERVED_2B_LSB                                            9
+#define WBM_RELEASE_RING_RESERVED_2B_MSB                                            30
+#define WBM_RELEASE_RING_RESERVED_2B_MASK                                           0x7ffffe00
+
+
+/* Description		WBM_INTERNAL_ERROR
+
+			Can only be set by WBM.
+			
+			Is set when WBM got a buffer pointer but the action was 
+			to push it to the idle link descriptor ring or do link related
+			 activity
+			OR
+			Is set when WBM got a link buffer pointer but the action
+			 was to push it to the buffer  descriptor ring 
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_OFFSET                                  0x00000008
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_LSB                                     31
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_MSB                                     31
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_MASK                                    0x80000000
+
+
+/* Description		RESERVED_3A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_3A_OFFSET                                         0x0000000c
+#define WBM_RELEASE_RING_RESERVED_3A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_3A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_3A_MASK                                           0xffffffff
+
+
+/* Description		RESERVED_4A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_4A_OFFSET                                         0x00000010
+#define WBM_RELEASE_RING_RESERVED_4A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_4A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_4A_MASK                                           0xffffffff
+
+
+/* Description		RESERVED_5A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_5A_OFFSET                                         0x00000014
+#define WBM_RELEASE_RING_RESERVED_5A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_5A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_5A_MASK                                           0xffffffff
+
+
+/* Description		RESERVED_6A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_6A_OFFSET                                         0x00000018
+#define WBM_RELEASE_RING_RESERVED_6A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_6A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_6A_MASK                                           0xffffffff
+
+
+/* Description		RESERVED_7A
+
+			This could be different fields depending on the structure.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RESERVED_7A_OFFSET                                         0x0000001c
+#define WBM_RELEASE_RING_RESERVED_7A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_7A_MSB                                            27
+#define WBM_RELEASE_RING_RESERVED_7A_MASK                                           0x0fffffff
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			If WBM_internal_error is set, this descriptor is sent to
+			 the dedicated 'WBM_ERROR_RELEASE' ring and Looping_count
+			 is used to indicate an error code.
+			
+			The values reported are documented further in the WBM MLD
+			 doc.
+			
+			If WBM_internal_error is not set, the following holds.
+			
+			A count value that indicates the number of times the producer
+			 of entries into the Buffer Manager Ring has looped around
+			 the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_LOOPING_COUNT_OFFSET                                       0x0000001c
+#define WBM_RELEASE_RING_LOOPING_COUNT_LSB                                          28
+#define WBM_RELEASE_RING_LOOPING_COUNT_MSB                                          31
+#define WBM_RELEASE_RING_LOOPING_COUNT_MASK                                         0xf0000000
+
+
+
+#endif   // WBM_RELEASE_RING
diff --git a/hw/qca5332/wbm_release_ring_rx.h b/hw/qca5332/wbm_release_ring_rx.h
new file mode 100644
index 0000000..8bad8fe
--- /dev/null
+++ b/hw/qca5332/wbm_release_ring_rx.h
@@ -0,0 +1,1157 @@
+
+/* 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 _WBM_RELEASE_RING_RX_H_
+#define _WBM_RELEASE_RING_RX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING_RX 8
+
+
+struct wbm_release_ring_rx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3, // [2:0]
+                      bm_action                                               :  3, // [5:3]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      first_msdu_index                                        :  4, // [12:9]
+                      reserved_2a                                             :  2, // [14:13]
+                      cache_id                                                :  1, // [15:15]
+                      cookie_conversion_status                                :  1, // [16:16]
+                      rxdma_push_reason                                       :  2, // [18:17]
+                      rxdma_error_code                                        :  5, // [23:19]
+                      reo_push_reason                                         :  2, // [25:24]
+                      reo_error_code                                          :  5, // [30:26]
+                      wbm_internal_error                                      :  1; // [31:31]
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t reserved_7a                                             : 20, // [19:0]
+                      ring_id                                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1, // [31:31]
+                      reo_error_code                                          :  5, // [30:26]
+                      reo_push_reason                                         :  2, // [25:24]
+                      rxdma_error_code                                        :  5, // [23:19]
+                      rxdma_push_reason                                       :  2, // [18:17]
+                      cookie_conversion_status                                :  1, // [16:16]
+                      cache_id                                                :  1, // [15:15]
+                      reserved_2a                                             :  2, // [14:13]
+                      first_msdu_index                                        :  4, // [12:9]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      bm_action                                               :  3, // [5:3]
+                      release_source_module                                   :  3; // [2:0]
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t reserved_6a                                             : 32; // [31:0]
+             uint32_t looping_count                                           :  4, // [31:28]
+                      ring_id                                                 :  8, // [27:20]
+                      reserved_7a                                             : 20; // [19:0]
+#endif
+};
+
+
+/* Description		RELEASED_BUFF_OR_DESC_ADDR_INFO
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Details of the physical address of the buffer or link descriptor
+			 that is being released. Note that within this descriptor, 
+			WBM will look at the 'owner' of the released buffer/descriptor
+			 and forward it to SW/FW is WBM is not the owner.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB    0
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB    31
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK   0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB   0
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB   7
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK  0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB    12
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB    31
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK   0xfffff000
+
+
+/* Description		RELEASE_SOURCE_MODULE
+
+			Indicates which module initiated the release of this buffer
+			 or descriptor
+			
+			<enum 1 release_source_RXDMA> RXDMA released this buffer
+			 or descriptor
+			<enum 2 release_source_REO> REO released this buffer or 
+			descriptor
+			<enum 5 release_source_FW_RX> FW released this buffer or
+			 descriptor
+			<enum 4 release_source_SW_RX> SW released this buffer or
+			 descriptor
+			<enum 0 release_source_TQM> DO NOT USE
+			<enum 3 release_source_FW_TX> DO NOT USE
+			<enum 6 release_source_SW_TX> DO NOT USE
+			<legal 0-6>
+*/
+
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_OFFSET                            0x00000008
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_LSB                               0
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_MSB                               2
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_MASK                              0x00000007
+
+
+/* Description		BM_ACTION
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when the field return_buffer_manager in
+			 the Released_buff_or_desc_addr_info indicates:
+			WBM_IDLE_BUF_LIST or
+			WBM_IDLE_DESC_LIST
+			
+			An MSDU extension descriptor shall never be marked as WBM
+			 being the 'owner', and thus WBM will forward it to FW/SW
+			
+			
+			<enum 0 Put_in_idle_list> Put the buffer or descriptor back
+			 in the idle list. In case of MSDU or MDPU link descriptor, 
+			BM does not need to check to release any individual MSDU
+			 buffers
+			
+			<enum 1 release_msdu_list > This BM action can only be used
+			 in combination with buffer_or_desc_type being msdu_link_descriptor. 
+			Field first_msdu_index points out which MSDU pointer in 
+			the MSDU link descriptor is the first of an MPDU that is
+			 released.
+			BM shall release all the MSDU buffers linked to this first
+			 MSDU buffer pointer. All related MSDU buffer pointer entries
+			 shall be set to value 0, which represents the 'NULL" pointer. 
+			When all MSDU buffer pointers in the MSDU link descriptor
+			 are 'NULL', the MSDU link descriptor itself shall also 
+			be released.
+			
+			<enum 2 Put_in_idle_list_expanded> CURRENTLY NOT IMPLEMENTED....
+			
+			Put the buffer or descriptor back in the idle list. Only
+			 valid in combination with buffer_or_desc_type indicating
+			 MDPU_link_descriptor.
+			BM shall release the MPDU link descriptor as well as all
+			 MSDUs that are linked to the MPDUs in this descriptor. 
+			
+			
+			TODO: Any restrictions?
+			<legal 0-2>
+*/
+
+#define WBM_RELEASE_RING_RX_BM_ACTION_OFFSET                                        0x00000008
+#define WBM_RELEASE_RING_RX_BM_ACTION_LSB                                           3
+#define WBM_RELEASE_RING_RX_BM_ACTION_MSB                                           5
+#define WBM_RELEASE_RING_RX_BM_ACTION_MASK                                          0x00000038
+
+
+/* Description		BUFFER_OR_DESC_TYPE
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when WBM is marked as the return_buffer_manager
+			 in the Released_Buffer_address_info
+			
+			Indicates that type of buffer or descriptor is being released
+			
+			
+			<enum 0 MSDU_rel_buffer> The address points to an MSDU buffer
+			 
+			<enum 1 msdu_link_descriptor> The address points to an TX
+			 MSDU link descriptor
+			<enum 2 mpdu_link_descriptor> The address points to an MPDU
+			 link descriptor
+			<enum 3 msdu_ext_descriptor > The address points to an MSDU
+			 extension descriptor.
+			In case BM finds this one in a release ring, it passes it
+			 on to FW...
+			<enum 4 queue_ext_descriptor> The address points to an TQM
+			 queue extension descriptor. WBM should treat this is the
+			 same way as a link descriptor. That is, put the 128 byte
+			 buffer back in the link buffer idle list.
+			
+			TODO: Any restrictions?
+			<legal 0-4>
+*/
+
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_OFFSET                              0x00000008
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_LSB                                 6
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_MSB                                 8
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_MASK                                0x000001c0
+
+
+/* Description		FIRST_MSDU_INDEX
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid for the bm_action release_msdu_list.
+			
+			The index of the first MSDU in an MSDU link descriptor all
+			 belonging to the same MPDU.
+			
+			TODO: Any restrictions?
+			<legal 0-6>
+*/
+
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_LSB                                    9
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_MSB                                    12
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_MASK                                   0x00001e00
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_RX_RESERVED_2A_OFFSET                                      0x00000008
+#define WBM_RELEASE_RING_RX_RESERVED_2A_LSB                                         13
+#define WBM_RELEASE_RING_RX_RESERVED_2A_MSB                                         14
+#define WBM_RELEASE_RING_RX_RESERVED_2A_MASK                                        0x00006000
+
+
+/* Description		CACHE_ID
+
+			Indicates the WBM cache the MSDU was released from
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_CACHE_ID_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RX_CACHE_ID_LSB                                            15
+#define WBM_RELEASE_RING_RX_CACHE_ID_MSB                                            15
+#define WBM_RELEASE_RING_RX_CACHE_ID_MASK                                           0x00008000
+
+
+/* Description		COOKIE_CONVERSION_STATUS
+
+			0: 'Sw_buffer_cookie' not converted to 'Buffer_virt_addr'
+			
+			1: 'Sw_buffer_cookie' coverted to 'Buffer_virt_addr'
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_OFFSET                         0x00000008
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_LSB                            16
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_MSB                            16
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_MASK                           0x00010000
+
+
+/* Description		RXDMA_PUSH_REASON
+
+			Field only valid when Release_source_module is set to release_source_RXDMA
+			
+			
+			Indicates why rxdma pushed the frame to this ring
+			
+			<enum 0 rxdma_error_detected> RXDMA detected an error an
+			 pushed this frame to this queue
+			<enum 1 rxdma_routing_instruction> RXDMA pushed the frame
+			 to this queue per received routing instructions. No error
+			 within RXDMA was detected
+			<enum 2 rxdma_rx_flush> RXDMA received an RX_FLUSH. As a
+			 result the MSDU link descriptor might not have the "last_msdu_in_mpdu_flag" 
+			set, but instead WBM might just see a NULL pointer in the
+			 MSDU link descriptor. This is to be considered a normal
+			 condition for this scenario.
+			
+			<legal 0 - 2>
+*/
+
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_OFFSET                                0x00000008
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_LSB                                   17
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_MSB                                   18
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_MASK                                  0x00060000
+
+
+/* Description		RXDMA_ERROR_CODE
+
+			Field only valid when 'rxdma_push_reason' set to 'rxdma_error_detected'.
+			
+			
+			<enum 0 rxdma_overflow_err>MPDU frame is not complete due
+			 to a FIFO overflow error in RXPCU.
+			<enum 1 rxdma_mpdu_length_err>MPDU frame is not complete
+			 due to receiving incomplete MPDU from the PHY
+			<enum 2 rxdma_fcs_err>FCS check on the MPDU frame failed
+			
+			<enum 3 rxdma_decrypt_err>CRYPTO reported a decryption error
+			 or CRYPTO received an encrypted frame, but did not get 
+			a valid corresponding key id in the peer entry.
+			<enum 4 rxdma_tkip_mic_err>CRYPTO reported a TKIP MIC error
+			
+			<enum 5 rxdma_unecrypted_err>CRYPTO reported an unencrypted
+			 frame error when encrypted was expected
+			<enum 6 rxdma_msdu_len_err>RX OLE reported an MSDU length
+			 error
+			<enum 7 rxdma_msdu_limit_err>RX OLE reported that max number
+			 of MSDUs allowed in an MPDU got exceeded
+			<enum 8 rxdma_wifi_parse_err>RX OLE reported a parsing error
+			
+			<enum 9 rxdma_amsdu_parse_err>RX OLE reported an A-MSDU 
+			parsing error
+			<enum 10 rxdma_sa_timeout_err>RX OLE reported a timeout 
+			during SA search
+			<enum 11 rxdma_da_timeout_err>RX OLE reported a timeout 
+			during DA search
+			<enum 12 rxdma_flow_timeout_err>RX OLE reported a timeout
+			 during flow search
+			<enum 13 rxdma_flush_request>RXDMA received a flush request
+			
+			<enum 14 rxdma_amsdu_fragment_err>Rx PCU reported A-MSDU
+			 present as well as a fragmented MPDU. A-MSDU defragmentation
+			 is not supported in Lithium SW so this is treated as an
+			 error.
+			<enum 15 rxdma_multicast_echo_err>RX OLE reported a multicast
+			 echo
+			<enum 16 rxdma_amsdu_addr_mismatch_err>RX OLE reported an
+			 A-MSDU with either 'from DS = 0' with an SA mismatching
+			 TA or 'to DS = 0' with a DA mismatching RA.
+			<enum 17 rxdma_unauthorized_wds_err>RX PCU reported that
+			 Rx peer entry did not indicate 'authorized_to_send_WDS' 
+			and also indicated 'from DS = to DS = 1.'
+			<enum 18 rxdma_groupcast_amsdu_or_wds_err>RX PCU reported
+			 a broadcast or multicast RA as well as either A-MSDU present
+			 or 'from DS = to DS = 1.'
+*/
+
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_LSB                                    19
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_MSB                                    23
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_MASK                                   0x00f80000
+
+
+/* Description		REO_PUSH_REASON
+
+			Field only valid when Release_source_module is set to release_source_REO
+			
+			
+			Indicates why REO pushed the frame to this release ring
+			
+			<enum 0 reo_error_detected> Reo detected an error an pushed
+			 this frame to this queue
+			<enum 1 reo_routing_instruction> Reo pushed the frame to
+			 this queue per received routing instructions. No error 
+			within REO was detected
+			
+			<legal 0 - 1>
+*/
+
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_OFFSET                                  0x00000008
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_LSB                                     24
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_MSB                                     25
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_MASK                                    0x03000000
+
+
+/* Description		REO_ERROR_CODE
+
+			Field only valid when 'Reo_push_reason' set to 'reo_error_detected'.
+			
+			
+			<enum 0 reo_queue_desc_addr_zero> Reo queue descriptor provided
+			 in the REO_ENTRANCE ring is set to 0
+			<enum 1 reo_queue_desc_not_valid> Reo queue descriptor valid
+			 bit is NOT set
+			<enum 2 ampdu_in_non_ba> AMPDU frame received without BA
+			 session having been setup.
+			<enum 3 non_ba_duplicate> Non-BA session, SN equal to SSN, 
+			Retry bit set: duplicate frame
+			<enum 4 ba_duplicate> BA session, duplicate frame
+			<enum 5 regular_frame_2k_jump> A normal (management/data
+			 frame) received with 2K jump in SN
+			<enum 6 bar_frame_2k_jump> A bar received with 2K jump in
+			 SSN
+			<enum 7 regular_frame_OOR> A normal (management/data frame) 
+			received with SN falling within the OOR window
+			<enum 8 bar_frame_OOR> A bar received with SSN falling within
+			 the OOR window
+			<enum 9 bar_frame_no_ba_session> A bar received without 
+			a BA session
+			<enum 10 bar_frame_sn_equals_ssn> A bar received with SSN
+			 equal to SN
+			<enum 11 pn_check_failed> PN Check Failed packet.
+			<enum 12 2k_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'Seq_2k_error_detected_flag' been set
+			 in the REO Queue descriptor
+			<enum 13 pn_error_handling_flag_set> Frame is forwarded 
+			as a result of the 'pn_error_detected_flag' been set in 
+			the REO Queue descriptor
+			<enum 14 queue_descriptor_blocked_set> Frame is forwarded
+			 as a result of the queue descriptor(address) being blocked
+			 as SW/FW seems to be currently in the process of making
+			 updates to this descriptor...
+			
+			<legal 0-14>
+*/
+
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_OFFSET                                   0x00000008
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_LSB                                      26
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_MSB                                      30
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_MASK                                     0x7c000000
+
+
+/* Description		WBM_INTERNAL_ERROR
+
+			Can only be set by WBM.
+			
+			Is set when WBM got a buffer pointer but the action was 
+			to push it to the idle link descriptor ring or do link related
+			 activity
+			OR
+			Is set when WBM got a link buffer pointer but the action
+			 was to push it to the buffer  descriptor ring 
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_LSB                                  31
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_MSB                                  31
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_MASK                                 0x80000000
+
+
+/* Description		RX_MPDU_DESC_INFO_DETAILS
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			General information related to the MPDU whose link descriptors
+			 are being released from Rx DMA or REO
+			
+			When enabled in REO, REO will overwrite this structure to
+			 have only the 'Msdu_count' field and 56 bits of the previous
+			 PN from 'RX_REO_QUEUE' (Hamilton FR62456)
+*/
+
+
+/* Description		MSDU_COUNT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The number of MSDUs within the MPDU 
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET             0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB                0
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB                7
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK               0x000000ff
+
+
+/* Description		FRAGMENT_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, this MPDU is a fragment and REO should forward
+			 this fragment MPDU to the REO destination ring without 
+			any reorder checks, pn checks or bitmap update. This implies
+			 that REO is forwarding the pointer to the MSDU link descriptor. 
+			The destination ring is coming from a programmable register
+			 setting in REO
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET          0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB             8
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB             8
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK            0x00000100
+
+
+/* Description		MPDU_RETRY_BIT
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			The retry bit setting from the MPDU header of the received
+			 frame
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET         0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB            9
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB            9
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK           0x00000200
+
+
+/* Description		AMPDU_FLAG
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the MPDU was received as part of an A-MPDU.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET             0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB                10
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB                10
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK               0x00000400
+
+
+/* Description		BAR_FRAME
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			When set, the received frame is a BAR frame. After processing, 
+			this frame shall be pushed to SW or deleted.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET              0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                 11
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                 11
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK                0x00000800
+
+
+/* Description		PN_FIELDS_CONTAIN_VALID_INFO
+
+			Consumer: REO/SW/FW
+			Producer: RXDMA
+			
+			Copied here by RXDMA from RX_MPDU_END
+			When not set, REO will Not perform a PN sequence number 
+			check
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+/* Description		RAW_MPDU
+
+			Field only valid when first_msdu_in_mpdu_flag is set.
+			
+			When set, the contents in the MSDU buffer contains a 'RAW' 
+			MPDU. This 'RAW' MPDU might be spread out over multiple 
+			MSDU buffers.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET               0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                  13
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                  13
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                 0x00002000
+
+
+/* Description		MORE_FRAGMENT_FLAG
+
+			The More Fragment bit setting from the MPDU header of the
+			 received frame
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET     0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB        14
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB        14
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK       0x00004000
+
+
+/* Description		SRC_INFO
+
+			Source (virtual) device/interface info. associated with 
+			this peer
+			
+			This field gets passed on by REO to PPE in the EDMA descriptor
+			 ('REO_TO_PPE_RING').
+			
+			Hamilton v1 used this for 'vdev_id' instead.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET               0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                  15
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                  26
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                 0x07ff8000
+
+
+/* Description		MPDU_QOS_CONTROL_VALID
+
+			When set, the MPDU has a QoS control field.
+			
+			In case of ndp or phy_err, this field will never be set.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB    27
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB    27
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK   0x08000000
+
+
+/* Description		TID
+
+			Field only valid when mpdu_qos_control_valid is set
+			
+			The TID field in the QoS control field
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                    0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                       28
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                       31
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                      0xf0000000
+
+
+/* Description		PEER_META_DATA
+
+			Meta data that SW has programmed in the Peer table entry
+			 of the transmitting STA.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET         0x00000010
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB            0
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB            31
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK           0xffffffff
+
+
+/* Description		RX_MSDU_DESC_INFO_DETAILS
+
+			Consumer: TQM/SW
+			Producer: SW/SCH(from TXPCU, PDG) /WBM (from RXDMA)
+			
+			In case of RXDMA or REO releasing Rx MSDU link descriptors,' 
+			WBM fills this field with Rx_msdu_desc_info_details when
+			 releasing the MSDUs to SW (Maple/Spruce FR59859).
+*/
+
+
+/* Description		FIRST_MSDU_IN_MPDU_FLAG
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU 
+			
+			<enum 0 Not_first_msdu> This is not the first MSDU in the
+			 MPDU. 
+			<enum 1 first_msdu> This MSDU is the first one in the MPDU.
+			
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+/* Description		LAST_MSDU_IN_MPDU_FLAG
+
+			Consumer: WBM/REO/SW/FW
+			Producer: RXDMA
+			
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			
+			<enum 0 Not_last_msdu> There are more MSDUs linked to this
+			 MSDU that belongs to this MPDU 
+			<enum 1 Last_msdu> this MSDU is the last one in the MPDU. 
+			This setting is only allowed in combination with 'Msdu_continuation' 
+			set to 0. This implies that when an msdu is spread out over
+			 multiple buffers and thus msdu_continuation is set, only
+			 for the very last buffer of the msdu, can the 'last_msdu_in_mpdu_flag' 
+			be set.
+			
+			When both first_msdu_in_mpdu_flag and last_msdu_in_mpdu_flag
+			 are set, the MPDU that this MSDU belongs to only contains
+			 a single MSDU.
+			
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+/* Description		MSDU_CONTINUATION
+
+			When set, this MSDU buffer was not able to hold the entire
+			 MSDU. The next buffer will therefor contain additional 
+			information related to this MSDU.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+/* Description		MSDU_LENGTH
+
+			Parsed from RX_MSDU_START TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the First
+			 buffer used by MSDU.
+			 
+			Full MSDU length in bytes after decapsulation. 
+			
+			This field is still valid for MPDU frames without A-MSDU. 
+			 It still represents MSDU length after decapsulation 
+			
+			Or in case of RAW MPDUs, it indicates the length of the 
+			entire MPDU (without FCS field)
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+/* Description		MSDU_DROP
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			When set, REO shall drop this MSDU and not forward it to
+			 any other ring...
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+/* Description		SA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid SA entry for this MSDU
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+/* Description		DA_IS_VALID
+
+			Parsed from RX_MSDU_END TLV . In the case MSDU spans over
+			 multiple buffers, this field will be valid in the Last 
+			buffer used by the MSDU
+			 
+			Indicates that OLE found a valid DA entry for this MSDU
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+/* Description		DA_IS_MCBC
+
+			Field Only valid if "da_is_valid" is set
+			
+			Indicates the DA address was a Multicast of Broadcast address
+			 for this MSDU
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+/* Description		L3_HEADER_PADDING_MSB
+
+			Passed on from 'RX_MSDU_END' TLV (only the MSB is reported
+			 as the LSB is always zero)
+			Number of bytes padded to make sure that the L3 header will
+			 always start of a Dword boundary
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+/* Description		TCP_UDP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the TCP/UDP header.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+/* Description		IP_CHKSUM_FAIL
+
+			Passed on from 'RX_ATTENTION' TLV
+			Indicates that the computed checksum did not match the checksum
+			 in the IP header.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+/* Description		FR_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'from DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+/* Description		TO_DS
+
+			Passed on from 'RX_MPDU_INFO' structure in 'RX_MPDU_START' 
+			TLV
+			Set if the 'to DS' bit is set in the frame control.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+/* Description		INTRA_BSS
+
+			This packet needs intra-BSS routing by SW as the 'vdev_id' 
+			for the destination is the same as the 'vdev_id' (from 'RX_MPDU_PCU_START') 
+			that this MSDU was got in.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+/* Description		DEST_CHIP_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which chip's TCL the packet should be
+			 queued.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+/* Description		DECAP_FORMAT
+
+			Indicates the format after decapsulation:
+			
+			<enum 0 RAW> No encapsulation
+			<enum 1 Native_WiFi>
+			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
+			
+			<enum 3 802_3> Indicate Ethernet
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+/* Description		DEST_CHIP_PMAC_ID
+
+			If intra_bss is set, copied by RXOLE/RXDMA from 'ADDR_SEARCH_ENTRY' 
+			to support intra-BSS routing with multi-chip multi-link 
+			operation.
+			
+			This indicates into which link/'vdev' the packet should 
+			be queued in TCL.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+/* Description		RESERVED_6A
+
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_RX_RESERVED_6A_OFFSET                                      0x00000018
+#define WBM_RELEASE_RING_RX_RESERVED_6A_LSB                                         0
+#define WBM_RELEASE_RING_RX_RESERVED_6A_MSB                                         31
+#define WBM_RELEASE_RING_RX_RESERVED_6A_MASK                                        0xffffffff
+
+
+/* Description		RESERVED_7A
+
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_RX_RESERVED_7A_OFFSET                                      0x0000001c
+#define WBM_RELEASE_RING_RX_RESERVED_7A_LSB                                         0
+#define WBM_RELEASE_RING_RX_RESERVED_7A_MSB                                         19
+#define WBM_RELEASE_RING_RX_RESERVED_7A_MASK                                        0x000fffff
+
+
+/* Description		RING_ID
+
+			Consumer: TQM/REO/RXDMA/SW
+			Producer: SRNG (of RXDMA)
+			
+			For debugging. 
+			This field is filled in by the SRNG module.
+			It help to identify the ring that is being looked <legal
+			 all>
+*/
+
+#define WBM_RELEASE_RING_RX_RING_ID_OFFSET                                          0x0000001c
+#define WBM_RELEASE_RING_RX_RING_ID_LSB                                             20
+#define WBM_RELEASE_RING_RX_RING_ID_MSB                                             27
+#define WBM_RELEASE_RING_RX_RING_ID_MASK                                            0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			If WBM_internal_error is set, this descriptor is sent to
+			 the dedicated 'WBM_ERROR_RELEASE' ring and Looping_count
+			 is used to indicate an error code.
+			
+			The values reported are documented further in the WBM MLD
+			 doc.
+			
+			If WBM_internal_error is not set, the following holds.
+			
+			A count value that indicates the number of times the producer
+			 of entries into the Buffer Manager Ring has looped around
+			 the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_OFFSET                                    0x0000001c
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_LSB                                       28
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_MSB                                       31
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_MASK                                      0xf0000000
+
+
+
+#endif   // WBM_RELEASE_RING_RX
diff --git a/hw/qca5332/wbm_release_ring_tx.h b/hw/qca5332/wbm_release_ring_tx.h
new file mode 100644
index 0000000..0e2a821
--- /dev/null
+++ b/hw/qca5332/wbm_release_ring_tx.h
@@ -0,0 +1,1047 @@
+
+/* 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 _WBM_RELEASE_RING_TX_H_
+#define _WBM_RELEASE_RING_TX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "tx_rate_stats_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING_TX 8
+
+
+struct wbm_release_ring_tx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3, // [2:0]
+                      bm_action                                               :  3, // [5:3]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      first_msdu_index                                        :  4, // [12:9]
+                      tqm_release_reason                                      :  4, // [16:13]
+                      rbm_override_valid                                      :  1, // [17:17]
+                      rbm_override                                            :  4, // [21:18]
+                      reserved_2a                                             :  7, // [28:22]
+                      cache_id                                                :  1, // [29:29]
+                      cookie_conversion_status                                :  1, // [30:30]
+                      wbm_internal_error                                      :  1; // [31:31]
+             uint32_t tqm_status_number                                       : 24, // [23:0]
+                      transmit_count                                          :  7, // [30:24]
+                      sw_release_details_valid                                :  1; // [31:31]
+             uint32_t ack_frame_rssi                                          :  8, // [7:0]
+                      first_msdu                                              :  1, // [8:8]
+                      last_msdu                                               :  1, // [9:9]
+                      fw_tx_notify_frame                                      :  3, // [12:10]
+                      buffer_timestamp                                        : 19; // [31:13]
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t sw_peer_id                                              : 16, // [15:0]
+                      tid                                                     :  4, // [19:16]
+                      tqm_status_number_31_24                                 :  8, // [27:20]
+                      looping_count                                           :  4; // [31:28]
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1, // [31:31]
+                      cookie_conversion_status                                :  1, // [30:30]
+                      cache_id                                                :  1, // [29:29]
+                      reserved_2a                                             :  7, // [28:22]
+                      rbm_override                                            :  4, // [21:18]
+                      rbm_override_valid                                      :  1, // [17:17]
+                      tqm_release_reason                                      :  4, // [16:13]
+                      first_msdu_index                                        :  4, // [12:9]
+                      buffer_or_desc_type                                     :  3, // [8:6]
+                      bm_action                                               :  3, // [5:3]
+                      release_source_module                                   :  3; // [2:0]
+             uint32_t sw_release_details_valid                                :  1, // [31:31]
+                      transmit_count                                          :  7, // [30:24]
+                      tqm_status_number                                       : 24; // [23:0]
+             uint32_t buffer_timestamp                                        : 19, // [31:13]
+                      fw_tx_notify_frame                                      :  3, // [12:10]
+                      last_msdu                                               :  1, // [9:9]
+                      first_msdu                                              :  1, // [8:8]
+                      ack_frame_rssi                                          :  8; // [7:0]
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t looping_count                                           :  4, // [31:28]
+                      tqm_status_number_31_24                                 :  8, // [27:20]
+                      tid                                                     :  4, // [19:16]
+                      sw_peer_id                                              : 16; // [15:0]
+#endif
+};
+
+
+/* Description		RELEASED_BUFF_OR_DESC_ADDR_INFO
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Details of the physical address of the buffer or link descriptor
+			 that is being released. Note that within this descriptor, 
+			WBM will look at the 'owner' of the released buffer/descriptor
+			 and forward it to SW/FW is WBM is not the owner.
+*/
+
+
+/* Description		BUFFER_ADDR_31_0
+
+			Address (lower 32 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB    0
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB    31
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK   0xffffffff
+
+
+/* Description		BUFFER_ADDR_39_32
+
+			Address (upper 8 bits) of the MSDU buffer OR MSDU_EXTENSION
+			 descriptor OR Link Descriptor
+			
+			In case of 'NULL' pointer, this field is set to 0
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB   0
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB   7
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK  0x000000ff
+
+
+/* Description		RETURN_BUFFER_MANAGER
+
+			Consumer: WBM
+			Producer: SW/FW
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			Indicates to which buffer manager the buffer OR MSDU_EXTENSION
+			 descriptor OR link descriptor that is being pointed to 
+			shall be returned after the frame has been processed. It
+			 is used by WBM for routing purposes.
+			
+			<enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
+			 to the WMB buffer idle list
+			<enum 1 WBM_CHIP0_IDLE_DESC_LIST> This buffer shall be returned
+			 to the WBM idle link descriptor idle list, where the chip
+			 0 WBM is chosen in case of a multi-chip config
+			<enum 2 WBM_CHIP1_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 1 WBM idle link descriptor idle list
+			<enum 3 WBM_CHIP2_IDLE_DESC_LIST> This buffer shall be returned
+			 to the chip 2 WBM idle link descriptor idle list
+			<enum 12 WBM_CHIP3_IDLE_DESC_LIST> This buffer shall be 
+			returned to chip 3 WBM idle link descriptor idle list
+			<enum 4 FW_BM> This buffer shall be returned to the FW
+			<enum 5 SW0_BM> This buffer shall be returned to the SW, 
+			ring 0
+			<enum 6 SW1_BM> This buffer shall be returned to the SW, 
+			ring 1
+			<enum 7 SW2_BM> This buffer shall be returned to the SW, 
+			ring 2
+			<enum 8 SW3_BM> This buffer shall be returned to the SW, 
+			ring 3
+			<enum 9 SW4_BM> This buffer shall be returned to the SW, 
+			ring 4
+			<enum 10 SW5_BM> This buffer shall be returned to the SW, 
+			ring 5
+			<enum 11 SW6_BM> This buffer shall be returned to the SW, 
+			ring 6
+			
+			<legal 0-12>
+*/
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+/* Description		SW_BUFFER_COOKIE
+
+			Cookie field exclusively used by SW. 
+			
+			In case of 'NULL' pointer, this field is set to 0
+			
+			HW ignores the contents, accept that it passes the programmed
+			 value on to other descriptors together with the physical
+			 address 
+			
+			Field can be used by SW to for example associate the buffers
+			 physical address with the virtual address
+			The bit definitions as used by SW are within SW HLD specification
+			
+			
+			NOTE1:
+			The three most significant bits can have a special meaning
+			 in case this struct is embedded in a TX_MPDU_DETAILS STRUCT, 
+			and field transmit_bw_restriction is set
+			
+			In case of NON punctured transmission:
+			Sw_buffer_cookie[19:17] = 3'b000: 20 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b001: 40 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b010: 80 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b011: 160 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b101: 240 MHz TX only
+			Sw_buffer_cookie[19:17] = 3'b100: 320 MHz TX only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			In case of punctured transmission:
+			Sw_buffer_cookie[19:16] = 4'b0000: pattern 0 only
+			Sw_buffer_cookie[19:16] = 4'b0001: pattern 1 only
+			Sw_buffer_cookie[19:16] = 4'b0010: pattern 2 only
+			Sw_buffer_cookie[19:16] = 4'b0011: pattern 3 only
+			Sw_buffer_cookie[19:16] = 4'b0100: pattern 4 only
+			Sw_buffer_cookie[19:16] = 4'b0101: pattern 5 only
+			Sw_buffer_cookie[19:16] = 4'b0110: pattern 6 only
+			Sw_buffer_cookie[19:16] = 4'b0111: pattern 7 only
+			Sw_buffer_cookie[19:16] = 4'b1000: pattern 8 only
+			Sw_buffer_cookie[19:16] = 4'b1001: pattern 9 only
+			Sw_buffer_cookie[19:16] = 4'b1010: pattern 10 only
+			Sw_buffer_cookie[19:16] = 4'b1011: pattern 11 only
+			Sw_buffer_cookie[19:18] = 2'b11: reserved
+			
+			Note: a punctured transmission is indicated by the presence
+			 of TLV TX_PUNCTURE_SETUP embedded in the scheduler TLV
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB    12
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB    31
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK   0xfffff000
+
+
+/* Description		RELEASE_SOURCE_MODULE
+
+			Indicates which module initiated the release of this buffer
+			 or descriptor
+			
+			<enum 1 release_source_RXDMA> DO NOT USE
+			<enum 2 release_source_REO> DO NOT USE
+			<enum 5 release_source_FW_RX> DO NOT USE
+			<enum 4 release_source_SW_RX> DO NOT USE
+			<enum 0 release_source_TQM> TQM released this buffer or 
+			descriptor
+			<enum 3 release_source_FW_TX> FW released this buffer or
+			 descriptor
+			<enum 6 release_source_SW_TX> SW released this buffer or
+			 descriptor
+			<legal 0-6>
+*/
+
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_OFFSET                            0x00000008
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_LSB                               0
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_MSB                               2
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_MASK                              0x00000007
+
+
+/* Description		BM_ACTION
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when the field return_buffer_manager in
+			 the Released_buff_or_desc_addr_info indicates:
+			WBM_IDLE_BUF_LIST or
+			WBM_IDLE_DESC_LIST
+			
+			An MSDU extension descriptor shall never be marked as WBM
+			 being the 'owner', and thus WBM will forward it to FW/SW
+			
+			
+			<enum 0 Put_in_idle_list> Put the buffer or descriptor back
+			 in the idle list. In case of MSDU or MDPU link descriptor, 
+			BM does not need to check to release any individual MSDU
+			 buffers
+			
+			<enum 1 release_msdu_list > This BM action can only be used
+			 in combination with buffer_or_desc_type being msdu_link_descriptor. 
+			Field first_msdu_index points out which MSDU pointer in 
+			the MSDU link descriptor is the first of an MPDU that is
+			 released.
+			BM shall release all the MSDU buffers linked to this first
+			 MSDU buffer pointer. All related MSDU buffer pointer entries
+			 shall be set to value 0, which represents the 'NULL" pointer. 
+			When all MSDU buffer pointers in the MSDU link descriptor
+			 are 'NULL', the MSDU link descriptor itself shall also 
+			be released.
+			
+			<enum 2 Put_in_idle_list_expanded> CURRENTLY NOT IMPLEMENTED....
+			
+			Put the buffer or descriptor back in the idle list. Only
+			 valid in combination with buffer_or_desc_type indicating
+			 MDPU_link_descriptor.
+			BM shall release the MPDU link descriptor as well as all
+			 MSDUs that are linked to the MPDUs in this descriptor. 
+			
+			
+			<legal 0-2>
+*/
+
+#define WBM_RELEASE_RING_TX_BM_ACTION_OFFSET                                        0x00000008
+#define WBM_RELEASE_RING_TX_BM_ACTION_LSB                                           3
+#define WBM_RELEASE_RING_TX_BM_ACTION_MSB                                           5
+#define WBM_RELEASE_RING_TX_BM_ACTION_MASK                                          0x00000038
+
+
+/* Description		BUFFER_OR_DESC_TYPE
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid when WBM is marked as the return_buffer_manager
+			 in the Released_Buffer_address_info
+			
+			Indicates that type of buffer or descriptor is being released
+			
+			
+			<enum 0 MSDU_rel_buffer> The address points to an MSDU buffer
+			 
+			<enum 1 msdu_link_descriptor> The address points to an TX
+			 MSDU link descriptor
+			<enum 2 mpdu_link_descriptor> The address points to an MPDU
+			 link descriptor
+			<enum 3 msdu_ext_descriptor > The address points to an MSDU
+			 extension descriptor.
+			In case BM finds this one in a release ring, it passes it
+			 on to FW...
+			<enum 4 queue_ext_descriptor> The address points to an TQM
+			 queue extension descriptor. WBM should treat this is the
+			 same way as a link descriptor. That is, put the 128 byte
+			 buffer back in the link buffer idle list.
+			
+			<legal 0-4>
+*/
+
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_OFFSET                              0x00000008
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_LSB                                 6
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_MSB                                 8
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_MASK                                0x000001c0
+
+
+/* Description		FIRST_MSDU_INDEX
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			Field only valid for the bm_action release_msdu_list.
+			
+			The index of the first MSDU in an MSDU link descriptor all
+			 belonging to the same MPDU.
+			
+			<legal 0-6>
+*/
+
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_LSB                                    9
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_MSB                                    12
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_MASK                                   0x00001e00
+
+
+/* Description		TQM_RELEASE_REASON
+
+			Consumer: WBM/SW/FW
+			Producer: TQM
+			
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			(rr = Release Reason)
+			<enum 0 tqm_rr_frame_acked> frame is removed because an 
+			ACK of BA for it was received 
+			<enum 1 tqm_rr_rem_cmd_rem> frame is removed because a remove
+			 command of type "Remove_mpdus" initiated by SW
+			<enum 2 tqm_rr_rem_cmd_tx> frame is removed because a remove
+			 command of type "Remove_transmitted_mpdus" initiated by
+			 SW
+			<enum 3 tqm_rr_rem_cmd_notx> frame is removed because a 
+			remove command of type "Remove_untransmitted_mpdus" initiated
+			 by SW
+			<enum 4 tqm_rr_rem_cmd_aged> frame is removed because a 
+			remove command of type "Remove_aged_mpdus" or "Remove_aged_msdus" 
+			initiated by SW
+			<enum 5 tqm_fw_reason1> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 6 tqm_fw_reason2> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 7 tqm_fw_reason3> frame is removed because a remove
+			 command where fw indicated that remove reason is fw_reason1
+			
+			<enum 8 tqm_rr_rem_cmd_disable_queue> frame is removed because
+			 a remove command of type "remove_mpdus_and_disable_queue" 
+			or "remove_msdus_and_disable_flow" initiated by SW
+			<enum 9 tqm_rr_rem_cmd_till_nonmatching> frame is removed
+			 because remove command of type "remove_till_nonmatching_mpdu" 
+			initiated by SW
+			<enum 10 tqm_rr_drop_threshold> frame is dropped at TQM 
+			entrance due to one of slow/medium/hard drop threshold criteria
+			
+			<enum 11 tqm_rr_link_desc_unavailable> frame is dropped 
+			at TQM entrance due to the WBM2TQM_LINK_RING having fewer
+			 descriptors than a threshold programmed in TQM
+			<enum 12 tqm_rr_drop_or_invalid_msdu> frame is dropped at
+			 TQM entrance due to 'TQM_Drop_frame' being set or "null" 
+			MSDU flow pointer or MSDU flow pointer 'Flow_valid' being
+			 zero or MSDU length being zero
+			<enum 13 tqm_rr_multicast_drop> frame is dropped at TQM 
+			entrance due to 'TQM_Drop_frame' being set with 'TCL_drop_reason' 
+			set to TCL_multicast_drop_for_vdev.
+			<enum 14 tqm_rr_vdev_mismatch_drop> frame is dropped at 
+			TQM entrance due to 'TQM_Drop_frame' being set with 'TCL_drop_reason' 
+			set to TCL_vdev_id_mismatch_drop.
+			Waikiki v1 and Hamilton v2 used value 12 for this.
+			
+			<legal 0-14>
+*/
+
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_LSB                                  13
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_MSB                                  16
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_MASK                                 0x0001e000
+
+
+/* Description		RBM_OVERRIDE_VALID
+
+			This is set to 0 for Tx cases not involving reinjection, 
+			and set to 1 for TQM release cases requiring FW reinjection
+			 (HastingsPrime FR54309).
+			
+			When set to 1, WBM releases the MSDU buffers to FW and overrides
+			 the tx_rate_stats field with words 2 and 3 of the 'TX_MSDU_DETAILS' 
+			structure, for FW reinjection of these MSDUs (HastingsPrime
+			 FR54309).
+			
+			<legal 0-1>
+*/
+
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_LSB                                  17
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_MSB                                  17
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_MASK                                 0x00020000
+
+
+/* Description		RBM_OVERRIDE
+
+			Field only valid when rbm_override_valid = 1
+			
+			WBM releases the MSDU buffers to FW and overrides the tx_rate_stats
+			 field with words 2 and 3 of the 'TX_MSDU_DETAILS' structure, 
+			for FW reinjection of these MSDUs (HastingsPrime FR54309).
+			
+			
+			In Beryllium, rbm_override gives the 'return_buffer_manager' 
+			and whence the WBM output ring corresponding to the FW reinjection
+			 path.
+*/
+
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_OFFSET                                     0x00000008
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_LSB                                        18
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_MSB                                        21
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_MASK                                       0x003c0000
+
+
+/* Description		RESERVED_2A
+
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_TX_RESERVED_2A_OFFSET                                      0x00000008
+#define WBM_RELEASE_RING_TX_RESERVED_2A_LSB                                         22
+#define WBM_RELEASE_RING_TX_RESERVED_2A_MSB                                         28
+#define WBM_RELEASE_RING_TX_RESERVED_2A_MASK                                        0x1fc00000
+
+
+/* Description		CACHE_ID
+
+			To improve WBM performance, out-of-order completions may
+			 be allowed to process multiple MPDUs in parallel.
+			
+			The MSDUs released from each cache would be in order so 'First_msdu' 
+			and this field together can be used by SW to reorder the
+			 completions back to the original order by keeping all MSDUs
+			 of an MPDU from one cache together before switching to 
+			the next MPDU (from either cache).
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_CACHE_ID_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_TX_CACHE_ID_LSB                                            29
+#define WBM_RELEASE_RING_TX_CACHE_ID_MSB                                            29
+#define WBM_RELEASE_RING_TX_CACHE_ID_MASK                                           0x20000000
+
+
+/* Description		COOKIE_CONVERSION_STATUS
+
+			0: 'Sw_buffer_cookie' not converted to 'Buffer_virt_addr'
+			
+			1: 'Sw_buffer_cookie' coverted to 'Buffer_virt_addr'
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_OFFSET                         0x00000008
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_LSB                            30
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_MSB                            30
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_MASK                           0x40000000
+
+
+/* Description		WBM_INTERNAL_ERROR
+
+			Can only be set by WBM.
+			
+			Is set when WBM got a buffer pointer but the action was 
+			to push it to the idle link descriptor ring or do link related
+			 activity
+			OR
+			Is set when WBM got a link buffer pointer but the action
+			 was to push it to the buffer  descriptor ring 
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_LSB                                  31
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_MSB                                  31
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_MASK                                 0x80000000
+
+
+/* Description		TQM_STATUS_NUMBER
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			The value in this field is equal to value of the 'TQM_CMD_Number' 
+			field from the TQM command or the 'TQM_add_cmd_Number' field
+			 from the TQM entrance ring descriptor LSB 24-bits.
+			
+			This field helps to correlate the statuses with the TQM 
+			commands.
+			
+			NOTE that SW could program this number to be equal to the
+			 PPDU_ID number in case direct correlation with the PPDU
+			 ID is desired
+			
+			<legal all> 
+*/
+
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_OFFSET                                0x0000000c
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_LSB                                   0
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_MSB                                   23
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_MASK                                  0x00ffffff
+
+
+/* Description		TRANSMIT_COUNT
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			The number of times this frame has been transmitted
+*/
+
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_OFFSET                                   0x0000000c
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_LSB                                      24
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_MSB                                      30
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_MASK                                     0x7f000000
+
+
+/* Description		SW_RELEASE_DETAILS_VALID
+
+			Consumer: SW
+			Producer: WBM
+			
+			When set, some WBM specific release info for SW is valid.
+			
+			This is set when WMB got a 'release_msdu_list' command from
+			 TQM and the return buffer manager is not WMB. WBM will 
+			then de-aggregate all the MSDUs and pass them one at a time
+			 on to the 'buffer owner'
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_OFFSET                         0x0000000c
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_LSB                            31
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_MSB                            31
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_MASK                           0x80000000
+
+
+/* Description		ACK_FRAME_RSSI
+
+			This field is only valid when the source is TQM.
+			
+			If this frame is removed as the result of the reception 
+			of an ACK or BA, this field indicates the RSSI of the received
+			 ACK or BA frame. 
+			
+			When the frame is removed as result of a direct remove command
+			 from the SW,  this field is set to 0x0 (which is never 
+			a valid value when real RSSI is available)
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_OFFSET                                   0x00000010
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_LSB                                      0
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_MSB                                      7
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_MASK                                     0x000000ff
+
+
+/* Description		FIRST_MSDU
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			When set, this MSDU is the first MSDU pointed to in the 'release_msdu_list' 
+			command.
+			
+			First_msdu ≠ last_msdu indicates the MSDU was part of 
+			an A-MSDU.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_OFFSET                                       0x00000010
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_LSB                                          8
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_MSB                                          8
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_MASK                                         0x00000100
+
+
+/* Description		LAST_MSDU
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			When set, this MSDU is the last MSDU pointed to in the 'release_msdu_list' 
+			command.
+			
+			First_msdu ≠ last_msdu indicates the MSDU was part of 
+			an A-MSDU.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_LAST_MSDU_OFFSET                                        0x00000010
+#define WBM_RELEASE_RING_TX_LAST_MSDU_LSB                                           9
+#define WBM_RELEASE_RING_TX_LAST_MSDU_MSB                                           9
+#define WBM_RELEASE_RING_TX_LAST_MSDU_MASK                                          0x00000200
+
+
+/* Description		FW_TX_NOTIFY_FRAME
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			This is the FW_tx_notify_frame field from the TX_MSDU_DETAILS
+			 for this frame from the MSDU link descriptor
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_OFFSET                               0x00000010
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_LSB                                  10
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_MSB                                  12
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_MASK                                 0x00001c00
+
+
+/* Description		BUFFER_TIMESTAMP
+
+			Field only valid when SW_release_details_valid is set.
+			
+			Consumer: SW
+			Producer: WBM
+			
+			This is the Buffer_timestamp field from the TX_MSDU_DETAILS
+			 for this frame from the MSDU link descriptor.
+			
+			Timestamp in units determined by the UMCMN 'TX_TIMESTAMP_RESOLUTION_SELECT' 
+			register
+			
+			Waikiki v1 and Hamilton used units of 1024 µs.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_OFFSET                                 0x00000010
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_LSB                                    13
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_MSB                                    31
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_MASK                                   0xffffe000
+
+
+/* Description		TX_RATE_STATS
+
+			Consumer: TQM/SW
+			Producer: SW/SCH(from TXPCU, PDG) /WBM (from RXDMA)
+			
+			Details for command execution tracking purposes.
+*/
+
+
+/* Description		TX_RATE_STATS_INFO_VALID
+
+			When set all other fields in this STRUCT contain valid info.
+			
+			
+			When clear, none of the other fields contain valid info.
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_OFFSET           0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_LSB              0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MSB              0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MASK             0x00000001
+
+
+/* Description		TRANSMIT_BW
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Indicates the BW of the upcoming transmission that shall
+			 likely start in about 3 -4 us on the medium
+			
+			<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 WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_LSB                           1
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MSB                           3
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MASK                          0x0000000e
+
+
+/* Description		TRANSMIT_PKT_TYPE
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The packet type
+			<enum 0 dot11a>802.11a PPDU type
+			<enum 1 dot11b>802.11b PPDU type
+			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
+			<enum 3 dot11ac>802.11ac PPDU type
+			<enum 4 dot11ax>802.11ax PPDU type
+			<enum 5 dot11ba>802.11ba (WUR) PPDU type
+			<enum 6 dot11be>802.11be PPDU type
+			<enum 7 dot11az>802.11az (ranging) PPDU type
+			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
+			 & aborted)
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_LSB                     4
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MSB                     7
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MASK                    0x000000f0
+
+
+/* Description		TRANSMIT_STBC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, STBC transmission rate was used.
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_OFFSET                      0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_LSB                         8
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MSB                         8
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MASK                        0x00000100
+
+
+/* Description		TRANSMIT_LDPC
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			When set, use LDPC transmission rates
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_OFFSET                      0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_LSB                         9
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MSB                         9
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MASK                        0x00000200
+
+
+/* Description		TRANSMIT_SGI
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			Specify the right GI for HE-Ranging NDPs (11az)/Short NDP.
+			
+			
+			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
+			 for HE
+			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
+			 for HE
+			<enum 2     1_6_us_sgi > HE related GI
+			<enum 3     3_2_us_sgi > HE related GI
+			<legal 0 - 3>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_OFFSET                       0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_LSB                          10
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MSB                          11
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MASK                         0x00000c00
+
+
+/* Description		TRANSMIT_MCS
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			For details, refer to  MCS_TYPE description
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_OFFSET                       0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_LSB                          12
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MSB                          15
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MASK                         0x0000f000
+
+
+/* Description		OFDMA_TRANSMISSION
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			
+			Set when the transmission was an OFDMA transmission (DL 
+			or UL).
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_OFFSET                 0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_LSB                    16
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MSB                    16
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MASK                   0x00010000
+
+
+/* Description		TONES_IN_RU
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Field filled in by PDG.
+			Not valid when in SW transmit mode
+			
+			The number of tones in the RU used.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_LSB                           17
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_MSB                           28
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_MASK                          0x1ffe0000
+
+
+/* Description		RESERVED_0A
+
+			<legal 0>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_LSB                           29
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_MSB                           31
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_MASK                          0xe0000000
+
+
+/* Description		PPDU_TRANSMISSION_TSF
+
+			Field only valid when Tx_rate_stats_info_valid is set
+			
+			Based on a HWSCH configuration register setting, this field
+			 either contains:
+			
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame finished.
+			OR
+			Lower 32 bits of the TSF, snapshot of this value when transmission
+			 of the PPDU containing the frame started
+			
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_OFFSET              0x00000018
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_LSB                 0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MSB                 31
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MASK                0xffffffff
+
+
+/* Description		SW_PEER_ID
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			1) Release of msdu buffer due to drop_frame = 1. Flow is
+			 not fetched and hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			2) Release of msdu buffer due to Flow is not fetched and
+			 hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			3) Release of msdu link due to remove_mpdu or acked_mpdu
+			 command.
+			buffer_or_desc_type = e_num1 msdu_link_descriptortqm_release_reason
+			 can be:e_num 1 tqm_rr_rem_cmd_reme_num 2 tqm_rr_rem_cmd_tx
+			
+			e_num 3 tqm_rr_rem_cmd_notxe_num 4 tqm_rr_rem_cmd_aged (this
+			 e_num is used for REMOVE_MPDU as well as REMOVE_MSDU).
+			
+			Sw_peer_id from the TX_MSDU_FLOW descriptor or TX_MPDU_QUEUE
+			 descriptor
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_OFFSET                                       0x0000001c
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_LSB                                          0
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_MSB                                          15
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_MASK                                         0x0000ffff
+
+
+/* Description		TID
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			1) Release of msdu buffer due to drop_frame = 1. Flow is
+			 not fetched and hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			2) Release of msdu buffer due to Flow is not fetched and
+			 hence sw_peer_id and tid = 0
+			buffer_or_desc_type = e_num 0 MSDU_rel_buffertqm_release_reason
+			 = e_num 1 tqm_rr_rem_cmd_rem
+			
+			
+			3) Release of msdu link due to remove_mpdu or acked_mpdu
+			 command.
+			buffer_or_desc_type = e_num1 msdu_link_descriptortqm_release_reason
+			 can be:e_num 1 tqm_rr_rem_cmd_reme_num 2 tqm_rr_rem_cmd_tx
+			
+			e_num 3 tqm_rr_rem_cmd_notxe_num 4 tqm_rr_rem_cmd_aged (this
+			 e_num is used for REMOVE_MPDU as well as REMOVE_MSDU).
+			
+			
+			This field represents the TID from the TX_MSDU_FLOW descriptor
+			 or TX_MPDU_QUEUE descriptor
+			
+			 <legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TID_OFFSET                                              0x0000001c
+#define WBM_RELEASE_RING_TX_TID_LSB                                                 16
+#define WBM_RELEASE_RING_TX_TID_MSB                                                 19
+#define WBM_RELEASE_RING_TX_TID_MASK                                                0x000f0000
+
+
+/* Description		TQM_STATUS_NUMBER_31_24
+
+			Field only valid when Release_source_module is set to release_source_TQM
+			
+			
+			The value in this field is equal to value of the 'TQM_CMD_Number' 
+			field from the TQM command or the 'TQM_add_cmd_Number' field
+			 from the TQM entrance ring descriptor MSB 8-bits.
+			
+			This field helps to correlate the statuses with the TQM 
+			commands.
+			
+			 <legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_OFFSET                          0x0000001c
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_LSB                             20
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_MSB                             27
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_MASK                            0x0ff00000
+
+
+/* Description		LOOPING_COUNT
+
+			Consumer: WBM/SW/FW
+			Producer: SW/TQM/RXDMA/REO/SWITCH
+			
+			If WBM_internal_error is set, this descriptor is sent to
+			 the dedicated 'WBM_ERROR_RELEASE' ring and Looping_count
+			 is used to indicate an error code.
+			
+			The values reported are documented further in the WBM MLD
+			 doc.
+			
+			If WBM_internal_error is not set, the following holds.
+			
+			A count value that indicates the number of times the producer
+			 of entries into the Buffer Manager Ring has looped around
+			 the ring.
+			At initialization time, this value is set to 0. On the first
+			 loop, this value is set to 1. After the max value is reached
+			 allowed by the number of bits for this field, the count
+			 value continues with 0 again.
+			
+			In case SW is the consumer of the ring entries, it can use
+			 this field to figure out up to where the producer of entries
+			 has created new entries. This eliminates the need to check
+			 where the "head pointer' of the ring is located once the
+			 SW starts processing an interrupt indicating that new entries
+			 have been put into this ring...
+			
+			Also note that SW if it wants only needs to look at the 
+			LSB bit of this count value.
+			<legal all>
+*/
+
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_OFFSET                                    0x0000001c
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_LSB                                       28
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_MSB                                       31
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_MASK                                      0xf0000000
+
+
+
+#endif   // WBM_RELEASE_RING_TX
diff --git a/hw/qca5332/wcss_seq_hwiobase.h b/hw/qca5332/wcss_seq_hwiobase.h
new file mode 100644
index 0000000..e45ac8a
--- /dev/null
+++ b/hw/qca5332/wcss_seq_hwiobase.h
@@ -0,0 +1,190 @@
+
+/* 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 __WCSS_SEQ_HWIOBASE_H__
+#define __WCSS_SEQ_HWIOBASE_H__
+
+
+/*----------------------------------------------------------------------------
+ * BASE: WCSS_CFGBUS
+ *--------------------------------------------------------------------------*/
+
+#define WCSS_CFGBUS_BASE                                            0x00008000
+#define WCSS_CFGBUS_BASE_SIZE                                       0x00008000
+#define WCSS_CFGBUS_BASE_PHYS                                       0x00008000
+
+/*----------------------------------------------------------------------------
+ * BASE: UMAC_NOC
+ *--------------------------------------------------------------------------*/
+
+#define UMAC_NOC_BASE                                               0x00140000
+#define UMAC_NOC_BASE_SIZE                                          0x00004200
+#define UMAC_NOC_BASE_PHYS                                          0x00140000
+
+/*----------------------------------------------------------------------------
+ * BASE: PHYA0
+ *--------------------------------------------------------------------------*/
+
+#define PHYA0_BASE                                                  0x00300000
+#define PHYA0_BASE_SIZE                                             0x00300000
+#define PHYA0_BASE_PHYS                                             0x00300000
+
+/*----------------------------------------------------------------------------
+ * BASE: DMAC
+ *--------------------------------------------------------------------------*/
+
+#define DMAC_BASE                                                   0x00900000
+#define DMAC_BASE_SIZE                                              0x00080000
+#define DMAC_BASE_PHYS                                              0x00900000
+
+/*----------------------------------------------------------------------------
+ * BASE: UMAC
+ *--------------------------------------------------------------------------*/
+
+#define UMAC_BASE                                                   0x00a00000
+#define UMAC_BASE_SIZE                                              0x0004d000
+#define UMAC_BASE_PHYS                                              0x00a00000
+
+/*----------------------------------------------------------------------------
+ * BASE: PMAC0
+ *--------------------------------------------------------------------------*/
+
+#define PMAC0_BASE                                                  0x00a80000
+#define PMAC0_BASE_SIZE                                             0x00040000
+#define PMAC0_BASE_PHYS                                             0x00a80000
+
+/*----------------------------------------------------------------------------
+ * BASE: MAC_WSIB
+ *--------------------------------------------------------------------------*/
+
+#define MAC_WSIB_BASE                                               0x00b3c000
+#define MAC_WSIB_BASE_SIZE                                          0x00004000
+#define MAC_WSIB_BASE_PHYS                                          0x00b3c000
+
+/*----------------------------------------------------------------------------
+ * BASE: CXC
+ *--------------------------------------------------------------------------*/
+
+#define CXC_BASE                                                    0x00b40000
+#define CXC_BASE_SIZE                                               0x00010000
+#define CXC_BASE_PHYS                                               0x00b40000
+
+/*----------------------------------------------------------------------------
+ * BASE: WFSS_PMM
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_PMM_BASE                                               0x00b50000
+#define WFSS_PMM_BASE_SIZE                                          0x00002401
+#define WFSS_PMM_BASE_PHYS                                          0x00b50000
+
+/*----------------------------------------------------------------------------
+ * BASE: WFSS_CC
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CC_BASE                                                0x00b60000
+#define WFSS_CC_BASE_SIZE                                           0x00008000
+#define WFSS_CC_BASE_PHYS                                           0x00b60000
+
+/*----------------------------------------------------------------------------
+ * BASE: WCMN_CORE
+ *--------------------------------------------------------------------------*/
+
+#define WCMN_CORE_BASE                                              0x00b68000
+#define WCMN_CORE_BASE_SIZE                                         0x000008a9
+#define WCMN_CORE_BASE_PHYS                                         0x00b68000
+
+/*----------------------------------------------------------------------------
+ * BASE: WIFI_CFGBUS_APB_TSLV
+ *--------------------------------------------------------------------------*/
+
+#define WIFI_CFGBUS_APB_TSLV_BASE                                   0x00b6b000
+#define WIFI_CFGBUS_APB_TSLV_BASE_SIZE                              0x00001000
+#define WIFI_CFGBUS_APB_TSLV_BASE_PHYS                              0x00b6b000
+
+/*----------------------------------------------------------------------------
+ * BASE: WFSS_CFGBUS
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CFGBUS_BASE                                            0x00b6c000
+#define WFSS_CFGBUS_BASE_SIZE                                       0x000000a0
+#define WFSS_CFGBUS_BASE_PHYS                                       0x00b6c000
+
+/*----------------------------------------------------------------------------
+ * BASE: WIFI_CFGBUS_AHB_TSLV
+ *--------------------------------------------------------------------------*/
+
+#define WIFI_CFGBUS_AHB_TSLV_BASE                                   0x00b6d000
+#define WIFI_CFGBUS_AHB_TSLV_BASE_SIZE                              0x00001000
+#define WIFI_CFGBUS_AHB_TSLV_BASE_PHYS                              0x00b6d000
+
+/*----------------------------------------------------------------------------
+ * BASE: UMAC_ACMT
+ *--------------------------------------------------------------------------*/
+
+#define UMAC_ACMT_BASE                                              0x00b6e000
+#define UMAC_ACMT_BASE_SIZE                                         0x00001000
+#define UMAC_ACMT_BASE_PHYS                                         0x00b6e000
+
+/*----------------------------------------------------------------------------
+ * BASE: WCSS_CC
+ *--------------------------------------------------------------------------*/
+
+#define WCSS_CC_BASE                                                0x00b80000
+#define WCSS_CC_BASE_SIZE                                           0x00010000
+#define WCSS_CC_BASE_PHYS                                           0x00b80000
+
+/*----------------------------------------------------------------------------
+ * BASE: PMM_TOP
+ *--------------------------------------------------------------------------*/
+
+#define PMM_TOP_BASE                                                0x00b90000
+#define PMM_TOP_BASE_SIZE                                           0x00010000
+#define PMM_TOP_BASE_PHYS                                           0x00b90000
+
+/*----------------------------------------------------------------------------
+ * BASE: WCSS_TOP_CMN
+ *--------------------------------------------------------------------------*/
+
+#define WCSS_TOP_CMN_BASE                                           0x00ba0000
+#define WCSS_TOP_CMN_BASE_SIZE                                      0x00004000
+#define WCSS_TOP_CMN_BASE_PHYS                                      0x00ba0000
+
+/*----------------------------------------------------------------------------
+ * BASE: MSIP
+ *--------------------------------------------------------------------------*/
+
+#define MSIP_BASE                                                   0x00bb0000
+#define MSIP_BASE_SIZE                                              0x00010000
+#define MSIP_BASE_PHYS                                              0x00bb0000
+
+/*----------------------------------------------------------------------------
+ * BASE: DBG
+ *--------------------------------------------------------------------------*/
+
+#define DBG_BASE                                                    0x01000000
+#define DBG_BASE_SIZE                                               0x00100000
+#define DBG_BASE_PHYS                                               0x01000000
+
+/*----------------------------------------------------------------------------
+ * BASE: Q6SS_WLAN
+ *--------------------------------------------------------------------------*/
+
+#define Q6SS_WLAN_BASE                                              0x01100000
+#define Q6SS_WLAN_BASE_SIZE                                         0x00100000
+#define Q6SS_WLAN_BASE_PHYS                                         0x01100000
+
+
+#endif /* __WCSS_SEQ_HWIOBASE_H__ */
diff --git a/hw/qca5332/wcss_seq_hwioreg_umac.h b/hw/qca5332/wcss_seq_hwioreg_umac.h
new file mode 100644
index 0000000..354fd48
--- /dev/null
+++ b/hw/qca5332/wcss_seq_hwioreg_umac.h
@@ -0,0 +1,49031 @@
+
+/* 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 __WCSS_SEQ_HWIOREG_UMAC_H__
+#define __WCSS_SEQ_HWIOREG_UMAC_H__
+
+#include "seq_hwio.h"
+#include "wcss_seq_hwiobase.h"
+#ifdef SCALE_INCLUDES
+#include "HALhwio.h"
+#else
+#include "msmhwio.h"
+#endif
+
+/*----------------------------------------------------------------------------
+ * MODULE: MAC_UMXI_REG
+ *--------------------------------------------------------------------------*/
+
+#define MAC_UMXI_REG_REG_BASE                                                                               (UMAC_BASE      + 0x00030000)
+#define MAC_UMXI_REG_REG_BASE_SIZE                                                                          0x4000
+#define MAC_UMXI_REG_REG_BASE_USED                                                                          0x510
+#define MAC_UMXI_REG_REG_BASE_PHYS                                                                          (UMAC_BASE_PHYS + 0x00030000)
+#define MAC_UMXI_REG_REG_BASE_OFFS                                                                          0x00030000
+
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x)                                                         ((x) + 0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_PHYS(x)                                                         ((x) + 0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OFFS                                                            (0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RMSK                                                            0x8000007f
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                          0x80000000
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                                  31
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_1_BMSK                                                    0x40
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_1_SHFT                                                       6
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_0_BMSK                                                    0x20
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_0_SHFT                                                       5
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_3_BMSK                                                    0x10
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_3_SHFT                                                       4
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_2_BMSK                                                     0x8
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_2_SHFT                                                       3
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_1_BMSK                                                     0x4
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_1_SHFT                                                       2
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_0_BMSK                                                     0x2
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_0_SHFT                                                       1
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_UNUSED_BMSK                                                            0x1
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_UNUSED_SHFT                                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x)                                                    ((x) + 0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_PHYS(x)                                                    ((x) + 0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OFFS                                                       (0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_VALUE_BMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x)                                                    ((x) + 0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_PHYS(x)                                                    ((x) + 0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OFFS                                                       (0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_RMSK                                                             0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_VALUE_BMSK                                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x)                                                       ((x) + 0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_PHYS(x)                                                       ((x) + 0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OFFS                                                          (0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_RMSK                                                          0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_VALUE_BMSK                                                    0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_VALUE_SHFT                                                             0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x)                                                    ((x) + 0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_PHYS(x)                                                    ((x) + 0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OFFS                                                       (0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_VALUE_BMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x)                                                    ((x) + 0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_PHYS(x)                                                    ((x) + 0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OFFS                                                       (0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_RMSK                                                             0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_VALUE_BMSK                                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x)                                                       ((x) + 0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_PHYS(x)                                                       ((x) + 0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OFFS                                                          (0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_RMSK                                                          0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_VALUE_BMSK                                                    0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_VALUE_SHFT                                                             0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x)                                                ((x) + 0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_PHYS(x)                                                ((x) + 0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OFFS                                                   (0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x)                                        ((x) + 0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_PHYS(x)                                        ((x) + 0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OFFS                                           (0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x)                                        ((x) + 0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_PHYS(x)                                        ((x) + 0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OFFS                                           (0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x)                                                ((x) + 0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_PHYS(x)                                                ((x) + 0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_OFFS                                                   (0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x)                                                 ((x) + 0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_PHYS(x)                                                 ((x) + 0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_OFFS                                                    (0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OFFS                                                   (0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x)                                        ((x) + 0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_PHYS(x)                                        ((x) + 0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OFFS                                           (0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x)                                        ((x) + 0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_PHYS(x)                                        ((x) + 0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OFFS                                           (0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_OFFS                                                   (0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_OFFS                                                    (0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OFFS                                                   (0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x)                                        ((x) + 0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_PHYS(x)                                        ((x) + 0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OFFS                                           (0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x)                                        ((x) + 0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_PHYS(x)                                        ((x) + 0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OFFS                                           (0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x)                                                ((x) + 0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_PHYS(x)                                                ((x) + 0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_OFFS                                                   (0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x)                                                 ((x) + 0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_PHYS(x)                                                 ((x) + 0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_OFFS                                                    (0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x)                                                ((x) + 0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_PHYS(x)                                                ((x) + 0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OFFS                                                   (0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x)                                        ((x) + 0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_PHYS(x)                                        ((x) + 0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OFFS                                           (0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x)                                        ((x) + 0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_PHYS(x)                                        ((x) + 0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OFFS                                           (0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x)                                                ((x) + 0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_PHYS(x)                                                ((x) + 0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_OFFS                                                   (0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x)                                                 ((x) + 0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_PHYS(x)                                                 ((x) + 0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_OFFS                                                    (0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x)                                                     ((x) + 0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_PHYS(x)                                                     ((x) + 0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OFFS                                                        (0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RMSK                                                           0x70101
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ATTR                                                                     0x0
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_WINDOW_SIZE_BMSK                                               0x70000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_WINDOW_SIZE_SHFT                                                    16
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RESET_CNT_BMSK                                                   0x100
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RESET_CNT_SHFT                                                       8
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_CNTR_EN_BMSK                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_CNTR_EN_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x)                                                  ((x) + 0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_PHYS(x)                                                  ((x) + 0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OFFS                                                     (0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_RMSK                                                     0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_POR                                                      0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ID_BITMAP_BMSK                                           0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ID_BITMAP_SHFT                                                    0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x)                                             ((x) + 0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_PHYS(x)                                             ((x) + 0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OFFS                                                (0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x)                                             ((x) + 0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_PHYS(x)                                             ((x) + 0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OFFS                                                (0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x)                                                     ((x) + 0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_PHYS(x)                                                     ((x) + 0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_OFFS                                                        (0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x)                                                      ((x) + 0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_PHYS(x)                                                      ((x) + 0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_OFFS                                                         (0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x)                                                     ((x) + 0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_PHYS(x)                                                     ((x) + 0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OFFS                                                        (0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RMSK                                                           0x70101
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ATTR                                                                     0x0
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_WINDOW_SIZE_BMSK                                               0x70000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_WINDOW_SIZE_SHFT                                                    16
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RESET_CNT_BMSK                                                   0x100
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RESET_CNT_SHFT                                                       8
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_CNTR_EN_BMSK                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_CNTR_EN_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x)                                             ((x) + 0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_PHYS(x)                                             ((x) + 0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OFFS                                                (0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x)                                             ((x) + 0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_PHYS(x)                                             ((x) + 0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OFFS                                                (0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x)                                                  ((x) + 0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_PHYS(x)                                                  ((x) + 0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OFFS                                                     (0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_RMSK                                                     0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_POR                                                      0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ID_BITMAP_BMSK                                           0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ID_BITMAP_SHFT                                                    0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x)                                                     ((x) + 0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_PHYS(x)                                                     ((x) + 0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_OFFS                                                        (0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x)                                                      ((x) + 0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_PHYS(x)                                                      ((x) + 0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_OFFS                                                         (0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x)                                                         ((x) + 0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_PHYS(x)                                                         ((x) + 0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OFFS                                                            (0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_WR_REMAP_EN_BMSK                                                0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_WR_REMAP_EN_SHFT                                                        31
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RD_REMAP_EN_BMSK                                                0x40000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RD_REMAP_EN_SHFT                                                        30
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_SEC_BMSK                                                  0x20000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_SEC_SHFT                                                          29
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_ADDR_BMSK                                                 0x1fffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_ADDR_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OFFS                                                           (0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_RMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_POR                                                            0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ATTR                                                                        0x3
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_VAL_BMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_VAL_SHFT                                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x)                                                 ((x) + 0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_PHYS(x)                                                 ((x) + 0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OFFS                                                    (0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_BASE_ADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_BASE_ADDR_LSB_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x)                                                 ((x) + 0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_PHYS(x)                                                 ((x) + 0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OFFS                                                    (0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_RMSK                                                          0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_BASE_ADDR_MSB_BMSK                                            0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_BASE_ADDR_MSB_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x)                                                 ((x) + 0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_PHYS(x)                                                 ((x) + 0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OFFS                                                    (0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_BASE_ADDR_MASK_LSB_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_BASE_ADDR_MASK_LSB_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x)                                                 ((x) + 0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PHYS(x)                                                 ((x) + 0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OFFS                                                    (0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_RMSK                                                    0xc00000ff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_POR                                                     0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_SS_UP_CHK_ENABLE_BMSK                                   0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_SS_UP_CHK_ENABLE_SHFT                                           31
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PCIE_STATE_CHK_ENABLE_BMSK                              0x40000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PCIE_STATE_CHK_ENABLE_SHFT                                      30
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_BASE_ADDR_MASK_MSB_BMSK                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_BASE_ADDR_MASK_MSB_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x)                                                     ((x) + 0xb4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_PHYS(x)                                                     ((x) + 0xb4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_OFFS                                                        (0xb4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x)                                                     ((x) + 0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_PHYS(x)                                                     ((x) + 0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_OFFS                                                        (0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_RMSK                                                              0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_VALUE_BMSK                                                        0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x)                                                    ((x) + 0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_PHYS(x)                                                    ((x) + 0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_OFFS                                                       (0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_RMSK                                                            0xfff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_POR                                                        0x00000211
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ATTR                                                                    0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_RD_ADDR_BMSK                                           0xe00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_RD_ADDR_SHFT                                               9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_ADDR_BMSK                                           0x1f0
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_ADDR_SHFT                                               4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_DATA_BMSK                                             0xf
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_DATA_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x)                                                 ((x) + 0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_PHYS(x)                                                 ((x) + 0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OFFS                                                    (0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_RMSK                                                           0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                    0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                      0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x)                                                ((x) + 0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_PHYS(x)                                                ((x) + 0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OFFS                                                   (0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RMSK                                                   0x80003fff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ATTR                                                                0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                 0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                         31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_SPARE_BMSK                                                 0x2000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_SPARE_SHFT                                                     13
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_BST_FIFO_AXI_MAS_BMSK                                   0x1000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_BST_FIFO_AXI_MAS_SHFT                                       12
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_BST_FIFO_AXI_MAS_BMSK                                    0x800
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_BST_FIFO_AXI_MAS_SHFT                                       11
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WDOG_CTR_BMSK                                               0x400
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WDOG_CTR_SHFT                                                  10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_FIFO_BMSK                                                0x200
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_FIFO_SHFT                                                    9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_FIFO_BMSK                                           0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_FIFO_SHFT                                               8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_BMSK                                            0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_SHFT                                               7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_AXI_MAS_BMSK                                              0x40
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_AXI_MAS_SHFT                                                 6
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_BMSK                                         0x20
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_SHFT                                            5
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_BMSK                                         0x10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_SHFT                                            4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_CMD_BMSK                                              0x8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_CMD_SHFT                                                3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_CMD_BMSK                                              0x4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_CMD_SHFT                                                2
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_CMD_BMSK                                                   0x2
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_CMD_SHFT                                                     1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CORE_BMSK                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CORE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x)                                                      ((x) + 0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_PHYS(x)                                                      ((x) + 0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_OFFS                                                         (0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_RMSK                                                         0x81010101
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_BMSK                                     0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_SHFT                                             31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_BMSK                                       0x1000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_SHFT                                              24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_BMSK                                         0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_SHFT                                              16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_HW_ERR_INT_BMSK                                     0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_HW_ERR_INT_SHFT                                         8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_WARN_INT_BMSK                                         0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_WARN_INT_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x)                                                     ((x) + 0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_PHYS(x)                                                     ((x) + 0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_OFFS                                                        (0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_RMSK                                                          0xffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_BMSK                                     0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_ERR_PORT_BMSK                                            0xff00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_ERR_PORT_SHFT                                                 8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_RD_ERR_PORT_BMSK                                              0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_RD_ERR_PORT_SHFT                                                 0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x)                                              ((x) + 0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_PHYS(x)                                              ((x) + 0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_OFFS                                                 (0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_RMSK                                                  0x1010101
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_POR                                                  0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ATTR                                                              0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_ACC_ERR_BMSK                           0x1000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_ACC_ERR_SHFT                                  24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_ACC_ERR_BMSK                             0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_ACC_ERR_SHFT                                  16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_TIMEOUT_BMSK                               0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_TIMEOUT_SHFT                                   8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_TIMEOUT_BMSK                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_TIMEOUT_SHFT                                   0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x)                                             ((x) + 0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_PHYS(x)                                             ((x) + 0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_OFFS                                                (0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_RMSK                                                    0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ATTR                                                             0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_WR_PCIE_L0_ACC_ERR_PORT_BMSK                        0xff00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_WR_PCIE_L0_ACC_ERR_PORT_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_RD_PCIE_L0_ACC_ERR_PORT_BMSK                          0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_RD_PCIE_L0_ACC_ERR_PORT_SHFT                             0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x)                                               ((x) + 0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_PHYS(x)                                               ((x) + 0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OFFS                                                  (0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_RMSK                                                  0xffff3f3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_BMSK                0xff000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_SHFT                        24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_BMSK                 0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_SHFT                       16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_BMSK                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_BMSK                         0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_SHFT                            0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x)                                               ((x) + 0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_PHYS(x)                                               ((x) + 0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OFFS                                                  (0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_RMSK                                                  0xffff3f3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_BMSK                0xff000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_SHFT                        24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_BMSK                 0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_SHFT                       16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_BMSK                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_BMSK                         0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_SHFT                            0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x)                                             ((x) + 0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_PHYS(x)                                             ((x) + 0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OFFS                                                (0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_RMSK                                                0xefffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_POR                                                 0x46000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_INT_BMSK                        0xe0000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_INT_SHFT                                29
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_EXT_BMSK                         0xe000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_EXT_SHFT                                25
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_ISSUE_THRESHOLD_BMSK                        0x1ffe000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_ISSUE_THRESHOLD_SHFT                               13
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_WRITE_PREFETCH_THRESHOLD_BMSK                       0x1ffe
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_WRITE_PREFETCH_THRESHOLD_SHFT                            1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_CLEAR_STATS_BMSK                                       0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_CLEAR_STATS_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x)                                             ((x) + 0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_PHYS(x)                                             ((x) + 0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OFFS                                                (0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_RMSK                                                0xc00007ff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_POR                                                 0x00000013
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SIZE_SEL_ENABLE_BMSK                          0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SIZE_SEL_ENABLE_SHFT                                  31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SPLIT_DISABLE_BMSK                            0x40000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SPLIT_DISABLE_SHFT                                    30
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_RD_FLUSH_BMSK                                0x400
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_RD_FLUSH_SHFT                                   10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_WR_FLUSH_BMSK                                0x200
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_WR_FLUSH_SHFT                                    9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DISABLE_WR_PREFIL_BMSK                               0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DISABLE_WR_PREFIL_SHFT                                   8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_WR_BOUNDARY_SPLIT_BMSK                            0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_WR_BOUNDARY_SPLIT_SHFT                               7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_RD_BOUNDARY_SPLIT_BMSK                            0x40
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_RD_BOUNDARY_SPLIT_SHFT                               6
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_INT_BMSK                             0x38
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_INT_SHFT                                3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_EXT_BMSK                              0x7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_EXT_SHFT                                0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x)                                             ((x) + 0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_PHYS(x)                                             ((x) + 0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OFFS                                                (0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_RMSK                                                0xffff0001
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_POR                                                 0x00ff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_LIMIT_BMSK                            0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_LIMIT_SHFT                                    16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_DISABLE_BMSK                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_DISABLE_SHFT                                   0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x)                                              ((x) + 0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_PHYS(x)                                              ((x) + 0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_OFFS                                                 (0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_RMSK                                                     0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_POR                                                  0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ATTR                                                              0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_GXI_WDOG_WARN_STATUS_BMSK                                0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_GXI_WDOG_WARN_STATUS_SHFT                                     0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x)                                                 ((x) + 0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_PHYS(x)                                                 ((x) + 0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_OFFS                                                    (0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_BMSK                                  0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_SHFT                                          16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_BMSK                                     0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x)                                           ((x) + 0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_PHYS(x)                                           ((x) + 0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OFFS                                              (0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_RMSK                                              0xffff0001
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_POR                                               0x00ff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ATTR                                                           0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_LIMIT_BMSK                        0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_LIMIT_SHFT                                16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_DISABLE_BMSK                             0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_DISABLE_SHFT                               0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x)                                            ((x) + 0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_PHYS(x)                                            ((x) + 0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_OFFS                                               (0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_RMSK                                                   0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_GXI_WDOG_HW_ERR_STATUS_BMSK                            0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_GXI_WDOG_HW_ERR_STATUS_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x)                                               ((x) + 0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_PHYS(x)                                               ((x) + 0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OFFS                                                  (0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_RMSK                                                     0xfffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                   0xe0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                        17
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                      0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                      0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x)                                               ((x) + 0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_PHYS(x)                                               ((x) + 0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OFFS                                                  (0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_RMSK                                                     0xfffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                   0xe0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                        17
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                      0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                      0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x)                                     ((x) + 0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_PHYS(x)                                     ((x) + 0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OFFS                                        (0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x)                                     ((x) + 0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_PHYS(x)                                     ((x) + 0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OFFS                                        (0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x)                                     ((x) + 0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_PHYS(x)                                     ((x) + 0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OFFS                                        (0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x)                                     ((x) + 0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_PHYS(x)                                     ((x) + 0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OFFS                                        (0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x)                                            ((x) + 0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_PHYS(x)                                            ((x) + 0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OFFS                                               (0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RMSK                                                   0xbfbf
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ATTR                                                            0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_EN_BMSK                                         0x8000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_EN_SHFT                                             15
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_CNT_BMSK                                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_CNT_SHFT                                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_EN_BMSK                                           0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_EN_SHFT                                              7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_CNT_BMSK                                          0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_CNT_SHFT                                             0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x)                                                       ((x) + 0x118)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_PHYS(x)                                                       ((x) + 0x118)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OFFS                                                          (0x118)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RMSK                                                              0xbfbf
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_DBG_EN_BMSK                                           0x8000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_DBG_EN_SHFT                                               15
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_ADDR_BMSK                                             0x3f00
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_ADDR_SHFT                                                  8
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_DBG_EN_BMSK                                             0x80
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_DBG_EN_SHFT                                                7
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_ADDR_BMSK                                               0x3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_ADDR_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x)                                                       ((x) + 0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_PHYS(x)                                                       ((x) + 0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_OFFS                                                          (0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RMSK                                                          0x3f3f3f3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ATTR                                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_WR_PTR_BMSK                                       0x3f000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_WR_PTR_SHFT                                               24
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_RD_PTR_BMSK                                         0x3f0000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_RD_PTR_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_WR_PTR_BMSK                                           0x3f00
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_WR_PTR_SHFT                                                8
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_RD_PTR_BMSK                                             0x3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_RD_PTR_SHFT                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x)                                                      ((x) + 0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_PHYS(x)                                                      ((x) + 0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_OFFS                                                         (0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x)                                                      ((x) + 0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_PHYS(x)                                                      ((x) + 0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_OFFS                                                         (0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x)                                                      ((x) + 0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_PHYS(x)                                                      ((x) + 0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_OFFS                                                         (0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x)                                                      ((x) + 0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_PHYS(x)                                                      ((x) + 0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_OFFS                                                         (0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x)                                                       ((x) + 0x130)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_PHYS(x)                                                       ((x) + 0x130)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OFFS                                                          (0x130)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_RMSK                                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_POR                                                           0xff000000
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_REG_SS_ADDR_MASK_LSB_BMSK                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_REG_SS_ADDR_MASK_LSB_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x)                                                       ((x) + 0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_PHYS(x)                                                       ((x) + 0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OFFS                                                          (0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_RMSK                                                                0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_POR                                                           0x0000007f
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_REG_SS_ADDR_MASK_MSB_BMSK                                           0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_REG_SS_ADDR_MASK_MSB_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x)                                                   ((x) + 0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_PHYS(x)                                                   ((x) + 0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OFFS                                                      (0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_REG_INT_ADDR_MASK_LSB_BMSK                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_REG_INT_ADDR_MASK_LSB_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x)                                                   ((x) + 0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_PHYS(x)                                                   ((x) + 0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OFFS                                                      (0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_POR                                                       0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_REG_INT_ADDR_MASK_MSB_BMSK                                      0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_REG_INT_ADDR_MASK_MSB_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x)                                                      ((x) + 0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_PHYS(x)                                                      ((x) + 0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OFFS                                                         (0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_POR                                                          0x00b80000
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ATTR                                                                      0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_REG_SS_ADDR_RANGE_LSB_BMSK                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_REG_SS_ADDR_RANGE_LSB_SHFT                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x)                                                      ((x) + 0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_PHYS(x)                                                      ((x) + 0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OFFS                                                         (0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_RMSK                                                               0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_POR                                                          0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ATTR                                                                      0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_REG_SS_ADDR_RANGE_MSB_BMSK                                         0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_REG_SS_ADDR_RANGE_MSB_SHFT                                            0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x)                                                         ((x) + 0x148)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_PHYS(x)                                                         ((x) + 0x148)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OFFS                                                            (0x148)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_RMSK                                                            0xff13ff13
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_ID_BMSK                                          0xff000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_ID_SHFT                                                  24
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_BMSK                                       0x100000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_SHFT                                             20
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_BMSK                                         0x20000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_SHFT                                              17
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_BMSK                                          0x10000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_ID_BMSK                                                   0xff00
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_ID_SHFT                                                        8
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_BMSK                                                0x10
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_SHFT                                                   4
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_CHK_EN_BMSK                                                  0x2
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_CHK_EN_SHFT                                                    1
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_INJ_ENABLE_BMSK                                                   0x1
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_INJ_ENABLE_SHFT                                                     0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x)                                                         ((x) + 0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_PHYS(x)                                                         ((x) + 0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OFFS                                                            (0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_RMSK                                                            0xff07ff07
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_ID_BMSK                                          0xff000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_ID_SHFT                                                  24
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_BMSK                                        0x40000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_SHFT                                             18
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_BMSK                                         0x20000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_SHFT                                              17
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_BMSK                                          0x10000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_ID_BMSK                                                   0xff00
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_ID_SHFT                                                        8
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_BMSK                                                 0x4
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_SHFT                                                   2
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_CHK_EN_BMSK                                                  0x2
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_CHK_EN_SHFT                                                    1
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_INJ_ENABLE_BMSK                                                   0x1
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_INJ_ENABLE_SHFT                                                     0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x)                                                   ((x) + 0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_PHYS(x)                                                   ((x) + 0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OFFS                                                      (0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x)                                                   ((x) + 0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_PHYS(x)                                                   ((x) + 0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OFFS                                                      (0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_BMSK                                               0xff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x)                                                   ((x) + 0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_PHYS(x)                                                   ((x) + 0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OFFS                                                      (0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x)                                                   ((x) + 0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_PHYS(x)                                                   ((x) + 0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OFFS                                                      (0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x)                                                   ((x) + 0x160)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_PHYS(x)                                                   ((x) + 0x160)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OFFS                                                      (0x160)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x)                                                   ((x) + 0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_PHYS(x)                                                   ((x) + 0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OFFS                                                      (0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_BMSK                                               0xff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x)                                                   ((x) + 0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_PHYS(x)                                                   ((x) + 0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OFFS                                                      (0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x)                                                   ((x) + 0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_PHYS(x)                                                   ((x) + 0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OFFS                                                      (0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x)                                              ((x) + 0x170)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_PHYS(x)                                              ((x) + 0x170)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OFFS                                                 (0x170)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_RMSK                                                 0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_POR                                                  0x08000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ATTR                                                              0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TIMING_TRACKER_UNIT_BMSK                             0x20000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TIMING_TRACKER_UNIT_SHFT                                     29
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_WRITES_ENABLE_BMSK                             0x10000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_WRITES_ENABLE_SHFT                                     28
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_READS_ENABLE_BMSK                               0x8000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_READS_ENABLE_SHFT                                      27
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_TIMEOUT_BMSK                          0x4000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_TIMEOUT_SHFT                                 26
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_ERROR_BMSK                            0x2000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_ERROR_SHFT                                   25
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_BMSK                                        0x1ffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_SHFT                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x)                               ((x) + 0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_PHYS(x)                               ((x) + 0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OFFS                                  (0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_RMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_POR                                   0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_POR_RMSK                              0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ATTR                                               0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ID_BITMAP_BMSK                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ID_BITMAP_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x)                               ((x) + 0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_PHYS(x)                               ((x) + 0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OFFS                                  (0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_RMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_POR                                   0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_POR_RMSK                              0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ATTR                                               0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ID_BITMAP_BMSK                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ID_BITMAP_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x)                                            ((x) + 0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_PHYS(x)                                            ((x) + 0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_OFFS                                               (0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_RMSK                                                      0xf
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ERROR_TRACKING_ARRAY_INDEX_BMSK                           0xc
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ERROR_TRACKING_ARRAY_INDEX_SHFT                             2
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_TIMEOUT_STATUS_BMSK                                   0x2
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_TIMEOUT_STATUS_SHFT                                     1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_ERROR_STATUS_BMSK                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_ERROR_STATUS_SHFT                                       0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n)                                       ((base) + 0X180 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_PHYS(base,n)                                       ((base) + 0X180 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_OFFS(n)                                            (0X180 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_MAXn                                                        3
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n), HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_RMSK)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n), mask)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR_LOW_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR_LOW_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n)                                       ((base) + 0X190 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_PHYS(base,n)                                       ((base) + 0X190 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_OFFS(n)                                            (0X190 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MAXn                                                        3
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n), HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_RMSK)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n), mask)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_ONGOING_BMSK                           0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_ONGOING_SHFT                                   31
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_NEXT_MISSED_CAPTURED_COUNT_BMSK                    0x70000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_NEXT_MISSED_CAPTURED_COUNT_SHFT                            28
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TIME_BMSK                               0xfff0000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TIME_SHFT                                      16
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_SIZE_BMSK                                  0xc000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_SIZE_SHFT                                      14
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TYPE_BMSK                                  0x2000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TYPE_SHFT                                      13
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MID_BMSK                                               0x1f00
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MID_SHFT                                                    8
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR_HIGH_BMSK                                           0xff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR_HIGH_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x)                                                 ((x) + 0x1a0)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_PHYS(x)                                                 ((x) + 0x1a0)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_OFFS                                                    (0x1a0)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_TIMESTAMP_BMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_TIMESTAMP_SHFT                                                   0
+
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x)                                                 ((x) + 0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_PHYS(x)                                                 ((x) + 0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_OFFS                                                    (0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_TIMESTAMP_BMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_TIMESTAMP_SHFT                                                   0
+
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x)                                                  ((x) + 0x1a8)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_PHYS(x)                                                  ((x) + 0x1a8)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OFFS                                                     (0x1a8)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_RMSK                                                          0xfff
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_POR                                                      0x00000049
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_VAL_BMSK                                 0xc00
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_VAL_SHFT                                    10
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_EN_BMSK                                  0x200
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_EN_SHFT                                      9
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_VAL_BMSK                                 0x180
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_VAL_SHFT                                     7
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_EN_BMSK                                   0x40
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_EN_SHFT                                      6
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_VAL_BMSK                                  0x30
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_VAL_SHFT                                     4
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_EN_BMSK                                    0x8
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_EN_SHFT                                      3
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_VAL_BMSK                                   0x6
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_VAL_SHFT                                     1
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_EN_BMSK                                    0x1
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_EN_SHFT                                      0
+
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x)                                                        ((x) + 0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_PHYS(x)                                                        ((x) + 0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_OFFS                                                           (0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RMSK                                                            0x1ff01ff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_POR                                                            0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ATTR                                                                        0x1
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_FLUSH_CNT_NOT_ZERO_BMSK                                      0x1000000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_FLUSH_CNT_NOT_ZERO_SHFT                                             24
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_PORT_ID_BMSK                                                  0xff0000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_PORT_ID_SHFT                                                        16
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_FLUSH_CNT_NOT_ZERO_BMSK                                          0x100
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_FLUSH_CNT_NOT_ZERO_SHFT                                              8
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_PORT_ID_BMSK                                                      0xff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_PORT_ID_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x)                                                               ((x) + 0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_PHYS(x)                                                               ((x) + 0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OFFS                                                                  (0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_RMSK                                                                     0x1001f
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_POR                                                                   0x00000000
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ATTR                                                                               0x3
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                0x10000
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                     16
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_TESTBUS_SELECT_BMSK                                                         0x1f
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_TESTBUS_SELECT_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x)                                                             ((x) + 0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_PHYS(x)                                                             ((x) + 0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OFFS                                                                (0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_RMSK                                                                0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_POR                                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ATTR                                                                             0x3
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_MASK_BMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_MASK_SHFT                                                                    0
+
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x)                                                             ((x) + 0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_PHYS(x)                                                             ((x) + 0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OFFS                                                                (0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_RMSK                                                                0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_POR                                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ATTR                                                                             0x3
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_MASK_BMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_MASK_SHFT                                                                    0
+
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                  ((x) + 0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                  ((x) + 0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                     (0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                      0x7ffe0002
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                   0xfffe0000
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                           17
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                    0x1fffc
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                          2
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                 0x2
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                   1
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                  0x1
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                    0
+
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x)                                                          ((x) + 0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_PHYS(x)                                                          ((x) + 0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OFFS                                                             (0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_RMSK                                                                    0x1
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_POR                                                              0x00000000
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ATTR                                                                          0x3
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                             0x1
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                               0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WBM_REG
+ *--------------------------------------------------------------------------*/
+
+#define WBM_REG_REG_BASE                                                                                        (UMAC_BASE      + 0x00034000)
+#define WBM_REG_REG_BASE_SIZE                                                                                   0x4000
+#define WBM_REG_REG_BASE_USED                                                                                   0x3124
+#define WBM_REG_REG_BASE_PHYS                                                                                   (UMAC_BASE_PHYS + 0x00034000)
+#define WBM_REG_REG_BASE_OFFS                                                                                   0x00034000
+
+#define HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x)                                                                      ((x) + 0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_PHYS(x)                                                                      ((x) + 0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OFFS                                                                         (0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_RMSK                                                                              0x9ff
+#define HWIO_WBM_R0_GENERAL_ENABLE_POR                                                                          0x00000020
+#define HWIO_WBM_R0_GENERAL_ENABLE_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_GENERAL_ENABLE_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_GENERAL_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_GENERAL_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_GENERAL_ENABLE_IN(x))
+#define HWIO_WBM_R0_GENERAL_ENABLE_LOWER_WATERMARK_DISABLE_BMSK                                                      0x800
+#define HWIO_WBM_R0_GENERAL_ENABLE_LOWER_WATERMARK_DISABLE_SHFT                                                         11
+#define HWIO_WBM_R0_GENERAL_ENABLE_LPM_CACHE_SELF_FLUSH_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_GENERAL_ENABLE_LPM_CACHE_SELF_FLUSH_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_CONTENT_CLEAR_ENABLE_BMSK                                                0x80
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_CONTENT_CLEAR_ENABLE_SHFT                                                   7
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_BYPASS_DISABLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_BYPASS_DISABLE_SHFT                                                         6
+#define HWIO_WBM_R0_GENERAL_ENABLE_MSDU_BUFFER_BYPASS_DISABLE_BMSK                                                    0x20
+#define HWIO_WBM_R0_GENERAL_ENABLE_MSDU_BUFFER_BYPASS_DISABLE_SHFT                                                       5
+#define HWIO_WBM_R0_GENERAL_ENABLE_RELEASE_FUNCTION_ENABLE_BMSK                                                       0x10
+#define HWIO_WBM_R0_GENERAL_ENABLE_RELEASE_FUNCTION_ENABLE_SHFT                                                          4
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_CONSUMER_ENABLE_BMSK                                                 0x8
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_CONSUMER_ENABLE_SHFT                                                   3
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_PRODUCER_ENABLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_PRODUCER_ENABLE_SHFT                                                   2
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_CONSUMER_ENABLE_BMSK                                               0x2
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_CONSUMER_ENABLE_SHFT                                                 1
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_PRODUCER_ENABLE_BMSK                                               0x1
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_PRODUCER_ENABLE_SHFT                                                 0
+
+#define HWIO_WBM_R0_DUP_DET_CFG_ADDR(x)                                                                         ((x) + 0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_PHYS(x)                                                                         ((x) + 0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_OFFS                                                                            (0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_RMSK                                                                                 0x1ff
+#define HWIO_WBM_R0_DUP_DET_CFG_POR                                                                             0x000000ff
+#define HWIO_WBM_R0_DUP_DET_CFG_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_DUP_DET_CFG_ATTR                                                                                         0x3
+#define HWIO_WBM_R0_DUP_DET_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_CFG_IN(x))
+#define HWIO_WBM_R0_DUP_DET_CFG_IDLE_DIST_DUP_CHECK_BMSK                                                             0x100
+#define HWIO_WBM_R0_DUP_DET_CFG_IDLE_DIST_DUP_CHECK_SHFT                                                                 8
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_TX_RELEASE_RING_EN_BMSK                                                            0x80
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_TX_RELEASE_RING_EN_SHFT                                                               7
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_TX_RELEASE_RING_EN_BMSK                                                            0x40
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_TX_RELEASE_RING_EN_SHFT                                                               6
+#define HWIO_WBM_R0_DUP_DET_CFG_TQM_RELEASE_RING_EN_BMSK                                                              0x20
+#define HWIO_WBM_R0_DUP_DET_CFG_TQM_RELEASE_RING_EN_SHFT                                                                 5
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_RX_RELEASE_RING_EN_BMSK                                                            0x10
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_RX_RELEASE_RING_EN_SHFT                                                               4
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_RX_RELEASE_RING_EN_BMSK                                                             0x8
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_RX_RELEASE_RING_EN_SHFT                                                               3
+#define HWIO_WBM_R0_DUP_DET_CFG_REO_RELEASE_RING_EN_BMSK                                                               0x4
+#define HWIO_WBM_R0_DUP_DET_CFG_REO_RELEASE_RING_EN_SHFT                                                                 2
+#define HWIO_WBM_R0_DUP_DET_CFG_RXDMA_RELEASE_RING_EN_BMSK                                                             0x2
+#define HWIO_WBM_R0_DUP_DET_CFG_RXDMA_RELEASE_RING_EN_SHFT                                                               1
+#define HWIO_WBM_R0_DUP_DET_CFG_DUPLICATE_DETECTION_ENABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_DUP_DET_CFG_DUPLICATE_DETECTION_ENABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x)                                                           ((x) + 0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_PHYS(x)                                                           ((x) + 0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OFFS                                                              (0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_RMSK                                                                    0xff
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_POR                                                               0x00000000
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ATTR                                                                           0x3
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT2_SRNG_P_MLO_BMSK                                            0xc0
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT2_SRNG_P_MLO_SHFT                                               6
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT1_SRNG_P_MLO_BMSK                                            0x30
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT1_SRNG_P_MLO_SHFT                                               4
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN2_SRNG_C_MLO_BMSK                                              0xc
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN2_SRNG_C_MLO_SHFT                                                2
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN1_SRNG_C_MLO_BMSK                                              0x3
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN1_SRNG_C_MLO_SHFT                                                0
+
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OFFS                                                                  (0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_RMSK                                                                         0x3
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT2_BMSK                                                            0x2
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT2_SHFT                                                              1
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT1_BMSK                                                            0x1
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT1_SHFT                                                              0
+
+#define HWIO_WBM_R0_VC_ID_CFG_ADDR(x)                                                                           ((x) + 0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_PHYS(x)                                                                           ((x) + 0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_OFFS                                                                              (0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_RMSK                                                                                  0xfbbe
+#define HWIO_WBM_R0_VC_ID_CFG_POR                                                                               0x00000800
+#define HWIO_WBM_R0_VC_ID_CFG_POR_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R0_VC_ID_CFG_ATTR                                                                                           0x3
+#define HWIO_WBM_R0_VC_ID_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_VC_ID_CFG_ADDR(x))
+#define HWIO_WBM_R0_VC_ID_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VC_ID_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_VC_ID_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_VC_ID_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_VC_ID_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_VC_ID_CFG_ADDR(x),m,v,HWIO_WBM_R0_VC_ID_CFG_IN(x))
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT2_VC_ID_BMSK                                                               0x8000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT2_VC_ID_SHFT                                                                   15
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT1_VC_ID_BMSK                                                               0x4000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT1_VC_ID_SHFT                                                                   14
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN2_VC_ID_BMSK                                                                0x2000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN2_VC_ID_SHFT                                                                    13
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN1_VC_ID_BMSK                                                                0x1000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN1_VC_ID_SHFT                                                                    12
+#define HWIO_WBM_R0_VC_ID_CFG_VA_GXI_VC_ID_BMSK                                                                      0x800
+#define HWIO_WBM_R0_VC_ID_CFG_VA_GXI_VC_ID_SHFT                                                                         11
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE1_GXI_VC_ID_BMSK                                                                  0x200
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE1_GXI_VC_ID_SHFT                                                                      9
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_P_RING_VC_ID_BMSK                                                            0x100
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_P_RING_VC_ID_SHFT                                                                8
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_C_RING_VC_ID_BMSK                                                             0x80
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_C_RING_VC_ID_SHFT                                                                7
+#define HWIO_WBM_R0_VC_ID_CFG_RXDMA0_RELEASE_RING_VC_ID_BMSK                                                          0x20
+#define HWIO_WBM_R0_VC_ID_CFG_RXDMA0_RELEASE_RING_VC_ID_SHFT                                                             5
+#define HWIO_WBM_R0_VC_ID_CFG_FW_RELEASE_RING_VC_ID_BMSK                                                              0x10
+#define HWIO_WBM_R0_VC_ID_CFG_FW_RELEASE_RING_VC_ID_SHFT                                                                 4
+#define HWIO_WBM_R0_VC_ID_CFG_SW_RELEASE_RING_VC_ID_BMSK                                                               0x8
+#define HWIO_WBM_R0_VC_ID_CFG_SW_RELEASE_RING_VC_ID_SHFT                                                                 3
+#define HWIO_WBM_R0_VC_ID_CFG_REO_RELEASE_RING_VC_ID_BMSK                                                              0x4
+#define HWIO_WBM_R0_VC_ID_CFG_REO_RELEASE_RING_VC_ID_SHFT                                                                2
+#define HWIO_WBM_R0_VC_ID_CFG_TQM_RELEASE_RING_VC_ID_BMSK                                                              0x2
+#define HWIO_WBM_R0_VC_ID_CFG_TQM_RELEASE_RING_VC_ID_SHFT                                                                1
+
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x)                                                                 ((x) + 0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_PHYS(x)                                                                 ((x) + 0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OFFS                                                                    (0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RMSK                                                                          0xfe
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_POR                                                                     0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA2_RELEASE_RING_ENABLE_BMSK                                               0x80
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA2_RELEASE_RING_ENABLE_SHFT                                                  7
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA1_RELEASE_RING_ENABLE_BMSK                                               0x40
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA1_RELEASE_RING_ENABLE_SHFT                                                  6
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA0_RELEASE_RING_ENABLE_BMSK                                               0x20
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA0_RELEASE_RING_ENABLE_SHFT                                                  5
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_FW_RELEASE_RING_ENABLE_BMSK                                                   0x10
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_FW_RELEASE_RING_ENABLE_SHFT                                                      4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_SW_RELEASE_RING_ENABLE_BMSK                                                    0x8
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_SW_RELEASE_RING_ENABLE_SHFT                                                      3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_REO_RELEASE_RING_ENABLE_BMSK                                                   0x4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_REO_RELEASE_RING_ENABLE_SHFT                                                     2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_TQM_RELEASE_RING_ENABLE_BMSK                                                   0x2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_TQM_RELEASE_RING_ENABLE_SHFT                                                     1
+
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x)                                                               ((x) + 0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_PHYS(x)                                                               ((x) + 0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OFFS                                                                  (0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_RMSK                                                                         0x6
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_POR                                                                   0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ATTR                                                                               0x3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_ENABLE_2_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN2_RELEASE_RING_ENABLE_BMSK                                             0x4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN2_RELEASE_RING_ENABLE_SHFT                                               2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN1_RELEASE_RING_ENABLE_BMSK                                             0x2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN1_RELEASE_RING_ENABLE_SHFT                                               1
+
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OFFS                                                                (0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_POR                                                                 0x00000000
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ATTR                                                                             0x3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA2_BUF_RING_ENABLE_BMSK                                           0x20
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA2_BUF_RING_ENABLE_SHFT                                              5
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA1_BUF_RING_ENABLE_BMSK                                           0x10
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA1_BUF_RING_ENABLE_SHFT                                              4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA0_BUF_RING_ENABLE_BMSK                                            0x8
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA0_BUF_RING_ENABLE_SHFT                                              3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2FW_BUF_RING_ENABLE_BMSK                                                0x4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2FW_BUF_RING_ENABLE_SHFT                                                  2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2SW_BUF_RING_ENABLE_BMSK                                                0x2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2SW_BUF_RING_ENABLE_SHFT                                                  1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2PPE_BUF_RING_ENABLE_BMSK                                               0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2PPE_BUF_RING_ENABLE_SHFT                                                 0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OFFS                                                                  (0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_POR                                                                   0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ATTR                                                                               0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA2_LINK_RING_ENABLE_BMSK                                            0x40
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA2_LINK_RING_ENABLE_SHFT                                               6
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA1_LINK_RING_ENABLE_BMSK                                            0x20
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA1_LINK_RING_ENABLE_SHFT                                               5
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA0_LINK_RING_ENABLE_BMSK                                            0x10
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA0_LINK_RING_ENABLE_SHFT                                               4
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2FW_LINK_RING_ENABLE_BMSK                                                 0x8
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2FW_LINK_RING_ENABLE_SHFT                                                   3
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2SW_LINK_RING_ENABLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2SW_LINK_RING_ENABLE_SHFT                                                   2
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2REO_LINK_RING_ENABLE_BMSK                                                0x2
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2REO_LINK_RING_ENABLE_SHFT                                                  1
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2TQM_LINK_RING_ENABLE_BMSK                                                0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2TQM_LINK_RING_ENABLE_SHFT                                                  0
+
+#define HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x)                                                                         ((x) + 0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_PHYS(x)                                                                         ((x) + 0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OFFS                                                                            (0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_RMSK                                                                                   0xf
+#define HWIO_WBM_R0_OWN_CHIP_ID_POR                                                                             0x00000001
+#define HWIO_WBM_R0_OWN_CHIP_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_OWN_CHIP_ID_ATTR                                                                                         0x3
+#define HWIO_WBM_R0_OWN_CHIP_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x))
+#define HWIO_WBM_R0_OWN_CHIP_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x), m)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x),v)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x),m,v,HWIO_WBM_R0_OWN_CHIP_ID_IN(x))
+#define HWIO_WBM_R0_OWN_CHIP_ID_RBM_BMSK                                                                               0xf
+#define HWIO_WBM_R0_OWN_CHIP_ID_RBM_SHFT                                                                                 0
+
+#define HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x)                                                                        ((x) + 0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_PHYS(x)                                                                        ((x) + 0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OFFS                                                                           (0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RMSK                                                                                0x3ff
+#define HWIO_WBM_R0_MLO_OUT1_CFG_POR                                                                            0x00000005
+#define HWIO_WBM_R0_MLO_OUT1_CFG_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_CFG_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MLO_OUT1_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT1_CFG_IN(x))
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_BMSK                                                                           0x3c0
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_SHFT                                                                               6
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_ENABLE_BMSK                                                                     0x20
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_ENABLE_SHFT                                                                        5
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_BMSK                                                                            0x1e
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_SHFT                                                                               1
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_ENABLE_BMSK                                                                      0x1
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_ENABLE_SHFT                                                                        0
+
+#define HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x)                                                                        ((x) + 0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_PHYS(x)                                                                        ((x) + 0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OFFS                                                                           (0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RMSK                                                                                0x3ff
+#define HWIO_WBM_R0_MLO_OUT2_CFG_POR                                                                            0x00000007
+#define HWIO_WBM_R0_MLO_OUT2_CFG_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_CFG_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MLO_OUT2_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT2_CFG_IN(x))
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_BMSK                                                                           0x3c0
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_SHFT                                                                               6
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_ENABLE_BMSK                                                                     0x20
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_ENABLE_SHFT                                                                        5
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_BMSK                                                                            0x1e
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_SHFT                                                                               1
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_ENABLE_BMSK                                                                      0x1
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_ENABLE_SHFT                                                                        0
+
+#define HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x)                                                                    ((x) + 0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_PHYS(x)                                                                    ((x) + 0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OFFS                                                                       (0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_RMSK                                                                            0x7ff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_POR                                                                        0x000007ff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_ATTR                                                                                    0x3
+#define HWIO_WBM_R0_MISC_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_MISC_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_MISC_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT2_MLO_RELEASE_RING_ENABLE_BMSK                                       0x400
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT2_MLO_RELEASE_RING_ENABLE_SHFT                                          10
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT1_MLO_RELEASE_RING_ENABLE_BMSK                                       0x200
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT1_MLO_RELEASE_RING_ENABLE_SHFT                                           9
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW6_RELEASE_RING_ENABLE_BMSK                                                0x100
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW6_RELEASE_RING_ENABLE_SHFT                                                    8
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW5_RELEASE_RING_ENABLE_BMSK                                                 0x80
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW5_RELEASE_RING_ENABLE_SHFT                                                    7
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM_ERROR_RELEASE_RING_ENABLE_BMSK                                               0x40
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM_ERROR_RELEASE_RING_ENABLE_SHFT                                                  6
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW4_RELEASE_RING_ENABLE_BMSK                                                 0x20
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW4_RELEASE_RING_ENABLE_SHFT                                                    5
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW3_RELEASE_RING_ENABLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW3_RELEASE_RING_ENABLE_SHFT                                                    4
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW2_RELEASE_RING_ENABLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW2_RELEASE_RING_ENABLE_SHFT                                                    3
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW1_RELEASE_RING_ENABLE_BMSK                                                  0x4
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW1_RELEASE_RING_ENABLE_SHFT                                                    2
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW0_RELEASE_RING_ENABLE_BMSK                                                  0x2
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW0_RELEASE_RING_ENABLE_SHFT                                                    1
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2FW_RELEASE_RING_ENABLE_BMSK                                                   0x1
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2FW_RELEASE_RING_ENABLE_SHFT                                                     0
+
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x)                                                                 ((x) + 0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_PHYS(x)                                                                 ((x) + 0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_OFFS                                                                    (0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RMSK                                                                          0xfe
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA2_RELEASE_RING_NOT_IDLE_BMSK                                             0x80
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA2_RELEASE_RING_NOT_IDLE_SHFT                                                7
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA1_RELEASE_RING_NOT_IDLE_BMSK                                             0x40
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA1_RELEASE_RING_NOT_IDLE_SHFT                                                6
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA0_RELEASE_RING_NOT_IDLE_BMSK                                             0x20
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA0_RELEASE_RING_NOT_IDLE_SHFT                                                5
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_FW_RELEASE_RING_NOT_IDLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_FW_RELEASE_RING_NOT_IDLE_SHFT                                                    4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_SW_RELEASE_RING_NOT_IDLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_SW_RELEASE_RING_NOT_IDLE_SHFT                                                    3
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_REO_RELEASE_RING_NOT_IDLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_REO_RELEASE_RING_NOT_IDLE_SHFT                                                   2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_TQM_RELEASE_RING_NOT_IDLE_BMSK                                                 0x2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_TQM_RELEASE_RING_NOT_IDLE_SHFT                                                   1
+
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x)                                                               ((x) + 0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_PHYS(x)                                                               ((x) + 0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_OFFS                                                                  (0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_RMSK                                                                         0x6
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_POR                                                                   0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_ATTR                                                                               0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN2_MLO_RING_NOT_IDLE_BMSK                                           0x4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN2_MLO_RING_NOT_IDLE_SHFT                                             2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN1_MLO_RING_NOT_IDLE_BMSK                                           0x2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN1_MLO_RING_NOT_IDLE_SHFT                                             1
+
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x)                                                                ((x) + 0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_PHYS(x)                                                                ((x) + 0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OFFS                                                                   (0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_POR                                                                    0x00000000
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_ATTR                                                                                0x3
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_START_COOKIE_IN(x))
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_DUP_DET_START_COOKIE_BMSK                                                 0xfffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_DUP_DET_START_COOKIE_SHFT                                                       0
+
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x)                                                                      ((x) + 0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_PHYS(x)                                                                      ((x) + 0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OFFS                                                                         (0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_POR                                                                          0x00000000
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CFG0_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_SHFT                                                          0
+
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x)                                                                      ((x) + 0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PHYS(x)                                                                      ((x) + 0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OFFS                                                                         (0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_RMSK                                                                            0x7ffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_POR                                                                          0x00011700
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CFG1_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_BMSK                                                             0x40000
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_SHFT                                                                  18
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_BMSK                                                          0x3e000
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_SHFT                                                               13
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_BMSK                                                             0x1f00
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_SHFT                                                                  8
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_BMSK                                                      0xff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_SHFT                                                         0
+
+#define HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x)                                                                   ((x) + 0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_PHYS(x)                                                                   ((x) + 0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_OFFS                                                                      (0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_POR                                                                       0x00000000
+#define HWIO_WBM_R0_BP_WARNING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WBM_R0_BP_WARNING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_BP_WARNING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_BP_STATUS_BMSK                                                            0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_BP_STATUS_SHFT                                                                     0
+
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_OFFS                                                                (0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA2_BUF_RING_NOT_IDLE_BMSK                                         0x20
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA2_BUF_RING_NOT_IDLE_SHFT                                            5
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA1_BUF_RING_NOT_IDLE_BMSK                                         0x10
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA1_BUF_RING_NOT_IDLE_SHFT                                            4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA0_BUF_RING_NOT_IDLE_BMSK                                          0x8
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA0_BUF_RING_NOT_IDLE_SHFT                                            3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2FW_BUF_RING_NOT_IDLE_BMSK                                              0x4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2FW_BUF_RING_NOT_IDLE_SHFT                                                2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2SW_BUF_RING_NOT_IDLE_BMSK                                              0x2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2SW_BUF_RING_NOT_IDLE_SHFT                                                1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2PPE_BUF_RING_NOT_IDLE_BMSK                                             0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2PPE_BUF_RING_NOT_IDLE_SHFT                                               0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_OFFS                                                                  (0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA2_LINK_RING_NOT_IDLE_BMSK                                          0x40
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA2_LINK_RING_NOT_IDLE_SHFT                                             6
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA1_LINK_RING_NOT_IDLE_BMSK                                          0x20
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA1_LINK_RING_NOT_IDLE_SHFT                                             5
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA0_LINK_RING_NOT_IDLE_BMSK                                          0x10
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA0_LINK_RING_NOT_IDLE_SHFT                                             4
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2FW_LINK_RING_NOT_IDLE_BMSK                                               0x8
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2FW_LINK_RING_NOT_IDLE_SHFT                                                 3
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2SW_LINK_RING_NOT_IDLE_BMSK                                               0x4
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2SW_LINK_RING_NOT_IDLE_SHFT                                                 2
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2REO_LINK_RING_NOT_IDLE_BMSK                                              0x2
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2REO_LINK_RING_NOT_IDLE_SHFT                                                1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2TQM_LINK_RING_NOT_IDLE_BMSK                                              0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2TQM_LINK_RING_NOT_IDLE_SHFT                                                0
+
+#define HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x)                                                                    ((x) + 0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_PHYS(x)                                                                    ((x) + 0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_OFFS                                                                       (0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_RMSK                                                                           0x1fff
+#define HWIO_WBM_R0_MISC_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WBM_R0_MISC_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_MISC_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WBM_R0_MISC_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MISC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW6_BUFFER_RING_NOT_IDLE_BMSK                                                  0x1000
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW6_BUFFER_RING_NOT_IDLE_SHFT                                                      12
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW5_BUFFER_RING_NOT_IDLE_BMSK                                                   0x800
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW5_BUFFER_RING_NOT_IDLE_SHFT                                                      11
+#define HWIO_WBM_R0_MISC_RING_STATUS_ERROR_RELEASE_RING_NOT_IDLE_BMSK                                                0x400
+#define HWIO_WBM_R0_MISC_RING_STATUS_ERROR_RELEASE_RING_NOT_IDLE_SHFT                                                   10
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW4_BUFFER_RING_NOT_IDLE_BMSK                                                   0x200
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW4_BUFFER_RING_NOT_IDLE_SHFT                                                       9
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW3_BUFFER_RING_NOT_IDLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW3_BUFFER_RING_NOT_IDLE_SHFT                                                       8
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW2_BUFFER_RING_NOT_IDLE_BMSK                                                    0x80
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW2_BUFFER_RING_NOT_IDLE_SHFT                                                       7
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW1_BUFFER_RING_NOT_IDLE_BMSK                                                    0x40
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW1_BUFFER_RING_NOT_IDLE_SHFT                                                       6
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW0_BUFFER_RING_NOT_IDLE_BMSK                                                    0x20
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW0_BUFFER_RING_NOT_IDLE_SHFT                                                       5
+#define HWIO_WBM_R0_MISC_RING_STATUS_FW_BUFFER_RING_NOT_IDLE_BMSK                                                     0x10
+#define HWIO_WBM_R0_MISC_RING_STATUS_FW_BUFFER_RING_NOT_IDLE_SHFT                                                        4
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_CONSUMER_NOT_IDLE_BMSK                                             0x8
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_CONSUMER_NOT_IDLE_SHFT                                               3
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_PRODUCER_NOT_IDLE_BMSK                                             0x4
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_PRODUCER_NOT_IDLE_SHFT                                               2
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_CONSUMER_NOT_IDLE_BMSK                                           0x2
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_CONSUMER_NOT_IDLE_SHFT                                             1
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_PRODUCER_NOT_IDLE_BMSK                                           0x1
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_PRODUCER_NOT_IDLE_SHFT                                             0
+
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x)                                                                  ((x) + 0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_PHYS(x)                                                                  ((x) + 0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OFFS                                                                     (0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RMSK                                                                        0x13fff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_FLUSH_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_IN_FLUSH_BMSK                                              0x10000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_IN_FLUSH_SHFT                                                   16
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_FIFO_FLUSH_BMSK                                                   0x2000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_FIFO_FLUSH_SHFT                                                       13
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_RING_AGE_FLUSH_BMSK                                               0x1000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_RING_AGE_FLUSH_SHFT                                                   12
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_TIMEOUT_BMSK                                                 0xfff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_TIMEOUT_SHFT                                                     0
+
+#define HWIO_WBM_R0_IDLE_STATUS_ADDR(x)                                                                         ((x) + 0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_PHYS(x)                                                                         ((x) + 0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_OFFS                                                                            (0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_RMSK                                                                              0x17ffff
+#define HWIO_WBM_R0_IDLE_STATUS_POR                                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_STATUS_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_STATUS_ATTR                                                                                         0x1
+#define HWIO_WBM_R0_IDLE_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_STATUS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT2_MLO_PROD_FIFO_IN_IDLE_BMSK                                           0x100000
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT2_MLO_PROD_FIFO_IN_IDLE_SHFT                                                 20
+#define HWIO_WBM_R0_IDLE_STATUS_SW6_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                  0x40000
+#define HWIO_WBM_R0_IDLE_STATUS_SW6_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       18
+#define HWIO_WBM_R0_IDLE_STATUS_SW5_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                  0x20000
+#define HWIO_WBM_R0_IDLE_STATUS_SW5_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       17
+#define HWIO_WBM_R0_IDLE_STATUS_ERROR_RELEASE_PROD_FIFO_IN_IDLE_BMSK                                               0x10000
+#define HWIO_WBM_R0_IDLE_STATUS_ERROR_RELEASE_PROD_FIFO_IN_IDLE_SHFT                                                    16
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_IN_IDLE_BMSK                                                                    0x8000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_IN_IDLE_SHFT                                                                        15
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_APPLICATION_LOGIC_IN_IDLE_BMSK                                                  0x4000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_APPLICATION_LOGIC_IN_IDLE_SHFT                                                      14
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_CONSUMER_RINGS_IN_IDLE_BMSK                                                     0x2000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_CONSUMER_RINGS_IN_IDLE_SHFT                                                         13
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_PRODUCER_RINGS_IN_IDLE_BMSK                                                     0x1000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_PRODUCER_RINGS_IN_IDLE_SHFT                                                         12
+#define HWIO_WBM_R0_IDLE_STATUS_SW4_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x800
+#define HWIO_WBM_R0_IDLE_STATUS_SW4_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       11
+#define HWIO_WBM_R0_IDLE_STATUS_SW3_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x400
+#define HWIO_WBM_R0_IDLE_STATUS_SW3_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       10
+#define HWIO_WBM_R0_IDLE_STATUS_SW2_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x200
+#define HWIO_WBM_R0_IDLE_STATUS_SW2_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        9
+#define HWIO_WBM_R0_IDLE_STATUS_SW1_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x100
+#define HWIO_WBM_R0_IDLE_STATUS_SW1_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        8
+#define HWIO_WBM_R0_IDLE_STATUS_SW0_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                     0x80
+#define HWIO_WBM_R0_IDLE_STATUS_SW0_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        7
+#define HWIO_WBM_R0_IDLE_STATUS_FW_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_IDLE_STATUS_FW_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                         6
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_DESC_ZERO_OUT_FIFO_IN_IDLE_BMSK                                                  0x20
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_DESC_ZERO_OUT_FIFO_IN_IDLE_SHFT                                                     5
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_DIST_FIFO_IN_IDLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_DIST_FIFO_IN_IDLE_SHFT                                                    4
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_PROD_FIFO_IN_IDLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_PROD_FIFO_IN_IDLE_SHFT                                                    3
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_DIST_FIFO_IN_IDLE_BMSK                                                0x4
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_DIST_FIFO_IN_IDLE_SHFT                                                  2
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_PROD_FIFO_IN_IDLE_BMSK                                                0x2
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_PROD_FIFO_IN_IDLE_SHFT                                                  1
+#define HWIO_WBM_R0_IDLE_STATUS_RELEASE_PARSER_FIFO_IN_IDLE_BMSK                                                       0x1
+#define HWIO_WBM_R0_IDLE_STATUS_RELEASE_PARSER_FIFO_IN_IDLE_SHFT                                                         0
+
+#define HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x)                                                                       ((x) + 0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_PHYS(x)                                                                       ((x) + 0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_OFFS                                                                          (0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_RMSK                                                                                0x3f
+#define HWIO_WBM_R0_IDLE_SEQUENCE_POR                                                                           0x00000000
+#define HWIO_WBM_R0_IDLE_SEQUENCE_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_IDLE_SEQUENCE_ATTR                                                                                       0x1
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x))
+#define HWIO_WBM_R0_IDLE_SEQUENCE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_RELEASE_RING_NOT_EMPTY_BMSK                                                     0x20
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_RELEASE_RING_NOT_EMPTY_SHFT                                                        5
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_IN_IDLE_BMSK                                                                    0x10
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_IN_IDLE_SHFT                                                                       4
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IDLE_SEQUENCE_STATE_BMSK                                                             0xf
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IDLE_SEQUENCE_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x)                                                                 ((x) + 0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_PHYS(x)                                                                 ((x) + 0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OFFS                                                                    (0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_RMSK                                                                           0x7
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_POR                                                                     0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_MSDU_PARSER_CONTROL_IN(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_DISABLE_CACHE_2_BMSK                                                           0x4
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_DISABLE_CACHE_2_SHFT                                                             2
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_2_BMSK                                                             0x2
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_2_SHFT                                                               1
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_1_BMSK                                                             0x1
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_1_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x)                                                                  ((x) + 0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_PHYS(x)                                                                  ((x) + 0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_OFFS                                                                     (0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_RMSK                                                                          0xfff
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_POR                                                                      0x00000441
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_ATTR                                                                                  0x1
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_1_DONE_BMSK                                                       0x800
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_1_DONE_SHFT                                                          11
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_EMPTY_BMSK                                               0x400
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_EMPTY_SHFT                                                  10
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_DELINK_PARSER_STATE_BMSK                                                 0x3c0
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_DELINK_PARSER_STATE_SHFT                                                     6
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_IN_IDLE_BMSK                                              0x20
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_IN_IDLE_SHFT                                                 5
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_1_STATE_BMSK                                                             0x1f
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_1_STATE_SHFT                                                                0
+
+#define HWIO_WBM_R0_MISC_CONTROL_ADDR(x)                                                                        ((x) + 0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_PHYS(x)                                                                        ((x) + 0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_OFFS                                                                           (0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_RMSK                                                                           0xffffffff
+#define HWIO_WBM_R0_MISC_CONTROL_POR                                                                            0x000001c0
+#define HWIO_WBM_R0_MISC_CONTROL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MISC_CONTROL_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MISC_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MISC_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MISC_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_MISC_CONTROL_IN(x))
+#define HWIO_WBM_R0_MISC_CONTROL_SPARE_CONTROL_BMSK                                                             0xfffffffc
+#define HWIO_WBM_R0_MISC_CONTROL_SPARE_CONTROL_SHFT                                                                      2
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_WRITE_STRUCT_SWAP_BMSK                                                            0x2
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_WRITE_STRUCT_SWAP_SHFT                                                              1
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_READ_STRUCT_SWAP_BMSK                                                             0x1
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_READ_STRUCT_SWAP_SHFT                                                               0
+
+#define HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x)                                                                        ((x) + 0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_PHYS(x)                                                                        ((x) + 0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OFFS                                                                           (0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_RMSK                                                                           0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_POR                                                                            0x00000000
+#define HWIO_WBM_R0_SPARE_CTRL_2_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_SPARE_CTRL_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x))
+#define HWIO_WBM_R0_SPARE_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x), m)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x),v)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x),m,v,HWIO_WBM_R0_SPARE_CTRL_2_IN(x))
+#define HWIO_WBM_R0_SPARE_CTRL_2_SPARE_CONTROL_2_BMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_SPARE_CONTROL_2_SHFT                                                                    0
+
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x)                                                                  ((x) + 0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_PHYS(x)                                                                  ((x) + 0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OFFS                                                                     (0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RMSK                                                                      0x3ffffcf
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x),m,v,HWIO_WBM_R0_RING_PRIORITY_CFG0_IN(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2RXDMA0_LINK_RING_PRIORITY_BMSK                                        0x3000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2RXDMA0_LINK_RING_PRIORITY_SHFT                                               24
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2FW_LINK_RING_PRIORITY_BMSK                                             0xc00000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2FW_LINK_RING_PRIORITY_SHFT                                                   22
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2SW_LINK_RING_PRIORITY_BMSK                                             0x300000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2SW_LINK_RING_PRIORITY_SHFT                                                   20
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2REO_LINK_RING_PRIORITY_BMSK                                             0xc0000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2REO_LINK_RING_PRIORITY_SHFT                                                  18
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2TQM_LINK_RING_PRIORITY_BMSK                                             0x30000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2TQM_LINK_RING_PRIORITY_SHFT                                                  16
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RXDMA0_RELEASE_RING_PRIORITY_BMSK                                            0xc000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RXDMA0_RELEASE_RING_PRIORITY_SHFT                                                14
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_FW_RELEASE_RING_PRIORITY_BMSK                                                0x3000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_FW_RELEASE_RING_PRIORITY_SHFT                                                    12
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_SW_RELEASE_RING_PRIORITY_BMSK                                                 0xc00
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_SW_RELEASE_RING_PRIORITY_SHFT                                                    10
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_REO_RELEASE_RING_PRIORITY_BMSK                                                0x300
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_REO_RELEASE_RING_PRIORITY_SHFT                                                    8
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_TQM_RELEASE_RING_PRIORITY_BMSK                                                 0xc0
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_TQM_RELEASE_RING_PRIORITY_SHFT                                                    6
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_CONSUMER_RING_PRIORITY_BMSK                                      0xc
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_CONSUMER_RING_PRIORITY_SHFT                                        2
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_PRODUCER_RING_PRIORITY_BMSK                                      0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_PRODUCER_RING_PRIORITY_SHFT                                        0
+
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x)                                                                  ((x) + 0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_PHYS(x)                                                                  ((x) + 0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OFFS                                                                     (0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_RMSK                                                                        0xfffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x),m,v,HWIO_WBM_R0_RING_PRIORITY_CFG1_IN(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_SW_COOKIE_CONV_GXI_PRIORITY_BMSK                                            0xc0000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_SW_COOKIE_CONV_GXI_PRIORITY_SHFT                                                 18
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW6_RELEASE_RING_PRIORITY_BMSK                                          0x30000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW6_RELEASE_RING_PRIORITY_SHFT                                               16
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW5_RELEASE_RING_PRIORITY_BMSK                                           0xc000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW5_RELEASE_RING_PRIORITY_SHFT                                               14
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM_ERROR_RELEASE_RING_PRIORITY_BMSK                                         0x3000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM_ERROR_RELEASE_RING_PRIORITY_SHFT                                             12
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW4_RELEASE_RING_PRIORITY_BMSK                                            0xc00
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW4_RELEASE_RING_PRIORITY_SHFT                                               10
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW3_RELEASE_RING_PRIORITY_BMSK                                            0x300
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW3_RELEASE_RING_PRIORITY_SHFT                                                8
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW2_RELEASE_RING_PRIORITY_BMSK                                             0xc0
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW2_RELEASE_RING_PRIORITY_SHFT                                                6
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW1_RELEASE_RING_PRIORITY_BMSK                                             0x30
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW1_RELEASE_RING_PRIORITY_SHFT                                                4
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW0_RELEASE_RING_PRIORITY_BMSK                                              0xc
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW0_RELEASE_RING_PRIORITY_SHFT                                                2
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2FW_RELEASE_RING_PRIORITY_BMSK                                               0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2FW_RELEASE_RING_PRIORITY_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM_CFG_2_ADDR(x)                                                                           ((x) + 0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_PHYS(x)                                                                           ((x) + 0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_OFFS                                                                              (0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_RMSK                                                                                    0x4b
+#define HWIO_WBM_R0_WBM_CFG_2_POR                                                                               0x00000040
+#define HWIO_WBM_R0_WBM_CFG_2_POR_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_CFG_2_ATTR                                                                                           0x3
+#define HWIO_WBM_R0_WBM_CFG_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_CFG_2_ADDR(x))
+#define HWIO_WBM_R0_WBM_CFG_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_CFG_2_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_CFG_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_CFG_2_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_CFG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_CFG_2_ADDR(x),m,v,HWIO_WBM_R0_WBM_CFG_2_IN(x))
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_DEBUG_SEL_BMSK                                                                   0x40
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_DEBUG_SEL_SHFT                                                                      6
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_CONV_INDICATION_EN_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_CONV_INDICATION_EN_SHFT                                                             3
+#define HWIO_WBM_R0_WBM_CFG_2_ERROR_PATH_COOKIE_CONV_EN_BMSK                                                           0x2
+#define HWIO_WBM_R0_WBM_CFG_2_ERROR_PATH_COOKIE_CONV_EN_SHFT                                                             1
+#define HWIO_WBM_R0_WBM_CFG_2_RELEASE_PATH_COOKIE_CONV_EN_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM_CFG_2_RELEASE_PATH_COOKIE_CONV_EN_SHFT                                                           0
+
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x)                                                               ((x) + 0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_PHYS(x)                                                               ((x) + 0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OFFS                                                                  (0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_RMSK                                                                       0x1ff
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_POR                                                                   0x000001fe
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM_COOKIE_CONV_GLOBAL_ENABLE_BMSK                                         0x100
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM_COOKIE_CONV_GLOBAL_ENABLE_SHFT                                             8
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW6_COOKIE_CONVERSION_EN_BMSK                                           0x80
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW6_COOKIE_CONVERSION_EN_SHFT                                              7
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW5_COOKIE_CONVERSION_EN_BMSK                                           0x40
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW5_COOKIE_CONVERSION_EN_SHFT                                              6
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW4_COOKIE_CONVERSION_EN_BMSK                                           0x20
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW4_COOKIE_CONVERSION_EN_SHFT                                              5
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW3_COOKIE_CONVERSION_EN_BMSK                                           0x10
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW3_COOKIE_CONVERSION_EN_SHFT                                              4
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW2_COOKIE_CONVERSION_EN_BMSK                                            0x8
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW2_COOKIE_CONVERSION_EN_SHFT                                              3
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW1_COOKIE_CONVERSION_EN_BMSK                                            0x4
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW1_COOKIE_CONVERSION_EN_SHFT                                              2
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW0_COOKIE_CONVERSION_EN_BMSK                                            0x2
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW0_COOKIE_CONVERSION_EN_SHFT                                              1
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2FW_COOKIE_CONVERSION_EN_BMSK                                             0x1
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2FW_COOKIE_CONVERSION_EN_SHFT                                               0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x)                                                                 ((x) + 0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_PHYS(x)                                                                 ((x) + 0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OFFS                                                                    (0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG0_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2REO_LINK_RING_WATERMARK_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2REO_LINK_RING_WATERMARK_SHFT                                                16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2TQM_LINK_RING_WATERMARK_BMSK                                            0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2TQM_LINK_RING_WATERMARK_SHFT                                                 0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x)                                                                 ((x) + 0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_PHYS(x)                                                                 ((x) + 0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OFFS                                                                    (0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG1_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2FW_LINK_RING_WATERMARK_BMSK                                         0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2FW_LINK_RING_WATERMARK_SHFT                                                 16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2SW_LINK_RING_WATERMARK_BMSK                                             0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2SW_LINK_RING_WATERMARK_SHFT                                                  0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x)                                                                 ((x) + 0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_PHYS(x)                                                                 ((x) + 0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OFFS                                                                    (0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG2_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_WBM2RXDMA0_LINK_RING_WATERMARK_BMSK                                         0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_WBM2RXDMA0_LINK_RING_WATERMARK_SHFT                                              0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x)                                                                 ((x) + 0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_PHYS(x)                                                                 ((x) + 0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OFFS                                                                    (0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG3_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2REO_LINK_RING_WATERMARK_LOWER_BMSK                                  0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2REO_LINK_RING_WATERMARK_LOWER_SHFT                                          16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2TQM_LINK_RING_WATERMARK_LOWER_BMSK                                      0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2TQM_LINK_RING_WATERMARK_LOWER_SHFT                                           0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x)                                                                 ((x) + 0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_PHYS(x)                                                                 ((x) + 0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OFFS                                                                    (0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG4_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2FW_LINK_RING_WATERMARK_LOWER_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2FW_LINK_RING_WATERMARK_LOWER_SHFT                                           16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2SW_LINK_RING_WATERMARK_LOWER_BMSK                                       0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2SW_LINK_RING_WATERMARK_LOWER_SHFT                                            0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x)                                                                 ((x) + 0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_PHYS(x)                                                                 ((x) + 0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OFFS                                                                    (0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG5_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_WBM2RXDMA0_LINK_RING_WATERMARK_LOWER_BMSK                                   0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_WBM2RXDMA0_LINK_RING_WATERMARK_LOWER_SHFT                                        0
+
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x)                                                                    ((x) + 0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_PHYS(x)                                                                    ((x) + 0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OFFS                                                                       (0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RMSK                                                                           0x3fff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_POR                                                                        0x00000000
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_ATTR                                                                                    0x3
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_WBM_R0_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                          0x3000
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                              12
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_VALUE_BMSK                                                                      0xfff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_VALUE_SHFT                                                                          0
+
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x)                                                            ((x) + 0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_PHYS(x)                                                            ((x) + 0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OFFS                                                               (0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RMSK                                                                   0x3fff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_POR                                                                0x00000000
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                  0x3000
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                      12
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_VALUE_BMSK                                                              0xfff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x)                                                       ((x) + 0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_PHYS(x)                                                       ((x) + 0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OFFS                                                          (0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RMSK                                                              0x3fff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_POR                                                           0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ATTR                                                                       0x3
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x),v)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x),m,v,HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_IN(x))
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RESOLUTION_UNITS_BMSK                                             0x3000
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RESOLUTION_UNITS_SHFT                                                 12
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_VALUE_BMSK                                                         0xfff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x)                                                            ((x) + 0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_PHYS(x)                                                            ((x) + 0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_OFFS                                                               (0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RMSK                                                                 0x1fffff
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_POR                                                                0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ATTR                                                                            0x1
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_ERR_BMSK                                                0x1e0000
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_ERR_SHFT                                                      17
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_BMSK                                                     0x1fff0
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_SHFT                                                           4
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_P_STATE_ENC_BMSK                                                          0xf
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_P_STATE_ENC_SHFT                                                            0
+
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x)                                                              ((x) + 0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_PHYS(x)                                                              ((x) + 0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_OFFS                                                                 (0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_POR                                                                  0x00000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ATTR                                                                              0x1
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_IN(x)            \
+                in_dword(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x))
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x), m)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_OCCURRENCE_BMSK                                                0x80000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_OCCURRENCE_SHFT                                                        31
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_SOURCE_BMSK                                                    0x40000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_SOURCE_SHFT                                                            30
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_TYPE_BMSK                                                      0x30000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_TYPE_SHFT                                                              28
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_SW_BUFFER_COOKIE_BMSK                                                 0xffffe00
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_SW_BUFFER_COOKIE_SHFT                                                         9
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BM_ACTION_BMSK                                                            0x180
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BM_ACTION_SHFT                                                                7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BUFFER_DESC_TYPE_BMSK                                                      0x70
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BUFFER_DESC_TYPE_SHFT                                                         4
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RETURN_BUFFER_MANAGER_BMSK                                                  0xf
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RETURN_BUFFER_MANAGER_SHFT                                                    0
+
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x)                                                             ((x) + 0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_PHYS(x)                                                             ((x) + 0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_OFFS                                                                (0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RMSK                                                                       0x7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_POR                                                                 0x00000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ATTR                                                                             0x1
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_IN(x)            \
+                in_dword(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x))
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x), m)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RELEASE_SOURCE_MODULE_BMSK                                                 0x7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RELEASE_SOURCE_MODULE_SHFT                                                   0
+
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                                ((x) + 0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                                ((x) + 0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_OFFS                                                                   (0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_RMSK                                                                      0x7ffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_POR                                                                    0x00000000
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ATTR                                                                                0x1
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_TYPE_BMSK                                                             0x60000
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_TYPE_SHFT                                                                  17
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_ADDR_BMSK                                                             0x1ffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_ADDR_SHFT                                                                   0
+
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x)                                                        ((x) + 0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_PHYS(x)                                                        ((x) + 0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OFFS                                                           (0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_RMSK                                                                  0x7
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_POR                                                            0x00000000
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x))
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x),m,v,HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_IN(x))
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_BYPASS_COUNTER_FULL_BMSK                                              0x4
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_BYPASS_COUNTER_FULL_SHFT                                                2
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_FREEPOOL_COUNTER_FULL_BMSK                                            0x2
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_FREEPOOL_COUNTER_FULL_SHFT                                              1
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_COUNTER_CLR_BMSK                                                      0x1
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_COUNTER_CLR_SHFT                                                        0
+
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x)                                                     ((x) + 0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_PHYS(x)                                                     ((x) + 0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_OFFS                                                        (0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_POR                                                         0x00000000
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ATTR                                                                     0x1
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_VALUE_BMSK                                                  0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_VALUE_SHFT                                                           0
+
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x)                                                       ((x) + 0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_PHYS(x)                                                       ((x) + 0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_OFFS                                                          (0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_POR                                                           0x00000000
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ATTR                                                                       0x1
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x)                                                            ((x) + 0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_PHYS(x)                                                            ((x) + 0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_OFFS                                                               (0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ATTR                                                                            0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x)                                                            ((x) + 0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_PHYS(x)                                                            ((x) + 0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_OFFS                                                               (0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ATTR                                                                            0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x)                                                             ((x) + 0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_PHYS(x)                                                             ((x) + 0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_OFFS                                                                (0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_POR                                                                 0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ATTR                                                                             0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_VALUE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x)                                                             ((x) + 0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_PHYS(x)                                                             ((x) + 0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_OFFS                                                                (0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_POR                                                                 0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ATTR                                                                             0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_VALUE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x)                                                          ((x) + 0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_PHYS(x)                                                          ((x) + 0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_OFFS                                                             (0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_POR                                                              0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ATTR                                                                          0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x)                                                            ((x) + 0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_PHYS(x)                                                            ((x) + 0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OFFS                                                               (0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RMSK                                                                     0x1f
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ATTR                                                                            0x3
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x),v)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x),m,v,HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_IN(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RXDMA_CLR_BMSK                                                           0x10
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RXDMA_CLR_SHFT                                                              4
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_FW_CLR_BMSK                                                               0x8
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_FW_CLR_SHFT                                                                 3
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_SW_CLR_BMSK                                                               0x4
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_SW_CLR_SHFT                                                                 2
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_REO_CLR_BMSK                                                              0x2
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_REO_CLR_SHFT                                                                1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_TQM_CLR_BMSK                                                              0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_TQM_CLR_SHFT                                                                0
+
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x)                                                    ((x) + 0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_PHYS(x)                                                    ((x) + 0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_OFFS                                                       (0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_RMSK                                                        0x1ffffff
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_POR                                                        0x00000000
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ATTR                                                                    0x1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COUNT_BMSK                                                  0x1e00000
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COUNT_SHFT                                                         21
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COOKIE_BMSK                                                  0x1ffffe
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COOKIE_SHFT                                                         1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_VALID_BMSK                                                        0x1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_VALID_SHFT                                                          0
+
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x)                                                     ((x) + 0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_PHYS(x)                                                     ((x) + 0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_OFFS                                                        (0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_RMSK                                                         0x1ffffff
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_POR                                                         0x00000000
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ATTR                                                                     0x1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COUNT_BMSK                                                   0x1e00000
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COUNT_SHFT                                                          21
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COOKIE_BMSK                                                   0x1ffffe
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COOKIE_SHFT                                                          1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_VALID_BMSK                                                         0x1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_VALID_SHFT                                                           0
+
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x)                                                        ((x) + 0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_PHYS(x)                                                        ((x) + 0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_OFFS                                                           (0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_RMSK                                                            0x1ffffff
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_POR                                                            0x00000000
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ATTR                                                                        0x1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COUNT_BMSK                                                      0x1e00000
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COUNT_SHFT                                                             21
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COOKIE_BMSK                                                      0x1ffffe
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COOKIE_SHFT                                                             1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_VALID_BMSK                                                            0x1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_VALID_SHFT                                                              0
+
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x)                                                               ((x) + 0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_PHYS(x)                                                               ((x) + 0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_OFFS                                                                  (0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_POR                                                                   0x00000000
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ATTR                                                                               0x1
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x)                                                               ((x) + 0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_PHYS(x)                                                               ((x) + 0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_OFFS                                                                  (0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_POR                                                                   0x00000000
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ATTR                                                                               0x1
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x)                                                                ((x) + 0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_PHYS(x)                                                                ((x) + 0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_OFFS                                                                   (0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_POR                                                                    0x00000000
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ATTR                                                                                0x1
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_COUNT_BMSK                                                                0xfffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_COUNT_SHFT                                                                      0
+
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x)                                                                ((x) + 0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_PHYS(x)                                                                ((x) + 0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_OFFS                                                                   (0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ATTR                                                                                0x1
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_COUNT_BMSK                                                                0xfffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_COUNT_SHFT                                                                      0
+
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x)                                                            ((x) + 0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_PHYS(x)                                                            ((x) + 0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_OFFS                                                               (0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_RMSK                                                                  0xfffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_POR                                                                0x00000000
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ATTR                                                                            0x1
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_COUNT_BMSK                                                            0xfffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_COUNT_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x)                                                             ((x) + 0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_PHYS(x)                                                             ((x) + 0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_OFFS                                                                (0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_RMSK                                                                   0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ATTR                                                                             0x1
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_COUNT_BMSK                                                             0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_COUNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x)                                                               ((x) + 0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_PHYS(x)                                                               ((x) + 0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_OFFS                                                                  (0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_POR                                                                   0x00000000
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ATTR                                                                               0x1
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x))
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x), m)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x)                                                                ((x) + 0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_PHYS(x)                                                                ((x) + 0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OFFS                                                                   (0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RMSK                                                                        0x3ff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_POR                                                                    0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ATTR                                                                                0x3
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3fe
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_PTR_SHFT                                                                     1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_VALID_BMSK                                                                 0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_VALID_SHFT                                                                   0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x)                                                              ((x) + 0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_PHYS(x)                                                              ((x) + 0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_OFFS                                                                 (0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_POR                                                                  0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ATTR                                                                              0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x)                                                              ((x) + 0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_PHYS(x)                                                              ((x) + 0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_OFFS                                                                 (0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ATTR                                                                              0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x)                                                              ((x) + 0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_PHYS(x)                                                              ((x) + 0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_OFFS                                                                 (0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_RMSK                                                                      0x1ff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x1e0
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                             5
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_UD_CNT_BMSK                                                                0x1f
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_UD_CNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x)                                                              ((x) + 0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_PHYS(x)                                                              ((x) + 0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OFFS                                                                 (0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RMSK                                                                       0x1f
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ATTR                                                                              0x3
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_PTR_BMSK                                                                0x1e
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_PTR_SHFT                                                                   1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_VALID_BMSK                                                               0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_VALID_SHFT                                                                 0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x)                                                            ((x) + 0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_PHYS(x)                                                            ((x) + 0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_OFFS                                                               (0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x)                                                            ((x) + 0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_PHYS(x)                                                            ((x) + 0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_OFFS                                                               (0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x)                                                              ((x) + 0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_PHYS(x)                                                              ((x) + 0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_OFFS                                                                 (0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_RMSK                                                                    0x3ffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_BF_RDPTR_BMSK                                                  0x3c000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_BF_RDPTR_SHFT                                                       14
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_BUD_CNT_BMSK                                                             0x3e00
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_BUD_CNT_SHFT                                                                  9
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_RDPTR_BMSK                                                       0x1e0
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_RDPTR_SHFT                                                           5
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                0x1f
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x)                                                              ((x) + 0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_PHYS(x)                                                              ((x) + 0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OFFS                                                                 (0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RMSK                                                                       0x1f
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ATTR                                                                              0x3
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                0x1e
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                   1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                               0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                 0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x)                                                            ((x) + 0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_PHYS(x)                                                            ((x) + 0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_OFFS                                                               (0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x)                                                            ((x) + 0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_PHYS(x)                                                            ((x) + 0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_OFFS                                                               (0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x)                                                           ((x) + 0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_PHYS(x)                                                           ((x) + 0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OFFS                                                              (0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RMSK                                                                    0x1f
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_POR                                                               0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ATTR                                                                           0x3
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_PTR_BMSK                                                             0x1e
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_PTR_SHFT                                                                1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_VALID_BMSK                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_VALID_SHFT                                                              0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x)                                                         ((x) + 0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_PHYS(x)                                                         ((x) + 0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_OFFS                                                            (0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_POR                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ATTR                                                                         0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RD_DATA_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RD_DATA_SHFT                                                             0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x)                                                         ((x) + 0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_PHYS(x)                                                         ((x) + 0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_OFFS                                                            (0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ATTR                                                                         0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RD_DATA_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RD_DATA_SHFT                                                             0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x)                                                             ((x) + 0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_PHYS(x)                                                             ((x) + 0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_OFFS                                                                (0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_RMSK                                                                     0x7ff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                        0x7c0
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                            6
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_UD_CNT_BMSK                                                               0x3f
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_UD_CNT_SHFT                                                                  0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x)                                                             ((x) + 0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_PHYS(x)                                                             ((x) + 0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OFFS                                                                (0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_POR                                                                 0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ATTR                                                                             0x3
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_PTR_BMSK                                                               0x3e
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_PTR_SHFT                                                                  1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_VALID_BMSK                                                              0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_VALID_SHFT                                                                0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x)                                                           ((x) + 0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_PHYS(x)                                                           ((x) + 0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_OFFS                                                              (0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_POR                                                               0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ATTR                                                                           0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RD_DATA_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RD_DATA_SHFT                                                               0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x)                                                           ((x) + 0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_PHYS(x)                                                           ((x) + 0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_OFFS                                                              (0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_POR                                                               0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ATTR                                                                           0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RD_DATA_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RD_DATA_SHFT                                                               0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_OFFS                                                                  (0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_OFFS                                                                  (0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_OFFS                                                                  (0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_OFFS                                                                  (0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_OFFS                                                                  (0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_OFFS                                                                  (0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_OFFS                                                                  (0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x)                                                                ((x) + 0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_PHYS(x)                                                                ((x) + 0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_OFFS                                                                   (0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_RMSK                                                                        0xfbf
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ATTR                                                                                0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                           0xf80
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                               7
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                  0x3f
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x)                                                                ((x) + 0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_PHYS(x)                                                                ((x) + 0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OFFS                                                                   (0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RMSK                                                                         0x3f
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ATTR                                                                                0x3
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                  0x3e
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                     1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                 0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                   0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x)                                                              ((x) + 0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_PHYS(x)                                                              ((x) + 0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_OFFS                                                                 (0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x)                                                              ((x) + 0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_PHYS(x)                                                              ((x) + 0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_OFFS                                                                 (0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_OFFS                                                                  (0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_RMSK                                                                       0xfbf
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0xf80
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x3f
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RMSK                                                                        0x3f
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3e
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x)                                                          ((x) + 0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_PHYS(x)                                                          ((x) + 0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_OFFS                                                             (0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_RMSK                                                                  0xfbf
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                     0xf80
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                         7
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                            0x3f
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                               0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x)                                                          ((x) + 0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_PHYS(x)                                                          ((x) + 0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OFFS                                                             (0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RMSK                                                                   0x3f
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ATTR                                                                          0x3
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                            0x3e
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                               1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                           0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                             0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x)                                                        ((x) + 0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_PHYS(x)                                                        ((x) + 0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_OFFS                                                           (0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x)                                                        ((x) + 0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_PHYS(x)                                                        ((x) + 0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_OFFS                                                           (0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x)                                                          ((x) + 0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_PHYS(x)                                                          ((x) + 0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_OFFS                                                             (0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_RMSK                                                                  0xfbf
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                     0xf80
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                         7
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                            0x3f
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                               0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x)                                                          ((x) + 0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_PHYS(x)                                                          ((x) + 0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OFFS                                                             (0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RMSK                                                                   0x3f
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ATTR                                                                          0x3
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                            0x3e
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                               1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                           0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                             0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x)                                                        ((x) + 0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_PHYS(x)                                                        ((x) + 0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_OFFS                                                           (0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x)                                                        ((x) + 0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_PHYS(x)                                                        ((x) + 0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_OFFS                                                           (0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x)                                                            ((x) + 0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_PHYS(x)                                                            ((x) + 0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OFFS                                                               (0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RMSK                                                                     0x7f
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_POR                                                                0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ATTR                                                                            0x3
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_PTR_BMSK                                                              0x7e
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_PTR_SHFT                                                                 1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_VALID_BMSK                                                             0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_VALID_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x)                                                            ((x) + 0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_PHYS(x)                                                            ((x) + 0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_OFFS                                                               (0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_RMSK                                                                   0x1fff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_POR                                                                0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                      0x1f80
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                           7
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_UD_CNT_BMSK                                                              0x7f
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_UD_CNT_SHFT                                                                 0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x)                                                          ((x) + 0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_PHYS(x)                                                          ((x) + 0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_OFFS                                                             (0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_POR                                                              0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x)                                                          ((x) + 0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_PHYS(x)                                                          ((x) + 0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_OFFS                                                             (0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x)                                                            ((x) + 0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_PHYS(x)                                                            ((x) + 0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_OFFS                                                               (0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_RMSK                                                                     0x1f
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                        0x18
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                           3
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_UD_CNT_BMSK                                                               0x7
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_UD_CNT_SHFT                                                                 0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x)                                                            ((x) + 0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_PHYS(x)                                                            ((x) + 0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OFFS                                                               (0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RMSK                                                                      0x7
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ATTR                                                                            0x3
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_PTR_BMSK                                                               0x6
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_PTR_SHFT                                                                 1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_VALID_BMSK                                                             0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_VALID_SHFT                                                               0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x)                                                          ((x) + 0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_PHYS(x)                                                          ((x) + 0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_OFFS                                                             (0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_POR                                                              0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ATTR                                                                          0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x)                                                     ((x) + 0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_PHYS(x)                                                     ((x) + 0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_OFFS                                                        (0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_RMSK                                                         0xfffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_POR                                                         0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ATTR                                                                     0x1
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_VALUE_BMSK                                                   0xfffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_VALUE_SHFT                                                           0
+
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x)                                                      ((x) + 0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_PHYS(x)                                                      ((x) + 0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_OFFS                                                         (0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_RMSK                                                          0xfffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_POR                                                          0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ATTR                                                                      0x1
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_VALUE_BMSK                                                    0xfffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x)                                                                   ((x) + 0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_PHYS(x)                                                                   ((x) + 0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OFFS                                                                      (0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_RMSK                                                                           0x7ff
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_POR                                                                       0x00000010
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_ATTR                                                                                   0x3
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_CONTROL_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_SCATTER_BUFFER_SIZE_BMSK                                                       0x7fc
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_SCATTER_BUFFER_SIZE_SHFT                                                           2
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_LINK_DESC_IDLE_LIST_MODE_BMSK                                                    0x2
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_LINK_DESC_IDLE_LIST_MODE_SHFT                                                      1
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_BUFFER_IDLE_LIST_MODE_BMSK                                                       0x1
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_BUFFER_IDLE_LIST_MODE_SHFT                                                         0
+
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x)                                                                      ((x) + 0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_PHYS(x)                                                                      ((x) + 0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OFFS                                                                         (0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_POR                                                                          0x00020002
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_SIZE_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_LINK_DESC_LIST_BMSK                                0xffff0000
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_LINK_DESC_LIST_SHFT                                        16
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_BUF_LIST_BMSK                                          0xffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_BUF_LIST_SHFT                                               0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x)                                                   ((x) + 0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_PHYS(x)                                                   ((x) + 0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OFFS                                                      (0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_BASE_ADDRESS_31_0_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_BASE_ADDRESS_31_0_SHFT                                             0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x)                                                   ((x) + 0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_PHYS(x)                                                   ((x) + 0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OFFS                                                      (0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDRESS_MATCH_TAG_BMSK                                    0xffffff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDRESS_MATCH_TAG_SHFT                                             8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_BASE_ADDRESS_39_32_BMSK                                         0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_BASE_ADDRESS_39_32_SHFT                                            0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x)                                               ((x) + 0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_PHYS(x)                                               ((x) + 0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OFFS                                                  (0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_BUFFER_ADDRESS_31_0_BMSK                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_BUFFER_ADDRESS_31_0_SHFT                                       0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x)                                               ((x) + 0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_PHYS(x)                                               ((x) + 0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OFFS                                                  (0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_RMSK                                                    0x1fffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_HEAD_POINTER_OFFSET_BMSK                                0x1fff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_HEAD_POINTER_OFFSET_SHFT                                       8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_BUFFER_ADDRESS_39_32_BMSK                                   0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_BUFFER_ADDRESS_39_32_SHFT                                      0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x)                                               ((x) + 0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_PHYS(x)                                               ((x) + 0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OFFS                                                  (0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_BUFFER_ADDRESS_31_0_BMSK                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_BUFFER_ADDRESS_31_0_SHFT                                       0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x)                                               ((x) + 0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_PHYS(x)                                               ((x) + 0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OFFS                                                  (0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_RMSK                                                    0x1fffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_TAIL_POINTER_OFFSET_BMSK                                0x1fff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_TAIL_POINTER_OFFSET_SHFT                                       8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_BUFFER_ADDRESS_39_32_BMSK                                   0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_BUFFER_ADDRESS_39_32_SHFT                                      0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x)                                                          ((x) + 0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_PHYS(x)                                                          ((x) + 0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OFFS                                                             (0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_RMSK                                                                0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_POR                                                              0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ATTR                                                                          0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_SCAT_HEAD_PTR_BMSK                                                  0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_SCAT_HEAD_PTR_SHFT                                                        0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x)                                                          ((x) + 0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_PHYS(x)                                                          ((x) + 0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OFFS                                                             (0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_RMSK                                                                0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_POR                                                              0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ATTR                                                                          0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_SCAT_TAIL_PTR_BMSK                                                  0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_SCAT_TAIL_PTR_SHFT                                                        0
+
+#define HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x)                                                                       ((x) + 0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_PHYS(x)                                                                       ((x) + 0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OFFS                                                                          (0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_RMSK                                                                            0x3fffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_POR                                                                           0x00020000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_ATTR                                                                                       0x3
+#define HWIO_WBM_R0_CLK_GATE_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x))
+#define HWIO_WBM_R0_CLK_GATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x),m,v,HWIO_WBM_R0_CLK_GATE_CTRL_IN(x))
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE1_BMSK                                                          0x3c0000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE1_SHFT                                                                18
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_ENS_EXTEND_BMSK                                                              0x20000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_ENS_EXTEND_SHFT                                                                   17
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_APB_BMSK                                                        0x10000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_APB_SHFT                                                             16
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_BMSK                                                             0xffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OFFS                                                              (0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OFFS                                                              (0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OFFS                                                                    (0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_OFFS                                                                (0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OFFS                                                                  (0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OFFS                                                                (0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OFFS                                                              (0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OFFS                                                              (0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OFFS                                                                    (0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_OFFS                                                                (0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OFFS                                                                  (0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OFFS                                                                (0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OFFS                                                               (0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OFFS                                                               (0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OFFS                                                                     (0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_RMSK                                                                           0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_OFFS                                                                 (0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OFFS                                                                   (0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OFFS                                                            (0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OFFS                                                            (0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OFFS                                                                 (0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OFFS                                                               (0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OFFS                                                               (0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OFFS                                                                     (0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_RMSK                                                                           0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_OFFS                                                                 (0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OFFS                                                                   (0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OFFS                                                            (0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OFFS                                                            (0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OFFS                                                                 (0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x)                                                        ((x) + 0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_PHYS(x)                                                        ((x) + 0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OFFS                                                           (0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x)                                                        ((x) + 0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_PHYS(x)                                                        ((x) + 0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OFFS                                                           (0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RMSK                                                             0xffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xffff00
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                          8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                              0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x)                                                              ((x) + 0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_PHYS(x)                                                              ((x) + 0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OFFS                                                                 (0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_RMSK                                                                       0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_POR                                                                  0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ATTR                                                                              0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                            0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                               0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x)                                                          ((x) + 0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_PHYS(x)                                                          ((x) + 0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_OFFS                                                             (0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_POR                                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                             0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                     16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                 0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                      0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x)                                                            ((x) + 0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_PHYS(x)                                                            ((x) + 0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OFFS                                                               (0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RMSK                                                                 0x3fffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_POR                                                                0x00000080
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ATTR                                                                            0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                   0x3fc000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                         14
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                    0x3000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                        12
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                     0xf00
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                         8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                        0x80
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                           7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                         0x40
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                            6
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                   0x20
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                      5
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                    0x10
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                       4
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                         0x8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                           3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                         0x4
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                           2
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                      0x2
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                        1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                      0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                        0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                     ((x) + 0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                     ((x) + 0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OFFS                                                        (0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                   0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                     ((x) + 0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                     ((x) + 0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OFFS                                                        (0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_RMSK                                                              0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                         0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                          ((x) + 0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                          ((x) + 0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                             (0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                   0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                           16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                               0x8000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                   15
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                         0x7fff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                              0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                          ((x) + 0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                          ((x) + 0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                             (0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                 0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                   0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                        0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                             ((x) + 0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                             ((x) + 0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                (0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                 0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                             0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                  0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                          16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                       0x7fff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                          ((x) + 0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                          ((x) + 0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                             (0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                               0x3ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                   0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                         ((x) + 0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                         ((x) + 0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                            (0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                   0x7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                             0x00000003
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                         0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                              0x7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                        ((x) + 0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                        ((x) + 0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                           (0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                             0xffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                        0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                              0xff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                    16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                             0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                  0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                   ((x) + 0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                   ((x) + 0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                      (0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                   ((x) + 0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                   ((x) + 0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                      (0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x)                                                       ((x) + 0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_PHYS(x)                                                       ((x) + 0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OFFS                                                          (0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                 ((x) + 0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                 ((x) + 0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                    (0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                        0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                     0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                 0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                     0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x)                                                          ((x) + 0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_PHYS(x)                                                          ((x) + 0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OFFS                                                             (0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_RMSK                                                             0xffff003f
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ATTR                                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                    0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                            16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                           0x3f
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OFFS                                                             (0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OFFS                                                             (0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x)                                                                ((x) + 0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_PHYS(x)                                                                ((x) + 0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OFFS                                                                   (0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x)                                                            ((x) + 0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_PHYS(x)                                                            ((x) + 0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_OFFS                                                               (0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x)                                                              ((x) + 0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_PHYS(x)                                                              ((x) + 0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OFFS                                                                 (0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OFFS                                                          (0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OFFS                                                          (0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OFFS                                                        (0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OFFS                                                        (0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OFFS                                                            (0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OFFS                                                        (0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OFFS                                                        (0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OFFS                                                            (0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                      (0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x)                                                            ((x) + 0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_PHYS(x)                                                            ((x) + 0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OFFS                                                               (0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OFFS                                                             (0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OFFS                                                             (0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x)                                                                ((x) + 0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_PHYS(x)                                                                ((x) + 0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OFFS                                                                   (0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x)                                                            ((x) + 0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_PHYS(x)                                                            ((x) + 0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_OFFS                                                               (0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x)                                                              ((x) + 0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_PHYS(x)                                                              ((x) + 0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OFFS                                                                 (0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OFFS                                                          (0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OFFS                                                          (0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                   (0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                  (0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OFFS                                                        (0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OFFS                                                        (0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OFFS                                                            (0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OFFS                                                        (0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OFFS                                                        (0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OFFS                                                            (0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                      (0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x)                                                            ((x) + 0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_PHYS(x)                                                            ((x) + 0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OFFS                                                               (0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OFFS                                                              (0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OFFS                                                              (0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OFFS                                                                    (0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_OFFS                                                                (0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OFFS                                                                  (0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OFFS                                                           (0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OFFS                                                           (0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OFFS                                                             (0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OFFS                                                         (0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OFFS                                                         (0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OFFS                                                             (0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OFFS                                                                (0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OFFS                                                              (0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OFFS                                                              (0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OFFS                                                                    (0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_OFFS                                                                (0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OFFS                                                                  (0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OFFS                                                           (0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OFFS                                                           (0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OFFS                                                             (0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OFFS                                                         (0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OFFS                                                         (0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OFFS                                                             (0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OFFS                                                                (0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OFFS                                                          (0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OFFS                                                          (0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RMSK                                                            0xffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                  0xffff00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x)                                                             ((x) + 0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_PHYS(x)                                                             ((x) + 0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OFFS                                                                (0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x)                                                         ((x) + 0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_PHYS(x)                                                         ((x) + 0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_OFFS                                                            (0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x)                                                           ((x) + 0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_PHYS(x)                                                           ((x) + 0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OFFS                                                              (0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OFFS                                                       (0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OFFS                                                       (0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                (0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_OFFS                                               (0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OFFS                                                     (0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OFFS                                                     (0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OFFS                                                         (0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffc0ffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OFFS                                                     (0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OFFS                                                     (0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OFFS                                                         (0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x)                                                         ((x) + 0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_PHYS(x)                                                         ((x) + 0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OFFS                                                            (0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x)                                                         ((x) + 0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_PHYS(x)                                                         ((x) + 0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OFFS                                                            (0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x)                                                         ((x) + 0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_PHYS(x)                                                         ((x) + 0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OFFS                                                            (0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RMSK                                                             0xfffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xfffff00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                           8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x)                                                               ((x) + 0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_PHYS(x)                                                               ((x) + 0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OFFS                                                                  (0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RMSK                                                                      0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_POR                                                                   0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RING_ID_BMSK                                                              0xff00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RING_ID_SHFT                                                                   8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ENTRY_SIZE_BMSK                                                             0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x)                                                           ((x) + 0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_PHYS(x)                                                           ((x) + 0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_OFFS                                                              (0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ATTR                                                                           0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                              0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                      16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                  0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x)                                                             ((x) + 0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_PHYS(x)                                                             ((x) + 0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OFFS                                                                (0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RMSK                                                                 0x7ffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_POR                                                                 0x00000080
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                         0x4000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                26
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOP_CNT_BMSK                                                        0x3c00000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOP_CNT_SHFT                                                               22
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                    0x3fc000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                          14
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                     0x3000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                         12
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                      0xf00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                          8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                         0x80
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                            7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                          0x40
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                             6
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                    0x20
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                       5
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                     0x10
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                        4
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                          0x8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                            3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SECURITY_BIT_BMSK                                                          0x4
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SECURITY_BIT_SHFT                                                            2
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                       0x2
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                         1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                       0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OFFS                                                         (0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OFFS                                                         (0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OFFS                                                         (0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OFFS                                                         (0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                               ((x) + 0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                               ((x) + 0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                  (0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                              ((x) + 0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                              ((x) + 0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                 (0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                               15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                            ((x) + 0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                            ((x) + 0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                               (0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                    0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                           ((x) + 0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                           ((x) + 0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                              (0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                            16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                    15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                               0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                           ((x) + 0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                           ((x) + 0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                              (0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                  0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                              ((x) + 0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                              ((x) + 0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_OFFS                                                 (0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                           ((x) + 0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                           ((x) + 0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                              (0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                   0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                          ((x) + 0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                          ((x) + 0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                             (0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                    0x7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                              0x00000003
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                               0x7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                         ((x) + 0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                         ((x) + 0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                            (0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                             0xfffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                         0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                              0xff00000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                     20
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                             0xfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                   0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                              ((x) + 0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                              ((x) + 0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                 (0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                 0xffcfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                      0xff000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                              24
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                       0x800000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                             23
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                     0x400000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                           22
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                     0xfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                  ((x) + 0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                  ((x) + 0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                     (0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                         0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x)                                                           ((x) + 0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_PHYS(x)                                                           ((x) + 0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OFFS                                                              (0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_RMSK                                                              0xffff003f
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                     0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                             16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                            0x3f
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x)                                                        ((x) + 0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_PHYS(x)                                                        ((x) + 0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OFFS                                                           (0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x)                                                        ((x) + 0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_PHYS(x)                                                        ((x) + 0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OFFS                                                           (0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RMSK                                                             0xffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xffff00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                          8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                              0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x)                                                              ((x) + 0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_PHYS(x)                                                              ((x) + 0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OFFS                                                                 (0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RMSK                                                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_POR                                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RING_ID_BMSK                                                             0xff00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RING_ID_SHFT                                                                  8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                            0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x)                                                          ((x) + 0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_PHYS(x)                                                          ((x) + 0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_OFFS                                                             (0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                             0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                     16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                 0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                      0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x)                                                            ((x) + 0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_PHYS(x)                                                            ((x) + 0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OFFS                                                               (0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RMSK                                                                0x7ffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_POR                                                                0x00000080
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                        0x4000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                               26
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                       0x3c00000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                              22
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                   0x3fc000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                         14
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                    0x3000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                        12
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                     0xf00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                        0x80
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                           7
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                         0x40
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                            6
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                   0x20
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                      5
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                    0x10
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                       4
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                         0x8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                           3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                         0x4
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                           2
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                      0x2
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                        1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                      0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                     ((x) + 0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                     ((x) + 0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OFFS                                                        (0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                     ((x) + 0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                     ((x) + 0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OFFS                                                        (0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_RMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                         0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                              ((x) + 0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                              ((x) + 0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                 (0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                             ((x) + 0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                             ((x) + 0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                (0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                             0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                  0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                          16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                       0x7fff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                           ((x) + 0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                           ((x) + 0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                              (0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                   0x3ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                 0x3ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                   ((x) + 0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                   ((x) + 0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                      (0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                   ((x) + 0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                   ((x) + 0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                      (0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                       ((x) + 0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                       ((x) + 0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OFFS                                                          (0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                             ((x) + 0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                             ((x) + 0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                (0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                0xffc0ffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                     0xff000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                             24
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                      0x800000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                            23
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                    0x400000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                          22
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                   ((x) + 0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                   ((x) + 0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                      (0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                   ((x) + 0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                   ((x) + 0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                      (0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x)                                                       ((x) + 0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_PHYS(x)                                                       ((x) + 0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OFFS                                                          (0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                 ((x) + 0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                 ((x) + 0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                    (0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x)                                                          ((x) + 0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_PHYS(x)                                                          ((x) + 0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OFFS                                                             (0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_RMSK                                                             0xffff003f
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                    0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                            16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                           0x3f
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OFFS                                                          (0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OFFS                                                          (0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OFFS                                                                (0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_OFFS                                                            (0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OFFS                                                              (0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OFFS                                                            (0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OFFS                                                          (0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OFFS                                                          (0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OFFS                                                                (0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_OFFS                                                            (0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OFFS                                                              (0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OFFS                                                            (0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OFFS                                                          (0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OFFS                                                          (0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OFFS                                                                (0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_OFFS                                                            (0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OFFS                                                              (0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OFFS                                                            (0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OFFS                                                          (0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OFFS                                                          (0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OFFS                                                                (0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_OFFS                                                            (0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OFFS                                                              (0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OFFS                                                            (0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OFFS                                                          (0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OFFS                                                          (0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OFFS                                                                (0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_OFFS                                                            (0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OFFS                                                              (0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OFFS                                                            (0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OFFS                                                          (0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OFFS                                                          (0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OFFS                                                                (0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_OFFS                                                            (0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OFFS                                                              (0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OFFS                                                            (0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OFFS                                                          (0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OFFS                                                          (0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OFFS                                                                (0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_OFFS                                                            (0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OFFS                                                              (0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OFFS                                                            (0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OFFS                                                        (0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OFFS                                                        (0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RMSK                                                         0xfffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                               0xfffff00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x)                                                           ((x) + 0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_PHYS(x)                                                           ((x) + 0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OFFS                                                              (0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RMSK                                                                  0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RING_ID_BMSK                                                          0xff00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RING_ID_SHFT                                                               8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x)                                                       ((x) + 0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_PHYS(x)                                                       ((x) + 0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_OFFS                                                          (0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x)                                                         ((x) + 0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_PHYS(x)                                                         ((x) + 0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OFFS                                                            (0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RMSK                                                             0x7ffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_POR                                                             0x00000080
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                     0x4000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                            26
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                    0x3c00000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                           22
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                  ((x) + 0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                  ((x) + 0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OFFS                                                     (0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                  ((x) + 0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                  ((x) + 0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OFFS                                                     (0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                           ((x) + 0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                           ((x) + 0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                              (0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                            16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                    15
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                               0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                          ((x) + 0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                          ((x) + 0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                             (0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                       0x8000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                           15
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                        ((x) + 0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                        ((x) + 0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                           (0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                0x3ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                              0x3ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                  0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                   (0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                   (0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OFFS                                                       (0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                          ((x) + 0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                          ((x) + 0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                             (0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                             0xffcfffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                  0xff000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                          24
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                   0x800000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                         23
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                 0x400000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                       22
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                 0xfffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                ((x) + 0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                ((x) + 0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                   (0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                ((x) + 0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                ((x) + 0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                   (0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                            0x100
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x)                                                    ((x) + 0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_PHYS(x)                                                    ((x) + 0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OFFS                                                       (0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                 (0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x)                                                       ((x) + 0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_PHYS(x)                                                       ((x) + 0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OFFS                                                          (0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OFFS                                                              (0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OFFS                                                              (0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x)                                                                 ((x) + 0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_PHYS(x)                                                                 ((x) + 0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OFFS                                                                    (0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x)                                                             ((x) + 0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_PHYS(x)                                                             ((x) + 0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_OFFS                                                                (0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x)                                                               ((x) + 0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_PHYS(x)                                                               ((x) + 0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OFFS                                                                  (0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OFFS                                                           (0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OFFS                                                           (0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OFFS                                                         (0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OFFS                                                         (0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OFFS                                                             (0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x)                                                       ((x) + 0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_PHYS(x)                                                       ((x) + 0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OFFS                                                          (0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                           (0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                        (0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                        (0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OFFS                                                                (0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OFFS                                                              (0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OFFS                                                              (0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x)                                                                 ((x) + 0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_PHYS(x)                                                                 ((x) + 0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OFFS                                                                    (0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x)                                                             ((x) + 0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_PHYS(x)                                                             ((x) + 0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_OFFS                                                                (0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x)                                                               ((x) + 0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_PHYS(x)                                                               ((x) + 0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OFFS                                                                  (0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OFFS                                                           (0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OFFS                                                           (0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OFFS                                                         (0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OFFS                                                         (0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OFFS                                                             (0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x)                                                       ((x) + 0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_PHYS(x)                                                       ((x) + 0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OFFS                                                          (0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                           (0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                        (0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                        (0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OFFS                                                                (0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OFFS                                                             (0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OFFS                                                             (0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x)                                                                ((x) + 0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_PHYS(x)                                                                ((x) + 0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OFFS                                                                   (0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x)                                                            ((x) + 0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_PHYS(x)                                                            ((x) + 0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_OFFS                                                               (0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x)                                                              ((x) + 0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_PHYS(x)                                                              ((x) + 0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OFFS                                                                 (0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OFFS                                                          (0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OFFS                                                          (0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OFFS                                                        (0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OFFS                                                        (0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OFFS                                                            (0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OFFS                                                        (0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OFFS                                                        (0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OFFS                                                            (0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OFFS                                                      (0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x)                                                      ((x) + 0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_PHYS(x)                                                      ((x) + 0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OFFS                                                         (0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                              0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                      16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                              15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                   0x7e00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                        9
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                               0x180
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                   7
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                     0x70
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                        4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                   0xf
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                       ((x) + 0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                       ((x) + 0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                          (0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                              0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                   ((x) + 0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                   ((x) + 0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                      (0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                   ((x) + 0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                   ((x) + 0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                      (0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                    ((x) + 0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                    ((x) + 0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                       (0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                    ((x) + 0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                    ((x) + 0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                       (0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x)                                                            ((x) + 0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_PHYS(x)                                                            ((x) + 0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OFFS                                                               (0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OFFS                                                             (0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OFFS                                                             (0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x)                                                                ((x) + 0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_PHYS(x)                                                                ((x) + 0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OFFS                                                                   (0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x)                                                            ((x) + 0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_PHYS(x)                                                            ((x) + 0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_OFFS                                                               (0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x)                                                              ((x) + 0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_PHYS(x)                                                              ((x) + 0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OFFS                                                                 (0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OFFS                                                          (0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OFFS                                                          (0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OFFS                                                        (0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OFFS                                                        (0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OFFS                                                            (0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OFFS                                                        (0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OFFS                                                        (0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OFFS                                                            (0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OFFS                                                      (0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x)                                                      ((x) + 0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_PHYS(x)                                                      ((x) + 0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OFFS                                                         (0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                              0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                      16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                              15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                   0x7e00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                        9
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                               0x180
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                   7
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                     0x70
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                        4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                   0xf
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                       ((x) + 0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                       ((x) + 0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                          (0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                              0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                   ((x) + 0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                   ((x) + 0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                      (0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                   ((x) + 0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                   ((x) + 0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                      (0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                    ((x) + 0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                    ((x) + 0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                       (0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                    ((x) + 0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                    ((x) + 0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                       (0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x)                                                            ((x) + 0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_PHYS(x)                                                            ((x) + 0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OFFS                                                               (0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x)                                                                   ((x) + 0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_PHYS(x)                                                                   ((x) + 0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OFFS                                                                      (0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_RMSK                                                                             0x1
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_POR                                                                       0x00000000
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_ATTR                                                                                   0x3
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WBM_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                      0x1
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                        0
+
+#define HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x)                                                                        ((x) + 0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_PHYS(x)                                                                        ((x) + 0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OFFS                                                                           (0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_RMSK                                                                                 0x3f
+#define HWIO_WBM_R1_TESTBUS_CTRL_POR                                                                            0x00000000
+#define HWIO_WBM_R1_TESTBUS_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R1_TESTBUS_CTRL_ATTR                                                                                        0x3
+#define HWIO_WBM_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_WBM_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_WBM_R1_TESTBUS_CTRL_SELECT_WBM_BMSK                                                                      0x3f
+#define HWIO_WBM_R1_TESTBUS_CTRL_SELECT_WBM_SHFT                                                                         0
+
+#define HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x)                                                                       ((x) + 0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_PHYS(x)                                                                       ((x) + 0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_OFFS                                                                          (0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_POR                                                                           0x00000000
+#define HWIO_WBM_R1_TESTBUS_LOWER_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_ATTR                                                                                       0x1
+#define HWIO_WBM_R1_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_LOWER_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_VALUE_SHFT                                                                             0
+
+#define HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x)                                                                      ((x) + 0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_PHYS(x)                                                                      ((x) + 0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_OFFS                                                                         (0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_RMSK                                                                               0xff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_POR                                                                          0x00000000
+#define HWIO_WBM_R1_TESTBUS_HIGHER_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_TESTBUS_HIGHER_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_VALUE_BMSK                                                                         0xff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_VALUE_SHFT                                                                            0
+
+#define HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x)                                                                      ((x) + 0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_PHYS(x)                                                                      ((x) + 0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_OFFS                                                                         (0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_RMSK                                                                         0x7fffffff
+#define HWIO_WBM_R1_SM_STATES_IX_0_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_0_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW2_BUFFER_P_STATE_BMSK                                                      0x60000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW2_BUFFER_P_STATE_SHFT                                                              29
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW1_BUFFER_P_STATE_BMSK                                                      0x18000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW1_BUFFER_P_STATE_SHFT                                                              27
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW0_BUFFER_P_STATE_BMSK                                                       0x6000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW0_BUFFER_P_STATE_SHFT                                                              25
+#define HWIO_WBM_R1_SM_STATES_IX_0_FW_BUFFER_P_STATE_BMSK                                                        0x1800000
+#define HWIO_WBM_R1_SM_STATES_IX_0_FW_BUFFER_P_STATE_SHFT                                                               23
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_P_STATE_BMSK                                                         0x600000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_P_STATE_SHFT                                                               21
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_C_STATE_BMSK                                                         0x180000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_C_STATE_SHFT                                                               19
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_P_STATE_BMSK                                                        0x60000
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_P_STATE_SHFT                                                             17
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_C_STATE_BMSK                                                        0x18000
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_C_STATE_SHFT                                                             15
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_B_STATE_BMSK                                                 0x7000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_B_STATE_SHFT                                                     12
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_P_STATE_BMSK                                                  0xc00
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_P_STATE_SHFT                                                     10
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_B_STATE_BMSK                                                0x380
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_B_STATE_SHFT                                                    7
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_P_STATE_BMSK                                                 0x60
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_P_STATE_SHFT                                                    5
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_P_STATE_BMSK                                                         0x1c
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_P_STATE_SHFT                                                            2
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_C_STATE_BMSK                                                          0x3
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_C_STATE_SHFT                                                            0
+
+#define HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x)                                                                      ((x) + 0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_PHYS(x)                                                                      ((x) + 0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_OFFS                                                                         (0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_1_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_1_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW4_BUFFER_P_STATE_BMSK                                                      0xc0000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW4_BUFFER_P_STATE_SHFT                                                              30
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_DIST_NULL_PTR_BMSK                                                 0x20000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_DIST_NULL_PTR_SHFT                                                         29
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_DIST_NULL_PTR_BMSK                                                  0x10000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_DIST_NULL_PTR_SHFT                                                          28
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_C_STATE_BMSK                                              0xe000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_C_STATE_SHFT                                                     25
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_P_STATE_BMSK                                              0x1c00000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_P_STATE_SHFT                                                     22
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_C_STATE_BMSK                                                0x380000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_C_STATE_SHFT                                                      19
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_P_STATE_BMSK                                                 0x70000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_P_STATE_SHFT                                                      16
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_C_STATE_BMSK                                                      0xe000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_C_STATE_SHFT                                                          13
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_P_STATE_BMSK                                                      0x1c00
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_P_STATE_SHFT                                                          10
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_C_STATE_BMSK                                                        0x380
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_C_STATE_SHFT                                                            7
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_P_STATE_BMSK                                                         0x70
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_P_STATE_SHFT                                                            4
+#define HWIO_WBM_R1_SM_STATES_IX_1_LINK_ZERO_OUT_STATE_BMSK                                                            0xc
+#define HWIO_WBM_R1_SM_STATES_IX_1_LINK_ZERO_OUT_STATE_SHFT                                                              2
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW3_BUFFER_P_STATE_BMSK                                                             0x3
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW3_BUFFER_P_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x)                                                                      ((x) + 0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_PHYS(x)                                                                      ((x) + 0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_OFFS                                                                         (0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_RMSK                                                                              0x3ff
+#define HWIO_WBM_R1_SM_STATES_IX_2_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_2_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_2_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT2_REL_P_STATE_BMSK                                                         0x300
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT2_REL_P_STATE_SHFT                                                             8
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT1_REL_P_STATE_BMSK                                                          0xc0
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT1_REL_P_STATE_SHFT                                                             6
+#define HWIO_WBM_R1_SM_STATES_IX_2_ERROR_RELEASE_P_STATE_BMSK                                                         0x30
+#define HWIO_WBM_R1_SM_STATES_IX_2_ERROR_RELEASE_P_STATE_SHFT                                                            4
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW6_BUFFER_P_STATE_BMSK                                                             0xc
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW6_BUFFER_P_STATE_SHFT                                                               2
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW5_BUFFER_P_STATE_BMSK                                                             0x3
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW5_BUFFER_P_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x)                                                                      ((x) + 0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_PHYS(x)                                                                      ((x) + 0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OFFS                                                                         (0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_0_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x)                                                                      ((x) + 0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_PHYS(x)                                                                      ((x) + 0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OFFS                                                                         (0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_1_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x)                                                                      ((x) + 0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_PHYS(x)                                                                      ((x) + 0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OFFS                                                                         (0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_2_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_2_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x)                                                                      ((x) + 0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_PHYS(x)                                                                      ((x) + 0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OFFS                                                                         (0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_3_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_3_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                           ((x) + 0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                           ((x) + 0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                              (0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                              0xffffffff
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                               0x7ffe0002
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                           0x3
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                            0xfffe0000
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                    17
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                             0x1fffc
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                                   2
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                          0x2
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                            1
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                           0x1
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                             0
+
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OFFS                                                                    (0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_TQM_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OFFS                                                                    (0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_TQM_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OFFS                                                                    (0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_REO_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OFFS                                                                    (0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_REO_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OFFS                                                                     (0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_SW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OFFS                                                                     (0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_SW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OFFS                                                                     (0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_FW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OFFS                                                                     (0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_FW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x)                                                              ((x) + 0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_PHYS(x)                                                              ((x) + 0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OFFS                                                                 (0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_HEAD_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x)                                                              ((x) + 0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_PHYS(x)                                                              ((x) + 0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OFFS                                                                 (0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_TAIL_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x)                                                                ((x) + 0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_PHYS(x)                                                                ((x) + 0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OFFS                                                                   (0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x)                                                                ((x) + 0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_PHYS(x)                                                                ((x) + 0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OFFS                                                                   (0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x)                                                                ((x) + 0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_PHYS(x)                                                                ((x) + 0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OFFS                                                                   (0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2REO_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x)                                                                ((x) + 0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_PHYS(x)                                                                ((x) + 0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OFFS                                                                   (0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2REO_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OFFS                                                                    (0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OFFS                                                                    (0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OFFS                                                                    (0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OFFS                                                                    (0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x)                                                             ((x) + 0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_PHYS(x)                                                             ((x) + 0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OFFS                                                                (0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_RMSK                                                                    0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_HEAD_PTR_BMSK                                                           0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x)                                                             ((x) + 0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_PHYS(x)                                                             ((x) + 0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OFFS                                                                (0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_RMSK                                                                    0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_TAIL_PTR_BMSK                                                           0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x)                                                               ((x) + 0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_PHYS(x)                                                               ((x) + 0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OFFS                                                                  (0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_RMSK                                                                     0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_POR                                                                   0x00000000
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ATTR                                                                               0x3
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_HEAD_PTR_BMSK                                                            0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_HEAD_PTR_SHFT                                                                  0
+
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x)                                                               ((x) + 0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_PHYS(x)                                                               ((x) + 0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OFFS                                                                  (0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_RMSK                                                                     0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_POR                                                                   0x00000000
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ATTR                                                                               0x3
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_TAIL_PTR_BMSK                                                            0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_TAIL_PTR_SHFT                                                                  0
+
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x)                                                              ((x) + 0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_PHYS(x)                                                              ((x) + 0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OFFS                                                                 (0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x)                                                              ((x) + 0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_PHYS(x)                                                              ((x) + 0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OFFS                                                                 (0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OFFS                                                                (0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OFFS                                                                (0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OFFS                                                                (0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OFFS                                                                (0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OFFS                                                                (0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OFFS                                                                (0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OFFS                                                                (0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OFFS                                                                (0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OFFS                                                                (0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OFFS                                                                (0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OFFS                                                                (0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OFFS                                                                (0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OFFS                                                                (0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OFFS                                                                (0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x)                                                           ((x) + 0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_PHYS(x)                                                           ((x) + 0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OFFS                                                              (0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_RMSK                                                                 0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_POR                                                               0x00000000
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ATTR                                                                           0x3
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_HEAD_PTR_BMSK                                                        0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x)                                                           ((x) + 0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_PHYS(x)                                                           ((x) + 0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OFFS                                                              (0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_RMSK                                                                 0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_POR                                                               0x00000000
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ATTR                                                                           0x3
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_TAIL_PTR_BMSK                                                        0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x)                                                                 ((x) + 0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_PHYS(x)                                                                 ((x) + 0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OFFS                                                                    (0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x)                                                                 ((x) + 0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_PHYS(x)                                                                 ((x) + 0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OFFS                                                                    (0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x)                                                                 ((x) + 0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_PHYS(x)                                                                 ((x) + 0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OFFS                                                                    (0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x)                                                                 ((x) + 0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_PHYS(x)                                                                 ((x) + 0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OFFS                                                                    (0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x)                                                                ((x) + 0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_PHYS(x)                                                                ((x) + 0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OFFS                                                                   (0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x)                                                                ((x) + 0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_PHYS(x)                                                                ((x) + 0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OFFS                                                                   (0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x)                                                                ((x) + 0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_PHYS(x)                                                                ((x) + 0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OFFS                                                                   (0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x)                                                                ((x) + 0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_PHYS(x)                                                                ((x) + 0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OFFS                                                                   (0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+/*----------------------------------------------------------------------------
+ * MODULE: REO_REG
+ *--------------------------------------------------------------------------*/
+
+#define REO_REG_REG_BASE                                                                                               (UMAC_BASE      + 0x00038000)
+#define REO_REG_REG_BASE_SIZE                                                                                          0x4000
+#define REO_REG_REG_BASE_USED                                                                                          0x30ac
+#define REO_REG_REG_BASE_PHYS                                                                                          (UMAC_BASE_PHYS + 0x00038000)
+#define REO_REG_REG_BASE_OFFS                                                                                          0x00038000
+
+#define HWIO_REO_R0_GENERAL_ENABLE_ADDR(x)                                                                             ((x) + 0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_PHYS(x)                                                                             ((x) + 0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_OFFS                                                                                (0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_GENERAL_ENABLE_POR                                                                                 0x00000100
+#define HWIO_REO_R0_GENERAL_ENABLE_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_GENERAL_ENABLE_ATTR                                                                                             0x3
+#define HWIO_REO_R0_GENERAL_ENABLE_IN(x)            \
+                in_dword(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x))
+#define HWIO_REO_R0_GENERAL_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x), m)
+#define HWIO_REO_R0_GENERAL_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x),v)
+#define HWIO_REO_R0_GENERAL_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x),m,v,HWIO_REO_R0_GENERAL_ENABLE_IN(x))
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO1_RING_ENABLE_BMSK                                                            0x80000000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO1_RING_ENABLE_SHFT                                                                    31
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW6_RING_ENABLE_BMSK                                                            0x40000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW6_RING_ENABLE_SHFT                                                                    30
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW5_RING_ENABLE_BMSK                                                            0x20000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW5_RING_ENABLE_SHFT                                                                    29
+#define HWIO_REO_R0_GENERAL_ENABLE_INVALIDATE_CACHE_FOR_ZERO_VLD_BMSK                                                  0x10000000
+#define HWIO_REO_R0_GENERAL_ENABLE_INVALIDATE_CACHE_FOR_ZERO_VLD_SHFT                                                          28
+#define HWIO_REO_R0_GENERAL_ENABLE_STRUCT_SWAP_DELINK_BMSK                                                              0x8000000
+#define HWIO_REO_R0_GENERAL_ENABLE_STRUCT_SWAP_DELINK_SHFT                                                                     27
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW8_RING_ENABLE_BMSK                                                             0x4000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW8_RING_ENABLE_SHFT                                                                    26
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW7_RING_ENABLE_BMSK                                                             0x2000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW7_RING_ENABLE_SHFT                                                                    25
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO3_RING_ENABLE_BMSK                                                             0x1000000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO3_RING_ENABLE_SHFT                                                                    24
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO2_RING_ENABLE_BMSK                                                              0x800000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO2_RING_ENABLE_SHFT                                                                    23
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO_RING_ENABLE_BMSK                                                               0x400000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO_RING_ENABLE_SHFT                                                                     22
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_CMD_RING_ENABLE_BMSK                                                              0x200000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_CMD_RING_ENABLE_SHFT                                                                    21
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_STATUS_RING_ENABLE_BMSK                                                           0x100000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_STATUS_RING_ENABLE_SHFT                                                                 20
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_RELEASE_RING_ENABLE_BMSK                                                           0x80000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_RELEASE_RING_ENABLE_SHFT                                                                19
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW0_RING_ENABLE_BMSK                                                               0x40000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW0_RING_ENABLE_SHFT                                                                    18
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2FW_RING_ENABLE_BMSK                                                                0x20000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2FW_RING_ENABLE_SHFT                                                                     17
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW4_RING_ENABLE_BMSK                                                               0x10000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW4_RING_ENABLE_SHFT                                                                    16
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW3_RING_ENABLE_BMSK                                                                0x8000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW3_RING_ENABLE_SHFT                                                                    15
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW2_RING_ENABLE_BMSK                                                                0x4000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW2_RING_ENABLE_SHFT                                                                    14
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW1_RING_ENABLE_BMSK                                                                0x2000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW1_RING_ENABLE_SHFT                                                                    13
+#define HWIO_REO_R0_GENERAL_ENABLE_WBM2REO_LINK_RING_ENABLE_BMSK                                                           0x1000
+#define HWIO_REO_R0_GENERAL_ENABLE_WBM2REO_LINK_RING_ENABLE_SHFT                                                               12
+#define HWIO_REO_R0_GENERAL_ENABLE_RXDMA2REO_RING_ENABLE_BMSK                                                               0xe00
+#define HWIO_REO_R0_GENERAL_ENABLE_RXDMA2REO_RING_ENABLE_SHFT                                                                   9
+#define HWIO_REO_R0_GENERAL_ENABLE_GLOBAL_PN_CHK_BMSK                                                                       0x100
+#define HWIO_REO_R0_GENERAL_ENABLE_GLOBAL_PN_CHK_SHFT                                                                           8
+#define HWIO_REO_R0_GENERAL_ENABLE_BACKUP_1_BMSK                                                                             0xe0
+#define HWIO_REO_R0_GENERAL_ENABLE_BACKUP_1_SHFT                                                                                5
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2PPE_RING_ENABLE_BMSK                                                                  0x10
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2PPE_RING_ENABLE_SHFT                                                                     4
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_FLUSH_ENABLE_BMSK                                                                    0x8
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_FLUSH_ENABLE_SHFT                                                                      3
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_LIST_ENABLE_BMSK                                                                     0x4
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_LIST_ENABLE_SHFT                                                                       2
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_HWREORDER_DISABLE_BMSK                                                                 0x2
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_HWREORDER_DISABLE_SHFT                                                                   1
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_ENABLE_BMSK                                                                            0x1
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_ENABLE_SHFT                                                                              0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x)                                                                 ((x) + 0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_PHYS(x)                                                                 ((x) + 0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OFFS                                                                    (0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_POR                                                                     0x76543210
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ATTR                                                                                 0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_7_BMSK                                                0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_7_SHFT                                                        28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_6_BMSK                                                 0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_6_SHFT                                                        24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_5_BMSK                                                  0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_5_SHFT                                                        20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_4_BMSK                                                   0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_4_SHFT                                                        16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_3_BMSK                                                    0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_3_SHFT                                                        12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_2_BMSK                                                     0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_2_SHFT                                                         8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_1_BMSK                                                      0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_1_SHFT                                                         4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_0_BMSK                                                       0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_0_SHFT                                                         0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x)                                                                 ((x) + 0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_PHYS(x)                                                                 ((x) + 0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OFFS                                                                    (0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_POR                                                                     0x66666668
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ATTR                                                                                 0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_15_BMSK                                               0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_15_SHFT                                                       28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_14_BMSK                                                0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_14_SHFT                                                       24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_13_BMSK                                                 0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_13_SHFT                                                       20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_12_BMSK                                                  0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_12_SHFT                                                       16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_11_BMSK                                                   0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_11_SHFT                                                       12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_10_BMSK                                                    0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_10_SHFT                                                        8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_9_BMSK                                                      0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_9_SHFT                                                         4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_8_BMSK                                                       0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_8_SHFT                                                         0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OFFS                                                                    (0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_POR                                                                     0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ATTR                                                                                 0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_23_BMSK                                               0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_23_SHFT                                                       28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_22_BMSK                                                0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_22_SHFT                                                       24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_21_BMSK                                                 0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_21_SHFT                                                       20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_20_BMSK                                                  0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_20_SHFT                                                       16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_19_BMSK                                                   0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_19_SHFT                                                       12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_18_BMSK                                                    0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_18_SHFT                                                        8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_17_BMSK                                                     0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_17_SHFT                                                        4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_16_BMSK                                                      0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_16_SHFT                                                        0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OFFS                                                                    (0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_POR                                                                     0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ATTR                                                                                 0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_31_BMSK                                               0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_31_SHFT                                                       28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_30_BMSK                                                0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_30_SHFT                                                       24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_29_BMSK                                                 0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_29_SHFT                                                       20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_28_BMSK                                                  0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_28_SHFT                                                       16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_27_BMSK                                                   0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_27_SHFT                                                       12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_26_BMSK                                                    0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_26_SHFT                                                        8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_25_BMSK                                                     0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_25_SHFT                                                        4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_24_BMSK                                                      0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_24_SHFT                                                        0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ADDR(x)                                                       ((x) + 0x14)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_PHYS(x)                                                       ((x) + 0x14)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_OFFS                                                          (0x14)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_POR                                                           0x76543210
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_7_BMSK                            0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_7_SHFT                                    28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_6_BMSK                             0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_6_SHFT                                    24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_5_BMSK                              0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_5_SHFT                                    20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_4_BMSK                               0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_4_SHFT                                    16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_3_BMSK                                0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_3_SHFT                                    12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_2_BMSK                                 0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_2_SHFT                                     8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_1_BMSK                                  0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_1_SHFT                                     4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_0_BMSK                                   0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_0_DEST_RING_MAPPING_TID_BASED_0_SHFT                                     0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ADDR(x)                                                       ((x) + 0x18)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_PHYS(x)                                                       ((x) + 0x18)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_OFFS                                                          (0x18)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_POR                                                           0x6666ba98
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_15_BMSK                           0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_15_SHFT                                   28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_14_BMSK                            0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_14_SHFT                                   24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_13_BMSK                             0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_13_SHFT                                   20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_12_BMSK                              0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_12_SHFT                                   16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_11_BMSK                               0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_11_SHFT                                   12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_10_BMSK                                0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_10_SHFT                                    8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_9_BMSK                                  0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_9_SHFT                                     4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_8_BMSK                                   0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_1_DEST_RING_MAPPING_TID_BASED_8_SHFT                                     0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ADDR(x)                                                       ((x) + 0x1c)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_PHYS(x)                                                       ((x) + 0x1c)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_OFFS                                                          (0x1c)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_POR                                                           0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_23_BMSK                           0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_23_SHFT                                   28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_22_BMSK                            0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_22_SHFT                                   24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_21_BMSK                             0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_21_SHFT                                   20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_20_BMSK                              0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_20_SHFT                                   16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_19_BMSK                               0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_19_SHFT                                   12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_18_BMSK                                0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_18_SHFT                                    8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_17_BMSK                                 0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_17_SHFT                                    4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_16_BMSK                                  0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_2_DEST_RING_MAPPING_TID_BASED_16_SHFT                                    0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ADDR(x)                                                       ((x) + 0x20)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_PHYS(x)                                                       ((x) + 0x20)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_OFFS                                                          (0x20)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_POR                                                           0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_31_BMSK                           0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_31_SHFT                                   28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_30_BMSK                            0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_30_SHFT                                   24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_29_BMSK                             0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_29_SHFT                                   20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_28_BMSK                              0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_28_SHFT                                   16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_27_BMSK                               0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_27_SHFT                                   12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_26_BMSK                                0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_26_SHFT                                    8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_25_BMSK                                 0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_25_SHFT                                    4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_24_BMSK                                  0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_TID_BASED_IX_3_DEST_RING_MAPPING_TID_BASED_24_SHFT                                    0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x)                                                             ((x) + 0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_PHYS(x)                                                             ((x) + 0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OFFS                                                                (0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_POR                                                                 0x76543210
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ATTR                                                                             0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_7_BMSK                                        0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_7_SHFT                                                28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_6_BMSK                                         0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_6_SHFT                                                24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_5_BMSK                                          0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_5_SHFT                                                20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_4_BMSK                                           0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_4_SHFT                                                16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_3_BMSK                                            0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_3_SHFT                                                12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_2_BMSK                                             0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_2_SHFT                                                 8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_1_BMSK                                              0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_1_SHFT                                                 4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_0_BMSK                                               0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_0_SHFT                                                 0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x)                                                             ((x) + 0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_PHYS(x)                                                             ((x) + 0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OFFS                                                                (0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_POR                                                                 0x66666668
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ATTR                                                                             0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_15_BMSK                                       0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_15_SHFT                                               28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_14_BMSK                                        0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_14_SHFT                                               24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_13_BMSK                                         0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_13_SHFT                                               20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_12_BMSK                                          0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_12_SHFT                                               16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_11_BMSK                                           0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_11_SHFT                                               12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_10_BMSK                                            0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_10_SHFT                                                8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_9_BMSK                                              0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_9_SHFT                                                 4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_8_BMSK                                               0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_8_SHFT                                                 0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x)                                                             ((x) + 0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_PHYS(x)                                                             ((x) + 0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OFFS                                                                (0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_POR                                                                 0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ATTR                                                                             0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_23_BMSK                                       0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_23_SHFT                                               28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_22_BMSK                                        0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_22_SHFT                                               24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_21_BMSK                                         0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_21_SHFT                                               20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_20_BMSK                                          0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_20_SHFT                                               16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_19_BMSK                                           0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_19_SHFT                                               12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_18_BMSK                                            0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_18_SHFT                                                8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_17_BMSK                                             0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_17_SHFT                                                4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_16_BMSK                                              0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_16_SHFT                                                0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x)                                                             ((x) + 0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_PHYS(x)                                                             ((x) + 0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OFFS                                                                (0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_POR                                                                 0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ATTR                                                                             0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_31_BMSK                                       0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_31_SHFT                                               28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_30_BMSK                                        0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_30_SHFT                                               24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_29_BMSK                                         0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_29_SHFT                                               20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_28_BMSK                                          0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_28_SHFT                                               16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_27_BMSK                                           0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_27_SHFT                                               12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_26_BMSK                                            0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_26_SHFT                                                8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_25_BMSK                                             0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_25_SHFT                                                4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_24_BMSK                                              0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_24_SHFT                                                0
+
+#define HWIO_REO_R0_TIMESTAMP_ADDR(x)                                                                                  ((x) + 0x34)
+#define HWIO_REO_R0_TIMESTAMP_PHYS(x)                                                                                  ((x) + 0x34)
+#define HWIO_REO_R0_TIMESTAMP_OFFS                                                                                     (0x34)
+#define HWIO_REO_R0_TIMESTAMP_RMSK                                                                                     0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_POR                                                                                      0x00000000
+#define HWIO_REO_R0_TIMESTAMP_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_ATTR                                                                                                  0x3
+#define HWIO_REO_R0_TIMESTAMP_IN(x)            \
+                in_dword(HWIO_REO_R0_TIMESTAMP_ADDR(x))
+#define HWIO_REO_R0_TIMESTAMP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_TIMESTAMP_ADDR(x), m)
+#define HWIO_REO_R0_TIMESTAMP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_TIMESTAMP_ADDR(x),v)
+#define HWIO_REO_R0_TIMESTAMP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_TIMESTAMP_ADDR(x),m,v,HWIO_REO_R0_TIMESTAMP_IN(x))
+#define HWIO_REO_R0_TIMESTAMP_TIMESTAMP_BMSK                                                                           0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_TIMESTAMP_SHFT                                                                                    0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x)                                                             ((x) + 0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_PHYS(x)                                                             ((x) + 0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OFFS                                                                (0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_POR                                                                 0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ATTR                                                                             0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_7_BMSK                                       0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_7_SHFT                                               28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_6_BMSK                                        0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_6_SHFT                                               24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_5_BMSK                                         0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_5_SHFT                                               20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_4_BMSK                                          0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_4_SHFT                                               16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_3_BMSK                                           0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_3_SHFT                                               12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_2_BMSK                                            0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_2_SHFT                                                8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_1_BMSK                                             0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_1_SHFT                                                4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_0_BMSK                                              0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_0_SHFT                                                0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x)                                                             ((x) + 0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_PHYS(x)                                                             ((x) + 0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OFFS                                                                (0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_POR                                                                 0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ATTR                                                                             0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_OTHER_BMSK                                   0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_OTHER_SHFT                                           28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_14_BMSK                                       0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_14_SHFT                                              24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_13_BMSK                                        0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_13_SHFT                                              20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_12_BMSK                                         0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_12_SHFT                                              16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_11_BMSK                                          0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_11_SHFT                                              12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_10_BMSK                                           0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_10_SHFT                                               8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_9_BMSK                                             0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_9_SHFT                                                4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_8_BMSK                                              0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_8_SHFT                                                0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_OFFS                                                      (0x40)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_POR                                                       0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ATTR                                                                   0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_7_BMSK                   0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_7_SHFT                           28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_6_BMSK                    0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_6_SHFT                           24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_5_BMSK                     0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_5_SHFT                           20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_4_BMSK                      0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_4_SHFT                           16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_3_BMSK                       0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_3_SHFT                           12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_2_BMSK                        0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_2_SHFT                            8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_1_BMSK                         0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_1_SHFT                            4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_0_BMSK                          0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_0_ERROR_DESTINATION_RING_TID_BASED_0_SHFT                            0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ADDR(x)                                                   ((x) + 0x44)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_PHYS(x)                                                   ((x) + 0x44)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_OFFS                                                      (0x44)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_POR                                                       0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ATTR                                                                   0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_OTHER_BMSK               0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_OTHER_SHFT                       28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_14_BMSK                   0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_14_SHFT                          24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_13_BMSK                    0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_13_SHFT                          20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_12_BMSK                     0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_12_SHFT                          16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_11_BMSK                      0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_11_SHFT                          12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_10_BMSK                       0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_10_SHFT                           8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_9_BMSK                         0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_9_SHFT                            4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_8_BMSK                          0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_TID_BASED_IX_1_ERROR_DESTINATION_RING_TID_BASED_8_SHFT                            0
+
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ADDR(x)                                                                      ((x) + 0x48)
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_PHYS(x)                                                                      ((x) + 0x48)
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_OFFS                                                                         (0x48)
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_RMSK                                                                            0x1ffff
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_POR                                                                          0x00000000
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ATTR                                                                                      0x3
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_IN(x)            \
+                in_dword(HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ADDR(x))
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ADDR(x), m)
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ADDR(x),v)
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_ADDR(x),m,v,HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_IN(x))
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_TID_CTRL_BMSK                                                                   0x1ffff
+#define HWIO_REO_R0_RDI_CTRL_SEL_WITH_TID_TID_CTRL_SHFT                                                                         0
+
+#define HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x)                                                                              ((x) + 0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_PHYS(x)                                                                              ((x) + 0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OFFS                                                                                 (0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_RMSK                                                                                        0x3
+#define HWIO_REO_R0_IDLE_REQ_CTRL_POR                                                                                  0x00000003
+#define HWIO_REO_R0_IDLE_REQ_CTRL_POR_RMSK                                                                             0xffffffff
+#define HWIO_REO_R0_IDLE_REQ_CTRL_ATTR                                                                                              0x3
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x))
+#define HWIO_REO_R0_IDLE_REQ_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x),m,v,HWIO_REO_R0_IDLE_REQ_CTRL_IN(x))
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_CACHE_BMSK                                                                   0x2
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_CACHE_SHFT                                                                     1
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_AGE_LIST_BMSK                                                                0x1
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_AGE_LIST_SHFT                                                                  0
+
+#define HWIO_REO_R0_LAST_SN_0_ADDR(x)                                                                                  ((x) + 0x50)
+#define HWIO_REO_R0_LAST_SN_0_PHYS(x)                                                                                  ((x) + 0x50)
+#define HWIO_REO_R0_LAST_SN_0_OFFS                                                                                     (0x50)
+#define HWIO_REO_R0_LAST_SN_0_RMSK                                                                                       0xffffff
+#define HWIO_REO_R0_LAST_SN_0_POR                                                                                      0x00001001
+#define HWIO_REO_R0_LAST_SN_0_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_LAST_SN_0_ATTR                                                                                                  0x1
+#define HWIO_REO_R0_LAST_SN_0_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_0_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_0_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_0_Q1_BMSK                                                                                    0xfff000
+#define HWIO_REO_R0_LAST_SN_0_Q1_SHFT                                                                                          12
+#define HWIO_REO_R0_LAST_SN_0_Q0_BMSK                                                                                       0xfff
+#define HWIO_REO_R0_LAST_SN_0_Q0_SHFT                                                                                           0
+
+#define HWIO_REO_R0_LAST_SN_1_ADDR(x)                                                                                  ((x) + 0x54)
+#define HWIO_REO_R0_LAST_SN_1_PHYS(x)                                                                                  ((x) + 0x54)
+#define HWIO_REO_R0_LAST_SN_1_OFFS                                                                                     (0x54)
+#define HWIO_REO_R0_LAST_SN_1_RMSK                                                                                       0xffffff
+#define HWIO_REO_R0_LAST_SN_1_POR                                                                                      0x00001001
+#define HWIO_REO_R0_LAST_SN_1_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_LAST_SN_1_ATTR                                                                                                  0x1
+#define HWIO_REO_R0_LAST_SN_1_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_1_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_1_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_1_Q3_BMSK                                                                                    0xfff000
+#define HWIO_REO_R0_LAST_SN_1_Q3_SHFT                                                                                          12
+#define HWIO_REO_R0_LAST_SN_1_Q2_BMSK                                                                                       0xfff
+#define HWIO_REO_R0_LAST_SN_1_Q2_SHFT                                                                                           0
+
+#define HWIO_REO_R0_LAST_SN_2_ADDR(x)                                                                                  ((x) + 0x58)
+#define HWIO_REO_R0_LAST_SN_2_PHYS(x)                                                                                  ((x) + 0x58)
+#define HWIO_REO_R0_LAST_SN_2_OFFS                                                                                     (0x58)
+#define HWIO_REO_R0_LAST_SN_2_RMSK                                                                                       0xffffff
+#define HWIO_REO_R0_LAST_SN_2_POR                                                                                      0x00001001
+#define HWIO_REO_R0_LAST_SN_2_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_LAST_SN_2_ATTR                                                                                                  0x1
+#define HWIO_REO_R0_LAST_SN_2_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_2_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_2_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_2_Q5_BMSK                                                                                    0xfff000
+#define HWIO_REO_R0_LAST_SN_2_Q5_SHFT                                                                                          12
+#define HWIO_REO_R0_LAST_SN_2_Q4_BMSK                                                                                       0xfff
+#define HWIO_REO_R0_LAST_SN_2_Q4_SHFT                                                                                           0
+
+#define HWIO_REO_R0_LAST_SN_3_ADDR(x)                                                                                  ((x) + 0x5c)
+#define HWIO_REO_R0_LAST_SN_3_PHYS(x)                                                                                  ((x) + 0x5c)
+#define HWIO_REO_R0_LAST_SN_3_OFFS                                                                                     (0x5c)
+#define HWIO_REO_R0_LAST_SN_3_RMSK                                                                                       0xffffff
+#define HWIO_REO_R0_LAST_SN_3_POR                                                                                      0x00001001
+#define HWIO_REO_R0_LAST_SN_3_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_LAST_SN_3_ATTR                                                                                                  0x1
+#define HWIO_REO_R0_LAST_SN_3_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_3_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_3_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_3_Q7_BMSK                                                                                    0xfff000
+#define HWIO_REO_R0_LAST_SN_3_Q7_SHFT                                                                                          12
+#define HWIO_REO_R0_LAST_SN_3_Q6_BMSK                                                                                       0xfff
+#define HWIO_REO_R0_LAST_SN_3_Q6_SHFT                                                                                           0
+
+#define HWIO_REO_R0_LAST_SN_4_ADDR(x)                                                                                  ((x) + 0x60)
+#define HWIO_REO_R0_LAST_SN_4_PHYS(x)                                                                                  ((x) + 0x60)
+#define HWIO_REO_R0_LAST_SN_4_OFFS                                                                                     (0x60)
+#define HWIO_REO_R0_LAST_SN_4_RMSK                                                                                          0xfff
+#define HWIO_REO_R0_LAST_SN_4_POR                                                                                      0x00000001
+#define HWIO_REO_R0_LAST_SN_4_POR_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R0_LAST_SN_4_ATTR                                                                                                  0x1
+#define HWIO_REO_R0_LAST_SN_4_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_4_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_4_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_4_Q8_BMSK                                                                                       0xfff
+#define HWIO_REO_R0_LAST_SN_4_Q8_SHFT                                                                                           0
+
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x)                                                                      ((x) + 0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_PHYS(x)                                                                      ((x) + 0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OFFS                                                                         (0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_RMSK                                                                                0x1
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_POR                                                                          0x00000000
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_ATTR                                                                                      0x3
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x))
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x),m,v,HWIO_REO_R0_MODULE_STRESS_CONTROL_IN(x))
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_HANG_AND_CLEAR_ON_RESET_BMSK                                                        0x1
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_HANG_AND_CLEAR_ON_RESET_SHFT                                                          0
+
+#define HWIO_REO_R0_PN_IN_DEST_ADDR(x)                                                                                 ((x) + 0x68)
+#define HWIO_REO_R0_PN_IN_DEST_PHYS(x)                                                                                 ((x) + 0x68)
+#define HWIO_REO_R0_PN_IN_DEST_OFFS                                                                                    (0x68)
+#define HWIO_REO_R0_PN_IN_DEST_RMSK                                                                                           0x1
+#define HWIO_REO_R0_PN_IN_DEST_POR                                                                                     0x00000000
+#define HWIO_REO_R0_PN_IN_DEST_POR_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_PN_IN_DEST_ATTR                                                                                                 0x3
+#define HWIO_REO_R0_PN_IN_DEST_IN(x)            \
+                in_dword(HWIO_REO_R0_PN_IN_DEST_ADDR(x))
+#define HWIO_REO_R0_PN_IN_DEST_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_PN_IN_DEST_ADDR(x), m)
+#define HWIO_REO_R0_PN_IN_DEST_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_PN_IN_DEST_ADDR(x),v)
+#define HWIO_REO_R0_PN_IN_DEST_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_PN_IN_DEST_ADDR(x),m,v,HWIO_REO_R0_PN_IN_DEST_IN(x))
+#define HWIO_REO_R0_PN_IN_DEST_PN_FIELD_EN_IN_DEST_BMSK                                                                       0x1
+#define HWIO_REO_R0_PN_IN_DEST_PN_FIELD_EN_IN_DEST_SHFT                                                                         0
+
+#define HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x)                                                                             ((x) + 0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_PHYS(x)                                                                             ((x) + 0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OFFS                                                                                (0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_POR                                                                                 0x00000000
+#define HWIO_REO_R0_SW_COOKIE_CFG0_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_ATTR                                                                                             0x3
+#define HWIO_REO_R0_SW_COOKIE_CFG0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x), m)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x),v)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x),m,v,HWIO_REO_R0_SW_COOKIE_CFG0_IN(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_SHFT                                                                 0
+
+#define HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x)                                                                             ((x) + 0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PHYS(x)                                                                             ((x) + 0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OFFS                                                                                (0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_RMSK                                                                                  0x1fffff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_POR                                                                                 0x00111700
+#define HWIO_REO_R0_SW_COOKIE_CFG1_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_ATTR                                                                                             0x3
+#define HWIO_REO_R0_SW_COOKIE_CFG1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x), m)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x),v)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x),m,v,HWIO_REO_R0_SW_COOKIE_CFG1_IN(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_GLOBAL_ENABLE_BMSK                                                  0x100000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_GLOBAL_ENABLE_SHFT                                                        20
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_ENABLE_BMSK                                                          0x80000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_ENABLE_SHFT                                                               19
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_BMSK                                                                    0x40000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_SHFT                                                                         18
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_BMSK                                                                 0x3e000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_SHFT                                                                      13
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_BMSK                                                                    0x1f00
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_SHFT                                                                         8
+#define HWIO_REO_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_BMSK                                                             0xff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_SHFT                                                                0
+
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x)                                                                       ((x) + 0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_PHYS(x)                                                                       ((x) + 0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OFFS                                                                          (0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_POR                                                                           0x00000000
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ATTR                                                                                       0x3
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x),m,v,HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_IN(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_VALUE_SHFT                                                                             0
+
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x)                                                                       ((x) + 0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_PHYS(x)                                                                       ((x) + 0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OFFS                                                                          (0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_POR                                                                           0x00000000
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ATTR                                                                                       0x3
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x),m,v,HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_IN(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_VALUE_SHFT                                                                             0
+
+#define HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x)                                                                            ((x) + 0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_PHYS(x)                                                                            ((x) + 0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OFFS                                                                               (0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_RMSK                                                                                    0x1ff
+#define HWIO_REO_R0_QDESC_ADDR_READ_POR                                                                                0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_READ_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_READ_ATTR                                                                                            0x3
+#define HWIO_REO_R0_QDESC_ADDR_READ_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_READ_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x),m,v,HWIO_REO_R0_QDESC_ADDR_READ_IN(x))
+#define HWIO_REO_R0_QDESC_ADDR_READ_GXI_SWAP_BMSK                                                                           0x100
+#define HWIO_REO_R0_QDESC_ADDR_READ_GXI_SWAP_SHFT                                                                               8
+#define HWIO_REO_R0_QDESC_ADDR_READ_LUT_FEATURE_ENABLE_BMSK                                                                  0x80
+#define HWIO_REO_R0_QDESC_ADDR_READ_LUT_FEATURE_ENABLE_SHFT                                                                     7
+#define HWIO_REO_R0_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY_BMSK                                                                   0x40
+#define HWIO_REO_R0_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY_SHFT                                                                      6
+#define HWIO_REO_R0_QDESC_ADDR_READ_INDEX_BMSK                                                                               0x3f
+#define HWIO_REO_R0_QDESC_ADDR_READ_INDEX_SHFT                                                                                  0
+
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x)                                                                           ((x) + 0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_PHYS(x)                                                                           ((x) + 0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_OFFS                                                                              (0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_RMSK                                                                              0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_POR                                                                               0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_ATTR                                                                                           0x1
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_QDESC_ADDR_BMSK                                                                   0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_QDESC_ADDR_SHFT                                                                            0
+
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x)                                                                          ((x) + 0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_PHYS(x)                                                                          ((x) + 0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_OFFS                                                                             (0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_RMSK                                                                              0x3ffffff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_POR                                                                              0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_ATTR                                                                                          0x1
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_Q_INDEX_BMSK                                                                      0x3ffff00
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_Q_INDEX_SHFT                                                                              8
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_QDESC_ADDR_BMSK                                                                        0xff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_QDESC_ADDR_SHFT                                                                           0
+
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x)                                                                       ((x) + 0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_PHYS(x)                                                                       ((x) + 0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OFFS                                                                          (0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_RMSK                                                                              0x1fff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_POR                                                                           0x00000000
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ATTR                                                                                       0x3
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x))
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x),m,v,HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_IN(x))
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_MAX_SUPPORTED_BMSK                                                                0x1fff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_MAX_SUPPORTED_SHFT                                                                     0
+
+#define HWIO_REO_R0_RX_STATS_CMD_ADDR(x)                                                                               ((x) + 0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_PHYS(x)                                                                               ((x) + 0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_OFFS                                                                                  (0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_RMSK                                                                                        0xff
+#define HWIO_REO_R0_RX_STATS_CMD_POR                                                                                   0x00000000
+#define HWIO_REO_R0_RX_STATS_CMD_POR_RMSK                                                                              0xffffffff
+#define HWIO_REO_R0_RX_STATS_CMD_ATTR                                                                                               0x3
+#define HWIO_REO_R0_RX_STATS_CMD_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_CMD_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_CMD_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_CMD_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_CMD_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RX_STATS_CMD_ADDR(x),v)
+#define HWIO_REO_R0_RX_STATS_CMD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RX_STATS_CMD_ADDR(x),m,v,HWIO_REO_R0_RX_STATS_CMD_IN(x))
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_ALL_VDEV_ID_RX_STATS_BMSK                                                             0x80
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_ALL_VDEV_ID_RX_STATS_SHFT                                                                7
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_SINGLE_VDEV_RX_STATS_BMSK                                                             0x40
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_SINGLE_VDEV_RX_STATS_SHFT                                                                6
+#define HWIO_REO_R0_RX_STATS_CMD_VDEV_ID_BMSK                                                                                0x3f
+#define HWIO_REO_R0_RX_STATS_CMD_VDEV_ID_SHFT                                                                                   0
+
+#define HWIO_REO_R0_RX_STATS_LOWER_ADDR(x)                                                                             ((x) + 0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_PHYS(x)                                                                             ((x) + 0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_OFFS                                                                                (0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_POR                                                                                 0x00000000
+#define HWIO_REO_R0_RX_STATS_LOWER_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_ATTR                                                                                             0x1
+#define HWIO_REO_R0_RX_STATS_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_LOWER_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_LOWER_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_LOWER_MSDU_BYTE_COUNT_BMSK                                                                0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_MSDU_BYTE_COUNT_SHFT                                                                         0
+
+#define HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x)                                                                            ((x) + 0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_PHYS(x)                                                                            ((x) + 0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_OFFS                                                                               (0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_RMSK                                                                               0xffffffff
+#define HWIO_REO_R0_RX_STATS_HIGHER_POR                                                                                0x00000000
+#define HWIO_REO_R0_RX_STATS_HIGHER_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_RX_STATS_HIGHER_ATTR                                                                                            0x1
+#define HWIO_REO_R0_RX_STATS_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_COUNT_BMSK                                                                    0xfffffff0
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_COUNT_SHFT                                                                             4
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_BYTE_COUNT_BMSK                                                                      0xf
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_BYTE_COUNT_SHFT                                                                        0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x)                                                                   ((x) + 0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_PHYS(x)                                                                   ((x) + 0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OFFS                                                                      (0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                            0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x)                                                                   ((x) + 0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_PHYS(x)                                                                   ((x) + 0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OFFS                                                                      (0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RMSK                                                                        0xffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_SIZE_BMSK                                                              0xffff00
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_SIZE_SHFT                                                                     8
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                         0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                            0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x)                                                                         ((x) + 0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_PHYS(x)                                                                         ((x) + 0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OFFS                                                                            (0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_RMSK                                                                                  0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_POR                                                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ATTR                                                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ENTRY_SIZE_BMSK                                                                       0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ENTRY_SIZE_SHFT                                                                          0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x)                                                                     ((x) + 0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_PHYS(x)                                                                     ((x) + 0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_OFFS                                                                        (0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_POR                                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ATTR                                                                                     0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                        0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                16
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_VALID_WORDS_BMSK                                                            0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x)                                                                       ((x) + 0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_PHYS(x)                                                                       ((x) + 0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OFFS                                                                          (0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RMSK                                                                            0x3fffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_POR                                                                           0x00000080
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_ATTR                                                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SPARE_CONTROL_BMSK                                                              0x3fc000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SPARE_CONTROL_SHFT                                                                    14
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE2_BMSK                                                               0x3000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE2_SHFT                                                                   12
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE1_BMSK                                                                0xf00
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE1_SHFT                                                                    8
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_IS_IDLE_BMSK                                                                   0x80
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_IS_IDLE_SHFT                                                                      7
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_ENABLE_BMSK                                                                    0x40
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_ENABLE_SHFT                                                                       6
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                              0x20
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                 5
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                               0x10
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                  4
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_MSI_SWAP_BIT_BMSK                                                                    0x8
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_MSI_SWAP_BIT_SHFT                                                                      3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SECURITY_BIT_BMSK                                                                    0x4
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SECURITY_BIT_SHFT                                                                      2
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                 0x2
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                   1
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RING_ID_DISABLE_BMSK                                                                 0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RING_ID_DISABLE_SHFT                                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x)                                                                ((x) + 0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_PHYS(x)                                                                ((x) + 0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OFFS                                                                   (0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_POR                                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ATTR                                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OFFS                                                                   (0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_RMSK                                                                         0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_POR                                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ATTR                                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                    0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                     ((x) + 0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                     ((x) + 0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                        (0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                              0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                      16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                          0x8000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                              15
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                    0x7fff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                     ((x) + 0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                     ((x) + 0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                        (0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                            0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                              0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x)                                                        ((x) + 0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_PHYS(x)                                                        ((x) + 0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_OFFS                                                           (0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_POR                                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ATTR                                                                        0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                             0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                     16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                  0x7fff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                       0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                     ((x) + 0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                     ((x) + 0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                        (0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                             0x3ff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                          0x3ff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                    ((x) + 0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                    ((x) + 0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                       (0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                              0x7
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_POR                                                        0x00000003
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                    0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                         0x7
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                           0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                   ((x) + 0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                   ((x) + 0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                      (0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                        0xffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_POR                                                       0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                   0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                         0xff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                               16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                        0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                             0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x)                                                            ((x) + 0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_PHYS(x)                                                            ((x) + 0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OFFS                                                               (0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_RMSK                                                                   0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_POR                                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ATTR                                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                     0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x)                                                                     ((x) + 0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_PHYS(x)                                                                     ((x) + 0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OFFS                                                                        (0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_RMSK                                                                        0xffff003f
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_POR                                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ATTR                                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                               0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                       16
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                      0x3f
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OFFS                                                                  (0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OFFS                                                                  (0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x)                                                                     ((x) + 0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_PHYS(x)                                                                     ((x) + 0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OFFS                                                                        (0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_RMSK                                                                              0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_POR                                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ATTR                                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x)                                                                 ((x) + 0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_PHYS(x)                                                                 ((x) + 0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_OFFS                                                                    (0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x)                                                                   ((x) + 0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_PHYS(x)                                                                   ((x) + 0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OFFS                                                                      (0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_POR                                                                       0x00000080
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OFFS                                                               (0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OFFS                                                               (0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OFFS                                                             (0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OFFS                                                             (0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OFFS                                                                 (0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x)                                                           ((x) + 0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_PHYS(x)                                                           ((x) + 0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OFFS                                                              (0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ATTR                                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                   0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                           16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                               0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                   15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                        0x7e00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                             9
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                    0x180
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                        7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                          0x70
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                             4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                        0xf
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                            ((x) + 0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                            ((x) + 0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                               (0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                   0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                           0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                        ((x) + 0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                        ((x) + 0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                           (0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                        ((x) + 0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                        ((x) + 0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                           (0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                                 0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                         ((x) + 0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                         ((x) + 0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                            (0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                         ((x) + 0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                         ((x) + 0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                            (0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                                  0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                            0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x)                                                                 ((x) + 0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_PHYS(x)                                                                 ((x) + 0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OFFS                                                                    (0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_RMSK                                                                    0xffff003f
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ATTR                                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                           0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                   16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                  0x3f
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OFFS                                                                  (0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OFFS                                                                  (0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x)                                                                     ((x) + 0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_PHYS(x)                                                                     ((x) + 0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OFFS                                                                        (0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_RMSK                                                                              0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_POR                                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ATTR                                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x)                                                                 ((x) + 0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_PHYS(x)                                                                 ((x) + 0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_OFFS                                                                    (0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x)                                                                   ((x) + 0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_PHYS(x)                                                                   ((x) + 0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OFFS                                                                      (0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_POR                                                                       0x00000080
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OFFS                                                               (0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OFFS                                                               (0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OFFS                                                             (0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OFFS                                                             (0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OFFS                                                                 (0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x)                                                           ((x) + 0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_PHYS(x)                                                           ((x) + 0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OFFS                                                              (0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ATTR                                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                   0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                           16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                               0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                   15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                        0x7e00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                             9
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                    0x180
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                        7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                          0x70
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                             4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                        0xf
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                            ((x) + 0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                            ((x) + 0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                               (0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                   0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                                0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                            0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                           0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                        ((x) + 0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                        ((x) + 0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                           (0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                        ((x) + 0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                        ((x) + 0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                           (0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                                 0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                            0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                        0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                         ((x) + 0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                         ((x) + 0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                            (0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                         ((x) + 0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                         ((x) + 0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                            (0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                                  0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                            0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x)                                                                 ((x) + 0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_PHYS(x)                                                                 ((x) + 0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OFFS                                                                    (0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_RMSK                                                                    0xffff003f
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ATTR                                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                           0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                   16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                  0x3f
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                     0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OFFS                                                                    (0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OFFS                                                                    (0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x)                                                                       ((x) + 0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_PHYS(x)                                                                       ((x) + 0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OFFS                                                                          (0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_RMSK                                                                                0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_POR                                                                           0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ATTR                                                                                       0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_ID_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x)                                                                   ((x) + 0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_PHYS(x)                                                                   ((x) + 0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_OFFS                                                                      (0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x)                                                                     ((x) + 0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_PHYS(x)                                                                     ((x) + 0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OFFS                                                                        (0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_POR                                                                         0x00000080
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_MISC_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OFFS                                                                 (0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OFFS                                                                 (0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_OFFS                                                         (0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x)                                                                   ((x) + 0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_PHYS(x)                                                                   ((x) + 0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OFFS                                                                      (0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_RMSK                                                                      0xffff003f
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_POR                                                                       0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ATTR                                                                                   0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                             0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                     16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                    0x3f
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                       0
+
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OFFS                                                                         (0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OFFS                                                                         (0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RMSK                                                                           0xffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_SIZE_BMSK                                                                 0xffff00
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x)                                                                            ((x) + 0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_PHYS(x)                                                                            ((x) + 0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OFFS                                                                               (0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_RMSK                                                                                     0xff
+#define HWIO_REO_R0_REO_CMD_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO_CMD_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO_CMD_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x)                                                                        ((x) + 0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_PHYS(x)                                                                        ((x) + 0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_OFFS                                                                           (0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x)                                                                          ((x) + 0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_PHYS(x)                                                                          ((x) + 0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OFFS                                                                             (0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RMSK                                                                               0x3fffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO_CMD_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO_CMD_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO_CMD_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO_CMD_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO_CMD_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO_CMD_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO_CMD_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO_CMD_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO_CMD_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OFFS                                                                      (0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OFFS                                                                      (0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                        ((x) + 0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                        ((x) + 0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                           (0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                                 0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                         16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                             0x8000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                                 15
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                       0x7fff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                        ((x) + 0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                        ((x) + 0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                           (0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                               0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                                 0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                      0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x)                                                           ((x) + 0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_PHYS(x)                                                           ((x) + 0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_OFFS                                                              (0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                           0x8000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                               15
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                        ((x) + 0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                        ((x) + 0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                           (0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                                0x3ff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                             0x3ff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                                 0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                       ((x) + 0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                       ((x) + 0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                          (0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                                 0x7
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_POR                                                           0x00000003
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                            0x7
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                              0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                      ((x) + 0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                      ((x) + 0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                         (0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                           0xffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_POR                                                          0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                      0x1
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                            0xff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                                  16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                           0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                                0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OFFS                                                                    (0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OFFS                                                                    (0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OFFS                                                                        (0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OFFS                                                                           (0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x)                                                                       ((x) + 0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_PHYS(x)                                                                       ((x) + 0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OFFS                                                                          (0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_POR                                                                           0x00000000
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_ATTR                                                                                       0x3
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                                0
+
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x)                                                                       ((x) + 0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_PHYS(x)                                                                       ((x) + 0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OFFS                                                                          (0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RMSK                                                                            0xffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_POR                                                                           0x00000000
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_ATTR                                                                                       0x3
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_SIZE_BMSK                                                                  0xffff00
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_SIZE_SHFT                                                                         8
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                             0xff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                                0
+
+#define HWIO_REO_R0_SW2REO_RING_ID_ADDR(x)                                                                             ((x) + 0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_PHYS(x)                                                                             ((x) + 0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_OFFS                                                                                (0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_RMSK                                                                                      0xff
+#define HWIO_REO_R0_SW2REO_RING_ID_POR                                                                                 0x00000000
+#define HWIO_REO_R0_SW2REO_RING_ID_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_ID_ATTR                                                                                             0x3
+#define HWIO_REO_R0_SW2REO_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_ID_ENTRY_SIZE_BMSK                                                                           0xff
+#define HWIO_REO_R0_SW2REO_RING_ID_ENTRY_SIZE_SHFT                                                                              0
+
+#define HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x)                                                                         ((x) + 0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_PHYS(x)                                                                         ((x) + 0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_OFFS                                                                            (0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_POR                                                                             0x00000000
+#define HWIO_REO_R0_SW2REO_RING_STATUS_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_ATTR                                                                                         0x1
+#define HWIO_REO_R0_SW2REO_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                            0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                    16
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_VALID_WORDS_BMSK                                                                0xffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                     0
+
+#define HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x)                                                                           ((x) + 0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_PHYS(x)                                                                           ((x) + 0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OFFS                                                                              (0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_RMSK                                                                                0x3fffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_POR                                                                               0x00000080
+#define HWIO_REO_R0_SW2REO_RING_MISC_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_ATTR                                                                                           0x3
+#define HWIO_REO_R0_SW2REO_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_SPARE_CONTROL_BMSK                                                                  0x3fc000
+#define HWIO_REO_R0_SW2REO_RING_MISC_SPARE_CONTROL_SHFT                                                                        14
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE2_BMSK                                                                   0x3000
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE2_SHFT                                                                       12
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE1_BMSK                                                                    0xf00
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE1_SHFT                                                                        8
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_IS_IDLE_BMSK                                                                       0x80
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_IS_IDLE_SHFT                                                                          7
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_ENABLE_BMSK                                                                        0x40
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_ENABLE_SHFT                                                                           6
+#define HWIO_REO_R0_SW2REO_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                  0x20
+#define HWIO_REO_R0_SW2REO_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                     5
+#define HWIO_REO_R0_SW2REO_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                   0x10
+#define HWIO_REO_R0_SW2REO_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                      4
+#define HWIO_REO_R0_SW2REO_RING_MISC_MSI_SWAP_BIT_BMSK                                                                        0x8
+#define HWIO_REO_R0_SW2REO_RING_MISC_MSI_SWAP_BIT_SHFT                                                                          3
+#define HWIO_REO_R0_SW2REO_RING_MISC_SECURITY_BIT_BMSK                                                                        0x4
+#define HWIO_REO_R0_SW2REO_RING_MISC_SECURITY_BIT_SHFT                                                                          2
+#define HWIO_REO_R0_SW2REO_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                     0x2
+#define HWIO_REO_R0_SW2REO_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                       1
+#define HWIO_REO_R0_SW2REO_RING_MISC_RING_ID_DISABLE_BMSK                                                                     0x1
+#define HWIO_REO_R0_SW2REO_RING_MISC_RING_ID_DISABLE_SHFT                                                                       0
+
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x)                                                                    ((x) + 0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_PHYS(x)                                                                    ((x) + 0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OFFS                                                                       (0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_POR                                                                        0x00000000
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ATTR                                                                                    0x3
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                           0
+
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x)                                                                    ((x) + 0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_PHYS(x)                                                                    ((x) + 0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OFFS                                                                       (0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_RMSK                                                                             0xff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_POR                                                                        0x00000000
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ATTR                                                                                    0x3
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                        0xff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                           0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                         ((x) + 0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                         ((x) + 0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                            (0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                                  0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                          16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                              0x8000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                                  15
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                        0x7fff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                             0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                         ((x) + 0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                         ((x) + 0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                            (0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                                0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                                  0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                       0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x)                                                            ((x) + 0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_PHYS(x)                                                            ((x) + 0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_OFFS                                                               (0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ATTR                                                                            0x1
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                 0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                         16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                            0x8000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                                15
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                      0x7fff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                           0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                         ((x) + 0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                         ((x) + 0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                            (0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                              0x3ff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                                  0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                        ((x) + 0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                        ((x) + 0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                           (0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                                  0x7
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_POR                                                            0x00000003
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                             0x7
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                               0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                       ((x) + 0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                       ((x) + 0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                          (0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                            0xffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                       0x1
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                             0xff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                                   16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                            0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                                 0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x)                                                                  ((x) + 0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_PHYS(x)                                                                  ((x) + 0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OFFS                                                                     (0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR_BMSK                                                                0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x)                                                                  ((x) + 0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_PHYS(x)                                                                  ((x) + 0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OFFS                                                                     (0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_RMSK                                                                          0x1ff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                              0x100
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                  8
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                      0xff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x)                                                                      ((x) + 0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_PHYS(x)                                                                      ((x) + 0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OFFS                                                                         (0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_POR                                                                          0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ATTR                                                                                      0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_VALUE_BMSK                                                                   0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_VALUE_SHFT                                                                            0
+
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x)                                                                ((x) + 0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_PHYS(x)                                                                ((x) + 0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OFFS                                                                   (0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_RMSK                                                                       0xffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_POR                                                                    0x00000000
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ATTR                                                                                0x3
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                    0xffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                         0
+
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x)                                                                         ((x) + 0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_PHYS(x)                                                                         ((x) + 0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OFFS                                                                            (0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_RMSK                                                                            0xffff003f
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_POR                                                                             0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_ATTR                                                                                         0x3
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                   0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                           16
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                          0x3f
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                             0
+
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OFFS                                                                         (0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OFFS                                                                         (0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RMSK                                                                           0xffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_SIZE_BMSK                                                                 0xffff00
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x)                                                                            ((x) + 0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_PHYS(x)                                                                            ((x) + 0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OFFS                                                                               (0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_RMSK                                                                                     0xff
+#define HWIO_REO_R0_SW2REO1_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_SW2REO1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_SW2REO1_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x)                                                                        ((x) + 0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_PHYS(x)                                                                        ((x) + 0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_OFFS                                                                           (0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x)                                                                          ((x) + 0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_PHYS(x)                                                                          ((x) + 0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OFFS                                                                             (0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RMSK                                                                               0x3fffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_SW2REO1_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_SW2REO1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_SW2REO1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_SW2REO1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_SW2REO1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_SW2REO1_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_SW2REO1_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_SW2REO1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_SW2REO1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OFFS                                                                      (0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OFFS                                                                      (0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                        ((x) + 0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                        ((x) + 0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                           (0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_POR                                                            0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                                 0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                         16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                             0x8000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                                 15
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                       0x7fff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                        ((x) + 0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                        ((x) + 0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                           (0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                               0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_POR                                                            0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                                 0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                      0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                           ((x) + 0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                           ((x) + 0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_OFFS                                                              (0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                           0x8000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                               15
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                        ((x) + 0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                        ((x) + 0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                           (0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                                0x3ff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_POR                                                            0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                             0x3ff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                                 0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                       ((x) + 0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                       ((x) + 0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                          (0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                                 0x7
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_POR                                                           0x00000003
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                            0x7
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                      ((x) + 0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                      ((x) + 0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                         (0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                           0xffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_POR                                                          0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                      0x1
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                            0xff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                                  16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                           0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OFFS                                                                    (0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OFFS                                                                    (0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OFFS                                                                        (0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OFFS                                                                           (0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OFFS                                                                         (0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OFFS                                                                         (0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x)                                                                            ((x) + 0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_PHYS(x)                                                                            ((x) + 0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OFFS                                                                               (0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW1_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW1_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW1_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW1_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x)                                                                        ((x) + 0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_PHYS(x)                                                                        ((x) + 0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_OFFS                                                                           (0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x)                                                                          ((x) + 0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_PHYS(x)                                                                          ((x) + 0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OFFS                                                                             (0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW1_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW1_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW1_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OFFS                                                                      (0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OFFS                                                                      (0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OFFS                                                                    (0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OFFS                                                                    (0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OFFS                                                                        (0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OFFS                                                                    (0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OFFS                                                                    (0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OFFS                                                                        (0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OFFS                                                                           (0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OFFS                                                                         (0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OFFS                                                                         (0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x)                                                                            ((x) + 0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_PHYS(x)                                                                            ((x) + 0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OFFS                                                                               (0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW2_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW2_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW2_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW2_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW2_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x)                                                                        ((x) + 0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_PHYS(x)                                                                        ((x) + 0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_OFFS                                                                           (0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x)                                                                          ((x) + 0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_PHYS(x)                                                                          ((x) + 0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OFFS                                                                             (0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW2_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW2_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW2_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OFFS                                                                      (0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OFFS                                                                      (0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OFFS                                                                    (0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OFFS                                                                    (0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OFFS                                                                        (0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OFFS                                                                    (0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OFFS                                                                    (0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OFFS                                                                        (0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OFFS                                                                           (0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OFFS                                                                         (0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OFFS                                                                         (0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x)                                                                            ((x) + 0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_PHYS(x)                                                                            ((x) + 0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OFFS                                                                               (0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW3_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW3_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW3_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW3_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW3_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x)                                                                        ((x) + 0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_PHYS(x)                                                                        ((x) + 0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_OFFS                                                                           (0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x)                                                                          ((x) + 0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_PHYS(x)                                                                          ((x) + 0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OFFS                                                                             (0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW3_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW3_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW3_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW3_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW3_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW3_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW3_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OFFS                                                                      (0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OFFS                                                                      (0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OFFS                                                                    (0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OFFS                                                                    (0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OFFS                                                                        (0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OFFS                                                                    (0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OFFS                                                                    (0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OFFS                                                                        (0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OFFS                                                                           (0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OFFS                                                                         (0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OFFS                                                                         (0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x)                                                                            ((x) + 0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_PHYS(x)                                                                            ((x) + 0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OFFS                                                                               (0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW4_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW4_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW4_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW4_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW4_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x)                                                                        ((x) + 0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_PHYS(x)                                                                        ((x) + 0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_OFFS                                                                           (0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x)                                                                          ((x) + 0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_PHYS(x)                                                                          ((x) + 0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OFFS                                                                             (0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW4_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW4_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW4_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW4_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW4_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW4_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW4_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OFFS                                                                      (0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OFFS                                                                      (0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OFFS                                                                    (0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OFFS                                                                    (0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OFFS                                                                        (0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OFFS                                                                    (0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OFFS                                                                    (0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OFFS                                                                        (0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OFFS                                                                           (0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OFFS                                                                         (0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OFFS                                                                         (0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x)                                                                            ((x) + 0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_PHYS(x)                                                                            ((x) + 0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OFFS                                                                               (0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW5_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW5_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW5_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW5_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW5_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x)                                                                        ((x) + 0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_PHYS(x)                                                                        ((x) + 0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_OFFS                                                                           (0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x)                                                                          ((x) + 0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_PHYS(x)                                                                          ((x) + 0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OFFS                                                                             (0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW5_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW5_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW5_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW5_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW5_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW5_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW5_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OFFS                                                                      (0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OFFS                                                                      (0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OFFS                                                                    (0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OFFS                                                                    (0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OFFS                                                                        (0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OFFS                                                                    (0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OFFS                                                                    (0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OFFS                                                                        (0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OFFS                                                                           (0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OFFS                                                                         (0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OFFS                                                                         (0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x)                                                                            ((x) + 0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_PHYS(x)                                                                            ((x) + 0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OFFS                                                                               (0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW6_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW6_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW6_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW6_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW6_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x)                                                                        ((x) + 0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_PHYS(x)                                                                        ((x) + 0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_OFFS                                                                           (0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x)                                                                          ((x) + 0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_PHYS(x)                                                                          ((x) + 0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OFFS                                                                             (0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW6_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW6_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW6_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW6_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW6_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW6_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW6_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OFFS                                                                      (0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OFFS                                                                      (0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OFFS                                                                    (0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OFFS                                                                    (0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OFFS                                                                        (0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OFFS                                                                    (0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OFFS                                                                    (0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OFFS                                                                        (0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OFFS                                                                           (0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x)                                                                      ((x) + 0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_PHYS(x)                                                                      ((x) + 0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OFFS                                                                         (0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x)                                                                      ((x) + 0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_PHYS(x)                                                                      ((x) + 0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OFFS                                                                         (0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RMSK                                                                          0xfffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_SIZE_BMSK                                                                0xfffff00
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_SIZE_SHFT                                                                        8
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x)                                                                            ((x) + 0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_PHYS(x)                                                                            ((x) + 0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OFFS                                                                               (0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_RMSK                                                                                   0xffff
+#define HWIO_REO_R0_REO2SW0_RING_ID_POR                                                                                0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_ID_ATTR                                                                                            0x3
+#define HWIO_REO_R0_REO2SW0_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_ID_RING_ID_BMSK                                                                           0xff00
+#define HWIO_REO_R0_REO2SW0_RING_ID_RING_ID_SHFT                                                                                8
+#define HWIO_REO_R0_REO2SW0_RING_ID_ENTRY_SIZE_BMSK                                                                          0xff
+#define HWIO_REO_R0_REO2SW0_RING_ID_ENTRY_SIZE_SHFT                                                                             0
+
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x)                                                                        ((x) + 0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_PHYS(x)                                                                        ((x) + 0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_OFFS                                                                           (0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_ATTR                                                                                        0x1
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                           0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                   16
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_VALID_WORDS_BMSK                                                               0xffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x)                                                                          ((x) + 0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_PHYS(x)                                                                          ((x) + 0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OFFS                                                                             (0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RMSK                                                                              0x7ffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_POR                                                                              0x00000080
+#define HWIO_REO_R0_REO2SW0_RING_MISC_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ATTR                                                                                          0x3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                      0x4000000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                             26
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOP_CNT_BMSK                                                                     0x3c00000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOP_CNT_SHFT                                                                            22
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SPARE_CONTROL_BMSK                                                                 0x3fc000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SPARE_CONTROL_SHFT                                                                       14
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE2_BMSK                                                                  0x3000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE2_SHFT                                                                      12
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE1_BMSK                                                                   0xf00
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE1_SHFT                                                                       8
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_IS_IDLE_BMSK                                                                      0x80
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_IS_IDLE_SHFT                                                                         7
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_ENABLE_BMSK                                                                       0x40
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_ENABLE_SHFT                                                                          6
+#define HWIO_REO_R0_REO2SW0_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                 0x20
+#define HWIO_REO_R0_REO2SW0_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                    5
+#define HWIO_REO_R0_REO2SW0_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                  0x10
+#define HWIO_REO_R0_REO2SW0_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                     4
+#define HWIO_REO_R0_REO2SW0_RING_MISC_MSI_SWAP_BIT_BMSK                                                                       0x8
+#define HWIO_REO_R0_REO2SW0_RING_MISC_MSI_SWAP_BIT_SHFT                                                                         3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SECURITY_BIT_BMSK                                                                       0x4
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SECURITY_BIT_SHFT                                                                         2
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                    0x2
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                      1
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RING_ID_DISABLE_BMSK                                                                    0x1
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RING_ID_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x)                                                                   ((x) + 0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_PHYS(x)                                                                   ((x) + 0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OFFS                                                                      (0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x)                                                                   ((x) + 0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_PHYS(x)                                                                   ((x) + 0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OFFS                                                                      (0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_RMSK                                                                            0xff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                       0xff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x)                                                            ((x) + 0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_PHYS(x)                                                            ((x) + 0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OFFS                                                               (0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                             16
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                 0x8000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                     15
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                           0x7fff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x)                                                           ((x) + 0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_PHYS(x)                                                           ((x) + 0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_OFFS                                                              (0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                        16
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                     0x7fff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                         ((x) + 0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                         ((x) + 0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OFFS                                                            (0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RMSK                                                                 0x3ff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                               0x3ff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                   0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x)                                                                 ((x) + 0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_PHYS(x)                                                                 ((x) + 0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OFFS                                                                    (0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x)                                                                 ((x) + 0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_PHYS(x)                                                                 ((x) + 0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OFFS                                                                    (0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x)                                                                     ((x) + 0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_PHYS(x)                                                                     ((x) + 0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OFFS                                                                        (0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                           ((x) + 0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                           ((x) + 0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OFFS                                                              (0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_RMSK                                                              0xffcfffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                   0xff000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                           24
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                    0x800000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                          23
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                  0x400000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                        22
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                  0xfffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x)                                                                 ((x) + 0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_PHYS(x)                                                                 ((x) + 0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OFFS                                                                    (0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x)                                                                 ((x) + 0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_PHYS(x)                                                                 ((x) + 0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OFFS                                                                    (0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_RMSK                                                                         0x1ff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                             0x100
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                 8
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                     0xff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x)                                                                     ((x) + 0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_PHYS(x)                                                                     ((x) + 0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OFFS                                                                        (0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_VALUE_BMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_VALUE_SHFT                                                                           0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x)                                                               ((x) + 0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_PHYS(x)                                                               ((x) + 0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OFFS                                                                  (0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                   0xffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x)                                                                        ((x) + 0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_PHYS(x)                                                                        ((x) + 0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OFFS                                                                           (0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_RMSK                                                                           0xffff003f
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                          16
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                         0x3f
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x)                                                                       ((x) + 0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_PHYS(x)                                                                       ((x) + 0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OFFS                                                                          (0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_POR                                                                           0x00000000
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_ATTR                                                                                       0x3
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                                0
+
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x)                                                                       ((x) + 0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_PHYS(x)                                                                       ((x) + 0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OFFS                                                                          (0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RMSK                                                                           0xfffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_POR                                                                           0x00000000
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_ATTR                                                                                       0x3
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_SIZE_BMSK                                                                 0xfffff00
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_SIZE_SHFT                                                                         8
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                             0xff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                                0
+
+#define HWIO_REO_R0_REO2FW_RING_ID_ADDR(x)                                                                             ((x) + 0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_PHYS(x)                                                                             ((x) + 0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_OFFS                                                                                (0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_RMSK                                                                                    0xffff
+#define HWIO_REO_R0_REO2FW_RING_ID_POR                                                                                 0x00000000
+#define HWIO_REO_R0_REO2FW_RING_ID_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_ID_ATTR                                                                                             0x3
+#define HWIO_REO_R0_REO2FW_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_ID_RING_ID_BMSK                                                                            0xff00
+#define HWIO_REO_R0_REO2FW_RING_ID_RING_ID_SHFT                                                                                 8
+#define HWIO_REO_R0_REO2FW_RING_ID_ENTRY_SIZE_BMSK                                                                           0xff
+#define HWIO_REO_R0_REO2FW_RING_ID_ENTRY_SIZE_SHFT                                                                              0
+
+#define HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x)                                                                         ((x) + 0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_PHYS(x)                                                                         ((x) + 0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_OFFS                                                                            (0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_POR                                                                             0x00000000
+#define HWIO_REO_R0_REO2FW_RING_STATUS_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_ATTR                                                                                         0x1
+#define HWIO_REO_R0_REO2FW_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                            0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                    16
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_VALID_WORDS_BMSK                                                                0xffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x)                                                                           ((x) + 0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_PHYS(x)                                                                           ((x) + 0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OFFS                                                                              (0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_RMSK                                                                               0x7ffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_POR                                                                               0x00000080
+#define HWIO_REO_R0_REO2FW_RING_MISC_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_ATTR                                                                                           0x3
+#define HWIO_REO_R0_REO2FW_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                       0x4000000
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                              26
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOP_CNT_BMSK                                                                      0x3c00000
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOP_CNT_SHFT                                                                             22
+#define HWIO_REO_R0_REO2FW_RING_MISC_SPARE_CONTROL_BMSK                                                                  0x3fc000
+#define HWIO_REO_R0_REO2FW_RING_MISC_SPARE_CONTROL_SHFT                                                                        14
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE2_BMSK                                                                   0x3000
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE2_SHFT                                                                       12
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE1_BMSK                                                                    0xf00
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE1_SHFT                                                                        8
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_IS_IDLE_BMSK                                                                       0x80
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_IS_IDLE_SHFT                                                                          7
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_ENABLE_BMSK                                                                        0x40
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_ENABLE_SHFT                                                                           6
+#define HWIO_REO_R0_REO2FW_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                                  0x20
+#define HWIO_REO_R0_REO2FW_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                     5
+#define HWIO_REO_R0_REO2FW_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                                   0x10
+#define HWIO_REO_R0_REO2FW_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                      4
+#define HWIO_REO_R0_REO2FW_RING_MISC_MSI_SWAP_BIT_BMSK                                                                        0x8
+#define HWIO_REO_R0_REO2FW_RING_MISC_MSI_SWAP_BIT_SHFT                                                                          3
+#define HWIO_REO_R0_REO2FW_RING_MISC_SECURITY_BIT_BMSK                                                                        0x4
+#define HWIO_REO_R0_REO2FW_RING_MISC_SECURITY_BIT_SHFT                                                                          2
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                     0x2
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                       1
+#define HWIO_REO_R0_REO2FW_RING_MISC_RING_ID_DISABLE_BMSK                                                                     0x1
+#define HWIO_REO_R0_REO2FW_RING_MISC_RING_ID_DISABLE_SHFT                                                                       0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x)                                                                    ((x) + 0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_PHYS(x)                                                                    ((x) + 0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OFFS                                                                       (0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_POR                                                                        0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ATTR                                                                                    0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                           0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x)                                                                    ((x) + 0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_PHYS(x)                                                                    ((x) + 0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OFFS                                                                       (0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_RMSK                                                                             0xff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_POR                                                                        0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ATTR                                                                                    0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                        0xff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                           0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x)                                                             ((x) + 0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_PHYS(x)                                                             ((x) + 0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OFFS                                                                (0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_POR                                                                 0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ATTR                                                                             0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                      0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                              16
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                                  0x8000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                      15
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                            0x7fff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                                 0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x)                                                            ((x) + 0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_PHYS(x)                                                            ((x) + 0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_OFFS                                                               (0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ATTR                                                                            0x1
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                                 0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                         16
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                         0x8000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                             15
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                      0x7fff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                           0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                          ((x) + 0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                          ((x) + 0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OFFS                                                             (0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RMSK                                                                  0x3ff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_POR                                                              0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ATTR                                                                          0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                                0x3ff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                    0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x)                                                                  ((x) + 0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_PHYS(x)                                                                  ((x) + 0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OFFS                                                                     (0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR_BMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x)                                                                  ((x) + 0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_PHYS(x)                                                                  ((x) + 0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OFFS                                                                     (0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_RMSK                                                                          0x1ff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                              0x100
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                                  8
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                      0xff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x)                                                                      ((x) + 0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_PHYS(x)                                                                      ((x) + 0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OFFS                                                                         (0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_VALUE_BMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_VALUE_SHFT                                                                            0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                            ((x) + 0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                            ((x) + 0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OFFS                                                               (0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_RMSK                                                               0xffcfffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                    0xff000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                            24
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                     0x800000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                           23
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                                   0x400000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                         22
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                   0xfffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x)                                                                  ((x) + 0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_PHYS(x)                                                                  ((x) + 0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OFFS                                                                     (0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR_BMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x)                                                                  ((x) + 0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_PHYS(x)                                                                  ((x) + 0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OFFS                                                                     (0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_RMSK                                                                          0x1ff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                              0x100
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                                  8
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                      0xff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x)                                                                      ((x) + 0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_PHYS(x)                                                                      ((x) + 0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OFFS                                                                         (0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_POR                                                                          0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_VALUE_BMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_VALUE_SHFT                                                                            0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x)                                                                ((x) + 0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_PHYS(x)                                                                ((x) + 0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OFFS                                                                   (0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_RMSK                                                                       0xffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_POR                                                                    0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                    0xffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                         0
+
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x)                                                                         ((x) + 0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_PHYS(x)                                                                         ((x) + 0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OFFS                                                                            (0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_RMSK                                                                            0xffff003f
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_POR                                                                             0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_ATTR                                                                                         0x3
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                                   0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                           16
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                          0x3f
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                             0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OFFS                                                                     (0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OFFS                                                                     (0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x)                                                                        ((x) + 0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_PHYS(x)                                                                        ((x) + 0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OFFS                                                                           (0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RMSK                                                                               0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_POR                                                                            0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ATTR                                                                                        0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RING_ID_BMSK                                                                       0xff00
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RING_ID_SHFT                                                                            8
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x)                                                                    ((x) + 0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_PHYS(x)                                                                    ((x) + 0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_OFFS                                                                       (0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x)                                                                      ((x) + 0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_PHYS(x)                                                                      ((x) + 0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OFFS                                                                         (0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RMSK                                                                          0x7ffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_POR                                                                          0x00000080
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                  0x4000000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                         26
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                                 0x3c00000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                                        22
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                               ((x) + 0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                               ((x) + 0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OFFS                                                                  (0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                               ((x) + 0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                               ((x) + 0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OFFS                                                                  (0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                                        ((x) + 0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                                        ((x) + 0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                           (0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                 0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                         16
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                             0x8000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                 15
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                       0x7fff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                                       ((x) + 0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                                       ((x) + 0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                          (0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                     ((x) + 0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                     ((x) + 0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                                        (0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                             0x3ff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                                         0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                           0x3ff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                               0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                       ((x) + 0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                       ((x) + 0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                          (0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                          0xffc0ffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                           0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                               0xff000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                       24
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                0x800000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                      23
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                              0x400000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                    22
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                               0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                    0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                              (0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x)                                                                    ((x) + 0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_PHYS(x)                                                                    ((x) + 0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OFFS                                                                       (0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_RMSK                                                                       0xffff003f
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_POR                                                                        0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ATTR                                                                                    0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                              0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                      16
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                     0x3f
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x)                                                                   ((x) + 0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_PHYS(x)                                                                   ((x) + 0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OFFS                                                                      (0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                            0
+
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x)                                                                   ((x) + 0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_PHYS(x)                                                                   ((x) + 0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OFFS                                                                      (0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RMSK                                                                        0xffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                              0xffff00
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                     8
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                         0xff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                            0
+
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x)                                                                         ((x) + 0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_PHYS(x)                                                                         ((x) + 0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OFFS                                                                            (0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RMSK                                                                                0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_POR                                                                             0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ATTR                                                                                         0x3
+#define HWIO_REO_R0_REO_STATUS_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RING_ID_BMSK                                                                        0xff00
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RING_ID_SHFT                                                                             8
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                       0xff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                          0
+
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x)                                                                     ((x) + 0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_PHYS(x)                                                                     ((x) + 0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_OFFS                                                                        (0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_ATTR                                                                                     0x1
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                        0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                16
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                            0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x)                                                                       ((x) + 0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_PHYS(x)                                                                       ((x) + 0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OFFS                                                                          (0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RMSK                                                                           0x7ffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_POR                                                                           0x00000080
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ATTR                                                                                       0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                                   0x4000000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                          26
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOP_CNT_BMSK                                                                  0x3c00000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                         22
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                              0x3fc000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                    14
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                               0x3000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                   12
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                                0xf00
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                    8
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                   0x80
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                      7
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                    0x40
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                       6
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                              0x20
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                 5
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                               0x10
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                  4
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                    0x8
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                      3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                    0x4
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                      2
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                 0x2
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                   1
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                                 0x1
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                                ((x) + 0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                                ((x) + 0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OFFS                                                                   (0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_POR                                                                    0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                       0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                                ((x) + 0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                                ((x) + 0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OFFS                                                                   (0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_RMSK                                                                         0xff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_POR                                                                    0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                    0xff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                       0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                         ((x) + 0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                         ((x) + 0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                            (0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_POR                                                             0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                  0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                          16
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                              0x8000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                  15
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                        0x7fff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                             0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                        ((x) + 0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                        ((x) + 0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                           (0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                        0x1
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                             0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                     16
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                  0x7fff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                       0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                      ((x) + 0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                      ((x) + 0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                         (0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                              0x3ff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                          0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                      0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                            0x3ff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                                0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                              ((x) + 0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                              ((x) + 0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OFFS                                                                 (0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                              ((x) + 0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                              ((x) + 0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OFFS                                                                 (0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                      0x1ff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                          0x100
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                              8
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                  0xff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x)                                                                  ((x) + 0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_PHYS(x)                                                                  ((x) + 0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OFFS                                                                     (0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                        ((x) + 0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                        ((x) + 0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OFFS                                                           (0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_RMSK                                                           0xffc0ffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                                0xff000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                        24
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                                 0x800000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                       23
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                               0x400000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                                     22
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                                0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x)                                                              ((x) + 0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_PHYS(x)                                                              ((x) + 0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OFFS                                                                 (0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR_BMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x)                                                              ((x) + 0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_PHYS(x)                                                              ((x) + 0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OFFS                                                                 (0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_RMSK                                                                      0x1ff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                          0x100
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                              8
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR_BMSK                                                                  0xff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x)                                                                  ((x) + 0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_PHYS(x)                                                                  ((x) + 0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OFFS                                                                     (0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_VALUE_BMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_VALUE_SHFT                                                                        0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                            ((x) + 0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                            ((x) + 0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                               (0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                   0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_POR                                                                0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                     0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x)                                                                     ((x) + 0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_PHYS(x)                                                                     ((x) + 0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OFFS                                                                        (0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_RMSK                                                                        0xffff003f
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_POR                                                                         0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_ATTR                                                                                     0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                               0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                       16
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                      0x3f
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                         0
+
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x)                                                                           ((x) + 0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_PHYS(x)                                                                           ((x) + 0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OFFS                                                                              (0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RMSK                                                                              0xffff3fff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_POR                                                                               0x03e80fa0
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ATTR                                                                                           0x3
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_REO_R0_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_WARNING_TIMEOUT_BMSK                                                              0xffff0000
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_WARNING_TIMEOUT_SHFT                                                                      16
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                                 0x3000
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                                     12
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ERROR_TIMEOUT_BMSK                                                                     0xfff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ERROR_TIMEOUT_SHFT                                                                         0
+
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x)                                                                    ((x) + 0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_PHYS(x)                                                                    ((x) + 0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_OFFS                                                                       (0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_RMSK                                                                            0xe7f
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_POR                                                                        0x00000000
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ATTR                                                                                    0x1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x))
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_RELEASE_RING_BACK_PRESSURE_BMSK                                             0x800
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_RELEASE_RING_BACK_PRESSURE_SHFT                                                11
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_STATUS_RING_BACK_PRESSURE_BMSK                                              0x400
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_STATUS_RING_BACK_PRESSURE_SHFT                                                 10
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2FW_RING_BACK_PRESSURE_BMSK                                                  0x200
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2FW_RING_BACK_PRESSURE_SHFT                                                      9
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW6_RING_BACK_PRESSURE_BMSK                                                  0x40
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW6_RING_BACK_PRESSURE_SHFT                                                     6
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW5_RING_BACK_PRESSURE_BMSK                                                  0x20
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW5_RING_BACK_PRESSURE_SHFT                                                     5
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW4_RING_BACK_PRESSURE_BMSK                                                  0x10
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW4_RING_BACK_PRESSURE_SHFT                                                     4
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW3_RING_BACK_PRESSURE_BMSK                                                   0x8
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW3_RING_BACK_PRESSURE_SHFT                                                     3
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW2_RING_BACK_PRESSURE_BMSK                                                   0x4
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW2_RING_BACK_PRESSURE_SHFT                                                     2
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW1_RING_BACK_PRESSURE_BMSK                                                   0x2
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW1_RING_BACK_PRESSURE_SHFT                                                     1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW0_RING_BACK_PRESSURE_BMSK                                                   0x1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW0_RING_BACK_PRESSURE_SHFT                                                     0
+
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x)                                                                ((x) + 0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_PHYS(x)                                                                ((x) + 0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_OFFS                                                                   (0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_POR                                                                    0x00000000
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ATTR                                                                                0x1
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x))
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ERROR_DATA_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ERROR_DATA_SHFT                                                                 0
+
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x)                                                                         ((x) + 0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_PHYS(x)                                                                         ((x) + 0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OFFS                                                                            (0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_RMSK                                                                                 0x1ff
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_POR                                                                             0x0000002d
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ATTR                                                                                         0x3
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_IN(x)            \
+                in_dword(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x))
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x), m)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x),v)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x),m,v,HWIO_REO_R0_MSDU_BUF_COUNT_CFG_IN(x))
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_THRESHOLD_BUF_COUNT_BMSK                                                             0x1fe
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_THRESHOLD_BUF_COUNT_SHFT                                                                 1
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_DROP_EN_BMSK                                                                           0x1
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_DROP_EN_SHFT                                                                             0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x)                                                                       ((x) + 0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_PHYS(x)                                                                       ((x) + 0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OFFS                                                                          (0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_POR                                                                           0x000186a0
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_ATTR                                                                                       0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_0_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_AGING_THRESHOLD_AC0_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_AGING_THRESHOLD_AC0_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x)                                                                       ((x) + 0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_PHYS(x)                                                                       ((x) + 0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OFFS                                                                          (0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_POR                                                                           0x000186a0
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_ATTR                                                                                       0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_1_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_AGING_THRESHOLD_AC1_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_AGING_THRESHOLD_AC1_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x)                                                                       ((x) + 0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_PHYS(x)                                                                       ((x) + 0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OFFS                                                                          (0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_POR                                                                           0x00009c40
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_ATTR                                                                                       0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_2_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_AGING_THRESHOLD_AC2_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_AGING_THRESHOLD_AC2_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x)                                                                       ((x) + 0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_PHYS(x)                                                                       ((x) + 0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OFFS                                                                          (0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_POR                                                                           0x00009c40
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_ATTR                                                                                       0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_3_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_AGING_THRESHOLD_AC3_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_AGING_THRESHOLD_AC3_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x)                                                                 ((x) + 0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_PHYS(x)                                                                 ((x) + 0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_OFFS                                                                    (0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_AGING_HEADPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_AGING_HEADPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x)                                                                 ((x) + 0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_PHYS(x)                                                                 ((x) + 0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_OFFS                                                                    (0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_AGING_HEADPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_AGING_HEADPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x)                                                                 ((x) + 0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_PHYS(x)                                                                 ((x) + 0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_OFFS                                                                    (0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_AGING_TAILPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_AGING_TAILPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x)                                                                 ((x) + 0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_PHYS(x)                                                                 ((x) + 0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_OFFS                                                                    (0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_AGING_TAILPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_AGING_TAILPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x)                                                                 ((x) + 0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_PHYS(x)                                                                 ((x) + 0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_OFFS                                                                    (0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_AGING_HEADPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_AGING_HEADPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x)                                                                 ((x) + 0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_PHYS(x)                                                                 ((x) + 0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_OFFS                                                                    (0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_AGING_HEADPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_AGING_HEADPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x)                                                                 ((x) + 0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_PHYS(x)                                                                 ((x) + 0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_OFFS                                                                    (0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_AGING_TAILPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_AGING_TAILPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x)                                                                 ((x) + 0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_PHYS(x)                                                                 ((x) + 0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_OFFS                                                                    (0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_AGING_TAILPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_AGING_TAILPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x)                                                                 ((x) + 0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_PHYS(x)                                                                 ((x) + 0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_OFFS                                                                    (0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_AGING_HEADPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_AGING_HEADPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x)                                                                 ((x) + 0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_PHYS(x)                                                                 ((x) + 0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_OFFS                                                                    (0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_AGING_HEADPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_AGING_HEADPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x)                                                                 ((x) + 0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_PHYS(x)                                                                 ((x) + 0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_OFFS                                                                    (0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_AGING_TAILPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_AGING_TAILPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x)                                                                 ((x) + 0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_PHYS(x)                                                                 ((x) + 0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_OFFS                                                                    (0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_AGING_TAILPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_AGING_TAILPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x)                                                                 ((x) + 0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_PHYS(x)                                                                 ((x) + 0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_OFFS                                                                    (0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_AGING_HEADPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_AGING_HEADPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x)                                                                 ((x) + 0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_PHYS(x)                                                                 ((x) + 0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_OFFS                                                                    (0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_AGING_HEADPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_AGING_HEADPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x)                                                                 ((x) + 0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_PHYS(x)                                                                 ((x) + 0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_OFFS                                                                    (0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_AGING_TAILPTR_LO_BITS_BMSK                                              0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_AGING_TAILPTR_LO_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x)                                                                 ((x) + 0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_PHYS(x)                                                                 ((x) + 0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_OFFS                                                                    (0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_RMSK                                                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_POR                                                                     0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ATTR                                                                                 0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_AGING_TAILPTR_HI_BITS_BMSK                                                    0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_AGING_TAILPTR_HI_BITS_SHFT                                                       0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x)                                                                      ((x) + 0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_PHYS(x)                                                                      ((x) + 0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_OFFS                                                                         (0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_RMSK                                                                             0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_POR                                                                          0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ATTR                                                                                      0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_AGING_NUM_QUEUES_AC0_BMSK                                                        0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_AGING_NUM_QUEUES_AC0_SHFT                                                             0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x)                                                                      ((x) + 0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_PHYS(x)                                                                      ((x) + 0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_OFFS                                                                         (0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_RMSK                                                                             0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_POR                                                                          0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ATTR                                                                                      0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_AGING_NUM_QUEUES_AC1_BMSK                                                        0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_AGING_NUM_QUEUES_AC1_SHFT                                                             0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x)                                                                      ((x) + 0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_PHYS(x)                                                                      ((x) + 0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_OFFS                                                                         (0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_RMSK                                                                             0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_POR                                                                          0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ATTR                                                                                      0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_AGING_NUM_QUEUES_AC2_BMSK                                                        0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_AGING_NUM_QUEUES_AC2_SHFT                                                             0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x)                                                                      ((x) + 0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_PHYS(x)                                                                      ((x) + 0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_OFFS                                                                         (0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_RMSK                                                                             0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_POR                                                                          0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ATTR                                                                                      0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_AGING_NUM_QUEUES_AC3_BMSK                                                        0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_AGING_NUM_QUEUES_AC3_SHFT                                                             0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x)                                                                       ((x) + 0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_PHYS(x)                                                                       ((x) + 0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_OFFS                                                                          (0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_POR                                                                           0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_AGING_TIMESTAMP_AC0_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_AGING_TIMESTAMP_AC0_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x)                                                                       ((x) + 0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_PHYS(x)                                                                       ((x) + 0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_OFFS                                                                          (0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_POR                                                                           0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_AGING_TIMESTAMP_AC1_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_AGING_TIMESTAMP_AC1_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x)                                                                       ((x) + 0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_PHYS(x)                                                                       ((x) + 0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_OFFS                                                                          (0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_POR                                                                           0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_AGING_TIMESTAMP_AC2_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_AGING_TIMESTAMP_AC2_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x)                                                                       ((x) + 0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_PHYS(x)                                                                       ((x) + 0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_OFFS                                                                          (0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_POR                                                                           0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_AGING_TIMESTAMP_AC3_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_AGING_TIMESTAMP_AC3_SHFT                                                               0
+
+#define HWIO_REO_R0_AGING_CONTROL_ADDR(x)                                                                              ((x) + 0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_PHYS(x)                                                                              ((x) + 0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_OFFS                                                                                 (0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_RMSK                                                                                       0x1f
+#define HWIO_REO_R0_AGING_CONTROL_POR                                                                                  0x00000000
+#define HWIO_REO_R0_AGING_CONTROL_POR_RMSK                                                                             0xffffffff
+#define HWIO_REO_R0_AGING_CONTROL_ATTR                                                                                              0x3
+#define HWIO_REO_R0_AGING_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_CONTROL_ADDR(x))
+#define HWIO_REO_R0_AGING_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_AGING_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_AGING_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_CONTROL_ADDR(x),m,v,HWIO_REO_R0_AGING_CONTROL_IN(x))
+#define HWIO_REO_R0_AGING_CONTROL_PERMPDU_UPDATE_THRESHOLD_BMSK                                                              0x1f
+#define HWIO_REO_R0_AGING_CONTROL_PERMPDU_UPDATE_THRESHOLD_SHFT                                                                 0
+
+#define HWIO_REO_R0_MISC_CTL_ADDR(x)                                                                                   ((x) + 0xb9c)
+#define HWIO_REO_R0_MISC_CTL_PHYS(x)                                                                                   ((x) + 0xb9c)
+#define HWIO_REO_R0_MISC_CTL_OFFS                                                                                      (0xb9c)
+#define HWIO_REO_R0_MISC_CTL_RMSK                                                                                      0x1fffffff
+#define HWIO_REO_R0_MISC_CTL_POR                                                                                       0x0cac0008
+#define HWIO_REO_R0_MISC_CTL_POR_RMSK                                                                                  0xffffffff
+#define HWIO_REO_R0_MISC_CTL_ATTR                                                                                                   0x3
+#define HWIO_REO_R0_MISC_CTL_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_IN(x))
+#define HWIO_REO_R0_MISC_CTL_SOFT_REORDER_DEST_RING_BMSK                                                               0x1e000000
+#define HWIO_REO_R0_MISC_CTL_SOFT_REORDER_DEST_RING_SHFT                                                                       25
+#define HWIO_REO_R0_MISC_CTL_BAR_DEST_RING_BMSK                                                                         0x1e00000
+#define HWIO_REO_R0_MISC_CTL_BAR_DEST_RING_SHFT                                                                                21
+#define HWIO_REO_R0_MISC_CTL_FRAGMENT_DEST_RING_BMSK                                                                     0x1e0000
+#define HWIO_REO_R0_MISC_CTL_FRAGMENT_DEST_RING_SHFT                                                                           17
+#define HWIO_REO_R0_MISC_CTL_CACHE_FLUSH_Q_DESC_ONLY_BMSK                                                                 0x10000
+#define HWIO_REO_R0_MISC_CTL_CACHE_FLUSH_Q_DESC_ONLY_SHFT                                                                      16
+#define HWIO_REO_R0_MISC_CTL_MSI_ENABLE_CHK_BIT_BMSK                                                                       0x8000
+#define HWIO_REO_R0_MISC_CTL_MSI_ENABLE_CHK_BIT_SHFT                                                                           15
+#define HWIO_REO_R0_MISC_CTL_SPARE_CONTROL_BMSK                                                                            0x7fff
+#define HWIO_REO_R0_MISC_CTL_SPARE_CONTROL_SHFT                                                                                 0
+
+#define HWIO_REO_R0_MISC_CTL_2_ADDR(x)                                                                                 ((x) + 0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_PHYS(x)                                                                                 ((x) + 0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_OFFS                                                                                    (0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_RMSK                                                                                     0x3ffffff
+#define HWIO_REO_R0_MISC_CTL_2_POR                                                                                     0x00000000
+#define HWIO_REO_R0_MISC_CTL_2_POR_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_MISC_CTL_2_ATTR                                                                                                 0x3
+#define HWIO_REO_R0_MISC_CTL_2_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_2_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_2_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_2_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_2_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_2_IN(x))
+#define HWIO_REO_R0_MISC_CTL_2_REO2PPE_RING_PRIORITY_BMSK                                                               0x3000000
+#define HWIO_REO_R0_MISC_CTL_2_REO2PPE_RING_PRIORITY_SHFT                                                                      24
+#define HWIO_REO_R0_MISC_CTL_2_REO_STATUS_RING_PRIORITY_BMSK                                                             0xc00000
+#define HWIO_REO_R0_MISC_CTL_2_REO_STATUS_RING_PRIORITY_SHFT                                                                   22
+#define HWIO_REO_R0_MISC_CTL_2_REO_RELEASE_RING_PRIORITY_BMSK                                                            0x300000
+#define HWIO_REO_R0_MISC_CTL_2_REO_RELEASE_RING_PRIORITY_SHFT                                                                  20
+#define HWIO_REO_R0_MISC_CTL_2_REO2FW_RING_PRIORITY_BMSK                                                                  0xc0000
+#define HWIO_REO_R0_MISC_CTL_2_REO2FW_RING_PRIORITY_SHFT                                                                       18
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW0_RING_PRIORITY_BMSK                                                                 0x30000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW0_RING_PRIORITY_SHFT                                                                      16
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW8_RING_PRIORITY_BMSK                                                                  0xc000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW8_RING_PRIORITY_SHFT                                                                      14
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW7_RING_PRIORITY_BMSK                                                                  0x3000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW7_RING_PRIORITY_SHFT                                                                      12
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW6_RING_PRIORITY_BMSK                                                                   0xc00
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW6_RING_PRIORITY_SHFT                                                                      10
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW5_RING_PRIORITY_BMSK                                                                   0x300
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW5_RING_PRIORITY_SHFT                                                                       8
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW4_RING_PRIORITY_BMSK                                                                    0xc0
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW4_RING_PRIORITY_SHFT                                                                       6
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW3_RING_PRIORITY_BMSK                                                                    0x30
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW3_RING_PRIORITY_SHFT                                                                       4
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW2_RING_PRIORITY_BMSK                                                                     0xc
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW2_RING_PRIORITY_SHFT                                                                       2
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW1_RING_PRIORITY_BMSK                                                                     0x3
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW1_RING_PRIORITY_SHFT                                                                       0
+
+#define HWIO_REO_R0_MISC_CTL_3_ADDR(x)                                                                                 ((x) + 0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_PHYS(x)                                                                                 ((x) + 0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_OFFS                                                                                    (0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_RMSK                                                                                         0xfff
+#define HWIO_REO_R0_MISC_CTL_3_POR                                                                                     0x00000e00
+#define HWIO_REO_R0_MISC_CTL_3_POR_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_MISC_CTL_3_ATTR                                                                                                 0x3
+#define HWIO_REO_R0_MISC_CTL_3_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_3_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_3_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_3_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_3_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_3_IN(x))
+#define HWIO_REO_R0_MISC_CTL_3_REO_QDESC_VC_ID_BMSK                                                                         0x800
+#define HWIO_REO_R0_MISC_CTL_3_REO_QDESC_VC_ID_SHFT                                                                            11
+#define HWIO_REO_R0_MISC_CTL_3_REO_VA_VC_ID_BMSK                                                                            0x400
+#define HWIO_REO_R0_MISC_CTL_3_REO_VA_VC_ID_SHFT                                                                               10
+#define HWIO_REO_R0_MISC_CTL_3_SEQ_VC_ID_BMSK                                                                               0x200
+#define HWIO_REO_R0_MISC_CTL_3_SEQ_VC_ID_SHFT                                                                                   9
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_LINK_DESC_VC_ID_BMSK                                                                    0x100
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_LINK_DESC_VC_ID_SHFT                                                                        8
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_CMD_VC_ID_BMSK                                                                           0x80
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_CMD_VC_ID_SHFT                                                                              7
+#define HWIO_REO_R0_MISC_CTL_3_ENTR6_VC_ID_BMSK                                                                              0x40
+#define HWIO_REO_R0_MISC_CTL_3_ENTR6_VC_ID_SHFT                                                                                 6
+#define HWIO_REO_R0_MISC_CTL_3_ENTR5_VC_ID_BMSK                                                                              0x20
+#define HWIO_REO_R0_MISC_CTL_3_ENTR5_VC_ID_SHFT                                                                                 5
+#define HWIO_REO_R0_MISC_CTL_3_ENTR4_VC_ID_BMSK                                                                              0x10
+#define HWIO_REO_R0_MISC_CTL_3_ENTR4_VC_ID_SHFT                                                                                 4
+#define HWIO_REO_R0_MISC_CTL_3_ENTR3_VC_ID_BMSK                                                                               0x8
+#define HWIO_REO_R0_MISC_CTL_3_ENTR3_VC_ID_SHFT                                                                                 3
+#define HWIO_REO_R0_MISC_CTL_3_ENTR2_VC_ID_BMSK                                                                               0x4
+#define HWIO_REO_R0_MISC_CTL_3_ENTR2_VC_ID_SHFT                                                                                 2
+#define HWIO_REO_R0_MISC_CTL_3_ENTR1_VC_ID_BMSK                                                                               0x2
+#define HWIO_REO_R0_MISC_CTL_3_ENTR1_VC_ID_SHFT                                                                                 1
+#define HWIO_REO_R0_MISC_CTL_3_ENTR0_VC_ID_BMSK                                                                               0x1
+#define HWIO_REO_R0_MISC_CTL_3_ENTR0_VC_ID_SHFT                                                                                 0
+
+#define HWIO_REO_R0_MISC_CTL_4_ADDR(x)                                                                                 ((x) + 0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_PHYS(x)                                                                                 ((x) + 0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_OFFS                                                                                    (0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_RMSK                                                                                      0x1fffff
+#define HWIO_REO_R0_MISC_CTL_4_POR                                                                                     0x00000000
+#define HWIO_REO_R0_MISC_CTL_4_POR_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_MISC_CTL_4_ATTR                                                                                                 0x3
+#define HWIO_REO_R0_MISC_CTL_4_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_4_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_4_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_4_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_4_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_4_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_4_IN(x))
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_ENABLE_BMSK                                                             0x100000
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_ENABLE_SHFT                                                                   20
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_LIMIT_BMSK                                                               0xfffff
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_LIMIT_SHFT                                                                     0
+
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x)                                                                      ((x) + 0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_PHYS(x)                                                                      ((x) + 0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OFFS                                                                         (0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_POR                                                                          0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ATTR                                                                                      0x3
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_IN(x)            \
+                in_dword(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x))
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x), m)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x),v)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x),m,v,HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_IN(x))
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_HIGH_MEMORY_THRESHOLD_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_HIGH_MEMORY_THRESHOLD_SHFT                                                            0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x)                                                                       ((x) + 0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_PHYS(x)                                                                       ((x) + 0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_OFFS                                                                          (0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_POR                                                                           0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_BUFFERS_USED_BMSK                                                             0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_BUFFERS_USED_SHFT                                                                      0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x)                                                                       ((x) + 0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_PHYS(x)                                                                       ((x) + 0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_OFFS                                                                          (0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_POR                                                                           0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_BUFFERS_USED_BMSK                                                             0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_BUFFERS_USED_SHFT                                                                      0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x)                                                                       ((x) + 0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_PHYS(x)                                                                       ((x) + 0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_OFFS                                                                          (0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_POR                                                                           0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_BUFFERS_USED_BMSK                                                             0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_BUFFERS_USED_SHFT                                                                      0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x)                                                                       ((x) + 0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_PHYS(x)                                                                       ((x) + 0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_OFFS                                                                          (0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_POR                                                                           0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ATTR                                                                                       0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_BUFFERS_USED_BMSK                                                             0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_BUFFERS_USED_SHFT                                                                      0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x)                                                         ((x) + 0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_PHYS(x)                                                         ((x) + 0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OFFS                                                            (0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_RMSK                                                              0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_POR                                                             0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ATTR                                                                         0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_THRESHOLD_BMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_THRESHOLD_SHFT                                                           0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x)                                                         ((x) + 0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_PHYS(x)                                                         ((x) + 0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OFFS                                                            (0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_RMSK                                                              0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_POR                                                             0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ATTR                                                                         0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_THRESHOLD_BMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_THRESHOLD_SHFT                                                           0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x)                                                         ((x) + 0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_PHYS(x)                                                         ((x) + 0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OFFS                                                            (0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_RMSK                                                              0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_POR                                                             0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ATTR                                                                         0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_THRESHOLD_BMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_THRESHOLD_SHFT                                                           0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x)                                                        ((x) + 0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_PHYS(x)                                                        ((x) + 0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OFFS                                                           (0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_RMSK                                                            0x3ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_POR                                                            0x03ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ATTR                                                                        0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_THRESHOLD_BMSK                                                  0x3ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_THRESHOLD_SHFT                                                          0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x)                                                                ((x) + 0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_PHYS(x)                                                                ((x) + 0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OFFS                                                                   (0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_RMSK                                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_POR                                                                    0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ATTR                                                                                0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_COUNT_BMSK                                                               0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_COUNT_SHFT                                                                      0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x)                                                                ((x) + 0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_PHYS(x)                                                                ((x) + 0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OFFS                                                                   (0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_RMSK                                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_POR                                                                    0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ATTR                                                                                0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_COUNT_BMSK                                                               0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_COUNT_SHFT                                                                      0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x)                                                                ((x) + 0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_PHYS(x)                                                                ((x) + 0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OFFS                                                                   (0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_RMSK                                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_POR                                                                    0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ATTR                                                                                0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_COUNT_BMSK                                                               0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_COUNT_SHFT                                                                      0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x)                                                                ((x) + 0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_PHYS(x)                                                                ((x) + 0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OFFS                                                                   (0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_RMSK                                                                          0x1
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_POR                                                                    0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ATTR                                                                                0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ENABLE_DESC_THRESH_TLV_BMSK                                                   0x1
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ENABLE_DESC_THRESH_TLV_SHFT                                                     0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x)                                                              ((x) + 0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_PHYS(x)                                                              ((x) + 0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_OFFS                                                                 (0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDRESS_LO_BITS_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDRESS_LO_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x)                                                              ((x) + 0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_PHYS(x)                                                              ((x) + 0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_OFFS                                                                 (0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_RMSK                                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDRESS_HI_BITS_BMSK                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDRESS_HI_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x)                                                              ((x) + 0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_PHYS(x)                                                              ((x) + 0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_OFFS                                                                 (0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDRESS_LO_BITS_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDRESS_LO_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x)                                                              ((x) + 0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_PHYS(x)                                                              ((x) + 0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_OFFS                                                                 (0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_RMSK                                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDRESS_HI_BITS_BMSK                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDRESS_HI_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x)                                                              ((x) + 0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_PHYS(x)                                                              ((x) + 0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_OFFS                                                                 (0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDRESS_LO_BITS_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDRESS_LO_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x)                                                              ((x) + 0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_PHYS(x)                                                              ((x) + 0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_OFFS                                                                 (0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_RMSK                                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDRESS_HI_BITS_BMSK                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDRESS_HI_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x)                                                              ((x) + 0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_PHYS(x)                                                              ((x) + 0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_OFFS                                                                 (0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDRESS_LO_BITS_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDRESS_LO_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x)                                                              ((x) + 0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_PHYS(x)                                                              ((x) + 0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_OFFS                                                                 (0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_RMSK                                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_POR                                                                  0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ATTR                                                                              0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDRESS_HI_BITS_BMSK                                                       0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDRESS_HI_BITS_SHFT                                                          0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x)                                                                      ((x) + 0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_PHYS(x)                                                                      ((x) + 0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_OFFS                                                                         (0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_RMSK                                                                               0x1f
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_POR                                                                          0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ATTR                                                                                      0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ENTIRE_CACHE_BLOCKED_BMSK                                                          0x10
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ENTIRE_CACHE_BLOCKED_SHFT                                                             4
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDRESS_VALID_BMSK                                                                  0xf
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDRESS_VALID_SHFT                                                                    0
+
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x)                                                                           ((x) + 0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_PHYS(x)                                                                           ((x) + 0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OFFS                                                                              (0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_RMSK                                                                              0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_POR                                                                               0x008609ff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ATTR                                                                                           0x3
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONFIG_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_BMSK                                                               0xff000000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_SHFT                                                                       24
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_BMSK                                                             0x800000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_SHFT                                                                   23
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_BMSK                                                              0x400000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_SHFT                                                                    22
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_BMSK                                                               0x200000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_SHFT                                                                     21
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_BMSK                                                                 0x100000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_SHFT                                                                       20
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_SECURITY_BMSK                                                                   0x80000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_SECURITY_SHFT                                                                        19
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_BMSK                                                             0x40000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_SHFT                                                                  18
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_BMSK                                                         0x20000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_SHFT                                                              17
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_BMSK                                                           0x1fe00
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_SHFT                                                                 9
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_BMSK                                                                0x1ff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_SHFT                                                                    0
+
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x)                                                                          ((x) + 0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_PHYS(x)                                                                          ((x) + 0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OFFS                                                                             (0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_RMSK                                                                                    0x3
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_POR                                                                              0x00000000
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_ATTR                                                                                          0x3
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONTROL_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_BMSK                                             0x2
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_SHFT                                               1
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_CACHE_RESET_BMSK                                                                        0x1
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_CACHE_RESET_SHFT                                                                          0
+
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x)                                                                       ((x) + 0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_PHYS(x)                                                                       ((x) + 0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OFFS                                                                          (0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_RMSK                                                                           0x1ffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_POR                                                                           0x00000000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ATTR                                                                                       0x3
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONFIG_SET_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_BMSK                                                                0x1ffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_SHFT                                                                        0
+
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x)                                                                         ((x) + 0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_PHYS(x)                                                                         ((x) + 0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OFFS                                                                            (0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_RMSK                                                                                 0x3ff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_POR                                                                             0x000000f0
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_ATTR                                                                                         0x3
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_SET_SIZE_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_BMSK                                                                       0x3ff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_SHFT                                                                           0
+
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x)                                                                     ((x) + 0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_PHYS(x)                                                                     ((x) + 0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OFFS                                                                        (0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_RMSK                                                                               0x7
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_POR                                                                         0x00000002
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ATTR                                                                                     0x3
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_BMSK                                                                         0x4
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_SHFT                                                                           2
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_BMSK                                                                  0x3
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_SHFT                                                                    0
+
+#define HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x)                                                                              ((x) + 0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_PHYS(x)                                                                              ((x) + 0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OFFS                                                                                 (0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_RMSK                                                                                    0x7ffff
+#define HWIO_REO_R0_CLK_GATE_CTRL_POR                                                                                  0x00000400
+#define HWIO_REO_R0_CLK_GATE_CTRL_POR_RMSK                                                                             0xffffffff
+#define HWIO_REO_R0_CLK_GATE_CTRL_ATTR                                                                                              0x3
+#define HWIO_REO_R0_CLK_GATE_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x))
+#define HWIO_REO_R0_CLK_GATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x),m,v,HWIO_REO_R0_CLK_GATE_CTRL_IN(x))
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_7_BMSK                                                                          0x40000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_7_SHFT                                                                               18
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_6_BMSK                                                                          0x20000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_6_SHFT                                                                               17
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_5_BMSK                                                                          0x10000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_5_SHFT                                                                               16
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_4_BMSK                                                                           0x8000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_4_SHFT                                                                               15
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_3_BMSK                                                                           0x4000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_3_SHFT                                                                               14
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_2_BMSK                                                                           0x2000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_2_SHFT                                                                               13
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_P_BMSK                                                          0x1000
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_P_SHFT                                                              12
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_C_BMSK                                                           0x800
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_C_SHFT                                                              11
+#define HWIO_REO_R0_CLK_GATE_CTRL_CLOCK_ENS_EXTEND_BMSK                                                                     0x400
+#define HWIO_REO_R0_CLK_GATE_CTRL_CLOCK_ENS_EXTEND_SHFT                                                                        10
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_BMSK                                                                  0x3ff
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x)                                                                             ((x) + 0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_PHYS(x)                                                                             ((x) + 0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OFFS                                                                                (0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_POR                                                                                 0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_0_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_ATTR                                                                                             0x3
+#define HWIO_REO_R0_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_0_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_0_MASK_BMSK                                                                           0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_MASK_SHFT                                                                                    0
+
+#define HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x)                                                                             ((x) + 0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_PHYS(x)                                                                             ((x) + 0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OFFS                                                                                (0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_POR                                                                                 0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_1_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_ATTR                                                                                             0x3
+#define HWIO_REO_R0_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_1_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_1_MASK_BMSK                                                                           0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_MASK_SHFT                                                                                    0
+
+#define HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x)                                                                             ((x) + 0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_PHYS(x)                                                                             ((x) + 0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OFFS                                                                                (0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_POR                                                                                 0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_2_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_ATTR                                                                                             0x3
+#define HWIO_REO_R0_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_2_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_2_MASK_BMSK                                                                           0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_MASK_SHFT                                                                                    0
+
+#define HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x)                                                                             ((x) + 0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_PHYS(x)                                                                             ((x) + 0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OFFS                                                                                (0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_RMSK                                                                                0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_POR                                                                                 0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_3_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_ATTR                                                                                             0x3
+#define HWIO_REO_R0_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_3_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_3_MASK_BMSK                                                                           0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_MASK_SHFT                                                                                    0
+
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x)                                                                            ((x) + 0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_PHYS(x)                                                                            ((x) + 0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OFFS                                                                               (0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_POR                                                                                0x100771f0
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_ATTR                                                                                            0x3
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x))
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x),m,v,HWIO_REO_R1_MISC_DEBUG_CTRL_IN(x))
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_DISABLE_SW_EXCEPTION_BMSK                                                          0x80000000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_DISABLE_SW_EXCEPTION_SHFT                                                                  31
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IDLE_REQ_BMSK                                                                      0x40000000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IDLE_REQ_SHFT                                                                              30
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_RESUME_THRESH_BMSK                                                        0x3ff00000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_RESUME_THRESH_SHFT                                                                20
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_STOP_THRESH_BMSK                                                             0xffc00
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_STOP_THRESH_SHFT                                                                  10
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_START_THRESH_BMSK                                                              0x3ff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_START_THRESH_SHFT                                                                  0
+
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x)                                                                       ((x) + 0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PHYS(x)                                                                       ((x) + 0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OFFS                                                                          (0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RMSK                                                                            0xffffff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_POR                                                                           0x003ff03f
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ATTR                                                                                       0x3
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x))
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x),m,v,HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_IN(x))
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RELEASE_RING_ACCUM_DELAY_BMSK                                                   0xfff000
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RELEASE_RING_ACCUM_DELAY_SHFT                                                         12
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PROD_RING_ACCUM_DELAY_BMSK                                                         0xfff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PROD_RING_ACCUM_DELAY_SHFT                                                             0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x)                                                                    ((x) + 0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_PHYS(x)                                                                    ((x) + 0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OFFS                                                                       (0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_RMSK                                                                           0x1fff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_POR                                                                        0x00001000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ATTR                                                                                    0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_BMSK                                                        0x1000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_SHFT                                                            12
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_BMSK                                                             0x800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_SHFT                                                                11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_BMSK                                                           0x400
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_SHFT                                                              10
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_BMSK                                                              0x3ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_SHFT                                                                  0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x)                                                                  ((x) + 0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_PHYS(x)                                                                  ((x) + 0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OFFS                                                                     (0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR                                                                      0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ATTR                                                                                  0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_BMSK                                                     0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_SHFT                                                              0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x)                                                                 ((x) + 0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_PHYS(x)                                                                 ((x) + 0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OFFS                                                                    (0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_RMSK                                                                      0xffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR                                                                     0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ATTR                                                                                 0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_BMSK                                                     0xffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_SHFT                                                            0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x)                                                              ((x) + 0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_PHYS(x)                                                              ((x) + 0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OFFS                                                                 (0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR                                                                  0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ATTR                                                                              0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_BMSK                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_SHFT                                                                0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x)                                                             ((x) + 0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_PHYS(x)                                                             ((x) + 0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OFFS                                                                (0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR                                                                 0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ATTR                                                                             0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_BMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_SHFT                                                               0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x)                                                                        ((x) + 0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_PHYS(x)                                                                        ((x) + 0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_OFFS                                                                           (0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_RMSK                                                                            0x1ffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_POR                                                                            0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ATTR                                                                                        0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_STATE_BMSK                                                                      0x1ffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_STATE_SHFT                                                                              0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x)                                                                  ((x) + 0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_PHYS(x)                                                                  ((x) + 0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_OFFS                                                                     (0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_RMSK                                                                       0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_POR                                                                      0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ATTR                                                                                  0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_BMSK                                                              0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_SHFT                                                                    11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_BMSK                                                                 0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_SHFT                                                                     0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x)                                                                 ((x) + 0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_PHYS(x)                                                                 ((x) + 0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_OFFS                                                                    (0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_RMSK                                                                      0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR                                                                     0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ATTR                                                                                 0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_BMSK                                                            0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_SHFT                                                                  11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_BMSK                                                               0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_SHFT                                                                   0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x)                                                                 ((x) + 0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_PHYS(x)                                                                 ((x) + 0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_OFFS                                                                    (0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_RMSK                                                                      0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR                                                                     0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ATTR                                                                                 0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_BMSK                                                        0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_SHFT                                                              11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_BMSK                                                           0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_SHFT                                                               0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x)                                                                 ((x) + 0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_PHYS(x)                                                                 ((x) + 0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_OFFS                                                                    (0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_RMSK                                                                      0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR                                                                     0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ATTR                                                                                 0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_BMSK                                                       0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_SHFT                                                             11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_BMSK                                                          0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_SHFT                                                              0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x)                                                            ((x) + 0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_PHYS(x)                                                            ((x) + 0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_OFFS                                                               (0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_RMSK                                                               0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR                                                                0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ATTR                                                                            0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_BMSK                                                         0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_SHFT                                                                  0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x)                                                           ((x) + 0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_PHYS(x)                                                           ((x) + 0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_OFFS                                                              (0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_RMSK                                                              0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR                                                               0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ATTR                                                                           0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x)                                                         ((x) + 0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_PHYS(x)                                                         ((x) + 0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_OFFS                                                            (0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_RMSK                                                               0xfffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR                                                             0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ATTR                                                                         0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_BMSK                                                          0xffc00
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_SHFT                                                               10
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_BMSK                                                            0x3ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_SHFT                                                                0
+
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x)                                                                ((x) + 0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_PHYS(x)                                                                ((x) + 0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OFFS                                                                   (0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_RMSK                                                                          0x1
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_POR                                                                    0x00000000
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ATTR                                                                                0x3
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                   0x1
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                     0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x)                                                              ((x) + 0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_PHYS(x)                                                              ((x) + 0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OFFS                                                                 (0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_RMSK                                                                      0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR                                                                  0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ATTR                                                                              0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_BMSK                                                               0x7f8
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_SHFT                                                                   3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_BMSK                                               0x4
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_SHFT                                                 2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_BMSK                                                     0x2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_SHFT                                                       1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_BMSK                                                              0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_SHFT                                                                0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x)                                                              ((x) + 0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_PHYS(x)                                                              ((x) + 0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OFFS                                                                 (0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR                                                                  0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ATTR                                                                              0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_BMSK                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_SHFT                                                          0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x)                                                              ((x) + 0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_PHYS(x)                                                              ((x) + 0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OFFS                                                                 (0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_RMSK                                                                       0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR                                                                  0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ATTR                                                                              0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_BMSK                                                      0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_SHFT                                                         0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x)                                                               ((x) + 0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_PHYS(x)                                                               ((x) + 0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_OFFS                                                                  (0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_RMSK                                                                  0x3fffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR                                                                   0x00000001
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ATTR                                                                               0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_BMSK                                                           0x3fc00000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_SHFT                                                                   22
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_BMSK                                                        0x3ff000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_SHFT                                                              12
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_BMSK                                               0x800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_SHFT                                                  11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_BMSK                                                    0x600
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_SHFT                                                        9
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_BMSK                                                0x1e0
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_SHFT                                                    5
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_BMSK                                                 0x1c
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_SHFT                                                    2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_BMSK                                                        0x2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_SHFT                                                          1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_BMSK                                                              0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_SHFT                                                                0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x)                                                                ((x) + 0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_PHYS(x)                                                                ((x) + 0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_OFFS                                                                   (0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_RMSK                                                                         0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR                                                                    0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ATTR                                                                                0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_BMSK                                                                0xf0
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_SHFT                                                                   4
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_BMSK                                                                 0xf
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_SHFT                                                                   0
+
+#define HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x)                                                                          ((x) + 0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_PHYS(x)                                                                          ((x) + 0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OFFS                                                                             (0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_RMSK                                                                                    0x1
+#define HWIO_REO_R1_END_OF_TEST_CHECK_POR                                                                              0x00000000
+#define HWIO_REO_R1_END_OF_TEST_CHECK_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R1_END_OF_TEST_CHECK_ATTR                                                                                          0x3
+#define HWIO_REO_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_REO_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_REO_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_REO_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                             0x1
+#define HWIO_REO_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                               0
+
+#define HWIO_REO_R1_SM_ALL_IDLE_ADDR(x)                                                                                ((x) + 0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_PHYS(x)                                                                                ((x) + 0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_OFFS                                                                                   (0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_RMSK                                                                                          0x7
+#define HWIO_REO_R1_SM_ALL_IDLE_POR                                                                                    0x00000001
+#define HWIO_REO_R1_SM_ALL_IDLE_POR_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_SM_ALL_IDLE_ATTR                                                                                                0x1
+#define HWIO_REO_R1_SM_ALL_IDLE_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_ALL_IDLE_ADDR(x))
+#define HWIO_REO_R1_SM_ALL_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_ALL_IDLE_ADDR(x), m)
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_ENTRANCE_RINGS_NOT_EMPTY_BMSK                                                             0x4
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_ENTRANCE_RINGS_NOT_EMPTY_SHFT                                                               2
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_IN_IDLE_BMSK                                                                              0x2
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_IN_IDLE_SHFT                                                                                1
+#define HWIO_REO_R1_SM_ALL_IDLE_ALL_STATES_IN_IDLE_BMSK                                                                       0x1
+#define HWIO_REO_R1_SM_ALL_IDLE_ALL_STATES_IN_IDLE_SHFT                                                                         0
+
+#define HWIO_REO_R1_TESTBUS_CTRL_ADDR(x)                                                                               ((x) + 0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_PHYS(x)                                                                               ((x) + 0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_OFFS                                                                                  (0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_RMSK                                                                                        0x7f
+#define HWIO_REO_R1_TESTBUS_CTRL_POR                                                                                   0x00000000
+#define HWIO_REO_R1_TESTBUS_CTRL_POR_RMSK                                                                              0xffffffff
+#define HWIO_REO_R1_TESTBUS_CTRL_ATTR                                                                                               0x3
+#define HWIO_REO_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_REO_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_REO_R1_TESTBUS_CTRL_TESTBUS_SELECT_BMSK                                                                         0x7f
+#define HWIO_REO_R1_TESTBUS_CTRL_TESTBUS_SELECT_SHFT                                                                            0
+
+#define HWIO_REO_R1_TESTBUS_LOWER_ADDR(x)                                                                              ((x) + 0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_PHYS(x)                                                                              ((x) + 0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_OFFS                                                                                 (0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_RMSK                                                                                 0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_POR                                                                                  0x00000000
+#define HWIO_REO_R1_TESTBUS_LOWER_POR_RMSK                                                                             0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_ATTR                                                                                              0x1
+#define HWIO_REO_R1_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_LOWER_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_LOWER_VALUE_BMSK                                                                           0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_VALUE_SHFT                                                                                    0
+
+#define HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x)                                                                             ((x) + 0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_PHYS(x)                                                                             ((x) + 0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_OFFS                                                                                (0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_RMSK                                                                                      0xff
+#define HWIO_REO_R1_TESTBUS_HIGHER_POR                                                                                 0x00000000
+#define HWIO_REO_R1_TESTBUS_HIGHER_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_TESTBUS_HIGHER_ATTR                                                                                             0x1
+#define HWIO_REO_R1_TESTBUS_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_HIGHER_VALUE_BMSK                                                                                0xff
+#define HWIO_REO_R1_TESTBUS_HIGHER_VALUE_SHFT                                                                                   0
+
+#define HWIO_REO_R1_SM_STATES_IX_0_ADDR(x)                                                                             ((x) + 0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_PHYS(x)                                                                             ((x) + 0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_OFFS                                                                                (0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_0_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_0_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_1_ADDR(x)                                                                             ((x) + 0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_PHYS(x)                                                                             ((x) + 0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_OFFS                                                                                (0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_1_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_1_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_2_ADDR(x)                                                                             ((x) + 0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_PHYS(x)                                                                             ((x) + 0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_OFFS                                                                                (0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_2_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_2_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_3_ADDR(x)                                                                             ((x) + 0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_PHYS(x)                                                                             ((x) + 0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_OFFS                                                                                (0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_3_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_3_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_3_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_3_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_4_ADDR(x)                                                                             ((x) + 0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_PHYS(x)                                                                             ((x) + 0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_OFFS                                                                                (0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_4_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_4_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_4_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_4_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_4_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_5_ADDR(x)                                                                             ((x) + 0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_PHYS(x)                                                                             ((x) + 0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_OFFS                                                                                (0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_5_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_5_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_5_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_5_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_5_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_6_ADDR(x)                                                                             ((x) + 0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_PHYS(x)                                                                             ((x) + 0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_OFFS                                                                                (0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_6_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_6_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_6_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_6_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_6_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_7_ADDR(x)                                                                             ((x) + 0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_PHYS(x)                                                                             ((x) + 0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_OFFS                                                                                (0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_7_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_7_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_7_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_7_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_7_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_8_ADDR(x)                                                                             ((x) + 0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_PHYS(x)                                                                             ((x) + 0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_OFFS                                                                                (0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_8_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_8_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_8_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_8_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_8_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_9_ADDR(x)                                                                             ((x) + 0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_PHYS(x)                                                                             ((x) + 0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_OFFS                                                                                (0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_RMSK                                                                                0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_POR                                                                                 0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_9_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_ATTR                                                                                             0x1
+#define HWIO_REO_R1_SM_STATES_IX_9_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_9_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_9_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_9_SM_STATE_BMSK                                                                       0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_SM_STATE_SHFT                                                                                0
+
+#define HWIO_REO_R1_SM_STATES_IX_10_ADDR(x)                                                                            ((x) + 0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_PHYS(x)                                                                            ((x) + 0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_OFFS                                                                               (0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_POR                                                                                0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_10_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_ATTR                                                                                            0x1
+#define HWIO_REO_R1_SM_STATES_IX_10_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_10_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_10_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_10_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_10_SM_STATE_BMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_SM_STATE_SHFT                                                                               0
+
+#define HWIO_REO_R1_SM_STATES_IX_11_ADDR(x)                                                                            ((x) + 0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_PHYS(x)                                                                            ((x) + 0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_OFFS                                                                               (0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_POR                                                                                0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_11_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_ATTR                                                                                            0x1
+#define HWIO_REO_R1_SM_STATES_IX_11_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_11_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_11_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_11_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_11_SM_STATE_BMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_SM_STATE_SHFT                                                                               0
+
+#define HWIO_REO_R1_SM_STATES_IX_12_ADDR(x)                                                                            ((x) + 0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_PHYS(x)                                                                            ((x) + 0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_OFFS                                                                               (0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_POR                                                                                0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_12_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_ATTR                                                                                            0x1
+#define HWIO_REO_R1_SM_STATES_IX_12_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_12_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_12_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_12_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_12_SM_STATE_BMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_SM_STATE_SHFT                                                                               0
+
+#define HWIO_REO_R1_SM_STATES_IX_13_ADDR(x)                                                                            ((x) + 0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_PHYS(x)                                                                            ((x) + 0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_OFFS                                                                               (0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_RMSK                                                                               0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_POR                                                                                0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_13_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_ATTR                                                                                            0x1
+#define HWIO_REO_R1_SM_STATES_IX_13_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_13_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_13_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_13_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_13_SM_STATE_BMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_SM_STATE_SHFT                                                                               0
+
+#define HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x)                                                                           ((x) + 0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_PHYS(x)                                                                           ((x) + 0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_OFFS                                                                              (0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_RMSK                                                                              0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_POR                                                                               0x00000000
+#define HWIO_REO_R1_IDLE_STATES_IX_0_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_ATTR                                                                                           0x1
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x))
+#define HWIO_REO_R1_IDLE_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x), m)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IDLE_STATE_BMSK                                                                   0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IDLE_STATE_SHFT                                                                            0
+
+#define HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x)                                                                           ((x) + 0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_PHYS(x)                                                                           ((x) + 0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_OFFS                                                                              (0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_RMSK                                                                              0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_POR                                                                               0x00000000
+#define HWIO_REO_R1_IDLE_STATES_IX_1_POR_RMSK                                                                          0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_ATTR                                                                                           0x1
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x))
+#define HWIO_REO_R1_IDLE_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x), m)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IDLE_STATE_BMSK                                                                   0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IDLE_STATE_SHFT                                                                            0
+
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x)                                                                          ((x) + 0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_PHYS(x)                                                                          ((x) + 0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_OFFS                                                                             (0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_RMSK                                                                                   0x3f
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_POR                                                                              0x00000000
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_POR_RMSK                                                                         0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_ATTR                                                                                          0x1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x))
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x), m)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_2_BMSK                                                         0x20
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_2_SHFT                                                            5
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_2_BMSK                                                                   0x10
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_2_SHFT                                                                      4
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_2_BMSK                                                                0x8
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_2_SHFT                                                                  3
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_BMSK                                                            0x4
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_SHFT                                                              2
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_BMSK                                                                      0x2
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_SHFT                                                                        1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_BMSK                                                                  0x1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_SHFT                                                                    0
+
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x)                                                      ((x) + 0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_PHYS(x)                                                      ((x) + 0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OFFS                                                         (0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_RMSK                                                         0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_POR                                                          0x00000000
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ATTR                                                                      0x3
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_IN(x)            \
+                in_dword(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x))
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x), m)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x),v)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x),m,v,HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_IN(x))
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_COUNT_BMSK                                                   0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_COUNT_SHFT                                                            0
+
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x)                                                                         ((x) + 0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_PHYS(x)                                                                         ((x) + 0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OFFS                                                                            (0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_RMSK                                                                               0x7ffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_POR                                                                             0x00000000
+#define HWIO_REO_R1_INVALID_APB_ACCESS_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ATTR                                                                                         0x3
+#define HWIO_REO_R1_INVALID_APB_ACCESS_IN(x)            \
+                in_dword(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x))
+#define HWIO_REO_R1_INVALID_APB_ACCESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x), m)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x),v)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x),m,v,HWIO_REO_R1_INVALID_APB_ACCESS_IN(x))
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_TYPE_BMSK                                                                      0x60000
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_TYPE_SHFT                                                                           17
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_ADDR_BMSK                                                                      0x1ffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_ADDR_SHFT                                                                            0
+
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x)                                                                         ((x) + 0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_PHYS(x)                                                                         ((x) + 0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OFFS                                                                            (0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_RMSK                                                                                0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_POR                                                                             0x00000000
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_ATTR                                                                                         0x3
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO0_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_HEAD_PTR_BMSK                                                                       0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_HEAD_PTR_SHFT                                                                            0
+
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x)                                                                         ((x) + 0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_PHYS(x)                                                                         ((x) + 0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OFFS                                                                            (0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_RMSK                                                                                0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_POR                                                                             0x00000000
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_ATTR                                                                                         0x3
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO0_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_TAIL_PTR_BMSK                                                                       0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_TAIL_PTR_SHFT                                                                            0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x)                                                                     ((x) + 0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_PHYS(x)                                                                     ((x) + 0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OFFS                                                                        (0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_RMSK                                                                            0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_POR                                                                         0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ATTR                                                                                     0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x)                                                                     ((x) + 0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_PHYS(x)                                                                     ((x) + 0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OFFS                                                                        (0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_RMSK                                                                            0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_POR                                                                         0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ATTR                                                                                     0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x)                                                                     ((x) + 0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_PHYS(x)                                                                     ((x) + 0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OFFS                                                                        (0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_RMSK                                                                            0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_POR                                                                         0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ATTR                                                                                     0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x)                                                                     ((x) + 0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_PHYS(x)                                                                     ((x) + 0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OFFS                                                                        (0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_RMSK                                                                            0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_POR                                                                         0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ATTR                                                                                     0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x)                                                                       ((x) + 0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_PHYS(x)                                                                       ((x) + 0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OFFS                                                                          (0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_RMSK                                                                              0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_POR                                                                           0x00000000
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_ATTR                                                                                       0x3
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x),m,v,HWIO_REO_R2_WBM2REO_LINK_RING_HP_IN(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x)                                                                       ((x) + 0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_PHYS(x)                                                                       ((x) + 0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OFFS                                                                          (0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_RMSK                                                                              0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_POR                                                                           0x00000000
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_ATTR                                                                                       0x3
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x),m,v,HWIO_REO_R2_WBM2REO_LINK_RING_TP_IN(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+#define HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x)                                                                            ((x) + 0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_PHYS(x)                                                                            ((x) + 0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OFFS                                                                               (0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_RMSK                                                                                   0xffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO_CMD_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO_CMD_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_CMD_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_CMD_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_CMD_RING_HP_HEAD_PTR_BMSK                                                                          0xffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x)                                                                            ((x) + 0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_PHYS(x)                                                                            ((x) + 0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OFFS                                                                               (0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_RMSK                                                                                   0xffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO_CMD_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO_CMD_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_CMD_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_CMD_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_CMD_RING_TP_TAIL_PTR_BMSK                                                                          0xffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_SW2REO_RING_HP_ADDR(x)                                                                             ((x) + 0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_PHYS(x)                                                                             ((x) + 0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_OFFS                                                                                (0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_RMSK                                                                                    0xffff
+#define HWIO_REO_R2_SW2REO_RING_HP_POR                                                                                 0x00000000
+#define HWIO_REO_R2_SW2REO_RING_HP_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R2_SW2REO_RING_HP_ATTR                                                                                             0x3
+#define HWIO_REO_R2_SW2REO_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO_RING_HP_HEAD_PTR_BMSK                                                                           0xffff
+#define HWIO_REO_R2_SW2REO_RING_HP_HEAD_PTR_SHFT                                                                                0
+
+#define HWIO_REO_R2_SW2REO_RING_TP_ADDR(x)                                                                             ((x) + 0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_PHYS(x)                                                                             ((x) + 0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_OFFS                                                                                (0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_RMSK                                                                                    0xffff
+#define HWIO_REO_R2_SW2REO_RING_TP_POR                                                                                 0x00000000
+#define HWIO_REO_R2_SW2REO_RING_TP_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R2_SW2REO_RING_TP_ATTR                                                                                             0x3
+#define HWIO_REO_R2_SW2REO_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO_RING_TP_TAIL_PTR_BMSK                                                                           0xffff
+#define HWIO_REO_R2_SW2REO_RING_TP_TAIL_PTR_SHFT                                                                                0
+
+#define HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x)                                                                            ((x) + 0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_PHYS(x)                                                                            ((x) + 0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OFFS                                                                               (0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_RMSK                                                                                   0xffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_SW2REO1_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_SW2REO1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO1_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO1_RING_HP_HEAD_PTR_BMSK                                                                          0xffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x)                                                                            ((x) + 0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_PHYS(x)                                                                            ((x) + 0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OFFS                                                                               (0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_RMSK                                                                                   0xffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_SW2REO1_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_SW2REO1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO1_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO1_RING_TP_TAIL_PTR_BMSK                                                                          0xffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x)                                                                            ((x) + 0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_PHYS(x)                                                                            ((x) + 0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OFFS                                                                               (0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW1_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW1_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW1_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x)                                                                            ((x) + 0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_PHYS(x)                                                                            ((x) + 0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OFFS                                                                               (0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW1_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW1_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW1_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x)                                                                            ((x) + 0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_PHYS(x)                                                                            ((x) + 0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OFFS                                                                               (0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW2_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW2_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW2_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW2_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x)                                                                            ((x) + 0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_PHYS(x)                                                                            ((x) + 0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OFFS                                                                               (0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW2_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW2_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW2_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW2_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x)                                                                            ((x) + 0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_PHYS(x)                                                                            ((x) + 0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OFFS                                                                               (0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW3_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW3_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW3_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW3_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW3_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x)                                                                            ((x) + 0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_PHYS(x)                                                                            ((x) + 0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OFFS                                                                               (0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW3_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW3_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW3_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW3_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW3_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x)                                                                            ((x) + 0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_PHYS(x)                                                                            ((x) + 0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OFFS                                                                               (0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW4_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW4_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW4_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW4_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW4_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x)                                                                            ((x) + 0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_PHYS(x)                                                                            ((x) + 0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OFFS                                                                               (0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW4_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW4_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW4_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW4_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW4_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x)                                                                            ((x) + 0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_PHYS(x)                                                                            ((x) + 0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OFFS                                                                               (0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW5_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW5_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW5_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW5_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW5_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x)                                                                            ((x) + 0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_PHYS(x)                                                                            ((x) + 0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OFFS                                                                               (0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW5_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW5_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW5_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW5_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW5_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x)                                                                            ((x) + 0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_PHYS(x)                                                                            ((x) + 0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OFFS                                                                               (0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW6_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW6_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW6_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW6_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW6_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x)                                                                            ((x) + 0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_PHYS(x)                                                                            ((x) + 0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OFFS                                                                               (0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW6_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW6_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW6_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW6_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW6_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x)                                                                            ((x) + 0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_PHYS(x)                                                                            ((x) + 0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OFFS                                                                               (0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW0_RING_HP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW0_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW0_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW0_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW0_RING_HP_HEAD_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_HEAD_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x)                                                                            ((x) + 0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_PHYS(x)                                                                            ((x) + 0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OFFS                                                                               (0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_RMSK                                                                                  0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_POR                                                                                0x00000000
+#define HWIO_REO_R2_REO2SW0_RING_TP_POR_RMSK                                                                           0xffffffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_ATTR                                                                                            0x3
+#define HWIO_REO_R2_REO2SW0_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW0_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW0_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW0_RING_TP_TAIL_PTR_BMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_TAIL_PTR_SHFT                                                                               0
+
+#define HWIO_REO_R2_REO2FW_RING_HP_ADDR(x)                                                                             ((x) + 0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_PHYS(x)                                                                             ((x) + 0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_OFFS                                                                                (0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_RMSK                                                                                   0xfffff
+#define HWIO_REO_R2_REO2FW_RING_HP_POR                                                                                 0x00000000
+#define HWIO_REO_R2_REO2FW_RING_HP_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R2_REO2FW_RING_HP_ATTR                                                                                             0x3
+#define HWIO_REO_R2_REO2FW_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2FW_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2FW_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2FW_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2FW_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2FW_RING_HP_HEAD_PTR_BMSK                                                                          0xfffff
+#define HWIO_REO_R2_REO2FW_RING_HP_HEAD_PTR_SHFT                                                                                0
+
+#define HWIO_REO_R2_REO2FW_RING_TP_ADDR(x)                                                                             ((x) + 0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_PHYS(x)                                                                             ((x) + 0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_OFFS                                                                                (0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_RMSK                                                                                   0xfffff
+#define HWIO_REO_R2_REO2FW_RING_TP_POR                                                                                 0x00000000
+#define HWIO_REO_R2_REO2FW_RING_TP_POR_RMSK                                                                            0xffffffff
+#define HWIO_REO_R2_REO2FW_RING_TP_ATTR                                                                                             0x3
+#define HWIO_REO_R2_REO2FW_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2FW_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2FW_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2FW_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2FW_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2FW_RING_TP_TAIL_PTR_BMSK                                                                          0xfffff
+#define HWIO_REO_R2_REO2FW_RING_TP_TAIL_PTR_SHFT                                                                                0
+
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x)                                                                        ((x) + 0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_PHYS(x)                                                                        ((x) + 0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OFFS                                                                           (0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_RMSK                                                                               0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_POR                                                                            0x00000000
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_ATTR                                                                                        0x3
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_RELEASE_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x)                                                                        ((x) + 0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_PHYS(x)                                                                        ((x) + 0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OFFS                                                                           (0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_RMSK                                                                               0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_POR                                                                            0x00000000
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_ATTR                                                                                        0x3
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_RELEASE_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x)                                                                         ((x) + 0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_PHYS(x)                                                                         ((x) + 0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OFFS                                                                            (0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_RMSK                                                                                0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_POR                                                                             0x00000000
+#define HWIO_REO_R2_REO_STATUS_RING_HP_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_ATTR                                                                                         0x3
+#define HWIO_REO_R2_REO_STATUS_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_STATUS_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_STATUS_RING_HP_HEAD_PTR_BMSK                                                                       0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_HEAD_PTR_SHFT                                                                            0
+
+#define HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x)                                                                         ((x) + 0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_PHYS(x)                                                                         ((x) + 0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OFFS                                                                            (0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_RMSK                                                                                0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_POR                                                                             0x00000000
+#define HWIO_REO_R2_REO_STATUS_RING_TP_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_ATTR                                                                                         0x3
+#define HWIO_REO_R2_REO_STATUS_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_STATUS_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_STATUS_RING_TP_TAIL_PTR_BMSK                                                                       0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_TAIL_PTR_SHFT                                                                            0
+
+/*----------------------------------------------------------------------------
+ * MODULE: TQM_REG
+ *--------------------------------------------------------------------------*/
+
+#define TQM_REG_REG_BASE                                                                                         (UMAC_BASE      + 0x0003c000)
+#define TQM_REG_REG_BASE_SIZE                                                                                    0x4000
+#define TQM_REG_REG_BASE_USED                                                                                    0x305c
+#define TQM_REG_REG_BASE_PHYS                                                                                    (UMAC_BASE_PHYS + 0x0003c000)
+#define TQM_REG_REG_BASE_OFFS                                                                                    0x0003c000
+
+#define HWIO_TQM_R0_CONTROL_ADDR(x)                                                                              ((x) + 0x0)
+#define HWIO_TQM_R0_CONTROL_PHYS(x)                                                                              ((x) + 0x0)
+#define HWIO_TQM_R0_CONTROL_OFFS                                                                                 (0x0)
+#define HWIO_TQM_R0_CONTROL_RMSK                                                                                       0x1b
+#define HWIO_TQM_R0_CONTROL_POR                                                                                  0x00000012
+#define HWIO_TQM_R0_CONTROL_POR_RMSK                                                                             0xffffffff
+#define HWIO_TQM_R0_CONTROL_ATTR                                                                                              0x3
+#define HWIO_TQM_R0_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_CONTROL_IN(x))
+#define HWIO_TQM_R0_CONTROL_INIT_PREFETCH_BUFFER_PTRS_BMSK                                                             0x10
+#define HWIO_TQM_R0_CONTROL_INIT_PREFETCH_BUFFER_PTRS_SHFT                                                                4
+#define HWIO_TQM_R0_CONTROL_BLOCK_PREFETCH_BMSK                                                                         0x8
+#define HWIO_TQM_R0_CONTROL_BLOCK_PREFETCH_SHFT                                                                           3
+#define HWIO_TQM_R0_CONTROL_CONCURRENT_PROC_BMSK                                                                        0x2
+#define HWIO_TQM_R0_CONTROL_CONCURRENT_PROC_SHFT                                                                          1
+#define HWIO_TQM_R0_CONTROL_ENABLE_BMSK                                                                                 0x1
+#define HWIO_TQM_R0_CONTROL_ENABLE_SHFT                                                                                   0
+
+#define HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x)                                                                        ((x) + 0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_PHYS(x)                                                                        ((x) + 0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OFFS                                                                           (0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_RMSK                                                                                  0x7
+#define HWIO_TQM_R0_PAUSE_CONTROL_POR                                                                            0x00000003
+#define HWIO_TQM_R0_PAUSE_CONTROL_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_PAUSE_CONTROL_ATTR                                                                                        0x3
+#define HWIO_TQM_R0_PAUSE_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_PAUSE_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_PAUSE_CONTROL_IN(x))
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HW_ACKED_MPDU_BMSK                                                             0x4
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HW_ACKED_MPDU_SHFT                                                               2
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HWSCH_CMD_BMSK                                                                 0x2
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HWSCH_CMD_SHFT                                                                   1
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_SW_CMD_BMSK                                                                    0x1
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_SW_CMD_SHFT                                                                      0
+
+#define HWIO_TQM_R0_MISC_CONTROL_ADDR(x)                                                                         ((x) + 0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_PHYS(x)                                                                         ((x) + 0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_OFFS                                                                            (0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_RMSK                                                                                 0x3ff
+#define HWIO_TQM_R0_MISC_CONTROL_POR                                                                             0x00000010
+#define HWIO_TQM_R0_MISC_CONTROL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_MISC_CONTROL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_MISC_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_MISC_CONTROL_IN(x))
+#define HWIO_TQM_R0_MISC_CONTROL_GEN_ACKED_MPDU_INFO_END_BMSK                                                         0x200
+#define HWIO_TQM_R0_MISC_CONTROL_GEN_ACKED_MPDU_INFO_END_SHFT                                                             9
+#define HWIO_TQM_R0_MISC_CONTROL_RETAIN_CACHE_BMSK                                                                    0x100
+#define HWIO_TQM_R0_MISC_CONTROL_RETAIN_CACHE_SHFT                                                                        8
+#define HWIO_TQM_R0_MISC_CONTROL_FLUSH_IDLE_COUNT_BMSK                                                                 0xff
+#define HWIO_TQM_R0_MISC_CONTROL_FLUSH_IDLE_COUNT_SHFT                                                                    0
+
+#define HWIO_TQM_R0_LINK_0_ADDR(x)                                                                               ((x) + 0xc)
+#define HWIO_TQM_R0_LINK_0_PHYS(x)                                                                               ((x) + 0xc)
+#define HWIO_TQM_R0_LINK_0_OFFS                                                                                  (0xc)
+#define HWIO_TQM_R0_LINK_0_RMSK                                                                                        0x3f
+#define HWIO_TQM_R0_LINK_0_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_0_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_0_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_0_ADDR(x))
+#define HWIO_TQM_R0_LINK_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_0_ADDR(x),m,v,HWIO_TQM_R0_LINK_0_IN(x))
+#define HWIO_TQM_R0_LINK_0_SESSION_ID_BMSK                                                                             0x3f
+#define HWIO_TQM_R0_LINK_0_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_1_ADDR(x)                                                                               ((x) + 0x10)
+#define HWIO_TQM_R0_LINK_1_PHYS(x)                                                                               ((x) + 0x10)
+#define HWIO_TQM_R0_LINK_1_OFFS                                                                                  (0x10)
+#define HWIO_TQM_R0_LINK_1_RMSK                                                                                        0x3f
+#define HWIO_TQM_R0_LINK_1_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_1_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_1_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_1_ADDR(x))
+#define HWIO_TQM_R0_LINK_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_1_ADDR(x),m,v,HWIO_TQM_R0_LINK_1_IN(x))
+#define HWIO_TQM_R0_LINK_1_SESSION_ID_BMSK                                                                             0x3f
+#define HWIO_TQM_R0_LINK_1_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_A_ADDR(x)                                                                               ((x) + 0x14)
+#define HWIO_TQM_R0_LINK_A_PHYS(x)                                                                               ((x) + 0x14)
+#define HWIO_TQM_R0_LINK_A_OFFS                                                                                  (0x14)
+#define HWIO_TQM_R0_LINK_A_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_A_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_A_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_A_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_A_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_A_ADDR(x))
+#define HWIO_TQM_R0_LINK_A_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_A_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_A_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_A_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_A_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_A_ADDR(x),m,v,HWIO_TQM_R0_LINK_A_IN(x))
+#define HWIO_TQM_R0_LINK_A_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_A_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_B_ADDR(x)                                                                               ((x) + 0x18)
+#define HWIO_TQM_R0_LINK_B_PHYS(x)                                                                               ((x) + 0x18)
+#define HWIO_TQM_R0_LINK_B_OFFS                                                                                  (0x18)
+#define HWIO_TQM_R0_LINK_B_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_B_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_B_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_B_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_B_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_B_ADDR(x))
+#define HWIO_TQM_R0_LINK_B_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_B_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_B_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_B_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_B_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_B_ADDR(x),m,v,HWIO_TQM_R0_LINK_B_IN(x))
+#define HWIO_TQM_R0_LINK_B_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_B_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_C_ADDR(x)                                                                               ((x) + 0x1c)
+#define HWIO_TQM_R0_LINK_C_PHYS(x)                                                                               ((x) + 0x1c)
+#define HWIO_TQM_R0_LINK_C_OFFS                                                                                  (0x1c)
+#define HWIO_TQM_R0_LINK_C_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_C_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_C_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_C_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_C_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_C_ADDR(x))
+#define HWIO_TQM_R0_LINK_C_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_C_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_C_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_C_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_C_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_C_ADDR(x),m,v,HWIO_TQM_R0_LINK_C_IN(x))
+#define HWIO_TQM_R0_LINK_C_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_C_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_D_ADDR(x)                                                                               ((x) + 0x20)
+#define HWIO_TQM_R0_LINK_D_PHYS(x)                                                                               ((x) + 0x20)
+#define HWIO_TQM_R0_LINK_D_OFFS                                                                                  (0x20)
+#define HWIO_TQM_R0_LINK_D_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_D_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_D_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_D_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_D_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_D_ADDR(x))
+#define HWIO_TQM_R0_LINK_D_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_D_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_D_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_D_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_D_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_D_ADDR(x),m,v,HWIO_TQM_R0_LINK_D_IN(x))
+#define HWIO_TQM_R0_LINK_D_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_D_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_E_ADDR(x)                                                                               ((x) + 0x24)
+#define HWIO_TQM_R0_LINK_E_PHYS(x)                                                                               ((x) + 0x24)
+#define HWIO_TQM_R0_LINK_E_OFFS                                                                                  (0x24)
+#define HWIO_TQM_R0_LINK_E_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_E_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_E_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_E_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_E_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_E_ADDR(x))
+#define HWIO_TQM_R0_LINK_E_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_E_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_E_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_E_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_E_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_E_ADDR(x),m,v,HWIO_TQM_R0_LINK_E_IN(x))
+#define HWIO_TQM_R0_LINK_E_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_E_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_F_ADDR(x)                                                                               ((x) + 0x28)
+#define HWIO_TQM_R0_LINK_F_PHYS(x)                                                                               ((x) + 0x28)
+#define HWIO_TQM_R0_LINK_F_OFFS                                                                                  (0x28)
+#define HWIO_TQM_R0_LINK_F_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_F_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_F_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_F_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_F_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_F_ADDR(x))
+#define HWIO_TQM_R0_LINK_F_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_F_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_F_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_F_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_F_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_F_ADDR(x),m,v,HWIO_TQM_R0_LINK_F_IN(x))
+#define HWIO_TQM_R0_LINK_F_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_F_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_G_ADDR(x)                                                                               ((x) + 0x2c)
+#define HWIO_TQM_R0_LINK_G_PHYS(x)                                                                               ((x) + 0x2c)
+#define HWIO_TQM_R0_LINK_G_OFFS                                                                                  (0x2c)
+#define HWIO_TQM_R0_LINK_G_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_G_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_G_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_G_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_G_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_G_ADDR(x))
+#define HWIO_TQM_R0_LINK_G_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_G_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_G_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_G_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_G_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_G_ADDR(x),m,v,HWIO_TQM_R0_LINK_G_IN(x))
+#define HWIO_TQM_R0_LINK_G_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_G_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x)                                                      ((x) + 0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_PHYS(x)                                                      ((x) + 0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OFFS                                                         (0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_RMSK                                                              0x3ff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_POR                                                          0x0000000a
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ATTR                                                                      0x3
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_IN(x))
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ENABLE_PREFETCH_BMSK                                              0x200
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ENABLE_PREFETCH_SHFT                                                  9
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_CMD_EXECUTION_TIME_VALID_BMSK                                     0x100
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_CMD_EXECUTION_TIME_VALID_SHFT                                         8
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_MAX_CMD_EXECUTION_TIME_BMSK                                        0xff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_MAX_CMD_EXECUTION_TIME_SHFT                                           0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OFFS                                                                   (0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OFFS                                                                   (0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x)                                                                      ((x) + 0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_PHYS(x)                                                                      ((x) + 0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OFFS                                                                         (0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_RMSK                                                                               0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_POR                                                                          0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ATTR                                                                                      0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_ID_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x)                                                                  ((x) + 0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_PHYS(x)                                                                  ((x) + 0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_OFFS                                                                     (0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x)                                                                    ((x) + 0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_PHYS(x)                                                                    ((x) + 0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OFFS                                                                       (0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_POR                                                                        0x00000080
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OFFS                                                                (0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OFFS                                                                (0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OFFS                                                              (0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OFFS                                                              (0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OFFS                                                                  (0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x)                                                                  ((x) + 0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_PHYS(x)                                                                  ((x) + 0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OFFS                                                                     (0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_RMSK                                                                     0xffff003f
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                            0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                    16
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                   0x3f
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                      0
+
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OFFS                                                                    (0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OFFS                                                                    (0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x)                                                                       ((x) + 0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_PHYS(x)                                                                       ((x) + 0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OFFS                                                                          (0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_RMSK                                                                                0xff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_POR                                                                           0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_FW2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_ID_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x)                                                                   ((x) + 0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_PHYS(x)                                                                   ((x) + 0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_OFFS                                                                      (0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x)                                                                     ((x) + 0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_PHYS(x)                                                                     ((x) + 0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OFFS                                                                        (0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_POR                                                                         0x00000080
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MISC_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OFFS                                                                 (0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OFFS                                                                 (0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_OFFS                                                         (0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OFFS                                                               (0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OFFS                                                               (0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OFFS                                                                   (0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x)                                                                   ((x) + 0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_PHYS(x)                                                                   ((x) + 0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OFFS                                                                      (0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_RMSK                                                                      0xffff003f
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_POR                                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                             0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                     16
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                    0x3f
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                       0
+
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OFFS                                                                    (0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OFFS                                                                    (0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x)                                                                       ((x) + 0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_PHYS(x)                                                                       ((x) + 0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OFFS                                                                          (0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_RMSK                                                                                0xff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_POR                                                                           0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_SW_CMD_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_ID_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x)                                                                   ((x) + 0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_PHYS(x)                                                                   ((x) + 0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_OFFS                                                                      (0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x)                                                                     ((x) + 0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_PHYS(x)                                                                     ((x) + 0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OFFS                                                                        (0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_POR                                                                         0x00000080
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MISC_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OFFS                                                                 (0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OFFS                                                                 (0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_OFFS                                                         (0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OFFS                                                               (0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OFFS                                                               (0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OFFS                                                                   (0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x)                                                                   ((x) + 0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_PHYS(x)                                                                   ((x) + 0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OFFS                                                                      (0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_RMSK                                                                      0xffff003f
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_POR                                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                             0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                     16
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                    0x3f
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                       0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OFFS                                                                   (0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OFFS                                                                   (0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x)                                                                      ((x) + 0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_PHYS(x)                                                                      ((x) + 0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OFFS                                                                         (0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_RMSK                                                                               0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_POR                                                                          0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ATTR                                                                                      0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_ID_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x)                                                                  ((x) + 0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_PHYS(x)                                                                  ((x) + 0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_OFFS                                                                     (0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x)                                                                    ((x) + 0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_PHYS(x)                                                                    ((x) + 0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OFFS                                                                       (0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_POR                                                                        0x00000080
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OFFS                                                                (0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OFFS                                                                (0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OFFS                                                              (0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OFFS                                                              (0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OFFS                                                                  (0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x)                                                                  ((x) + 0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_PHYS(x)                                                                  ((x) + 0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OFFS                                                                     (0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_RMSK                                                                     0xffff003f
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_POR                                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                            0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                    16
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                   0x3f
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                      0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OFFS                                                              (0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OFFS                                                              (0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OFFS                                                                    (0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_RMSK                                                                          0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_OFFS                                                                (0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OFFS                                                                  (0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OFFS                                                           (0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OFFS                                                           (0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OFFS                                                             (0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OFFS                                                                (0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OFFS                                                               (0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OFFS                                                               (0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OFFS                                                                     (0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_OFFS                                                                 (0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OFFS                                                                   (0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OFFS                                                            (0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OFFS                                                            (0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                          (0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                          (0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OFFS                                                              (0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OFFS                                                                 (0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OFFS                                                                (0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OFFS                                                                (0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OFFS                                                                      (0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_OFFS                                                                  (0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OFFS                                                                    (0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RMSK                                                                     0x7ffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                             0x4000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                    26
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OFFS                                                               (0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                  ((x) + 0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                  ((x) + 0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OFFS                                                     (0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_RMSK                                                     0xffc0ffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                          0xff000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                  24
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                           0x800000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                 23
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                         0x400000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                               22
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x)                                                        ((x) + 0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_PHYS(x)                                                        ((x) + 0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OFFS                                                           (0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x)                                                        ((x) + 0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_PHYS(x)                                                        ((x) + 0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OFFS                                                           (0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                    0x100
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                        8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x)                                                            ((x) + 0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_PHYS(x)                                                            ((x) + 0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OFFS                                                               (0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x)                                                               ((x) + 0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_PHYS(x)                                                               ((x) + 0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OFFS                                                                  (0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_RMSK                                                                  0xffff003f
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                         0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                 16
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                0x3f
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                   0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OFFS                                                               (0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OFFS                                                               (0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x)                                                                  ((x) + 0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_PHYS(x)                                                                  ((x) + 0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OFFS                                                                     (0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x)                                                              ((x) + 0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_PHYS(x)                                                              ((x) + 0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_OFFS                                                                 (0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x)                                                                ((x) + 0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_PHYS(x)                                                                ((x) + 0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OFFS                                                                   (0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OFFS                                                            (0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OFFS                                                            (0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OFFS                                                          (0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OFFS                                                          (0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OFFS                                                              (0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OFFS                                                          (0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OFFS                                                          (0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OFFS                                                              (0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OFFS                                                                 (0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x)                                                                     ((x) + 0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_PHYS(x)                                                                     ((x) + 0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OFFS                                                                        (0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_POR                                                                         0x008609ff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONFIG_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_BMSK                                                         0xff000000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_SHFT                                                                 24
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_BMSK                                                       0x800000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_SHFT                                                             23
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_BMSK                                                        0x400000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_SHFT                                                              22
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_BMSK                                                         0x200000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_SHFT                                                               21
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_BMSK                                                           0x100000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_SHFT                                                                 20
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_SECURITY_BMSK                                                             0x80000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_SECURITY_SHFT                                                                  19
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_BMSK                                                       0x40000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_SHFT                                                            18
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_BMSK                                                   0x20000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_SHFT                                                        17
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_BMSK                                                     0x1fe00
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_SHFT                                                           9
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_BMSK                                                          0x1ff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_SHFT                                                              0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x)                                                                    ((x) + 0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_PHYS(x)                                                                    ((x) + 0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OFFS                                                                       (0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_RMSK                                                                              0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_POR                                                                        0x00000000
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONTROL_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_BMSK                                       0x2
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_SHFT                                         1
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_CACHE_RESET_BMSK                                                                  0x1
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_CACHE_RESET_SHFT                                                                    0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x)                                                                 ((x) + 0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_PHYS(x)                                                                 ((x) + 0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OFFS                                                                    (0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_RMSK                                                                     0x1ffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_POR                                                                     0x00000000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_BMSK                                                          0x1ffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_SHFT                                                                  0
+
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OFFS                                                                      (0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_RMSK                                                                           0x3ff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_POR                                                                       0x000000f0
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_SET_SIZE_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_BMSK                                                                 0x3ff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x)                                                               ((x) + 0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_PHYS(x)                                                               ((x) + 0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OFFS                                                                  (0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_RMSK                                                                         0x7
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_POR                                                                   0x00000002
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ATTR                                                                               0x3
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_BMSK                                                                   0x4
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_SHFT                                                                     2
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_BMSK                                                            0x3
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_SHFT                                                              0
+
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x)                                                                 ((x) + 0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_PHYS(x)                                                                 ((x) + 0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OFFS                                                                    (0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_POR                                                                     0x10041c10
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_IN(x)            \
+                in_dword(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x))
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x), m)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x),v)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x),m,v,HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_IN(x))
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_MIN_READ_SIZE_BMSK                                                      0xff000000
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_MIN_READ_SIZE_SHFT                                                              24
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_DESC_THRESHOLD_BMSK                                                       0xff0000
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_DESC_THRESHOLD_SHFT                                                             16
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_CMD_THRESHOLD_BMSK                                                          0xff00
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_CMD_THRESHOLD_SHFT                                                               8
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ENTRANCE_THRESHOLD_BMSK                                                       0xff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ENTRANCE_THRESHOLD_SHFT                                                          0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x)                                                          ((x) + 0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_PHYS(x)                                                          ((x) + 0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OFFS                                                             (0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_POR                                                              0x002f0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_END_ADDR_BMSK                                              0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_END_ADDR_SHFT                                                     16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_START_ADDR_BMSK                                                0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_START_ADDR_SHFT                                                    0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x)                                                          ((x) + 0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_PHYS(x)                                                          ((x) + 0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OFFS                                                             (0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_POR                                                              0x008b0030
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_END_ADDR_BMSK                                          0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_END_ADDR_SHFT                                                 16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_START_ADDR_BMSK                                            0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_START_ADDR_SHFT                                                0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x)                                                          ((x) + 0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_PHYS(x)                                                          ((x) + 0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OFFS                                                             (0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_POR                                                              0x00bb008c
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_END_ADDR_BMSK                                  0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_END_ADDR_SHFT                                         16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_START_ADDR_BMSK                                    0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_START_ADDR_SHFT                                        0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x)                                                          ((x) + 0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_PHYS(x)                                                          ((x) + 0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OFFS                                                             (0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_POR                                                              0x00d300bc
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_END_ADDR_BMSK                                           0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_END_ADDR_SHFT                                                  16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_START_ADDR_BMSK                                             0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_START_ADDR_SHFT                                                 0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x)                                                          ((x) + 0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_PHYS(x)                                                          ((x) + 0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OFFS                                                             (0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_POR                                                              0x012f00d4
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_END_ADDR_BMSK                                          0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_END_ADDR_SHFT                                                 16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_START_ADDR_BMSK                                            0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_START_ADDR_SHFT                                                0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x)                                                          ((x) + 0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_PHYS(x)                                                          ((x) + 0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OFFS                                                             (0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_POR                                                              0x015f0130
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_END_ADDR_BMSK                                  0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_END_ADDR_SHFT                                         16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_START_ADDR_BMSK                                    0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_START_ADDR_SHFT                                        0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x)                                                          ((x) + 0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_PHYS(x)                                                          ((x) + 0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OFFS                                                             (0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_POR                                                              0x018f0160
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_END_ADDR_BMSK                                             0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_END_ADDR_SHFT                                                    16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_START_ADDR_BMSK                                               0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_START_ADDR_SHFT                                                   0
+
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x)                                                              ((x) + 0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_PHYS(x)                                                              ((x) + 0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OFFS                                                                 (0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_RMSK                                                                     0x1f7f
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_POR                                                                  0x00001441
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ATTR                                                                              0x3
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_IN(x)            \
+                in_dword(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x))
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x), m)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x),v)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x),m,v,HWIO_TQM_R0_STATUS_BUFFER_PARTITION_IN(x))
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ISSUE_MULTIPLE_BMSK                                                      0x1000
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ISSUE_MULTIPLE_SHFT                                                          12
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_WAIT_THRESHOLD_BMSK                                                       0xf00
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_WAIT_THRESHOLD_SHFT                                                           8
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_STATUS0_END_ADDR_BMSK                                                      0x7f
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_STATUS0_END_ADDR_SHFT                                                         0
+
+#define HWIO_TQM_R0_WATCHDOG_ADDR(x)                                                                             ((x) + 0x42c)
+#define HWIO_TQM_R0_WATCHDOG_PHYS(x)                                                                             ((x) + 0x42c)
+#define HWIO_TQM_R0_WATCHDOG_OFFS                                                                                (0x42c)
+#define HWIO_TQM_R0_WATCHDOG_RMSK                                                                                0x7fffffff
+#define HWIO_TQM_R0_WATCHDOG_POR                                                                                 0x00002710
+#define HWIO_TQM_R0_WATCHDOG_POR_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_WATCHDOG_ATTR                                                                                             0x3
+#define HWIO_TQM_R0_WATCHDOG_IN(x)            \
+                in_dword(HWIO_TQM_R0_WATCHDOG_ADDR(x))
+#define HWIO_TQM_R0_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WATCHDOG_ADDR(x), m)
+#define HWIO_TQM_R0_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WATCHDOG_ADDR(x),v)
+#define HWIO_TQM_R0_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WATCHDOG_ADDR(x),m,v,HWIO_TQM_R0_WATCHDOG_IN(x))
+#define HWIO_TQM_R0_WATCHDOG_STATUS_BMSK                                                                         0x7fff0000
+#define HWIO_TQM_R0_WATCHDOG_STATUS_SHFT                                                                                 16
+#define HWIO_TQM_R0_WATCHDOG_LIMIT_BMSK                                                                              0xffff
+#define HWIO_TQM_R0_WATCHDOG_LIMIT_SHFT                                                                                   0
+
+#define HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x)                                                                         ((x) + 0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_PHYS(x)                                                                         ((x) + 0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OFFS                                                                            (0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_POR                                                                             0x00000000
+#define HWIO_TQM_R0_TESTBUS_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x),m,v,HWIO_TQM_R0_TESTBUS_CTRL_IN(x))
+#define HWIO_TQM_R0_TESTBUS_CTRL_SELECT_TQM_BMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_SELECT_TQM_SHFT                                                                          0
+
+#define HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x)                                                                        ((x) + 0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_PHYS(x)                                                                        ((x) + 0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_OFFS                                                                           (0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_POR                                                                            0x00000000
+#define HWIO_TQM_R0_TESTBUS_LOWER_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_LOWER_VALUE_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_VALUE_SHFT                                                                              0
+
+#define HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x)                                                                        ((x) + 0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_PHYS(x)                                                                        ((x) + 0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_OFFS                                                                           (0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_RMSK                                                                                 0xff
+#define HWIO_TQM_R0_TESTBUS_UPPER_POR                                                                            0x00000000
+#define HWIO_TQM_R0_TESTBUS_UPPER_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_TESTBUS_UPPER_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_TESTBUS_UPPER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_UPPER_VALUE_BMSK                                                                           0xff
+#define HWIO_TQM_R0_TESTBUS_UPPER_VALUE_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x)                                                                       ((x) + 0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_PHYS(x)                                                                       ((x) + 0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OFFS                                                                          (0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_0_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_0_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x)                                                                       ((x) + 0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_PHYS(x)                                                                       ((x) + 0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OFFS                                                                          (0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_1_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_1_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x)                                                                       ((x) + 0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_PHYS(x)                                                                       ((x) + 0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OFFS                                                                          (0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_2_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_2_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x)                                                                       ((x) + 0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_PHYS(x)                                                                       ((x) + 0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OFFS                                                                          (0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_3_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_3_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                            ((x) + 0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                            ((x) + 0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                               (0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_POR                                                                0x7ffe0002
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                            0x3
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                             0xfffe0000
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                     17
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                              0x1fffc
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                                    2
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                           0x2
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                             1
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                            0x1
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                              0
+
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x)                                                                    ((x) + 0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_PHYS(x)                                                                    ((x) + 0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OFFS                                                                       (0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_RMSK                                                                              0x1
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_POR                                                                        0x00000000
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TQM_R0_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                       0x1
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                         0
+
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                                 ((x) + 0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                                 ((x) + 0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_OFFS                                                                    (0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_RMSK                                                                       0x1ffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_POR                                                                     0x00000000
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ATTR                                                                                 0x1
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                                 0x1ffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_SM_STATES_IX0_ADDR(x)                                                                        ((x) + 0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_PHYS(x)                                                                        ((x) + 0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_OFFS                                                                           (0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_RMSK                                                                           0x3fffffff
+#define HWIO_TQM_R0_SM_STATES_IX0_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX0_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX0_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX0_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_QUEUE_STATS_SM_BMSK                                                        0x3e000000
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_QUEUE_STATS_SM_SHFT                                                                25
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_BMSK                                                      0x1e00000
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_SHFT                                                             21
+#define HWIO_TQM_R0_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_BMSK                                                  0x180000
+#define HWIO_TQM_R0_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_SHFT                                                        19
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MPDU_LINK_SM_BMSK                                                             0x78000
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MPDU_LINK_SM_SHFT                                                                  15
+#define HWIO_TQM_R0_SM_STATES_IX0_CREATE_MPDU_SM_BMSK                                                                0x7c00
+#define HWIO_TQM_R0_SM_STATES_IX0_CREATE_MPDU_SM_SHFT                                                                    10
+#define HWIO_TQM_R0_SM_STATES_IX0_GEN_MPDU_SM_BMSK                                                                    0x3e0
+#define HWIO_TQM_R0_SM_STATES_IX0_GEN_MPDU_SM_SHFT                                                                        5
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MSDU_SM_BMSK                                                                     0x1f
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MSDU_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX1_ADDR(x)                                                                        ((x) + 0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_PHYS(x)                                                                        ((x) + 0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_OFFS                                                                           (0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX1_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX1_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX1_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX1_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK1_SM_BMSK                                                        0xc0000000
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK1_SM_SHFT                                                                30
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK0_SM_BMSK                                                        0x30000000
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK0_SM_SHFT                                                                28
+#define HWIO_TQM_R0_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_BMSK                                                    0xf800000
+#define HWIO_TQM_R0_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_SHFT                                                           23
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MSDU_SM_BMSK                                                                 0x7c0000
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MSDU_SM_SHFT                                                                       18
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MPDU_SM_BMSK                                                                  0x3f000
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MPDU_SM_SHFT                                                                       12
+#define HWIO_TQM_R0_SM_STATES_IX1_WRITE_CMD_SM_BMSK                                                                   0xe00
+#define HWIO_TQM_R0_SM_STATES_IX1_WRITE_CMD_SM_SHFT                                                                       9
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_MPDU_MAIN_SM_BMSK                                                              0x1f0
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_MPDU_MAIN_SM_SHFT                                                                  4
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_TLV_SM_BMSK                                                                      0xf
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_TLV_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX2_ADDR(x)                                                                        ((x) + 0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_PHYS(x)                                                                        ((x) + 0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_OFFS                                                                           (0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX2_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX2_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX2_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX2_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX2_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_ASYNC_SM_BMSK                                                              0x80000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_ASYNC_SM_SHFT                                                                      31
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_MSDU_ENT_SM_BMSK                                                           0x70000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_MSDU_ENT_SM_SHFT                                                                   28
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_SW_CMD_SM_BMSK                                                              0xf000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_SW_CMD_SM_SHFT                                                                     24
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_HWSCH_CMD_SM_BMSK                                                            0xf00000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_HWSCH_CMD_SM_SHFT                                                                  20
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_READ_SM_BMSK                                                             0xc0000
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_READ_SM_SHFT                                                                  18
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_SM_BMSK                                                                  0x3ffff
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX3_ADDR(x)                                                                        ((x) + 0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_PHYS(x)                                                                        ((x) + 0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_OFFS                                                                           (0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_RMSK                                                                             0xffffff
+#define HWIO_TQM_R0_SM_STATES_IX3_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX3_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX3_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX3_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX3_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX3_PREFETCH_SM_BMSK                                                                 0xff0000
+#define HWIO_TQM_R0_SM_STATES_IX3_PREFETCH_SM_SHFT                                                                       16
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_BMSK                                                         0xc000
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_SHFT                                                             14
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_BMSK                                                         0x3000
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_SHFT                                                             12
+#define HWIO_TQM_R0_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_BMSK                                                           0xf80
+#define HWIO_TQM_R0_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_SHFT                                                               7
+#define HWIO_TQM_R0_SM_STATES_IX3_AXI_TO_TLV_SM_BMSK                                                                   0x60
+#define HWIO_TQM_R0_SM_STATES_IX3_AXI_TO_TLV_SM_SHFT                                                                      5
+#define HWIO_TQM_R0_SM_STATES_IX3_LIST_TLV_STATE_BMSK                                                                  0x1c
+#define HWIO_TQM_R0_SM_STATES_IX3_LIST_TLV_STATE_SHFT                                                                     2
+#define HWIO_TQM_R0_SM_STATES_IX3_DATA_ALIGN_SM_BMSK                                                                    0x3
+#define HWIO_TQM_R0_SM_STATES_IX3_DATA_ALIGN_SM_SHFT                                                                      0
+
+#define HWIO_TQM_R0_MISC_CFG_ADDR(x)                                                                             ((x) + 0x468)
+#define HWIO_TQM_R0_MISC_CFG_PHYS(x)                                                                             ((x) + 0x468)
+#define HWIO_TQM_R0_MISC_CFG_OFFS                                                                                (0x468)
+#define HWIO_TQM_R0_MISC_CFG_RMSK                                                                                0xffdfefff
+#define HWIO_TQM_R0_MISC_CFG_POR                                                                                 0x9a576fe0
+#define HWIO_TQM_R0_MISC_CFG_POR_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_MISC_CFG_ATTR                                                                                             0x3
+#define HWIO_TQM_R0_MISC_CFG_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CFG_ADDR(x))
+#define HWIO_TQM_R0_MISC_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CFG_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CFG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CFG_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CFG_ADDR(x),m,v,HWIO_TQM_R0_MISC_CFG_IN(x))
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_ROUTING_CHECKS_BMSK                                                          0x80000000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_ROUTING_CHECKS_SHFT                                                                  31
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_LINK_STARVATION_WAIT_BMSK                                                   0x40000000
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_LINK_STARVATION_WAIT_SHFT                                                           30
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_STATUS_FOR_INVALID_FLOW_BMSK                                                0x20000000
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_STATUS_FOR_INVALID_FLOW_SHFT                                                        29
+#define HWIO_TQM_R0_MISC_CFG_ENB_ACKED_MPDU_QUEUE_OVERVIEW_BMSK                                                  0x10000000
+#define HWIO_TQM_R0_MISC_CFG_ENB_ACKED_MPDU_QUEUE_OVERVIEW_SHFT                                                          28
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_TLV_FILTER_BMSK                                                               0x8000000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_TLV_FILTER_SHFT                                                                      27
+#define HWIO_TQM_R0_MISC_CFG_SEND_MSI_AFTER_IDLE_RESP_BMSK                                                        0x4000000
+#define HWIO_TQM_R0_MISC_CFG_SEND_MSI_AFTER_IDLE_RESP_SHFT                                                               26
+#define HWIO_TQM_R0_MISC_CFG_FILTER_INVALID_ADDRESS_IN_COMMANDS_BMSK                                              0x2000000
+#define HWIO_TQM_R0_MISC_CFG_FILTER_INVALID_ADDRESS_IN_COMMANDS_SHFT                                                     25
+#define HWIO_TQM_R0_MISC_CFG_STATUS1_WRITE_POSTED_BMSK                                                            0x1000000
+#define HWIO_TQM_R0_MISC_CFG_STATUS1_WRITE_POSTED_SHFT                                                                   24
+#define HWIO_TQM_R0_MISC_CFG_STATUS_WRITE_POSTED_BMSK                                                              0x800000
+#define HWIO_TQM_R0_MISC_CFG_STATUS_WRITE_POSTED_SHFT                                                                    23
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_FW2TQM_TP_AT_8W_BOUNDARY_BMSK                                                  0x400000
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_FW2TQM_TP_AT_8W_BOUNDARY_SHFT                                                        22
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_TCL2TQM_TP_AT_8W_BOUNDARY_BMSK                                                 0x100000
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_TCL2TQM_TP_AT_8W_BOUNDARY_SHFT                                                       20
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_FILTER_GEN_MPDU_EMPTY_STATUS_BMSK                                               0x80000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_FILTER_GEN_MPDU_EMPTY_STATUS_SHFT                                                    19
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_INVALIDATE_CACHE_FOR_INVALID_DESC_BMSK                                          0x40000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_INVALIDATE_CACHE_FOR_INVALID_DESC_SHFT                                               18
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_UPDATE_TX_COUNT_DURING_FLUSH_BMSK                                               0x20000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_UPDATE_TX_COUNT_DURING_FLUSH_SHFT                                                    17
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_BA_PROC_DURING_FLUSH_BMSK                                                       0x10000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_BA_PROC_DURING_FLUSH_SHFT                                                            16
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_SWAP_BIT_BMSK                                                                 0x8000
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_SWAP_BIT_SHFT                                                                     15
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_POSTED_BMSK                                                                   0x4000
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_POSTED_SHFT                                                                       14
+#define HWIO_TQM_R0_MISC_CFG_DESC_PTR_RELEASE_POSTED_BMSK                                                            0x2000
+#define HWIO_TQM_R0_MISC_CFG_DESC_PTR_RELEASE_POSTED_SHFT                                                                13
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MSDU_BMSK                                                               0x800
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MSDU_SHFT                                                                  11
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_LIST_MPDU_BMSK                                                              0x400
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_LIST_MPDU_SHFT                                                                 10
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_GEN_MPDU_BMSK                                                               0x200
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_GEN_MPDU_SHFT                                                                   9
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MPDU_BMSK                                                               0x100
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MPDU_SHFT                                                                   8
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_ACKED_MPDU_BMSK                                                              0x80
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_ACKED_MPDU_SHFT                                                                 7
+#define HWIO_TQM_R0_MISC_CFG_FORCE_TO_REPORT_STATUS_BMSK                                                               0x40
+#define HWIO_TQM_R0_MISC_CFG_FORCE_TO_REPORT_STATUS_SHFT                                                                  6
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_POSTED_BMSK                                                                     0x20
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_POSTED_SHFT                                                                        5
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SWAP_BIT_BMSK                                                                   0x10
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SWAP_BIT_SHFT                                                                      4
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SECURITY_BIT_BMSK                                                                0x8
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SECURITY_BIT_SHFT                                                                  3
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_POSTED_BMSK                                                                       0x4
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_POSTED_SHFT                                                                         2
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SWAP_BIT_BMSK                                                                     0x2
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SWAP_BIT_SHFT                                                                       1
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SECURITY_BIT_BMSK                                                                 0x1
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SECURITY_BIT_SHFT                                                                   0
+
+#define HWIO_TQM_R0_MISC_CFG_1_ADDR(x)                                                                           ((x) + 0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_PHYS(x)                                                                           ((x) + 0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_OFFS                                                                              (0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_RMSK                                                                                   0x7ff
+#define HWIO_TQM_R0_MISC_CFG_1_POR                                                                               0x00000040
+#define HWIO_TQM_R0_MISC_CFG_1_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_MISC_CFG_1_ATTR                                                                                           0x3
+#define HWIO_TQM_R0_MISC_CFG_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CFG_1_ADDR(x))
+#define HWIO_TQM_R0_MISC_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CFG_1_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CFG_1_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CFG_1_ADDR(x),m,v,HWIO_TQM_R0_MISC_CFG_1_IN(x))
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_MLO_OWNER_BASED_ACK_PROCESS_BMSK                                               0x400
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_MLO_OWNER_BASED_ACK_PROCESS_SHFT                                                  10
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_TQM2TQM_GEN_MPDUS_BMSK                                                             0x200
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_TQM2TQM_GEN_MPDUS_SHFT                                                                 9
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_MLO_FRAGMENTATION_BMSK                                                             0x100
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_MLO_FRAGMENTATION_SHFT                                                                 8
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_SESSION_ID_BMSK                                                                     0x80
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_SESSION_ID_SHFT                                                                        7
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_OWNER_CHECK_BMSK                                                                    0x40
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_OWNER_CHECK_SHFT                                                                       6
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_DROP_COUNT_UPDATES_FOR_MULTICAST_BMSK                                           0x20
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_DROP_COUNT_UPDATES_FOR_MULTICAST_SHFT                                              5
+#define HWIO_TQM_R0_MISC_CFG_1_UNMASK_EVENT_BUS_POT_BMSK                                                               0x10
+#define HWIO_TQM_R0_MISC_CFG_1_UNMASK_EVENT_BUS_POT_SHFT                                                                  4
+#define HWIO_TQM_R0_MISC_CFG_1_ALLOW_REGISTER_FLUSH_ACK_BMSK                                                            0x8
+#define HWIO_TQM_R0_MISC_CFG_1_ALLOW_REGISTER_FLUSH_ACK_SHFT                                                              3
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_SINGLE_FLOW_CONCURRENCY_BMSK                                                     0x4
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_SINGLE_FLOW_CONCURRENCY_SHFT                                                       2
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_UPDATE_REQUIREMENT_CHECK_BMSK                                                    0x2
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_UPDATE_REQUIREMENT_CHECK_SHFT                                                      1
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_PREFETCH_FIX_BMSK                                                                0x1
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_PREFETCH_FIX_SHFT                                                                  0
+
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x)                                                                         ((x) + 0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_PHYS(x)                                                                         ((x) + 0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OFFS                                                                            (0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_RMSK                                                                            0xdfffffff
+#define HWIO_TQM_R0_CLKGATE_CTRL_POR                                                                             0x00000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_CLKGATE_CTRL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_CLKGATE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_CLKGATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_CLKGATE_CTRL_IN(x))
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLOCK_ENS_EXTEND_BMSK                                                           0x80000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLOCK_ENS_EXTEND_SHFT                                                                   31
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLK_GATE_DISABLE_APB_BMSK                                                       0x40000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLK_GATE_DISABLE_APB_SHFT                                                               30
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_DESC_DISABLE_BMSK                                                  0x10000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_DESC_DISABLE_SHFT                                                          28
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV2_DISABLE_BMSK                                                       0x8000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV2_DISABLE_SHFT                                                              27
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV1_DISABLE_BMSK                                                       0x4000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV1_DISABLE_SHFT                                                              26
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_REL_RING_DISABLE_BMSK                                                       0x2000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_REL_RING_DISABLE_SHFT                                                              25
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS1_RING_DISABLE_BMSK                                                        0x1000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS1_RING_DISABLE_SHFT                                                               24
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS_RING_DISABLE_BMSK                                                          0x800000
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS_RING_DISABLE_SHFT                                                                23
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_PTR_RING_DISABLE_BMSK                                                        0x400000
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_PTR_RING_DISABLE_SHFT                                                              22
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD1_RING_DISABLE_BMSK                                                         0x200000
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD1_RING_DISABLE_SHFT                                                               21
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD_RING_DISABLE_BMSK                                                          0x100000
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD_RING_DISABLE_SHFT                                                                20
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT3_RING_DISABLE_BMSK                                                        0x80000
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT3_RING_DISABLE_SHFT                                                             19
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT1_RING_DISABLE_BMSK                                                        0x40000
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT1_RING_DISABLE_SHFT                                                             18
+#define HWIO_TQM_R0_CLKGATE_CTRL_UPDATE_QUEUE_DESC_CLK_GATE_DISABLE_BMSK                                            0x20000
+#define HWIO_TQM_R0_CLKGATE_CTRL_UPDATE_QUEUE_DESC_CLK_GATE_DISABLE_SHFT                                                 17
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_MEM_CLK_GATE_DISABLE_BMSK                                                    0x10000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_MEM_CLK_GATE_DISABLE_SHFT                                                         16
+#define HWIO_TQM_R0_CLKGATE_CTRL_TLV_IF_CLK_GATE_DISABLE_BMSK                                                        0x8000
+#define HWIO_TQM_R0_CLKGATE_CTRL_TLV_IF_CLK_GATE_DISABLE_SHFT                                                            15
+#define HWIO_TQM_R0_CLKGATE_CTRL_AXI_IF_CLK_GATE_DISABLE_BMSK                                                        0x4000
+#define HWIO_TQM_R0_CLKGATE_CTRL_AXI_IF_CLK_GATE_DISABLE_SHFT                                                            14
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_CLK_GATE_DISABLE_BMSK                                                  0x2000
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_CLK_GATE_DISABLE_SHFT                                                      13
+#define HWIO_TQM_R0_CLKGATE_CTRL_FLUSH_UNBLK_CACHE_CLK_GATE_DISABLE_BMSK                                             0x1000
+#define HWIO_TQM_R0_CLKGATE_CTRL_FLUSH_UNBLK_CACHE_CLK_GATE_DISABLE_SHFT                                                 12
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_MPDU_HEAD_INFO_CLK_GATE_DISABLE_BMSK                                             0x800
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_MPDU_HEAD_INFO_CLK_GATE_DISABLE_SHFT                                                11
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MSDU_CLK_GATE_DISABLE_BMSK                                                       0x400
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MSDU_CLK_GATE_DISABLE_SHFT                                                          10
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MPDU_CLK_GATE_DISABLE_BMSK                                                       0x200
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MPDU_CLK_GATE_DISABLE_SHFT                                                           9
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_QUEUE_STATS_CLK_GATE_DISABLE_BMSK                                                0x100
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_QUEUE_STATS_CLK_GATE_DISABLE_SHFT                                                    8
+#define HWIO_TQM_R0_CLKGATE_CTRL_TX_MPDU_COUNT_CLK_GATE_DISABLE_BMSK                                                   0x80
+#define HWIO_TQM_R0_CLKGATE_CTRL_TX_MPDU_COUNT_CLK_GATE_DISABLE_SHFT                                                      7
+#define HWIO_TQM_R0_CLKGATE_CTRL_LIST_MPDU_CLK_GATE_DISABLE_BMSK                                                       0x40
+#define HWIO_TQM_R0_CLKGATE_CTRL_LIST_MPDU_CLK_GATE_DISABLE_SHFT                                                          6
+#define HWIO_TQM_R0_CLKGATE_CTRL_GEN_MPDU_CLK_GATE_DISABLE_BMSK                                                        0x20
+#define HWIO_TQM_R0_CLKGATE_CTRL_GEN_MPDU_CLK_GATE_DISABLE_SHFT                                                           5
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADD_MSDU_CLK_GATE_DISABLE_BMSK                                                        0x10
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADD_MSDU_CLK_GATE_DISABLE_SHFT                                                           4
+#define HWIO_TQM_R0_CLKGATE_CTRL_ARBITER_CLK_GATE_DISABLE_BMSK                                                          0x8
+#define HWIO_TQM_R0_CLKGATE_CTRL_ARBITER_CLK_GATE_DISABLE_SHFT                                                            3
+#define HWIO_TQM_R0_CLKGATE_CTRL_PREFETCH_CLK_GATE_DISABLE_BMSK                                                         0x4
+#define HWIO_TQM_R0_CLKGATE_CTRL_PREFETCH_CLK_GATE_DISABLE_SHFT                                                           2
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_CTL_CLK_GATE_DISABLE_BMSK                                                        0x2
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_CTL_CLK_GATE_DISABLE_SHFT                                                          1
+#define HWIO_TQM_R0_CLKGATE_CTRL_TOP_CLK_GATE_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_CLKGATE_CTRL_TOP_CLK_GATE_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x)                                                             ((x) + 0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_PHYS(x)                                                             ((x) + 0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OFFS                                                                (0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x)                                                             ((x) + 0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_PHYS(x)                                                             ((x) + 0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OFFS                                                                (0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x)                                                             ((x) + 0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_PHYS(x)                                                             ((x) + 0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OFFS                                                                (0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x)                                                           ((x) + 0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PHYS(x)                                                           ((x) + 0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OFFS                                                              (0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_POR                                                               0x00ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_LINK_DESCRIPTOR_COUNTER0_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_LINK_DESCRIPTOR_COUNTER0_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x)                                                           ((x) + 0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PHYS(x)                                                           ((x) + 0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OFFS                                                              (0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_POR                                                               0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_LINK_DESCRIPTOR_COUNTER1_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_LINK_DESCRIPTOR_COUNTER1_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x)                                                           ((x) + 0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PHYS(x)                                                           ((x) + 0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OFFS                                                              (0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_POR                                                               0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_LINK_DESCRIPTOR_COUNTER2_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_LINK_DESCRIPTOR_COUNTER2_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x)                                                  ((x) + 0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PHYS(x)                                                  ((x) + 0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OFFS                                                     (0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_RMSK                                                     0xf3ffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_POR                                                      0x00000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ATTR                                                                  0x3
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_IN(x)            \
+                in_dword(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x))
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x), m)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x),v)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x),m,v,HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_IN(x))
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_ENABLE_BMSK                                      0x80000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_ENABLE_SHFT                                              31
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_GENERATED_BMSK                                   0x40000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_GENERATED_SHFT                                           30
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_ENABLE_BMSK                                        0x20000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_ENABLE_SHFT                                                29
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_STATUS_BMSK                                        0x10000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_STATUS_SHFT                                                28
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_LINK_DESCRIPTOR_COUNTER_SUM_THRESHOLD_BMSK                0x3ffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_LINK_DESCRIPTOR_COUNTER_SUM_THRESHOLD_SHFT                        0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x)                                                     ((x) + 0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_PHYS(x)                                                     ((x) + 0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OFFS                                                        (0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_RMSK                                                        0xa3ff17ff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_POR                                                         0x00ff0000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ATTR                                                                     0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_FW2TQM_BMSK                                    0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_FW2TQM_SHFT                                            31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_TCL2TQM_BMSK                                   0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_TCL2TQM_SHFT                                           29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                             0x3ff0000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_FW2TQM_BMSK                                               0x1000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_FW2TQM_SHFT                                                   12
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_TCL2TQM_BMSK                                               0x400
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_TCL2TQM_SHFT                                                  10
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_LINK_DESC_THRESHOLD_BMSK                                         0x3ff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_LINK_DESC_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x)                                                                     ((x) + 0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_PHYS(x)                                                                     ((x) + 0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OFFS                                                                        (0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_RMSK                                                                            0xffff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_POR                                                                         0x00001740
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_IN(x)            \
+                in_dword(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x))
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x), m)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x),v)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x),m,v,HWIO_TQM_R0_DESC_PTR_RELEASE_IN(x))
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_THRESH_BMSK                                                                     0xff00
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_THRESH_SHFT                                                                          8
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_TIMEOUT_BMSK                                                                      0xff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_TIMEOUT_SHFT                                                                         0
+
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x)                                                    ((x) + 0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_PHYS(x)                                                    ((x) + 0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_OFFS                                                       (0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_RMSK                                                           0xffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_POR                                                        0x00000000
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ATTR                                                                    0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                              0xffe0
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                   5
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                     0x1e
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                        1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                    0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                      0
+
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x)                                           ((x) + 0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_PHYS(x)                                           ((x) + 0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_OFFS                                              (0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_RMSK                                                  0xffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR                                               0x00000000
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ATTR                                                           0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                     0xfffe
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                          1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                           0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                             0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x)                                               ((x) + 0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_PHYS(x)                                               ((x) + 0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_OFFS                                                  (0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_RMSK                                                      0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_POR                                                   0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ATTR                                                               0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                         0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                              5
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                   1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                               0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                 0
+
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x)                                                     ((x) + 0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_PHYS(x)                                                     ((x) + 0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_OFFS                                                        (0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_RMSK                                                            0xffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                               0xffe0
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                    5
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                      0x1e
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                         1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                     0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                       0
+
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x)                                            ((x) + 0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_PHYS(x)                                            ((x) + 0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_OFFS                                               (0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_RMSK                                                   0xffe1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                      0xffe0
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                           5
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                            0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                              0
+
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_OFFS                                                 (0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x)                                                   ((x) + 0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_PHYS(x)                                                   ((x) + 0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_OFFS                                                      (0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_RMSK                                                          0xffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_POR                                                       0x00000000
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ATTR                                                                   0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                             0xffe0
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                  5
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                    0x1e
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                       1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                   0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                     0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_OFFS                                                 (0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_OFFS                                                 (0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x)                                                                       ((x) + 0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_PHYS(x)                                                                       ((x) + 0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OFFS                                                                          (0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_RMSK                                                                              0x3fff
+#define HWIO_TQM_R0_ERROR_STATUS_1_POR                                                                           0x00000000
+#define HWIO_TQM_R0_ERROR_STATUS_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_ERROR_STATUS_1_ATTR                                                                                       0x0
+#define HWIO_TQM_R0_ERROR_STATUS_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x))
+#define HWIO_TQM_R0_ERROR_STATUS_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x), m)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x),v)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x),m,v,HWIO_TQM_R0_ERROR_STATUS_1_IN(x))
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN2_RING_BMSK                                               0x2000
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN2_RING_SHFT                                                   13
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN1_RING_BMSK                                               0x1000
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN1_RING_SHFT                                                   12
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_1_RING_BMSK                                                   0x800
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_1_RING_SHFT                                                      11
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_0_RING_BMSK                                                   0x400
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_0_RING_SHFT                                                      10
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_UPDATE_TX_MPDU_COUNT_BMSK                                            0x200
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_UPDATE_TX_MPDU_COUNT_SHFT                                                9
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MSDU_BMSK                                                        0x100
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MSDU_SHFT                                                            8
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ACKED_MPDU_BMSK                                                       0x80
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ACKED_MPDU_SHFT                                                          7
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MPDU_BMSK                                                         0x40
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MPDU_SHFT                                                            6
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_LIST_MPDU_BMSK                                                        0x20
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_LIST_MPDU_SHFT                                                           5
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_QUEUE_STATS_BMSK                                             0x10
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_QUEUE_STATS_SHFT                                                4
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_FLOW_QUEUE_STATS_BMSK                                              0x8
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_FLOW_QUEUE_STATS_SHFT                                                3
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_HEAD_INFO_BMSK                                                0x4
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_HEAD_INFO_SHFT                                                  2
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GEN_MPDU_BMSK                                                          0x2
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GEN_MPDU_SHFT                                                            1
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ADD_MSDU_BMSK                                                          0x1
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ADD_MSDU_SHFT                                                            0
+
+#define HWIO_TQM_R0_TLV_IF_ADDR(x)                                                                               ((x) + 0x4c0)
+#define HWIO_TQM_R0_TLV_IF_PHYS(x)                                                                               ((x) + 0x4c0)
+#define HWIO_TQM_R0_TLV_IF_OFFS                                                                                  (0x4c0)
+#define HWIO_TQM_R0_TLV_IF_RMSK                                                                                         0x7
+#define HWIO_TQM_R0_TLV_IF_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_TLV_IF_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_TLV_IF_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_TLV_IF_IN(x)            \
+                in_dword(HWIO_TQM_R0_TLV_IF_ADDR(x))
+#define HWIO_TQM_R0_TLV_IF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TLV_IF_ADDR(x), m)
+#define HWIO_TQM_R0_TLV_IF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TLV_IF_ADDR(x),v)
+#define HWIO_TQM_R0_TLV_IF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TLV_IF_ADDR(x),m,v,HWIO_TQM_R0_TLV_IF_IN(x))
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_2_SYNC_RESET_BMSK                                                              0x4
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_2_SYNC_RESET_SHFT                                                                2
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_1_SYNC_RESET_BMSK                                                              0x2
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_1_SYNC_RESET_SHFT                                                                1
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_0_SYNC_RESET_BMSK                                                              0x1
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_0_SYNC_RESET_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x)                                                              ((x) + 0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_PHYS(x)                                                              ((x) + 0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_OFFS                                                                 (0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x))
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_TQM_REFERENCE_TIMESTAMP_BMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_TQM_REFERENCE_TIMESTAMP_SHFT                                                  0
+
+#define HWIO_TQM_R0_SPARE_ADDR(x)                                                                                ((x) + 0x4c8)
+#define HWIO_TQM_R0_SPARE_PHYS(x)                                                                                ((x) + 0x4c8)
+#define HWIO_TQM_R0_SPARE_OFFS                                                                                   (0x4c8)
+#define HWIO_TQM_R0_SPARE_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R0_SPARE_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_SPARE_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_SPARE_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_SPARE_IN(x)            \
+                in_dword(HWIO_TQM_R0_SPARE_ADDR(x))
+#define HWIO_TQM_R0_SPARE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SPARE_ADDR(x), m)
+#define HWIO_TQM_R0_SPARE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SPARE_ADDR(x),v)
+#define HWIO_TQM_R0_SPARE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SPARE_ADDR(x),m,v,HWIO_TQM_R0_SPARE_IN(x))
+#define HWIO_TQM_R0_SPARE_SPAREBITS_BMSK                                                                         0xffffffff
+#define HWIO_TQM_R0_SPARE_SPAREBITS_SHFT                                                                                  0
+
+#define HWIO_TQM_R0_SPEAR_ADDR(x)                                                                                ((x) + 0x4cc)
+#define HWIO_TQM_R0_SPEAR_PHYS(x)                                                                                ((x) + 0x4cc)
+#define HWIO_TQM_R0_SPEAR_OFFS                                                                                   (0x4cc)
+#define HWIO_TQM_R0_SPEAR_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R0_SPEAR_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_SPEAR_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_SPEAR_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_SPEAR_IN(x)            \
+                in_dword(HWIO_TQM_R0_SPEAR_ADDR(x))
+#define HWIO_TQM_R0_SPEAR_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SPEAR_ADDR(x), m)
+#define HWIO_TQM_R0_SPEAR_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SPEAR_ADDR(x),v)
+#define HWIO_TQM_R0_SPEAR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SPEAR_ADDR(x),m,v,HWIO_TQM_R0_SPEAR_IN(x))
+#define HWIO_TQM_R0_SPEAR_SPEAR_BMSK                                                                             0xffffffff
+#define HWIO_TQM_R0_SPEAR_SPEAR_SHFT                                                                                      0
+
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x)                                                              ((x) + 0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_PHYS(x)                                                              ((x) + 0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OFFS                                                                 (0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_RMSK                                                                       0x1f
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_POR                                                                  0x00000001
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ATTR                                                                              0x3
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_IN(x)            \
+                in_dword(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x))
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x), m)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x),v)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x),m,v,HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_IN(x))
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MPDU_BMSK                                                          0x10
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MPDU_SHFT                                                             4
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MSDU_BMSK                                                           0x8
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MSDU_SHFT                                                             3
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MSDU_FLOW_BMSK                                                   0x4
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MSDU_FLOW_SHFT                                                     2
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MPDU_QUEUE_BMSK                                                  0x2
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MPDU_QUEUE_SHFT                                                    1
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_GEN_MPDUS_BMSK                                                          0x1
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_GEN_MPDUS_SHFT                                                            0
+
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x)                                                                ((x) + 0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_PHYS(x)                                                                ((x) + 0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OFFS                                                                   (0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_POR                                                                    0x00150000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ATTR                                                                                0x3
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_BAR_ASSIST_BMSK                                                          0x300000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_BAR_ASSIST_SHFT                                                                20
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_LIST_MPDU_BMSK                                                            0xc0000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_LIST_MPDU_SHFT                                                                 18
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_MISC_TRANSFERS_BMSK                                                       0x30000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_MISC_TRANSFERS_SHFT                                                            16
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS1_RING_BMSK                                                          0xc000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS1_RING_SHFT                                                              14
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS_RING_BMSK                                                           0x3000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS_RING_SHFT                                                               12
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_RELEASE_RING_BMSK                                                  0xc00
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_RELEASE_RING_SHFT                                                     10
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_FETCH_RING_BMSK                                                    0x300
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_FETCH_RING_SHFT                                                        8
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD1_RING_BMSK                                                            0xc0
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD1_RING_SHFT                                                               6
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD_RING_BMSK                                                             0x30
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD_RING_SHFT                                                                4
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_FW2TQM_ENTRANCE_RING_BMSK                                                     0xc
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_FW2TQM_ENTRANCE_RING_SHFT                                                       2
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_TCL2TQM_ENTRANCE_RING_BMSK                                                    0x3
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_TCL2TQM_ENTRANCE_RING_SHFT                                                      0
+
+#define HWIO_TQM_R0_VC_ID_ADDR(x)                                                                                ((x) + 0x4d8)
+#define HWIO_TQM_R0_VC_ID_PHYS(x)                                                                                ((x) + 0x4d8)
+#define HWIO_TQM_R0_VC_ID_OFFS                                                                                   (0x4d8)
+#define HWIO_TQM_R0_VC_ID_RMSK                                                                                         0x3f
+#define HWIO_TQM_R0_VC_ID_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_VC_ID_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_VC_ID_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_VC_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_VC_ID_ADDR(x))
+#define HWIO_TQM_R0_VC_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_VC_ID_ADDR(x), m)
+#define HWIO_TQM_R0_VC_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_VC_ID_ADDR(x),v)
+#define HWIO_TQM_R0_VC_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_VC_ID_ADDR(x),m,v,HWIO_TQM_R0_VC_ID_IN(x))
+#define HWIO_TQM_R0_VC_ID_WBM2TQM_C_SRNG_BMSK                                                                          0x20
+#define HWIO_TQM_R0_VC_ID_WBM2TQM_C_SRNG_SHFT                                                                             5
+#define HWIO_TQM_R0_VC_ID_SW_CMD1_C_SRNG_BMSK                                                                          0x10
+#define HWIO_TQM_R0_VC_ID_SW_CMD1_C_SRNG_SHFT                                                                             4
+#define HWIO_TQM_R0_VC_ID_SW_CMD_C_SRNG_BMSK                                                                            0x8
+#define HWIO_TQM_R0_VC_ID_SW_CMD_C_SRNG_SHFT                                                                              3
+#define HWIO_TQM_R0_VC_ID_FW2TQM_ENTRANCE_C_SRNG_BMSK                                                                   0x4
+#define HWIO_TQM_R0_VC_ID_FW2TQM_ENTRANCE_C_SRNG_SHFT                                                                     2
+#define HWIO_TQM_R0_VC_ID_TCL2TQM_ENTRANCE_C_SRNG_BMSK                                                                  0x2
+#define HWIO_TQM_R0_VC_ID_TCL2TQM_ENTRANCE_C_SRNG_SHFT                                                                    1
+#define HWIO_TQM_R0_VC_ID_MISC_TRANSFER_BMSK                                                                            0x1
+#define HWIO_TQM_R0_VC_ID_MISC_TRANSFER_SHFT                                                                              0
+
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x)                                                                     ((x) + 0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_PHYS(x)                                                                     ((x) + 0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OFFS                                                                        (0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_POR                                                                         0x00000000
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x), m)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x),v)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x),m,v,HWIO_TQM_R0_BARRIER_RD_CTL_0_IN(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_LSB_BMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_LSB_SHFT                                                                             0
+
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x)                                                                     ((x) + 0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_PHYS(x)                                                                     ((x) + 0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OFFS                                                                        (0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_RMSK                                                                              0xff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_POR                                                                         0x00000000
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x), m)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x),v)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x),m,v,HWIO_TQM_R0_BARRIER_RD_CTL_1_IN(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_MSB_BMSK                                                                          0xff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_MSB_SHFT                                                                             0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x)                                                                   ((x) + 0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_PHYS(x)                                                                   ((x) + 0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OFFS                                                                      (0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_POR                                                                       0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_COUNT_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VALUE_BMSK                                                                0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VALUE_SHFT                                                                         0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x)                                                            ((x) + 0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_PHYS(x)                                                            ((x) + 0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OFFS                                                               (0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_POR                                                                0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ATTR                                                                            0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x)                                                            ((x) + 0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_PHYS(x)                                                            ((x) + 0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OFFS                                                               (0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_POR                                                                0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ATTR                                                                            0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x)                                                  ((x) + 0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_PHYS(x)                                                  ((x) + 0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OFFS                                                     (0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_POR                                                      0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ATTR                                                                  0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_VALUE_BMSK                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_VALUE_SHFT                                                        0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x)                                           ((x) + 0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_PHYS(x)                                           ((x) + 0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OFFS                                              (0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_POR                                               0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ATTR                                                           0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_VALUE_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_VALUE_SHFT                                                 0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x)                                           ((x) + 0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_PHYS(x)                                           ((x) + 0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OFFS                                              (0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_POR                                               0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ATTR                                                           0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_VALUE_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_VALUE_SHFT                                                 0
+
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x)                                                                 ((x) + 0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_PHYS(x)                                                                 ((x) + 0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OFFS                                                                    (0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_RMSK                                                                          0xff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x))
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x),m,v,HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_IN(x))
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_VALUE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_VALUE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x)                                                                 ((x) + 0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_PHYS(x)                                                                 ((x) + 0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OFFS                                                                    (0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_RMSK                                                                    0x3fffffff
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_POR                                                                     0x00000000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_IN(x)            \
+                in_dword(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x))
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x), m)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x),v)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x),m,v,HWIO_TQM_R0_UNLOCKED_CONCURRENCY_IN(x))
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_MSDU_PREF_BMSK                                                      0x20000000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_MSDU_PREF_SHFT                                                              29
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MPDU_COUNT_BMSK                                                         0x1ffe0000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MPDU_COUNT_SHFT                                                                 17
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MSDU_COUNT_BMSK                                                            0x1fffe
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MSDU_COUNT_SHFT                                                                  1
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_BMSK                                                                       0x1
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_SHFT                                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OFFS                                                               (0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OFFS                                                               (0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x)                                                                  ((x) + 0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_PHYS(x)                                                                  ((x) + 0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OFFS                                                                     (0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_RMSK                                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x)                                                              ((x) + 0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_PHYS(x)                                                              ((x) + 0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_OFFS                                                                 (0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x)                                                                ((x) + 0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_PHYS(x)                                                                ((x) + 0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OFFS                                                                   (0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OFFS                                                            (0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OFFS                                                            (0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OFFS                                                          (0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OFFS                                                          (0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OFFS                                                              (0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x)                                                        ((x) + 0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_PHYS(x)                                                        ((x) + 0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OFFS                                                           (0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                            0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                     0x7e00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                          9
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                 0x180
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                     7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                       0x70
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                          4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                     0xf
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                         ((x) + 0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                         ((x) + 0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                            (0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                     ((x) + 0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                     ((x) + 0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                        (0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                     ((x) + 0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                     ((x) + 0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                        (0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                      ((x) + 0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                      ((x) + 0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                         (0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                      ((x) + 0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                      ((x) + 0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                         (0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                         0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OFFS                                                                 (0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OFFS                                                               (0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OFFS                                                               (0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x)                                                                  ((x) + 0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_PHYS(x)                                                                  ((x) + 0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OFFS                                                                     (0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_RMSK                                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x)                                                              ((x) + 0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_PHYS(x)                                                              ((x) + 0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_OFFS                                                                 (0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x)                                                                ((x) + 0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_PHYS(x)                                                                ((x) + 0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OFFS                                                                   (0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OFFS                                                            (0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OFFS                                                            (0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OFFS                                                          (0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OFFS                                                          (0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OFFS                                                              (0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x)                                                        ((x) + 0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_PHYS(x)                                                        ((x) + 0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OFFS                                                           (0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                            0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                     0x7e00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                          9
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                 0x180
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                     7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                       0x70
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                          4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                     0xf
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                         ((x) + 0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                         ((x) + 0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                            (0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                     ((x) + 0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                     ((x) + 0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                        (0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                     ((x) + 0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                     ((x) + 0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                        (0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                      ((x) + 0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                      ((x) + 0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                         (0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                      ((x) + 0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                      ((x) + 0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                         (0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                         0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x)                                                              ((x) + 0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_PHYS(x)                                                              ((x) + 0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OFFS                                                                 (0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OFFS                                                              (0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OFFS                                                              (0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x)                                                                 ((x) + 0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_PHYS(x)                                                                 ((x) + 0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OFFS                                                                    (0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x)                                                             ((x) + 0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_PHYS(x)                                                             ((x) + 0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_OFFS                                                                (0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x)                                                               ((x) + 0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_PHYS(x)                                                               ((x) + 0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OFFS                                                                  (0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OFFS                                                           (0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OFFS                                                           (0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OFFS                                                    (0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_OFFS                                                   (0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OFFS                                                         (0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OFFS                                                         (0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OFFS                                                             (0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OFFS                                                         (0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OFFS                                                         (0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OFFS                                                             (0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x)                                                       ((x) + 0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_PHYS(x)                                                       ((x) + 0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OFFS                                                          (0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                           (0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                        (0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                        (0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OFFS                                                                (0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OFFS                                                              (0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OFFS                                                              (0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x)                                                                 ((x) + 0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_PHYS(x)                                                                 ((x) + 0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OFFS                                                                    (0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x)                                                             ((x) + 0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_PHYS(x)                                                             ((x) + 0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_OFFS                                                                (0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x)                                                               ((x) + 0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_PHYS(x)                                                               ((x) + 0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OFFS                                                                  (0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OFFS                                                           (0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OFFS                                                           (0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OFFS                                                    (0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_OFFS                                                   (0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OFFS                                                         (0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OFFS                                                         (0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OFFS                                                             (0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OFFS                                                         (0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OFFS                                                         (0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OFFS                                                             (0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x)                                                       ((x) + 0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_PHYS(x)                                                       ((x) + 0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OFFS                                                          (0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                           (0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                        (0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                        (0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OFFS                                                                (0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x)                                                          ((x) + 0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_PHYS(x)                                                          ((x) + 0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OFFS                                                             (0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_POR                                                              0x01df0190
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x)                                                          ((x) + 0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_PHYS(x)                                                          ((x) + 0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OFFS                                                             (0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_POR                                                              0x022f01e0
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x)                                                          ((x) + 0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_PHYS(x)                                                          ((x) + 0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OFFS                                                             (0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_POR                                                              0x027f0230
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x)                                                          ((x) + 0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_PHYS(x)                                                          ((x) + 0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OFFS                                                             (0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_POR                                                              0x02cf0280
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x)                                                          ((x) + 0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_PHYS(x)                                                          ((x) + 0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OFFS                                                             (0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_POR                                                              0x02e702d0
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x)                                                          ((x) + 0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_PHYS(x)                                                          ((x) + 0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OFFS                                                             (0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_POR                                                              0x02ff02e8
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x)                                                                          ((x) + 0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_PHYS(x)                                                                          ((x) + 0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OFFS                                                                             (0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_RMSK                                                                                    0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_POR                                                                              0x00000000
+#define HWIO_TQM_R0_MLO_CHIP_ID_POR_RMSK                                                                         0xffffffff
+#define HWIO_TQM_R0_MLO_CHIP_ID_ATTR                                                                                          0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x))
+#define HWIO_TQM_R0_MLO_CHIP_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x),m,v,HWIO_TQM_R0_MLO_CHIP_ID_IN(x))
+#define HWIO_TQM_R0_MLO_CHIP_ID_VALUE_BMSK                                                                              0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_VALUE_SHFT                                                                                0
+
+#define HWIO_TQM_R0_MLO_VC_ID_ADDR(x)                                                                            ((x) + 0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_PHYS(x)                                                                            ((x) + 0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_OFFS                                                                               (0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_RMSK                                                                                      0xf
+#define HWIO_TQM_R0_MLO_VC_ID_POR                                                                                0x00000000
+#define HWIO_TQM_R0_MLO_VC_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_MLO_VC_ID_ATTR                                                                                            0x3
+#define HWIO_TQM_R0_MLO_VC_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_VC_ID_ADDR(x))
+#define HWIO_TQM_R0_MLO_VC_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_VC_ID_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_VC_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_VC_ID_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_VC_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_VC_ID_ADDR(x),m,v,HWIO_TQM_R0_MLO_VC_ID_IN(x))
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT2_MLO_P_SRNG_BMSK                                                              0x8
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT2_MLO_P_SRNG_SHFT                                                                3
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT1_MLO_P_SRNG_BMSK                                                              0x4
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT1_MLO_P_SRNG_SHFT                                                                2
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN2_MLO_C_SRNG_BMSK                                                               0x2
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN2_MLO_C_SRNG_SHFT                                                                 1
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN1_MLO_C_SRNG_BMSK                                                               0x1
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN1_MLO_C_SRNG_SHFT                                                                 0
+
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x)                                                            ((x) + 0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_PHYS(x)                                                            ((x) + 0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OFFS                                                               (0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_RMSK                                                                     0xff
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_POR                                                                0x00000000
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ATTR                                                                            0x3
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT2_SRNG_P_MLO_BMSK                                             0xc0
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT2_SRNG_P_MLO_SHFT                                                6
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT1_SRNG_P_MLO_BMSK                                             0x30
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT1_SRNG_P_MLO_SHFT                                                4
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN2_SRNG_C_MLO_BMSK                                               0xc
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN2_SRNG_C_MLO_SHFT                                                 2
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN1_SRNG_C_MLO_BMSK                                               0x3
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN1_SRNG_C_MLO_SHFT                                                 0
+
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x)                                                                ((x) + 0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_PHYS(x)                                                                ((x) + 0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OFFS                                                                   (0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_RMSK                                                                          0x3
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_POR                                                                    0x00000000
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ATTR                                                                                0x3
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_IN(x))
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT2_BMSK                                                             0x2
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT2_SHFT                                                               1
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT1_BMSK                                                             0x1
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT1_SHFT                                                               0
+
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x)                                                                ((x) + 0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_PHYS(x)                                                                ((x) + 0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OFFS                                                                   (0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_RMSK                                                                        0xfff
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_POR                                                                    0x00000003
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ATTR                                                                                0x3
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_IN(x))
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_WRITE_THRESHOLD_BMSK                                           0xf00
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_WRITE_THRESHOLD_SHFT                                               8
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_WRITE_THRESHOLD_BMSK                                            0xf0
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_WRITE_THRESHOLD_SHFT                                               4
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_ISSUE_MULTIPLE_TLVS_BMSK                                         0x8
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_ISSUE_MULTIPLE_TLVS_SHFT                                           3
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_ISSUE_MULTIPLE_TLVS_BMSK                                         0x4
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_ISSUE_MULTIPLE_TLVS_SHFT                                           2
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT2_BMSK                                                         0x2
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT2_SHFT                                                           1
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT1_BMSK                                                         0x1
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT1_SHFT                                                           0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x)                                                              ((x) + 0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_PHYS(x)                                                              ((x) + 0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OFFS                                                                 (0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_RMSK                                                                     0x1fff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_POR                                                                  0x00001000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ATTR                                                                              0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_BMSK                                                  0x1000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_SHFT                                                      12
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_BMSK                                                       0x800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_SHFT                                                          11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_BMSK                                                     0x400
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_SHFT                                                        10
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_BMSK                                                        0x3ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_SHFT                                                            0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x)                                                            ((x) + 0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_PHYS(x)                                                            ((x) + 0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OFFS                                                               (0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_RMSK                                                               0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ATTR                                                                            0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_BMSK                                               0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_SHFT                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x)                                                           ((x) + 0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_PHYS(x)                                                           ((x) + 0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OFFS                                                              (0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_RMSK                                                                0xffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ATTR                                                                           0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_BMSK                                               0xffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_SHFT                                                      0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x)                                                        ((x) + 0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_PHYS(x)                                                        ((x) + 0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OFFS                                                           (0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_BMSK                                                 0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x)                                                       ((x) + 0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_PHYS(x)                                                       ((x) + 0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OFFS                                                          (0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR                                                           0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ATTR                                                                       0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_BMSK                                                0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_SHFT                                                         0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x)                                                                  ((x) + 0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_PHYS(x)                                                                  ((x) + 0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_OFFS                                                                     (0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_RMSK                                                                      0x1ffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_POR                                                                      0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_STATE_BMSK                                                                0x1ffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_STATE_SHFT                                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x)                                                            ((x) + 0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_PHYS(x)                                                            ((x) + 0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_OFFS                                                               (0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_RMSK                                                                 0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_POR                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ATTR                                                                            0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_BMSK                                                        0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_SHFT                                                              11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_BMSK                                                           0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_SHFT                                                               0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x)                                                           ((x) + 0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_PHYS(x)                                                           ((x) + 0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_OFFS                                                              (0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_BMSK                                                      0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_SHFT                                                            11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_BMSK                                                         0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_SHFT                                                             0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x)                                                           ((x) + 0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_PHYS(x)                                                           ((x) + 0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_OFFS                                                              (0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_BMSK                                                  0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_SHFT                                                        11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_BMSK                                                     0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_SHFT                                                         0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x)                                                           ((x) + 0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_PHYS(x)                                                           ((x) + 0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_OFFS                                                              (0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_BMSK                                                 0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_SHFT                                                       11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_BMSK                                                    0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_SHFT                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x)                                                      ((x) + 0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_PHYS(x)                                                      ((x) + 0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_OFFS                                                         (0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR                                                          0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ATTR                                                                      0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_SHFT                                                            0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x)                                                     ((x) + 0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_PHYS(x)                                                     ((x) + 0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_OFFS                                                        (0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_RMSK                                                        0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR                                                         0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ATTR                                                                     0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_BMSK                                                  0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_SHFT                                                           0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x)                                                   ((x) + 0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_PHYS(x)                                                   ((x) + 0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_OFFS                                                      (0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_RMSK                                                         0xfffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ATTR                                                                   0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_BMSK                                                    0xffc00
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_SHFT                                                         10
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_BMSK                                                      0x3ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x)                                                          ((x) + 0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_PHYS(x)                                                          ((x) + 0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OFFS                                                             (0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_RMSK                                                                    0x1
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_POR                                                              0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ATTR                                                                          0x3
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                             0x1
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                               0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x)                                                        ((x) + 0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_PHYS(x)                                                        ((x) + 0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OFFS                                                           (0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_RMSK                                                                0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_BMSK                                                         0x7f8
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_SHFT                                                             3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_BMSK                                         0x4
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_SHFT                                           2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_BMSK                                               0x2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_SHFT                                                 1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_BMSK                                                        0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x)                                                        ((x) + 0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_PHYS(x)                                                        ((x) + 0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OFFS                                                           (0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_BMSK                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_SHFT                                                    0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x)                                                        ((x) + 0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_PHYS(x)                                                        ((x) + 0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OFFS                                                           (0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_RMSK                                                                 0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_BMSK                                                0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_SHFT                                                   0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x)                                                         ((x) + 0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_PHYS(x)                                                         ((x) + 0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_OFFS                                                            (0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_RMSK                                                            0x3fffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR                                                             0x00000001
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ATTR                                                                         0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_BMSK                                                     0x3fc00000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_SHFT                                                             22
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_BMSK                                                  0x3ff000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_SHFT                                                        12
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_BMSK                                         0x800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_SHFT                                            11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_BMSK                                              0x600
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_SHFT                                                  9
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_BMSK                                          0x1e0
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_SHFT                                              5
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_BMSK                                           0x1c
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_SHFT                                              2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_BMSK                                                  0x2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_SHFT                                                    1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_BMSK                                                        0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x)                                                          ((x) + 0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_PHYS(x)                                                          ((x) + 0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_OFFS                                                             (0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_RMSK                                                                   0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR                                                              0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ATTR                                                                          0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_BMSK                                                          0xf0
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_SHFT                                                             4
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_BMSK                                                           0xf
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR(x)                                                                         ((x) + 0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_PHYS(x)                                                                         ((x) + 0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_OFFS                                                                            (0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_RMSK                                                                                 0x7ff
+#define HWIO_TQM_R1_PREFETCH_BUF_POR                                                                             0x00000000
+#define HWIO_TQM_R1_PREFETCH_BUF_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_ATTR                                                                                         0x3
+#define HWIO_TQM_R1_PREFETCH_BUF_IN(x)            \
+                in_dword(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x), m)
+#define HWIO_TQM_R1_PREFETCH_BUF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x),v)
+#define HWIO_TQM_R1_PREFETCH_BUF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x),m,v,HWIO_TQM_R1_PREFETCH_BUF_IN(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR_BMSK                                                                            0x7ff
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR_SHFT                                                                                0
+
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x)                                                                    ((x) + 0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_PHYS(x)                                                                    ((x) + 0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_OFFS                                                                       (0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_POR                                                                        0x00000000
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x), m)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_VALUE_BMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_VALUE_SHFT                                                                          0
+
+#define HWIO_TQM_R1_CACHE_BUF_ADDR(x)                                                                            ((x) + 0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_PHYS(x)                                                                            ((x) + 0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_OFFS                                                                               (0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_RMSK                                                                                   0x7fff
+#define HWIO_TQM_R1_CACHE_BUF_POR                                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_BUF_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_CACHE_BUF_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_BUF_ADDR(x))
+#define HWIO_TQM_R1_CACHE_BUF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_BUF_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_BUF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_BUF_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_BUF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_BUF_ADDR(x),m,v,HWIO_TQM_R1_CACHE_BUF_IN(x))
+#define HWIO_TQM_R1_CACHE_BUF_ADDR_BMSK                                                                              0x7fff
+#define HWIO_TQM_R1_CACHE_BUF_ADDR_SHFT                                                                                   0
+
+#define HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x)                                                                       ((x) + 0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_PHYS(x)                                                                       ((x) + 0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_OFFS                                                                          (0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_POR                                                                           0x00000000
+#define HWIO_TQM_R1_CACHE_BUF_DATA_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_ATTR                                                                                       0x1
+#define HWIO_TQM_R1_CACHE_BUF_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x))
+#define HWIO_TQM_R1_CACHE_BUF_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_VALUE_SHFT                                                                             0
+
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x)                                                                      ((x) + 0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_PHYS(x)                                                                      ((x) + 0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OFFS                                                                         (0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_RMSK                                                                                0x3
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_POR                                                                          0x00000000
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_ATTR                                                                                      0x3
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x))
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x),m,v,HWIO_TQM_R1_MISC_DEBUG_CTRL_IN(x))
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_BMSK                                                                       0x2
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_SHFT                                                                         1
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_DONE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_DONE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_LOG_ADDR(x)                                                                                  ((x) + 0x2060)
+#define HWIO_TQM_R1_LOG_PHYS(x)                                                                                  ((x) + 0x2060)
+#define HWIO_TQM_R1_LOG_OFFS                                                                                     (0x2060)
+#define HWIO_TQM_R1_LOG_RMSK                                                                                      0xfffffff
+#define HWIO_TQM_R1_LOG_POR                                                                                      0x0fffffff
+#define HWIO_TQM_R1_LOG_POR_RMSK                                                                                 0xffffffff
+#define HWIO_TQM_R1_LOG_ATTR                                                                                                  0x1
+#define HWIO_TQM_R1_LOG_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADDR(x))
+#define HWIO_TQM_R1_LOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_CURR_CMD_IDX_BMSK                                                                         0xf000000
+#define HWIO_TQM_R1_LOG_CURR_CMD_IDX_SHFT                                                                                24
+#define HWIO_TQM_R1_LOG_CURR_CMD_NUM_BMSK                                                                          0xffffff
+#define HWIO_TQM_R1_LOG_CURR_CMD_NUM_SHFT                                                                                 0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x)                                                                   ((x) + 0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_PHYS(x)                                                                   ((x) + 0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_OFFS                                                                      (0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_RMSK                                                                      0x3fffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_QUEUE_STATS_SM_BMSK                                                   0x3e000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_QUEUE_STATS_SM_SHFT                                                           25
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_BMSK                                                 0x1e00000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_SHFT                                                        21
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_BMSK                                             0x180000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_SHFT                                                   19
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MPDU_LINK_SM_BMSK                                                        0x78000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MPDU_LINK_SM_SHFT                                                             15
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_CREATE_MPDU_SM_BMSK                                                           0x7c00
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_CREATE_MPDU_SM_SHFT                                                               10
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GEN_MPDU_SM_BMSK                                                               0x3e0
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GEN_MPDU_SM_SHFT                                                                   5
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MSDU_SM_BMSK                                                                0x1f
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MSDU_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x)                                                                   ((x) + 0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_PHYS(x)                                                                   ((x) + 0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_OFFS                                                                      (0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK1_SM_BMSK                                                   0xc0000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK1_SM_SHFT                                                           30
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK0_SM_BMSK                                                   0x30000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK0_SM_SHFT                                                           28
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_BMSK                                               0xf800000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_SHFT                                                      23
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MSDU_SM_BMSK                                                            0x7c0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MSDU_SM_SHFT                                                                  18
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MPDU_SM_BMSK                                                             0x3f000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MPDU_SM_SHFT                                                                  12
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_WRITE_CMD_SM_BMSK                                                              0xe00
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_WRITE_CMD_SM_SHFT                                                                  9
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_MPDU_MAIN_SM_BMSK                                                         0x1f0
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_MPDU_MAIN_SM_SHFT                                                             4
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_TLV_SM_BMSK                                                                 0xf
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_TLV_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x)                                                                   ((x) + 0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PHYS(x)                                                                   ((x) + 0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_OFFS                                                                      (0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_ASYNC_SM_BMSK                                                         0x80000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_ASYNC_SM_SHFT                                                                 31
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_MSDU_ENT_SM_BMSK                                                      0x70000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_MSDU_ENT_SM_SHFT                                                              28
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_SW_CMD_SM_BMSK                                                         0xf000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_SW_CMD_SM_SHFT                                                                24
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_HWSCH_CMD_SM_BMSK                                                       0xf00000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_HWSCH_CMD_SM_SHFT                                                             20
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_READ_SM_BMSK                                                        0xc0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_READ_SM_SHFT                                                             18
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_SM_BMSK                                                             0x3ffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x)                                                                   ((x) + 0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PHYS(x)                                                                   ((x) + 0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_OFFS                                                                      (0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_RMSK                                                                        0xffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PREFETCH_SM_BMSK                                                            0xff0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PREFETCH_SM_SHFT                                                                  16
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_BMSK                                                    0xc000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_SHFT                                                        14
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_BMSK                                                    0x3000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_SHFT                                                        12
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_BMSK                                                      0xf80
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_SHFT                                                          7
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_AXI_TO_TLV_SM_BMSK                                                              0x60
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_AXI_TO_TLV_SM_SHFT                                                                 5
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_LIST_TLV_STATE_BMSK                                                             0x1c
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_LIST_TLV_STATE_SHFT                                                                2
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_DATA_ALIGN_SM_BMSK                                                               0x3
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_DATA_ALIGN_SM_SHFT                                                                 0
+
+#define HWIO_TQM_R1_CCMN_IDLE_ADDR(x)                                                                            ((x) + 0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_PHYS(x)                                                                            ((x) + 0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_OFFS                                                                               (0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_POR                                                                                0x00000000
+#define HWIO_TQM_R1_CCMN_IDLE_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_ATTR                                                                                            0x1
+#define HWIO_TQM_R1_CCMN_IDLE_IN(x)            \
+                in_dword(HWIO_TQM_R1_CCMN_IDLE_ADDR(x))
+#define HWIO_TQM_R1_CCMN_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CCMN_IDLE_ADDR(x), m)
+#define HWIO_TQM_R1_CCMN_IDLE_SOURCES_BMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_SOURCES_SHFT                                                                                0
+
+#define HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x)                                                                      ((x) + 0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_PHYS(x)                                                                      ((x) + 0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_OFFS                                                                         (0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_RMSK                                                                         0xffffffff
+#define HWIO_TQM_R1_CURRENT_COMMAND_POR                                                                          0x00000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_CURRENT_COMMAND_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_CURRENT_COMMAND_IN(x)            \
+                in_dword(HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x))
+#define HWIO_TQM_R1_CURRENT_COMMAND_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x), m)
+#define HWIO_TQM_R1_CURRENT_COMMAND_POINTER_BMSK                                                                 0xf0000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_POINTER_SHFT                                                                         28
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_6_BMSK                                                                  0xf000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_6_SHFT                                                                         24
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_5_BMSK                                                                   0xf00000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_5_SHFT                                                                         20
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_4_BMSK                                                                    0xf0000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_4_SHFT                                                                         16
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_3_BMSK                                                                     0xf000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_3_SHFT                                                                         12
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_2_BMSK                                                                      0xf00
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_2_SHFT                                                                          8
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_1_BMSK                                                                       0xf0
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_1_SHFT                                                                          4
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_0_BMSK                                                                        0xf
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_0_SHFT                                                                          0
+
+#define HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x)                                                                         ((x) + 0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_PHYS(x)                                                                         ((x) + 0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_OFFS                                                                            (0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_RMSK                                                                              0xffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_POR                                                                             0x00ffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_ATTR                                                                                         0x1
+#define HWIO_TQM_R1_LOG_ADD_MSDU_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x))
+#define HWIO_TQM_R1_LOG_ADD_MSDU_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_CURR_CMD_NUM_BMSK                                                                 0xffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_CURR_CMD_NUM_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x)                                                                    ((x) + 0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_PHYS(x)                                                                    ((x) + 0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_OFFS                                                                       (0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_RMSK                                                                       0x3fffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_2_BMSK                                                               0x3ff00000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_2_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_1_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_1_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_0_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_0_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x)                                                                    ((x) + 0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_PHYS(x)                                                                    ((x) + 0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_OFFS                                                                       (0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_RMSK                                                                       0x3fffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_5_BMSK                                                               0x3ff00000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_5_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_4_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_4_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_3_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_3_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x)                                                                    ((x) + 0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_PHYS(x)                                                                    ((x) + 0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_OFFS                                                                       (0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_RMSK                                                                         0x7fffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POINTER_BMSK                                                                 0x700000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POINTER_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_7_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_7_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_6_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_6_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x)                                                                    ((x) + 0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_PHYS(x)                                                                    ((x) + 0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_OFFS                                                                       (0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_WATCHDOG_SNAPSHOT_BMSK                                                     0xfffffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_WATCHDOG_SNAPSHOT_SHFT                                                             10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_TIMESTAMP_BMSK                                                                  0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_TIMESTAMP_SHFT                                                                      0
+
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x)                                                                  ((x) + 0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_PHYS(x)                                                                  ((x) + 0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_OFFS                                                                     (0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_POR                                                                      0x00000000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x))
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_SW_SM_WATCHDOG_BMSK                                                      0xffff0000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_SW_SM_WATCHDOG_SHFT                                                              16
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_HW_SM_WATCHDOG_BMSK                                                          0xffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_HW_SM_WATCHDOG_SHFT                                                               0
+
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x)                                                                  ((x) + 0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_PHYS(x)                                                                  ((x) + 0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_OFFS                                                                     (0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_RMSK                                                                       0x1fffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_POR                                                                      0x00000000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x))
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IDLE_SEQUENCE_SM_BMSK                                                      0x1f0000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IDLE_SEQUENCE_SM_SHFT                                                            16
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ENTRANCE_SM_WATCHDOG_BMSK                                                    0xffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ENTRANCE_SM_WATCHDOG_SHFT                                                         0
+
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x)                                                                   ((x) + 0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_PHYS(x)                                                                   ((x) + 0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_OFFS                                                                      (0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_POR                                                                       0x00000000
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x))
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDRESS_BMSK                                                              0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDRESS_SHFT                                                                       0
+
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x)                                                                   ((x) + 0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_PHYS(x)                                                                   ((x) + 0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_OFFS                                                                      (0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_POR                                                                       0x00000000
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x))
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDRESS_BMSK                                                              0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDRESS_SHFT                                                                       0
+
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x)                                                                    ((x) + 0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_PHYS(x)                                                                    ((x) + 0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_OFFS                                                                       (0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_RMSK                                                                       0x7fffffff
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_POR                                                                        0x71d1e1a1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_IN(x)            \
+                in_dword(HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x))
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x), m)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_1_BMSK                                                               0x7fff0000
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_1_SHFT                                                                       16
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_0_BMSK                                                                   0xfffe
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_0_SHFT                                                                        1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INDEX_BMSK                                                                        0x1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INDEX_SHFT                                                                          0
+
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x)                                                             ((x) + 0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_PHYS(x)                                                             ((x) + 0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_OFFS                                                                (0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_RMSK                                                                 0x3ffff3f
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FREE_SLOTS_BMSK                                                      0x3ff0000
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FREE_SLOTS_SHFT                                                             16
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_CURR_REQ_LEN_BMSK                                                       0xff00
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_CURR_REQ_LEN_SHFT                                                            8
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FLUSH_STATE_BMSK                                                          0x30
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FLUSH_STATE_SHFT                                                             4
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_SM_STATE_BMSK                                                              0xe
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_SM_STATE_SHFT                                                                1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IDLE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IDLE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x)                                                                      ((x) + 0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_PHYS(x)                                                                      ((x) + 0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_OFFS                                                                         (0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_RMSK                                                                         0x7fffffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_POR                                                                          0x00000000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SESSION_ID_BMSK                                                        0x7f800000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SESSION_ID_SHFT                                                                23
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SRC_ID_BMSK                                                              0x700000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SRC_ID_SHFT                                                                    20
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_STATUS_BMSK                                                               0xf0000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_STATUS_SHFT                                                                    16
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_HEADER_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_HEADER_SHFT                                                                           0
+
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x)                                                             ((x) + 0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_PHYS(x)                                                             ((x) + 0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_OFFS                                                                (0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_RMSK                                                                 0x3ffff3f
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FREE_SLOTS_BMSK                                                      0x3ff0000
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FREE_SLOTS_SHFT                                                             16
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_CURR_REQ_LEN_BMSK                                                       0xff00
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_CURR_REQ_LEN_SHFT                                                            8
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FLUSH_STATE_BMSK                                                          0x30
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FLUSH_STATE_SHFT                                                             4
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_SM_STATE_BMSK                                                              0xe
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_SM_STATE_SHFT                                                                1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IDLE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IDLE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x)                                                                      ((x) + 0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_PHYS(x)                                                                      ((x) + 0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_OFFS                                                                         (0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_RMSK                                                                         0x7fffffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_POR                                                                          0x00000000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SESSION_ID_BMSK                                                        0x7f800000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SESSION_ID_SHFT                                                                23
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SRC_ID_BMSK                                                              0x700000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SRC_ID_SHFT                                                                    20
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_STATUS_BMSK                                                               0xf0000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_STATUS_SHFT                                                                    16
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_HEADER_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_HEADER_SHFT                                                                           0
+
+#define HWIO_TQM_R1_FLUSH_ADDR(x)                                                                                ((x) + 0x20b4)
+#define HWIO_TQM_R1_FLUSH_PHYS(x)                                                                                ((x) + 0x20b4)
+#define HWIO_TQM_R1_FLUSH_OFFS                                                                                   (0x20b4)
+#define HWIO_TQM_R1_FLUSH_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R1_FLUSH_POR                                                                                    0x00000000
+#define HWIO_TQM_R1_FLUSH_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_FLUSH_ATTR                                                                                                0x3
+#define HWIO_TQM_R1_FLUSH_IN(x)            \
+                in_dword(HWIO_TQM_R1_FLUSH_ADDR(x))
+#define HWIO_TQM_R1_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_FLUSH_ADDR(x), m)
+#define HWIO_TQM_R1_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_FLUSH_ADDR(x),v)
+#define HWIO_TQM_R1_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_FLUSH_ADDR(x),m,v,HWIO_TQM_R1_FLUSH_IN(x))
+#define HWIO_TQM_R1_FLUSH_BACKUP_10_BMSK                                                                         0x80000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_10_SHFT                                                                                 31
+#define HWIO_TQM_R1_FLUSH_BACKUP_9_BMSK                                                                          0x40000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_9_SHFT                                                                                  30
+#define HWIO_TQM_R1_FLUSH_BACKUP_8_BMSK                                                                          0x20000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_8_SHFT                                                                                  29
+#define HWIO_TQM_R1_FLUSH_BACKUP_7_BMSK                                                                          0x10000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_7_SHFT                                                                                  28
+#define HWIO_TQM_R1_FLUSH_BACKUP_6_BMSK                                                                           0x8000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_6_SHFT                                                                                  27
+#define HWIO_TQM_R1_FLUSH_BACKUP_5_BMSK                                                                           0x4000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_5_SHFT                                                                                  26
+#define HWIO_TQM_R1_FLUSH_BACKUP_4_BMSK                                                                           0x2000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_4_SHFT                                                                                  25
+#define HWIO_TQM_R1_FLUSH_BACKUP_3_BMSK                                                                           0x1000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_3_SHFT                                                                                  24
+#define HWIO_TQM_R1_FLUSH_BACKUP_2_BMSK                                                                            0x800000
+#define HWIO_TQM_R1_FLUSH_BACKUP_2_SHFT                                                                                  23
+#define HWIO_TQM_R1_FLUSH_BACKUP_1_BMSK                                                                            0x400000
+#define HWIO_TQM_R1_FLUSH_BACKUP_1_SHFT                                                                                  22
+#define HWIO_TQM_R1_FLUSH_BACKUP_0_BMSK                                                                            0x200000
+#define HWIO_TQM_R1_FLUSH_BACKUP_0_SHFT                                                                                  21
+#define HWIO_TQM_R1_FLUSH_CMD_AND_PTR_PREFETCH_FLUSH_P_BMSK                                                        0x100000
+#define HWIO_TQM_R1_FLUSH_CMD_AND_PTR_PREFETCH_FLUSH_P_SHFT                                                              20
+#define HWIO_TQM_R1_FLUSH_CMD_ARBITER_FLUSH_P_BMSK                                                                  0x80000
+#define HWIO_TQM_R1_FLUSH_CMD_ARBITER_FLUSH_P_SHFT                                                                       19
+#define HWIO_TQM_R1_FLUSH_COMMON_LOGIC_FLUSH_P_BMSK                                                                 0x40000
+#define HWIO_TQM_R1_FLUSH_COMMON_LOGIC_FLUSH_P_SHFT                                                                      18
+#define HWIO_TQM_R1_FLUSH_ADD_MSDU_SM_FLUSH_P_BMSK                                                                  0x20000
+#define HWIO_TQM_R1_FLUSH_ADD_MSDU_SM_FLUSH_P_SHFT                                                                       17
+#define HWIO_TQM_R1_FLUSH_GEN_MPDU_SM_FLUSH_P_BMSK                                                                  0x10000
+#define HWIO_TQM_R1_FLUSH_GEN_MPDU_SM_FLUSH_P_SHFT                                                                       16
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_COUNT_SM_FLUSH_P_BMSK                                                       0x8000
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_COUNT_SM_FLUSH_P_SHFT                                                           15
+#define HWIO_TQM_R1_FLUSH_LIST_MPDU_SM_FLUSH_P_BMSK                                                                  0x4000
+#define HWIO_TQM_R1_FLUSH_LIST_MPDU_SM_FLUSH_P_SHFT                                                                      14
+#define HWIO_TQM_R1_FLUSH_WRITE_CMD_SM_FLUSH_P_BMSK                                                                  0x2000
+#define HWIO_TQM_R1_FLUSH_WRITE_CMD_SM_FLUSH_P_SHFT                                                                      13
+#define HWIO_TQM_R1_FLUSH_ACKED_MPDU_SM_FLUSH_P_BMSK                                                                 0x1000
+#define HWIO_TQM_R1_FLUSH_ACKED_MPDU_SM_FLUSH_P_SHFT                                                                     12
+#define HWIO_TQM_R1_FLUSH_REM_MPDU_SM_FLUSH_P_BMSK                                                                    0x800
+#define HWIO_TQM_R1_FLUSH_REM_MPDU_SM_FLUSH_P_SHFT                                                                       11
+#define HWIO_TQM_R1_FLUSH_REM_MSDU_SM_FLUSH_P_BMSK                                                                    0x400
+#define HWIO_TQM_R1_FLUSH_REM_MSDU_SM_FLUSH_P_SHFT                                                                       10
+#define HWIO_TQM_R1_FLUSH_HWSCH_AXI_IF_FLUSH_P_BMSK                                                                   0x200
+#define HWIO_TQM_R1_FLUSH_HWSCH_AXI_IF_FLUSH_P_SHFT                                                                       9
+#define HWIO_TQM_R1_FLUSH_AXI_TO_TLV_FLUSH_P_BMSK                                                                     0x100
+#define HWIO_TQM_R1_FLUSH_AXI_TO_TLV_FLUSH_P_SHFT                                                                         8
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_HEAD_INFO_SM_FLUSH_P_BMSK                                                           0x80
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_HEAD_INFO_SM_FLUSH_P_SHFT                                                              7
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_QUEUE_STAT_SM_FLUSH_P_BMSK                                                          0x40
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_QUEUE_STAT_SM_FLUSH_P_SHFT                                                             6
+#define HWIO_TQM_R1_FLUSH_GET_MSDU_FLOW_STAT_SM_FLUSH_P_BMSK                                                           0x20
+#define HWIO_TQM_R1_FLUSH_GET_MSDU_FLOW_STAT_SM_FLUSH_P_SHFT                                                              5
+#define HWIO_TQM_R1_FLUSH_FLUSH_CACHE_SM_FLUSH_P_BMSK                                                                  0x10
+#define HWIO_TQM_R1_FLUSH_FLUSH_CACHE_SM_FLUSH_P_SHFT                                                                     4
+#define HWIO_TQM_R1_FLUSH_UNBLOCK_CACHE_SM_FLUSH_P_BMSK                                                                 0x8
+#define HWIO_TQM_R1_FLUSH_UNBLOCK_CACHE_SM_FLUSH_P_SHFT                                                                   3
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_QUEUE_HEAD_SM_FLUSH_P_BMSK                                                     0x4
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_QUEUE_HEAD_SM_FLUSH_P_SHFT                                                       2
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MSDU_FLOW_SM_FLUSH_P_BMSK                                                           0x2
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MSDU_FLOW_SM_FLUSH_P_SHFT                                                             1
+#define HWIO_TQM_R1_FLUSH_TQM_IDLE_SEQUENCE_FLUSH_P_BMSK                                                                0x1
+#define HWIO_TQM_R1_FLUSH_TQM_IDLE_SEQUENCE_FLUSH_P_SHFT                                                                  0
+
+#define HWIO_TQM_R1_WARN_WDG_0_ADDR(x)                                                                           ((x) + 0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_PHYS(x)                                                                           ((x) + 0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_OFFS                                                                              (0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_0_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_0_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_0_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_0_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_0_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_0_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_0_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_0_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_STATUS_BMSK                                                          0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_STATUS_SHFT                                                                  16
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_LIMIT_BMSK                                                               0xffff
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_LIMIT_SHFT                                                                    0
+
+#define HWIO_TQM_R1_WARN_WDG_1_ADDR(x)                                                                           ((x) + 0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_PHYS(x)                                                                           ((x) + 0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_OFFS                                                                              (0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_1_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_1_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_1_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_1_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_1_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_1_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_1_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_1_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_1_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_STATUS_BMSK                                                        0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_STATUS_SHFT                                                                16
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_LIMIT_BMSK                                                             0xffff
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_LIMIT_SHFT                                                                  0
+
+#define HWIO_TQM_R1_WARN_WDG_2_ADDR(x)                                                                           ((x) + 0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_PHYS(x)                                                                           ((x) + 0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_OFFS                                                                              (0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_2_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_2_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_2_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_2_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_2_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_2_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_2_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_2_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_2_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_STATUS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_STATUS_SHFT                                                              16
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_LIMIT_BMSK                                                           0xffff
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_LIMIT_SHFT                                                                0
+
+#define HWIO_TQM_R1_WARN_WDG_3_ADDR(x)                                                                           ((x) + 0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_PHYS(x)                                                                           ((x) + 0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_OFFS                                                                              (0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_3_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_3_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_3_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_3_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_3_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_3_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_3_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_3_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_3_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_STATUS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_STATUS_SHFT                                                             16
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_LIMIT_BMSK                                                          0xffff
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_LIMIT_SHFT                                                               0
+
+#define HWIO_TQM_R1_WARN_WDG_4_ADDR(x)                                                                           ((x) + 0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_PHYS(x)                                                                           ((x) + 0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_OFFS                                                                              (0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_4_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_4_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_4_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_4_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_4_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_4_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_4_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_4_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_4_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_4_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_4_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_STATUS_BMSK                                                              0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_STATUS_SHFT                                                                      16
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_LIMIT_BMSK                                                                   0xffff
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_LIMIT_SHFT                                                                        0
+
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x)                                                                    ((x) + 0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_PHYS(x)                                                                    ((x) + 0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OFFS                                                                       (0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RMSK                                                                             0x1f
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_POR                                                                        0x00000000
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_ATTR                                                                                    0x0
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_STATUS_0_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_TLV_FIFO_FULL_INTERRUPT_BMSK                                                     0x10
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_TLV_FIFO_FULL_INTERRUPT_SHFT                                                        4
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS1_RING_FIFO_FULL_INTERRUPT_BMSK                                             0x8
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS1_RING_FIFO_FULL_INTERRUPT_SHFT                                               3
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS_RING_FIFO_FULL_INTERRUPT_BMSK                                              0x4
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS_RING_FIFO_FULL_INTERRUPT_SHFT                                                2
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_DESC_RING_FIFO_EMPTY_INTERRUPT_BMSK                                               0x2
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_DESC_RING_FIFO_EMPTY_INTERRUPT_SHFT                                                 1
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RELEASE_RING_FIFO_FULL_INTERRUPT_BMSK                                             0x1
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RELEASE_RING_FIFO_FULL_INTERRUPT_SHFT                                               0
+
+#define HWIO_TQM_R1_ERR_WDG_0_ADDR(x)                                                                            ((x) + 0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_PHYS(x)                                                                            ((x) + 0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_OFFS                                                                               (0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_0_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_0_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_0_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_0_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_0_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_0_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_0_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_0_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_STATUS_SHFT                                                                          16
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_LIMIT_BMSK                                                                       0xffff
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_LIMIT_SHFT                                                                            0
+
+#define HWIO_TQM_R1_ERR_WDG_1_ADDR(x)                                                                            ((x) + 0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_PHYS(x)                                                                            ((x) + 0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_OFFS                                                                               (0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_1_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_1_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_1_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_1_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_1_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_1_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_1_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_1_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_1_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_STATUS_SHFT                                                                          16
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_LIMIT_BMSK                                                                       0xffff
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_LIMIT_SHFT                                                                            0
+
+#define HWIO_TQM_R1_ERR_WDG_2_ADDR(x)                                                                            ((x) + 0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_PHYS(x)                                                                            ((x) + 0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_OFFS                                                                               (0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_2_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_2_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_2_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_2_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_2_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_2_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_2_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_2_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_2_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_STATUS_BMSK                                                                 0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_STATUS_SHFT                                                                         16
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_LIMIT_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_LIMIT_SHFT                                                                           0
+
+#define HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x)                                                                       ((x) + 0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_PHYS(x)                                                                       ((x) + 0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OFFS                                                                          (0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_RMSK                                                                                 0x7
+#define HWIO_TQM_R1_ERROR_STATUS_0_POR                                                                           0x00000000
+#define HWIO_TQM_R1_ERROR_STATUS_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_ERROR_STATUS_0_ATTR                                                                                       0x0
+#define HWIO_TQM_R1_ERROR_STATUS_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x))
+#define HWIO_TQM_R1_ERROR_STATUS_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x), m)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x),v)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x),m,v,HWIO_TQM_R1_ERROR_STATUS_0_IN(x))
+#define HWIO_TQM_R1_ERROR_STATUS_0_MSDU_ENT_SM_INTERRUPT_BMSK                                                           0x4
+#define HWIO_TQM_R1_ERROR_STATUS_0_MSDU_ENT_SM_INTERRUPT_SHFT                                                             2
+#define HWIO_TQM_R1_ERROR_STATUS_0_SW_CMD_SM_INTERRUPT_BMSK                                                             0x2
+#define HWIO_TQM_R1_ERROR_STATUS_0_SW_CMD_SM_INTERRUPT_SHFT                                                               1
+#define HWIO_TQM_R1_ERROR_STATUS_0_HWSCH_SM_INTERRUPT_BMSK                                                              0x1
+#define HWIO_TQM_R1_ERROR_STATUS_0_HWSCH_SM_INTERRUPT_SHFT                                                                0
+
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x)                                                                 ((x) + 0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_PHYS(x)                                                                 ((x) + 0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_OFFS                                                                    (0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_POR                                                                     0x00000000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ATTR                                                                                 0x1
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_IN(x)            \
+                in_dword(HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x))
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x), m)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_TLV_HDR_BMSK                                                            0xffff0000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_TLV_HDR_SHFT                                                                    16
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_3_BMSK                                                                0xf000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_3_SHFT                                                                    12
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_2_BMSK                                                                 0xf00
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_2_SHFT                                                                     8
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_1_BMSK                                                                  0xf0
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_1_SHFT                                                                     4
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_0_BMSK                                                                   0xf
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_0_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x)                                                                      ((x) + 0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_PHYS(x)                                                                      ((x) + 0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OFFS                                                                         (0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TCL2TQM_RING_HP_IN(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x)                                                                      ((x) + 0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_PHYS(x)                                                                      ((x) + 0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OFFS                                                                         (0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TCL2TQM_RING_TP_IN(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x)                                                                       ((x) + 0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_PHYS(x)                                                                       ((x) + 0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OFFS                                                                          (0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_FW2TQM_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_FW2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_FW2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_FW2TQM_RING_HP_IN(x))
+#define HWIO_TQM_R2_FW2TQM_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x)                                                                       ((x) + 0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_PHYS(x)                                                                       ((x) + 0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OFFS                                                                          (0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_FW2TQM_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_FW2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_FW2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_FW2TQM_RING_TP_IN(x))
+#define HWIO_TQM_R2_FW2TQM_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x)                                                                       ((x) + 0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_PHYS(x)                                                                       ((x) + 0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OFFS                                                                          (0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_SW_CMD_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_SW_CMD_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD_RING_HP_IN(x))
+#define HWIO_TQM_R2_SW_CMD_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x)                                                                       ((x) + 0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_PHYS(x)                                                                       ((x) + 0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OFFS                                                                          (0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_SW_CMD_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_SW_CMD_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD_RING_TP_IN(x))
+#define HWIO_TQM_R2_SW_CMD_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x)                                                                      ((x) + 0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_PHYS(x)                                                                      ((x) + 0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OFFS                                                                         (0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD1_RING_HP_IN(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x)                                                                      ((x) + 0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_PHYS(x)                                                                      ((x) + 0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OFFS                                                                         (0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD1_RING_TP_IN(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OFFS                                                                    (0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_IN(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OFFS                                                                    (0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_IN(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OFFS                                                                     (0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_RELEASE_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OFFS                                                                     (0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_RELEASE_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OFFS                                                                      (0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OFFS                                                                      (0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x)                                                                  ((x) + 0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_PHYS(x)                                                                  ((x) + 0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OFFS                                                                     (0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x)                                                                  ((x) + 0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_PHYS(x)                                                                  ((x) + 0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OFFS                                                                     (0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x)                                                                  ((x) + 0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_PHYS(x)                                                                  ((x) + 0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OFFS                                                                     (0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x)                                                                  ((x) + 0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_PHYS(x)                                                                  ((x) + 0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OFFS                                                                     (0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x)                                                                  ((x) + 0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_PHYS(x)                                                                  ((x) + 0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OFFS                                                                     (0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x)                                                                  ((x) + 0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_PHYS(x)                                                                  ((x) + 0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OFFS                                                                     (0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x)                                                                 ((x) + 0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_PHYS(x)                                                                 ((x) + 0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OFFS                                                                    (0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x)                                                                 ((x) + 0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_PHYS(x)                                                                 ((x) + 0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OFFS                                                                    (0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x)                                                                 ((x) + 0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_PHYS(x)                                                                 ((x) + 0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OFFS                                                                    (0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x)                                                                 ((x) + 0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_PHYS(x)                                                                 ((x) + 0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OFFS                                                                    (0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+/*----------------------------------------------------------------------------
+ * MODULE: MAC_UMCMN_REG
+ *--------------------------------------------------------------------------*/
+
+#define MAC_UMCMN_REG_REG_BASE                                                                  (UMAC_BASE      + 0x00040000)
+#define MAC_UMCMN_REG_REG_BASE_SIZE                                                             0x4000
+#define MAC_UMCMN_REG_REG_BASE_USED                                                             0x200c
+#define MAC_UMCMN_REG_REG_BASE_PHYS                                                             (UMAC_BASE_PHYS + 0x00040000)
+#define MAC_UMCMN_REG_REG_BASE_OFFS                                                             0x00040000
+
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x)                                                  ((x) + 0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_PHYS(x)                                                  ((x) + 0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OFFS                                                     (0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_RMSK                                                       0x6ffe22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_POR                                                      0x006ffe22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_MXI_BMSK                                                   0x400000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_MXI_SHFT                                                         22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_UMAC_DBG_BMSK                                              0x200000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_UMAC_DBG_SHFT                                                    21
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_APB_BMSK                                                0x80000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_APB_SHFT                                                     19
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_BMSK                                                    0x40000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_SHFT                                                         18
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_APB_BMSK                                                0x20000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_APB_SHFT                                                     17
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_BMSK                                                    0x10000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_SHFT                                                         16
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_APB_BMSK                                                 0x8000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_APB_SHFT                                                     15
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_BMSK                                                     0x4000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_SHFT                                                         14
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_APB_BMSK                                                 0x2000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_APB_SHFT                                                     13
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_BMSK                                                     0x1000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_SHFT                                                         12
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_APB_BMSK                                                  0x800
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_APB_SHFT                                                     11
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_BMSK                                                      0x400
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_SHFT                                                         10
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_DBG_BMSK                                                  0x200
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_DBG_SHFT                                                      9
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_CMEM_BMSK                                                      0x20
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_CMEM_SHFT                                                         5
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_BMSK                                                        0x2
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_SHFT                                                          1
+
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x)                                        ((x) + 0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_PHYS(x)                                        ((x) + 0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OFFS                                           (0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_RMSK                                             0x6ffc22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_POR                                            0x00000002
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_POR_RMSK                                       0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ATTR                                                        0x3
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_MXI_BMSK                                         0x400000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_MXI_SHFT                                               22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_UMAC_DBG_BMSK                                    0x200000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_UMAC_DBG_SHFT                                          21
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_APB_BMSK                                      0x80000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_APB_SHFT                                           19
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_BMSK                                          0x40000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_SHFT                                               18
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_APB_BMSK                                      0x20000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_APB_SHFT                                           17
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_BMSK                                          0x10000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_SHFT                                               16
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_APB_BMSK                                       0x8000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_APB_SHFT                                           15
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_SHFT                                               14
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_APB_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_APB_SHFT                                           13
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_BMSK                                           0x1000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_SHFT                                               12
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_APB_BMSK                                        0x800
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_APB_SHFT                                           11
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_BMSK                                            0x400
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_SHFT                                               10
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_CMEM_BMSK                                            0x20
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_CMEM_SHFT                                               5
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_NOC_BMSK                                              0x2
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_NOC_SHFT                                                1
+
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x)                                                   ((x) + 0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_PHYS(x)                                                   ((x) + 0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OFFS                                                      (0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_RMSK                                                           0xdf3
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_SOFTRESET_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_MXI_BMSK                                                       0x800
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_MXI_SHFT                                                          11
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_UMAC_DBG_BMSK                                                  0x400
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_UMAC_DBG_SHFT                                                     10
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TRC_BMSK                                                       0x100
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TRC_SHFT                                                           8
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_WBM_BMSK                                                        0x80
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_WBM_SHFT                                                           7
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TQM_BMSK                                                        0x40
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TQM_SHFT                                                           6
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TCL_BMSK                                                        0x20
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TCL_SHFT                                                           5
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_REO_BMSK                                                        0x10
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_REO_SHFT                                                           4
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_CMEM_BMSK                                                        0x2
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_CMEM_SHFT                                                          1
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_NOC_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_NOC_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x)                                                 ((x) + 0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_PHYS(x)                                                 ((x) + 0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OFFS                                                    (0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_RMSK                                                          0x7e
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_POR                                                     0x00000000
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ATTR                                                                 0x3
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_CONFIGRESET_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_MXI_BMSK                                                      0x40
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_MXI_SHFT                                                         6
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TRC_BMSK                                                      0x20
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TRC_SHFT                                                         5
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_WBM_BMSK                                                      0x10
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_WBM_SHFT                                                         4
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TQM_BMSK                                                       0x8
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TQM_SHFT                                                         3
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TCL_BMSK                                                       0x4
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TCL_SHFT                                                         2
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_REO_BMSK                                                       0x2
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_REO_SHFT                                                         1
+
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x)                                             ((x) + 0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_PHYS(x)                                             ((x) + 0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OFFS                                                (0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_RMSK                                                  0xcffc22
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_POR                                                 0x00000000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_MXI_BMSK                                              0x800000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_MXI_SHFT                                                    23
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_UMAC_DBG_BMSK                                         0x400000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_UMAC_DBG_SHFT                                               22
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_APB_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_APB_SHFT                                                19
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_BMSK                                               0x40000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_SHFT                                                    18
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_APB_BMSK                                           0x20000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_APB_SHFT                                                17
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_SHFT                                                    16
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_APB_BMSK                                            0x8000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_APB_SHFT                                                15
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_BMSK                                                0x4000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_SHFT                                                    14
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_APB_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_APB_SHFT                                                13
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_BMSK                                                0x1000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_SHFT                                                    12
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_APB_BMSK                                             0x800
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_APB_SHFT                                                11
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_SHFT                                                    10
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_CMEM_BMSK                                                 0x20
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_CMEM_SHFT                                                    5
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_NOC_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_NOC_SHFT                                                     1
+
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x)                                                  ((x) + 0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_PHYS(x)                                                  ((x) + 0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_OFFS                                                     (0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_ATTR                                                                  0x1
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_VAL_BMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_VAL_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x)                                              ((x) + 0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHYS(x)                                              ((x) + 0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OFFS                                                 (0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_RMSK                                                       0x1f
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_POR                                                  0x00000000
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ATTR                                                              0x3
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x))
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x),m,v,HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_IN(x))
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY2_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY2_SHFT                                                     4
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY1_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY1_SHFT                                                     3
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC3_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC3_SHFT                                                    2
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC2_BMSK                                                  0x2
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC2_SHFT                                                    1
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC1_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC1_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x)                                                  ((x) + 0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PHYS(x)                                                  ((x) + 0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OFFS                                                     (0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_GATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_BMSK                                      0x80000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_SHFT                                              31
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_APB_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_APB_SHFT                                          30
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_TBD_BMSK                                                 0x3fffff80
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_TBD_SHFT                                                          7
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RRI_BMSK                                                       0x40
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RRI_SHFT                                                          6
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_APB_VAL_BMSK                                                   0x20
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_APB_VAL_SHFT                                                      5
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INTR_EXTEND_BMSK                                               0x10
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INTR_EXTEND_SHFT                                                  4
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IND_INTR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IND_INTR_SHFT                                                     3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PCIE_LOW_POWER_REQ_BMSK                                         0x4
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PCIE_LOW_POWER_REQ_SHFT                                           2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMAC_IDLE_GENERATE_BMSK                                         0x2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMAC_IDLE_GENERATE_SHFT                                           1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMCMN_TOP_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMCMN_TOP_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x)                                                ((x) + 0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_PHYS(x)                                                ((x) + 0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OFFS                                                   (0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_RMSK                                                          0xf
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_POR                                                    0x00000001
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x), m)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x),v)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x),m,v,HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_IN(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_VALUE_BMSK                                                    0xf
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_VALUE_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x)                                             ((x) + 0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_PHYS(x)                                             ((x) + 0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OFFS                                                (0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_RMSK                                                       0x1
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_POR                                                 0x00000001
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x), m)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x),v)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x),m,v,HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_IN(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_VALUE_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_VALUE_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x)                                                   ((x) + 0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_PHYS(x)                                                   ((x) + 0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OFFS                                                      (0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x)                                                   ((x) + 0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_PHYS(x)                                                   ((x) + 0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OFFS                                                      (0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x)                                                   ((x) + 0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_PHYS(x)                                                   ((x) + 0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OFFS                                                      (0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_ISR_P_ADDR(x)                                                             ((x) + 0x34)
+#define HWIO_UMCMN_R0_ISR_P_PHYS(x)                                                             ((x) + 0x34)
+#define HWIO_UMCMN_R0_ISR_P_OFFS                                                                (0x34)
+#define HWIO_UMCMN_R0_ISR_P_RMSK                                                                   0x3fffd
+#define HWIO_UMCMN_R0_ISR_P_POR                                                                 0x00000000
+#define HWIO_UMCMN_R0_ISR_P_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_ISR_P_ATTR                                                                             0x0
+#define HWIO_UMCMN_R0_ISR_P_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_P_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_P_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_P_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_P_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_P_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_P_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_P_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_P_IN(x))
+#define HWIO_UMCMN_R0_ISR_P_GXI_BMSK                                                               0x20000
+#define HWIO_UMCMN_R0_ISR_P_GXI_SHFT                                                                    17
+#define HWIO_UMCMN_R0_ISR_P_TQM2_BMSK                                                              0x10000
+#define HWIO_UMCMN_R0_ISR_P_TQM2_SHFT                                                                   16
+#define HWIO_UMCMN_R0_ISR_P_TQM1_BMSK                                                               0x8000
+#define HWIO_UMCMN_R0_ISR_P_TQM1_SHFT                                                                   15
+#define HWIO_UMCMN_R0_ISR_P_TQM0_BMSK                                                               0x4000
+#define HWIO_UMCMN_R0_ISR_P_TQM0_SHFT                                                                   14
+#define HWIO_UMCMN_R0_ISR_P_TCL1_BMSK                                                               0x2000
+#define HWIO_UMCMN_R0_ISR_P_TCL1_SHFT                                                                   13
+#define HWIO_UMCMN_R0_ISR_P_TCL0_BMSK                                                               0x1000
+#define HWIO_UMCMN_R0_ISR_P_TCL0_SHFT                                                                   12
+#define HWIO_UMCMN_R0_ISR_P_REO4_BMSK                                                                0x800
+#define HWIO_UMCMN_R0_ISR_P_REO4_SHFT                                                                   11
+#define HWIO_UMCMN_R0_ISR_P_REO3_BMSK                                                                0x400
+#define HWIO_UMCMN_R0_ISR_P_REO3_SHFT                                                                   10
+#define HWIO_UMCMN_R0_ISR_P_REO2_BMSK                                                                0x200
+#define HWIO_UMCMN_R0_ISR_P_REO2_SHFT                                                                    9
+#define HWIO_UMCMN_R0_ISR_P_REO1_BMSK                                                                0x100
+#define HWIO_UMCMN_R0_ISR_P_REO1_SHFT                                                                    8
+#define HWIO_UMCMN_R0_ISR_P_REO0_BMSK                                                                 0x80
+#define HWIO_UMCMN_R0_ISR_P_REO0_SHFT                                                                    7
+#define HWIO_UMCMN_R0_ISR_P_WBM3_BMSK                                                                 0x40
+#define HWIO_UMCMN_R0_ISR_P_WBM3_SHFT                                                                    6
+#define HWIO_UMCMN_R0_ISR_P_WBM2_BMSK                                                                 0x20
+#define HWIO_UMCMN_R0_ISR_P_WBM2_SHFT                                                                    5
+#define HWIO_UMCMN_R0_ISR_P_WBM1_BMSK                                                                 0x10
+#define HWIO_UMCMN_R0_ISR_P_WBM1_SHFT                                                                    4
+#define HWIO_UMCMN_R0_ISR_P_WBM0_BMSK                                                                  0x8
+#define HWIO_UMCMN_R0_ISR_P_WBM0_SHFT                                                                    3
+#define HWIO_UMCMN_R0_ISR_P_MEM_BMSK                                                                   0x4
+#define HWIO_UMCMN_R0_ISR_P_MEM_SHFT                                                                     2
+#define HWIO_UMCMN_R0_ISR_P_APB_BMSK                                                                   0x1
+#define HWIO_UMCMN_R0_ISR_P_APB_SHFT                                                                     0
+
+#define HWIO_UMCMN_R0_ISR_S0_ADDR(x)                                                            ((x) + 0x38)
+#define HWIO_UMCMN_R0_ISR_S0_PHYS(x)                                                            ((x) + 0x38)
+#define HWIO_UMCMN_R0_ISR_S0_OFFS                                                               (0x38)
+#define HWIO_UMCMN_R0_ISR_S0_RMSK                                                                0x71fffff
+#define HWIO_UMCMN_R0_ISR_S0_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S0_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S0_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S0_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S0_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S0_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S0_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S0_IN(x))
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_RD_INVALID_BMSK                                             0x4000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_RD_INVALID_SHFT                                                    26
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_INVALID_BMSK                                             0x2000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_INVALID_SHFT                                                    25
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_TO_RD_INVALID_BMSK                                       0x1000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_TO_RD_INVALID_SHFT                                              24
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_RD_INVALID_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_RD_INVALID_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_INVALID_BMSK                                             0x80000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_INVALID_SHFT                                                  19
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_TO_RD_INVALID_BMSK                                       0x40000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_TO_RD_INVALID_SHFT                                            18
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_RD_INVALID_BMSK                                               0x20000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_RD_INVALID_SHFT                                                    17
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_INVALID_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_INVALID_SHFT                                                    16
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_TO_RD_INVALID_BMSK                                          0x8000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_TO_RD_INVALID_SHFT                                              15
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_RD_INVALID_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_RD_INVALID_SHFT                                               14
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_INVALID_BMSK                                           0x2000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_INVALID_SHFT                                               13
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_BMSK                                     0x1000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_SHFT                                         12
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_RD_INVALID_BMSK                                                 0x800
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_RD_INVALID_SHFT                                                    11
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_INVALID_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_INVALID_SHFT                                                    10
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_TO_RD_INVALID_BMSK                                           0x200
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_TO_RD_INVALID_SHFT                                               9
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_RD_INVALID_BMSK                                                 0x100
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_RD_INVALID_SHFT                                                     8
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_INVALID_BMSK                                                  0x80
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_INVALID_SHFT                                                     7
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_TO_RD_INVALID_BMSK                                            0x40
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_TO_RD_INVALID_SHFT                                               6
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_RD_INVALID_BMSK                                                  0x20
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_RD_INVALID_SHFT                                                     5
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_INVALID_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_INVALID_SHFT                                                     4
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_TO_RD_INVALID_BMSK                                             0x8
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_TO_RD_INVALID_SHFT                                               3
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_RD_INVALID_BMSK                                                   0x4
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_RD_INVALID_SHFT                                                     2
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_INVALID_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_INVALID_SHFT                                                     1
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_TO_RD_INVALID_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_TO_RD_INVALID_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S2_ADDR(x)                                                            ((x) + 0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_PHYS(x)                                                            ((x) + 0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_OFFS                                                               (0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_RMSK                                                                      0xf
+#define HWIO_UMCMN_R0_ISR_S2_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S2_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S2_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S2_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S2_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S2_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S2_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S2_IN(x))
+#define HWIO_UMCMN_R0_ISR_S2_MEM_REMOTE_ACC_ERR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_ISR_S2_MEM_REMOTE_ACC_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_ISR_S2_MEM_ACC_RANGE_ERR_BMSK                                                    0x4
+#define HWIO_UMCMN_R0_ISR_S2_MEM_ACC_RANGE_ERR_SHFT                                                      2
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR2_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR2_SHFT                                                   1
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR1_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR1_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_ISR_S3_ADDR(x)                                                            ((x) + 0x40)
+#define HWIO_UMCMN_R0_ISR_S3_PHYS(x)                                                            ((x) + 0x40)
+#define HWIO_UMCMN_R0_ISR_S3_OFFS                                                               (0x40)
+#define HWIO_UMCMN_R0_ISR_S3_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S3_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S3_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S3_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S3_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S3_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S3_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S3_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S3_IN(x))
+#define HWIO_UMCMN_R0_ISR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_BMSK                                0x80000000
+#define HWIO_UMCMN_R0_ISR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_SHFT                                        31
+#define HWIO_UMCMN_R0_ISR_S3_REL_PARSER_DUP_DET_EVENT_INTR_BMSK                                 0x40000000
+#define HWIO_UMCMN_R0_ISR_S3_REL_PARSER_DUP_DET_EVENT_INTR_SHFT                                         30
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_DUP_DET_EVENT_INTR_BMSK                                  0x20000000
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_DUP_DET_EVENT_INTR_SHFT                                          29
+#define HWIO_UMCMN_R0_ISR_S3_SW_COOKIE_IDLE_TIMEOUT_BMSK                                        0x10000000
+#define HWIO_UMCMN_R0_ISR_S3_SW_COOKIE_IDLE_TIMEOUT_SHFT                                                28
+#define HWIO_UMCMN_R0_ISR_S3_DELINK_B2B_DUPLI_PTR_INTR_BMSK                                      0x8000000
+#define HWIO_UMCMN_R0_ISR_S3_DELINK_B2B_DUPLI_PTR_INTR_SHFT                                             27
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_B2B_DUPLI_INTR_BMSK                                       0x4000000
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_B2B_DUPLI_INTR_SHFT                                              26
+#define HWIO_UMCMN_R0_ISR_S3_IDLE_SEQUENCE_WD_INTR_BMSK                                          0x2000000
+#define HWIO_UMCMN_R0_ISR_S3_IDLE_SEQUENCE_WD_INTR_SHFT                                                 25
+#define HWIO_UMCMN_R0_ISR_S3_WBM_VA_CONV_ERR_INT_BMSK                                            0x1000000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_VA_CONV_ERR_INT_SHFT                                                   24
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BP_WARN_INT_BMSK                                                 0x800000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BP_WARN_INT_SHFT                                                       23
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW6_BUF_PROD_WDG_BMSK                                            0x400000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW6_BUF_PROD_WDG_SHFT                                                  22
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW5_BUF_PROD_WDG_BMSK                                            0x200000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW5_BUF_PROD_WDG_SHFT                                                  21
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW4_BUF_PROD_WDG_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW4_BUF_PROD_WDG_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S3_WBM_ERROR_BUF_PROD_WDG_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_ERROR_BUF_PROD_WDG_SHFT                                                19
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_PARSER_ERR_BMSK                                              0x70000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_PARSER_ERR_SHFT                                                   16
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                       12
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_PARSE_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_PARSE_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_WDG_BMSK                                                0x400
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_WDG_SHFT                                                   10
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_BMSK                                       0x200
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_SHFT                                           9
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_BMSK                                       0x100
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_SHFT                                           8
+#define HWIO_UMCMN_R0_ISR_S3_WBM_FW_BUF_PROD_WDG_BMSK                                                 0x80
+#define HWIO_UMCMN_R0_ISR_S3_WBM_FW_BUF_PROD_WDG_SHFT                                                    7
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW3_BUF_PROD_WDG_BMSK                                                0x40
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW3_BUF_PROD_WDG_SHFT                                                   6
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW2_BUF_PROD_WDG_BMSK                                                0x20
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW2_BUF_PROD_WDG_SHFT                                                   5
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW1_BUF_PROD_WDG_BMSK                                                0x10
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW1_BUF_PROD_WDG_SHFT                                                   4
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW0_BUF_PROD_WDG_BMSK                                                 0x8
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW0_BUF_PROD_WDG_SHFT                                                   3
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_BMSK                                           0x4
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_SHFT                                             2
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_C_WDG_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_C_WDG_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_P_WDG_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_P_WDG_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S4_ADDR(x)                                                            ((x) + 0x44)
+#define HWIO_UMCMN_R0_ISR_S4_PHYS(x)                                                            ((x) + 0x44)
+#define HWIO_UMCMN_R0_ISR_S4_OFFS                                                               (0x44)
+#define HWIO_UMCMN_R0_ISR_S4_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S4_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S4_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S4_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S4_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S4_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S4_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S4_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S4_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S4_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S4_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S4_IN(x))
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_ISR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_RELEASE_RING_WDG_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_RELEASE_RING_WDG_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_LINK_RING_WDG_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_LINK_RING_WDG_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_BUF_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_BUF_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_LINK_RING_WDG_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_LINK_RING_WDG_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_LINK_RING_WDG_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_LINK_RING_WDG_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_ISR_S4_WBM2REO_LINK_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2REO_LINK_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S4_WBM2TQM_LINK_RING_WDG_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2TQM_LINK_RING_WDG_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_BUF_RING_WDG_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_BUF_RING_WDG_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_BUF_RING_WDG_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_BUF_RING_WDG_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_ISR_S4_WBM2PPE_BUF_RING_WDG_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_ISR_S4_WBM2PPE_BUF_RING_WDG_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA2_RELEASE_RING_WDG_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA2_RELEASE_RING_WDG_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA1_RELEASE_RING_WDG_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA1_RELEASE_RING_WDG_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA0_RELEASE_RING_WDG_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA0_RELEASE_RING_WDG_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_ISR_S4_FW_RELEASE_RING_WDG_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_ISR_S4_FW_RELEASE_RING_WDG_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_ISR_S4_SW_RELEASE_RING_WDG_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_ISR_S4_SW_RELEASE_RING_WDG_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_ISR_S4_REO_RELEASE_RING_WDG_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S4_REO_RELEASE_RING_WDG_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S4_TQM_RELEASE_RING_WDG_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S4_TQM_RELEASE_RING_WDG_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S4_PPE_RELEASE_RING_WDG_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S4_PPE_RELEASE_RING_WDG_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S5_ADDR(x)                                                            ((x) + 0x48)
+#define HWIO_UMCMN_R0_ISR_S5_PHYS(x)                                                            ((x) + 0x48)
+#define HWIO_UMCMN_R0_ISR_S5_OFFS                                                               (0x48)
+#define HWIO_UMCMN_R0_ISR_S5_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S5_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S5_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S5_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S5_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S5_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S5_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S5_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S5_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S5_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S5_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S5_IN(x))
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_ISR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_RELEASE_RING_REQ_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_RELEASE_RING_REQ_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_LINK_RING_REQ_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_LINK_RING_REQ_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_BUF_RING_REQ_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_BUF_RING_REQ_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_LINK_RING_REQ_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_LINK_RING_REQ_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_LINK_RING_REQ_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_LINK_RING_REQ_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_ISR_S5_WBM2REO_LINK_RING_REQ_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2REO_LINK_RING_REQ_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S5_WBM2TQM_LINK_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2TQM_LINK_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_BUF_RING_REQ_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_BUF_RING_REQ_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_BUF_RING_REQ_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_BUF_RING_REQ_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_ISR_S5_WBM2PPE_BUF_RING_REQ_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_ISR_S5_WBM2PPE_BUF_RING_REQ_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA2_RELEASE_RING_REQ_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA2_RELEASE_RING_REQ_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA1_RELEASE_RING_REQ_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA1_RELEASE_RING_REQ_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA0_RELEASE_RING_REQ_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA0_RELEASE_RING_REQ_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_ISR_S5_FW_RELEASE_RING_REQ_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_ISR_S5_FW_RELEASE_RING_REQ_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_ISR_S5_SW_RELEASE_RING_REQ_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_ISR_S5_SW_RELEASE_RING_REQ_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_ISR_S5_REO_RELEASE_RING_REQ_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S5_REO_RELEASE_RING_REQ_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S5_TQM_RELEASE_RING_REQ_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S5_TQM_RELEASE_RING_REQ_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S5_PPE_RELEASE_RING_REQ_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S5_PPE_RELEASE_RING_REQ_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S6_ADDR(x)                                                            ((x) + 0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_PHYS(x)                                                            ((x) + 0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_OFFS                                                               (0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_RMSK                                                                 0x3fffff
+#define HWIO_UMCMN_R0_ISR_S6_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S6_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S6_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S6_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S6_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S6_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S6_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S6_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S6_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S6_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S6_IN(x))
+#define HWIO_UMCMN_R0_ISR_S6_REO2PPE_RING_WDG_BMSK                                                0x200000
+#define HWIO_UMCMN_R0_ISR_S6_REO2PPE_RING_WDG_SHFT                                                      21
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW8_RING_WDG_BMSK                                                0x100000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW8_RING_WDG_SHFT                                                      20
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW7_RING_WDG_BMSK                                                 0x80000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW7_RING_WDG_SHFT                                                      19
+#define HWIO_UMCMN_R0_ISR_S6_REO_STATUS_RING_WDG_BMSK                                              0x40000
+#define HWIO_UMCMN_R0_ISR_S6_REO_STATUS_RING_WDG_SHFT                                                   18
+#define HWIO_UMCMN_R0_ISR_S6_REO_RELEASE_RING_WDG_BMSK                                             0x20000
+#define HWIO_UMCMN_R0_ISR_S6_REO_RELEASE_RING_WDG_SHFT                                                  17
+#define HWIO_UMCMN_R0_ISR_S6_REO2FW_RING_WDG_BMSK                                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S6_REO2FW_RING_WDG_SHFT                                                       16
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW0_RING_WDG_BMSK                                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW0_RING_WDG_SHFT                                                      15
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW6_RING_WDG_BMSK                                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW6_RING_WDG_SHFT                                                      14
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW5_RING_WDG_BMSK                                                  0x2000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW5_RING_WDG_SHFT                                                      13
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW4_RING_WDG_BMSK                                                  0x1000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW4_RING_WDG_SHFT                                                      12
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW3_RING_WDG_BMSK                                                   0x800
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW3_RING_WDG_SHFT                                                      11
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW2_RING_WDG_BMSK                                                   0x400
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW2_RING_WDG_SHFT                                                      10
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW1_RING_WDG_BMSK                                                   0x200
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW1_RING_WDG_SHFT                                                       9
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO_RING_WDG_BMSK                                                    0x100
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO_RING_WDG_SHFT                                                        8
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO1_RING_WDG_BMSK                                                    0x80
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO1_RING_WDG_SHFT                                                       7
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO2_RING_WDG_BMSK                                                    0x40
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO2_RING_WDG_SHFT                                                       6
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO3_RING_WDG_BMSK                                                    0x20
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO3_RING_WDG_SHFT                                                       5
+#define HWIO_UMCMN_R0_ISR_S6_REO_CMD_RING_WDG_BMSK                                                    0x10
+#define HWIO_UMCMN_R0_ISR_S6_REO_CMD_RING_WDG_SHFT                                                       4
+#define HWIO_UMCMN_R0_ISR_S6_WBM2REO_LINK_RING_WDG_BMSK                                                0x8
+#define HWIO_UMCMN_R0_ISR_S6_WBM2REO_LINK_RING_WDG_SHFT                                                  3
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO2_MLO_RING_WDG_BMSK                                              0x4
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO2_MLO_RING_WDG_SHFT                                                2
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO1_MLO_RING_WDG_BMSK                                              0x2
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO1_MLO_RING_WDG_SHFT                                                1
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO0_RING_WDG_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO0_RING_WDG_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_ISR_S7_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_UMCMN_R0_ISR_S7_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_UMCMN_R0_ISR_S7_OFFS                                                               (0x50)
+#define HWIO_UMCMN_R0_ISR_S7_RMSK                                                               0xffff000f
+#define HWIO_UMCMN_R0_ISR_S7_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S7_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S7_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S7_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S7_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S7_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S7_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S7_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S7_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S7_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S7_IN(x))
+#define HWIO_UMCMN_R0_ISR_S7_REO_CACHE_INT_BMSK                                                 0xffff0000
+#define HWIO_UMCMN_R0_ISR_S7_REO_CACHE_INT_SHFT                                                         16
+#define HWIO_UMCMN_R0_ISR_S7_REO_AC_BUF_OVER_THRESH_BMSK                                               0xf
+#define HWIO_UMCMN_R0_ISR_S7_REO_AC_BUF_OVER_THRESH_SHFT                                                 0
+
+#define HWIO_UMCMN_R0_ISR_S8_ADDR(x)                                                            ((x) + 0x54)
+#define HWIO_UMCMN_R0_ISR_S8_PHYS(x)                                                            ((x) + 0x54)
+#define HWIO_UMCMN_R0_ISR_S8_OFFS                                                               (0x54)
+#define HWIO_UMCMN_R0_ISR_S8_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S8_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S8_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S8_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S8_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S8_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S8_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S8_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S8_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S8_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S8_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S8_IN(x))
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RESERVED_BMSK                                         0xfff00000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RESERVED_SHFT                                                 20
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_INVALID_TLV_CMD_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_INVALID_TLV_CMD_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_BMSK                               0x40000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_SHFT                                    18
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_BMSK                                0x20000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_SHFT                                     17
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_BMSK                               0x10000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_SHFT                                    16
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_BMSK                           0x8000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_SHFT                               15
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_BMSK                           0x4000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_SHFT                               14
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_BMSK                                0x2000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_SHFT                                    13
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_BMSK                                      0x1000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_SHFT                                          12
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_PN_ERR_BMSK                                            0x800
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_PN_ERR_SHFT                                               11
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_BMSK                                        0x400
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_SHFT                                           10
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_NONBA_BMSK                                          0x200
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_NONBA_SHFT                                              9
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_BAR_BMSK                                            0x100
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_BAR_SHFT                                                8
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_REG_BMSK                                             0x80
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_REG_SHFT                                                7
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_BAR_BMSK                                              0x40
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_BAR_SHFT                                                 6
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_REG_BMSK                                              0x20
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_REG_SHFT                                                 5
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_DD_BMSK                                               0x10
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_DD_SHFT                                                  4
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_NONBA_DD_BMSK                                             0x8
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_NONBA_DD_SHFT                                               3
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_BMSK                                          0x4
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_SHFT                                            2
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_QD_NOTVALID_BMSK                                          0x2
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_QD_NOTVALID_SHFT                                            1
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_BMSK                                    0x1
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_SHFT                                      0
+
+#define HWIO_UMCMN_R0_ISR_S9_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_UMCMN_R0_ISR_S9_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_UMCMN_R0_ISR_S9_OFFS                                                               (0x58)
+#define HWIO_UMCMN_R0_ISR_S9_RMSK                                                                 0xffffff
+#define HWIO_UMCMN_R0_ISR_S9_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S9_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S9_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S9_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S9_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S9_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S9_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S9_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S9_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S9_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S9_IN(x))
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_BMSK                                            0xf00000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_WARNING_INTR_BMSK                                    0x80000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_WARNING_INTR_SHFT                                         19
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_BMSK                                  0x40000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_SHFT                                       18
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_BMSK                                  0x20000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_SHFT                                       17
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_SHFT                                       16
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_BMSK                                   0x8000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_SHFT                                       15
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_SHFT                                     13
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_BMSK                                    0x1000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_SHFT                                        12
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_BMSK                                      0x800
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_SHFT                                         11
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_BMSK                                    0x400
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_SHFT                                       10
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_BMSK                                    0x200
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_SHFT                                        9
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_BMSK                                    0x100
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_SHFT                                        8
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_BMSK                                     0x80
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_SHFT                                        7
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_BMSK                                      0x40
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_SHFT                                         6
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REORDER_BMSK                                        0x20
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REORDER_SHFT                                           5
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_BMSK                             0x10
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_SHFT                                4
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_BMSK                                     0x8
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_SHFT                                       3
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_BMSK                                0x4
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_SHFT                                  2
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_BMSK                               0x2
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_SHFT                                 1
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_BMSK                          0x1
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_SHFT                            0
+
+#define HWIO_UMCMN_R0_ISR_S10_ADDR(x)                                                           ((x) + 0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_PHYS(x)                                                           ((x) + 0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_OFFS                                                              (0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_ISR_S10_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S10_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S10_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S10_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S10_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S10_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S10_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S10_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S10_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S10_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S10_IN(x))
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_BMSK                            0x20000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_SHFT                                 17
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_BMSK                            0x10000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_SHFT                                 16
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_BMSK                              0x4000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_SHFT                                  14
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_BMSK                              0x2000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_SHFT                                  13
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_BMSK                              0x1000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_SHFT                                  12
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_BMSK                               0x800
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_SHFT                                  11
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_BMSK                               0x400
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_SHFT                                  10
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_BMSK                               0x100
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_SHFT                                   8
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_BMSK                                0x40
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_SHFT                                   6
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_BMSK                              0x20
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_SHFT                                 5
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_BMSK                            0x10
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_SHFT                               4
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_BMSK                                 0x8
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_SHFT                                   3
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_SHFT                                   2
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_BMSK                                 0x2
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_SHFT                                   1
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_ISR_S11_ADDR(x)                                                           ((x) + 0x60)
+#define HWIO_UMCMN_R0_ISR_S11_PHYS(x)                                                           ((x) + 0x60)
+#define HWIO_UMCMN_R0_ISR_S11_OFFS                                                              (0x60)
+#define HWIO_UMCMN_R0_ISR_S11_RMSK                                                               0x3ffffff
+#define HWIO_UMCMN_R0_ISR_S11_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S11_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S11_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S11_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S11_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S11_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S11_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S11_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S11_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S11_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S11_IN(x))
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_WDG_ERR_BMSK                                     0x2000000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_WDG_ERR_SHFT                                            25
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_REQ_ERR_BMSK                                     0x1000000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_REQ_ERR_SHFT                                            24
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_BMSK                                0x800000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_SHFT                                      23
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_BMSK                                0x400000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_SHFT                                      22
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_REQ_ERR_BMSK                                       0x100000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_REQ_ERR_SHFT                                             20
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_WDG_ERR_BMSK                                        0x80000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_WDG_ERR_SHFT                                             19
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_REQ_ERR_BMSK                                        0x40000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_REQ_ERR_SHFT                                             18
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_WDG_ERR_BMSK                                        0x20000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_WDG_ERR_SHFT                                             17
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_REQ_ERR_BMSK                                        0x10000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_REQ_ERR_SHFT                                             16
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_WDG_ERR_BMSK                                          0x2000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_WDG_ERR_SHFT                                              13
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_REQ_ERR_BMSK                                          0x1000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_REQ_ERR_SHFT                                              12
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_WDG_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_WDG_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_REQ_ERR_BMSK                                          0x400
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_REQ_ERR_SHFT                                             10
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_BMSK                                    0x200
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_SHFT                                        9
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_BMSK                                    0x100
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_SHFT                                        8
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_WDG_ERR_BMSK                                           0x80
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_WDG_ERR_SHFT                                              7
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_REQ_ERR_BMSK                                           0x40
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_REQ_ERR_SHFT                                              6
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_WDG_ERR_BMSK                                           0x20
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_WDG_ERR_SHFT                                              5
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_REQ_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_REQ_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_WDG_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_WDG_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_REQ_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_REQ_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_WDG_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_WDG_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_REQ_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_REQ_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_ISR_S12_ADDR(x)                                                           ((x) + 0x64)
+#define HWIO_UMCMN_R0_ISR_S12_PHYS(x)                                                           ((x) + 0x64)
+#define HWIO_UMCMN_R0_ISR_S12_OFFS                                                              (0x64)
+#define HWIO_UMCMN_R0_ISR_S12_RMSK                                                                0x3fffff
+#define HWIO_UMCMN_R0_ISR_S12_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S12_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S12_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S12_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S12_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S12_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S12_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S12_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S12_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S12_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S12_IN(x))
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_BMSK                                     0x200000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_SHFT                                           21
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_BMSK                                      0x100000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_SHFT                                            20
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_BMSK                                 0x80000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_SHFT                                      19
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BUFFER_LENGTH_ERROR_INT_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BUFFER_LENGTH_ERROR_INT_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BANK_ID_ERR_BMSK                                                 0x20000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BANK_ID_ERR_SHFT                                                      17
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_WARNING_BMSK                                                 0x10000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_WARNING_SHFT                                                      16
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_ERR_CLASSIFY_DIS_BMSK                                         0x2000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_ERR_CLASSIFY_DIS_SHFT                                             13
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_WDG_TO_BMSK                                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_WDG_TO_SHFT                                                       12
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_BMSK                                       0x800
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_SHFT                                          11
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_BMSK                             0x400
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_SHFT                                10
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_BMSK                                         0x200
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_SHFT                                             9
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_ETH_ERR_BMSK                                              0x100
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_ETH_ERR_SHFT                                                  8
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WMAC_ERR_BMSK                                              0x80
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WMAC_ERR_SHFT                                                 7
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WDG_TO_BMSK                                                0x40
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WDG_TO_SHFT                                                   6
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_BMSK                                     0x20
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_SHFT                                        5
+#define HWIO_UMCMN_R0_ISR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_ISR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_ERR_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_ERR_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_ISR_S13_ADDR(x)                                                           ((x) + 0x68)
+#define HWIO_UMCMN_R0_ISR_S13_PHYS(x)                                                           ((x) + 0x68)
+#define HWIO_UMCMN_R0_ISR_S13_OFFS                                                              (0x68)
+#define HWIO_UMCMN_R0_ISR_S13_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_ISR_S13_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S13_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S13_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S13_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S13_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S13_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S13_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S13_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S13_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S13_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S13_IN(x))
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_BMSK                               0x20000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_SHFT                                    17
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_BMSK                               0x10000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_SHFT                                    16
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_SHFT                                       12
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_BMSK                                   0x800
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_SHFT                                      11
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_BMSK                                   0x400
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_SHFT                                      10
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_BMSK                                      0x100
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_SHFT                                          8
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_BMSK                                       0x40
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_SHFT                                          6
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_REQ_ERR_BMSK                                            0x20
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_REQ_ERR_SHFT                                               5
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_WDG_ERR_BMSK                                            0x10
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_WDG_ERR_SHFT                                               4
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_BMSK                                          0x8
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_SHFT                                            3
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_BMSK                                          0x4
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_SHFT                                            2
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_BMSK                                          0x2
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_SHFT                                            1
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_ISR_S14_ADDR(x)                                                           ((x) + 0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_PHYS(x)                                                           ((x) + 0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_OFFS                                                              (0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_RMSK                                                               0x7ffffff
+#define HWIO_UMCMN_R0_ISR_S14_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S14_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S14_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S14_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S14_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S14_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S14_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S14_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S14_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S14_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S14_IN(x))
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                 0x4000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        26
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_BMSK                               0x2000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_SHFT                                      25
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_BMSK                          0x1000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 24
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                  0x800000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        23
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_BMSK                                0x400000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_SHFT                                      22
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_BMSK                           0x200000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 21
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                   0x100000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         20
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_BMSK                                  0x80000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_SHFT                                       19
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_BMSK                             0x40000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  18
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                    0x20000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         17
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_SHFT                                       16
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S14_TQM_CACHE_CTL_ERR_BMSK                                                0x7ff8
+#define HWIO_UMCMN_R0_ISR_S14_TQM_CACHE_CTL_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_ISR_S14_TQM_WARNING_WDG_TIMEOUT_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S14_TQM_WARNING_WDG_TIMEOUT_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S14_TQM_HW_ERROR_INTR_TIMEOUT_BMSK                                           0x2
+#define HWIO_UMCMN_R0_ISR_S14_TQM_HW_ERROR_INTR_TIMEOUT_SHFT                                             1
+#define HWIO_UMCMN_R0_ISR_S14_TQM_SW_PRGM_ERR_BMSK                                                     0x1
+#define HWIO_UMCMN_R0_ISR_S14_TQM_SW_PRGM_ERR_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_ISR_S15_ADDR(x)                                                           ((x) + 0x70)
+#define HWIO_UMCMN_R0_ISR_S15_PHYS(x)                                                           ((x) + 0x70)
+#define HWIO_UMCMN_R0_ISR_S15_OFFS                                                              (0x70)
+#define HWIO_UMCMN_R0_ISR_S15_RMSK                                                                  0x7fff
+#define HWIO_UMCMN_R0_ISR_S15_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S15_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S15_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S15_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S15_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S15_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S15_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S15_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S15_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S15_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S15_IN(x))
+#define HWIO_UMCMN_R0_ISR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_HWSCH_CMD_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_HWSCH_CMD_SHFT                                                13
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_SW_CMD_BMSK                                               0x1000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_SW_CMD_SHFT                                                   12
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_BMSK                                      0x800
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_SHFT                                         11
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_BMSK                                      0x400
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_SHFT                                         10
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_BMSK                                      0x200
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_SHFT                                          9
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_SATURATE_BMSK                                       0x100
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_SATURATE_SHFT                                           8
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_SATURATE_BMSK                                        0x80
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_SATURATE_SHFT                                           7
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_SATURATE_BMSK                                        0x40
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_SATURATE_SHFT                                           6
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_BMSK                                   0x20
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_SHFT                                      5
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_BMSK                                   0x10
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_SHFT                                      4
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_BMSK                                    0x8
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_SHFT                                      3
+#define HWIO_UMCMN_R0_ISR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_BMSK                                0x4
+#define HWIO_UMCMN_R0_ISR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_SHFT                                  2
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_REQ_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_REQ_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_WDG_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_WDG_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_ISR_S16_ADDR(x)                                                           ((x) + 0x74)
+#define HWIO_UMCMN_R0_ISR_S16_PHYS(x)                                                           ((x) + 0x74)
+#define HWIO_UMCMN_R0_ISR_S16_OFFS                                                              (0x74)
+#define HWIO_UMCMN_R0_ISR_S16_RMSK                                                                    0x1f
+#define HWIO_UMCMN_R0_ISR_S16_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S16_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S16_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S16_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S16_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S16_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S16_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S16_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S16_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S16_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S16_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S16_IN(x))
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_ERR_BMSK                                                   0x10
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_ERR_SHFT                                                      4
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_WR_ERR_BMSK                                                  0x8
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_WR_ERR_SHFT                                                    3
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_RD_ERR_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_RD_ERR_SHFT                                                    2
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_LAST_WR_ERR_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_LAST_WR_ERR_SHFT                                                   1
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_WAR_BMSK                                                    0x1
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_WAR_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_ISR_S17_ADDR(x)                                                           ((x) + 0x78)
+#define HWIO_UMCMN_R0_ISR_S17_PHYS(x)                                                           ((x) + 0x78)
+#define HWIO_UMCMN_R0_ISR_S17_OFFS                                                              (0x78)
+#define HWIO_UMCMN_R0_ISR_S17_RMSK                                                                  0xffff
+#define HWIO_UMCMN_R0_ISR_S17_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S17_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S17_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S17_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S17_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S17_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S17_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S17_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S17_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S17_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S17_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S17_IN(x))
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x4000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_SHFT                                  14
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_SHFT                                     13
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_BMSK                                 0x1000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_SHFT                                     12
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_BMSK                               0x800
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_SHFT                                  11
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_BMSK                               0x400
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_SHFT                                  10
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_BMSK                                0x200
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_SHFT                                    9
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_BMSK                                0x100
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_SHFT                                    8
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_BMSK                                    0x80
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_SHFT                                       7
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_BMSK                                    0x40
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_SHFT                                       6
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_BMSK                                0x20
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_SHFT                                   5
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_BMSK                                0x10
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_SHFT                                   4
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_BMSK                                  0x8
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_SHFT                                    3
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_BMSK                                  0x4
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_SHFT                                    2
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_BMSK                                     0x2
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_SHFT                                       1
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_BMSK                                  0x1
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_SHFT                                    0
+
+#define HWIO_UMCMN_R0_IMR_P_ADDR(x)                                                             ((x) + 0x7c)
+#define HWIO_UMCMN_R0_IMR_P_PHYS(x)                                                             ((x) + 0x7c)
+#define HWIO_UMCMN_R0_IMR_P_OFFS                                                                (0x7c)
+#define HWIO_UMCMN_R0_IMR_P_RMSK                                                                   0x3fffd
+#define HWIO_UMCMN_R0_IMR_P_POR                                                                 0x00000000
+#define HWIO_UMCMN_R0_IMR_P_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_IMR_P_ATTR                                                                             0x3
+#define HWIO_UMCMN_R0_IMR_P_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_P_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_P_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_P_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_P_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_P_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_P_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_P_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_P_IN(x))
+#define HWIO_UMCMN_R0_IMR_P_GXI_BMSK                                                               0x20000
+#define HWIO_UMCMN_R0_IMR_P_GXI_SHFT                                                                    17
+#define HWIO_UMCMN_R0_IMR_P_TQM2_BMSK                                                              0x10000
+#define HWIO_UMCMN_R0_IMR_P_TQM2_SHFT                                                                   16
+#define HWIO_UMCMN_R0_IMR_P_TQM1_BMSK                                                               0x8000
+#define HWIO_UMCMN_R0_IMR_P_TQM1_SHFT                                                                   15
+#define HWIO_UMCMN_R0_IMR_P_TQM0_BMSK                                                               0x4000
+#define HWIO_UMCMN_R0_IMR_P_TQM0_SHFT                                                                   14
+#define HWIO_UMCMN_R0_IMR_P_TCL1_BMSK                                                               0x2000
+#define HWIO_UMCMN_R0_IMR_P_TCL1_SHFT                                                                   13
+#define HWIO_UMCMN_R0_IMR_P_TCL0_BMSK                                                               0x1000
+#define HWIO_UMCMN_R0_IMR_P_TCL0_SHFT                                                                   12
+#define HWIO_UMCMN_R0_IMR_P_REO4_BMSK                                                                0x800
+#define HWIO_UMCMN_R0_IMR_P_REO4_SHFT                                                                   11
+#define HWIO_UMCMN_R0_IMR_P_REO3_BMSK                                                                0x400
+#define HWIO_UMCMN_R0_IMR_P_REO3_SHFT                                                                   10
+#define HWIO_UMCMN_R0_IMR_P_REO2_BMSK                                                                0x200
+#define HWIO_UMCMN_R0_IMR_P_REO2_SHFT                                                                    9
+#define HWIO_UMCMN_R0_IMR_P_REO1_BMSK                                                                0x100
+#define HWIO_UMCMN_R0_IMR_P_REO1_SHFT                                                                    8
+#define HWIO_UMCMN_R0_IMR_P_REO0_BMSK                                                                 0x80
+#define HWIO_UMCMN_R0_IMR_P_REO0_SHFT                                                                    7
+#define HWIO_UMCMN_R0_IMR_P_WBM3_BMSK                                                                 0x40
+#define HWIO_UMCMN_R0_IMR_P_WBM3_SHFT                                                                    6
+#define HWIO_UMCMN_R0_IMR_P_WBM2_BMSK                                                                 0x20
+#define HWIO_UMCMN_R0_IMR_P_WBM2_SHFT                                                                    5
+#define HWIO_UMCMN_R0_IMR_P_WBM1_BMSK                                                                 0x10
+#define HWIO_UMCMN_R0_IMR_P_WBM1_SHFT                                                                    4
+#define HWIO_UMCMN_R0_IMR_P_WBM0_BMSK                                                                  0x8
+#define HWIO_UMCMN_R0_IMR_P_WBM0_SHFT                                                                    3
+#define HWIO_UMCMN_R0_IMR_P_MEM_BMSK                                                                   0x4
+#define HWIO_UMCMN_R0_IMR_P_MEM_SHFT                                                                     2
+#define HWIO_UMCMN_R0_IMR_P_APB_BMSK                                                                   0x1
+#define HWIO_UMCMN_R0_IMR_P_APB_SHFT                                                                     0
+
+#define HWIO_UMCMN_R0_IMR_S0_ADDR(x)                                                            ((x) + 0x80)
+#define HWIO_UMCMN_R0_IMR_S0_PHYS(x)                                                            ((x) + 0x80)
+#define HWIO_UMCMN_R0_IMR_S0_OFFS                                                               (0x80)
+#define HWIO_UMCMN_R0_IMR_S0_RMSK                                                                0x71fffff
+#define HWIO_UMCMN_R0_IMR_S0_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S0_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S0_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S0_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S0_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S0_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S0_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S0_IN(x))
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_RD_INVALID_BMSK                                             0x4000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_RD_INVALID_SHFT                                                    26
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_INVALID_BMSK                                             0x2000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_INVALID_SHFT                                                    25
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_TO_RD_INVALID_BMSK                                       0x1000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_TO_RD_INVALID_SHFT                                              24
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_RD_INVALID_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_RD_INVALID_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_INVALID_BMSK                                             0x80000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_INVALID_SHFT                                                  19
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_TO_RD_INVALID_BMSK                                       0x40000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_TO_RD_INVALID_SHFT                                            18
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_RD_INVALID_BMSK                                               0x20000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_RD_INVALID_SHFT                                                    17
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_INVALID_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_INVALID_SHFT                                                    16
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_TO_RD_INVALID_BMSK                                          0x8000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_TO_RD_INVALID_SHFT                                              15
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_RD_INVALID_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_RD_INVALID_SHFT                                               14
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_INVALID_BMSK                                           0x2000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_INVALID_SHFT                                               13
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_BMSK                                     0x1000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_SHFT                                         12
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_RD_INVALID_BMSK                                                 0x800
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_RD_INVALID_SHFT                                                    11
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_INVALID_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_INVALID_SHFT                                                    10
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_TO_RD_INVALID_BMSK                                           0x200
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_TO_RD_INVALID_SHFT                                               9
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_RD_INVALID_BMSK                                                 0x100
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_RD_INVALID_SHFT                                                     8
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_INVALID_BMSK                                                  0x80
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_INVALID_SHFT                                                     7
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_TO_RD_INVALID_BMSK                                            0x40
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_TO_RD_INVALID_SHFT                                               6
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_RD_INVALID_BMSK                                                  0x20
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_RD_INVALID_SHFT                                                     5
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_INVALID_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_INVALID_SHFT                                                     4
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_TO_RD_INVALID_BMSK                                             0x8
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_TO_RD_INVALID_SHFT                                               3
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_RD_INVALID_BMSK                                                   0x4
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_RD_INVALID_SHFT                                                     2
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_INVALID_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_INVALID_SHFT                                                     1
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_TO_RD_INVALID_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_TO_RD_INVALID_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S2_ADDR(x)                                                            ((x) + 0x84)
+#define HWIO_UMCMN_R0_IMR_S2_PHYS(x)                                                            ((x) + 0x84)
+#define HWIO_UMCMN_R0_IMR_S2_OFFS                                                               (0x84)
+#define HWIO_UMCMN_R0_IMR_S2_RMSK                                                                      0xf
+#define HWIO_UMCMN_R0_IMR_S2_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S2_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S2_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S2_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S2_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S2_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S2_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S2_IN(x))
+#define HWIO_UMCMN_R0_IMR_S2_MEM_REMOTE_ACC_ERR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_IMR_S2_MEM_REMOTE_ACC_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_IMR_S2_MEM_ACC_RANGE_ERR_BMSK                                                    0x4
+#define HWIO_UMCMN_R0_IMR_S2_MEM_ACC_RANGE_ERR_SHFT                                                      2
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR2_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR2_SHFT                                                   1
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR1_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR1_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_IMR_S3_ADDR(x)                                                            ((x) + 0x88)
+#define HWIO_UMCMN_R0_IMR_S3_PHYS(x)                                                            ((x) + 0x88)
+#define HWIO_UMCMN_R0_IMR_S3_OFFS                                                               (0x88)
+#define HWIO_UMCMN_R0_IMR_S3_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S3_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S3_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S3_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S3_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S3_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S3_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S3_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S3_IN(x))
+#define HWIO_UMCMN_R0_IMR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_BMSK                                0x80000000
+#define HWIO_UMCMN_R0_IMR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_SHFT                                        31
+#define HWIO_UMCMN_R0_IMR_S3_REL_PARSER_DUP_DET_EVENT_INTR_BMSK                                 0x40000000
+#define HWIO_UMCMN_R0_IMR_S3_REL_PARSER_DUP_DET_EVENT_INTR_SHFT                                         30
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_DUP_DET_EVENT_INTR_BMSK                                  0x20000000
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_DUP_DET_EVENT_INTR_SHFT                                          29
+#define HWIO_UMCMN_R0_IMR_S3_SW_COOKIE_IDLE_TIMEOUT_BMSK                                        0x10000000
+#define HWIO_UMCMN_R0_IMR_S3_SW_COOKIE_IDLE_TIMEOUT_SHFT                                                28
+#define HWIO_UMCMN_R0_IMR_S3_DELINK_B2B_DUPLI_PTR_INTR_BMSK                                      0x8000000
+#define HWIO_UMCMN_R0_IMR_S3_DELINK_B2B_DUPLI_PTR_INTR_SHFT                                             27
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_B2B_DUPLI_INTR_BMSK                                       0x4000000
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_B2B_DUPLI_INTR_SHFT                                              26
+#define HWIO_UMCMN_R0_IMR_S3_IDLE_SEQUENCE_WD_INTR_BMSK                                          0x2000000
+#define HWIO_UMCMN_R0_IMR_S3_IDLE_SEQUENCE_WD_INTR_SHFT                                                 25
+#define HWIO_UMCMN_R0_IMR_S3_WBM_VA_CONV_ERR_INT_BMSK                                            0x1000000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_VA_CONV_ERR_INT_SHFT                                                   24
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BP_WARN_INT_BMSK                                                 0x800000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BP_WARN_INT_SHFT                                                       23
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW6_BUF_PROD_WDG_BMSK                                            0x400000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW6_BUF_PROD_WDG_SHFT                                                  22
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW5_BUF_PROD_WDG_BMSK                                            0x200000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW5_BUF_PROD_WDG_SHFT                                                  21
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW4_BUF_PROD_WDG_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW4_BUF_PROD_WDG_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S3_WBM_ERROR_BUF_PROD_WDG_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_ERROR_BUF_PROD_WDG_SHFT                                                19
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_PARSER_ERR_BMSK                                              0x70000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_PARSER_ERR_SHFT                                                   16
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                       12
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_PARSE_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_PARSE_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_WDG_BMSK                                                0x400
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_WDG_SHFT                                                   10
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_BMSK                                       0x200
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_SHFT                                           9
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_BMSK                                       0x100
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_SHFT                                           8
+#define HWIO_UMCMN_R0_IMR_S3_WBM_FW_BUF_PROD_WDG_BMSK                                                 0x80
+#define HWIO_UMCMN_R0_IMR_S3_WBM_FW_BUF_PROD_WDG_SHFT                                                    7
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW3_BUF_PROD_WDG_BMSK                                                0x40
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW3_BUF_PROD_WDG_SHFT                                                   6
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW2_BUF_PROD_WDG_BMSK                                                0x20
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW2_BUF_PROD_WDG_SHFT                                                   5
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW1_BUF_PROD_WDG_BMSK                                                0x10
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW1_BUF_PROD_WDG_SHFT                                                   4
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW0_BUF_PROD_WDG_BMSK                                                 0x8
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW0_BUF_PROD_WDG_SHFT                                                   3
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_BMSK                                           0x4
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_SHFT                                             2
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_C_WDG_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_C_WDG_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_P_WDG_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_P_WDG_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S4_ADDR(x)                                                            ((x) + 0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_PHYS(x)                                                            ((x) + 0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_OFFS                                                               (0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S4_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S4_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S4_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S4_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S4_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S4_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S4_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S4_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S4_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S4_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S4_IN(x))
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_IMR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_RELEASE_RING_WDG_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_RELEASE_RING_WDG_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_LINK_RING_WDG_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_LINK_RING_WDG_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_BUF_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_BUF_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_LINK_RING_WDG_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_LINK_RING_WDG_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_LINK_RING_WDG_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_LINK_RING_WDG_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_IMR_S4_WBM2REO_LINK_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2REO_LINK_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S4_WBM2TQM_LINK_RING_WDG_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2TQM_LINK_RING_WDG_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_BUF_RING_WDG_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_BUF_RING_WDG_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_BUF_RING_WDG_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_BUF_RING_WDG_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_IMR_S4_WBM2PPE_BUF_RING_WDG_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_IMR_S4_WBM2PPE_BUF_RING_WDG_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA2_RELEASE_RING_WDG_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA2_RELEASE_RING_WDG_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA1_RELEASE_RING_WDG_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA1_RELEASE_RING_WDG_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA0_RELEASE_RING_WDG_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA0_RELEASE_RING_WDG_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_IMR_S4_FW_RELEASE_RING_WDG_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_IMR_S4_FW_RELEASE_RING_WDG_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_IMR_S4_SW_RELEASE_RING_WDG_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_IMR_S4_SW_RELEASE_RING_WDG_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_IMR_S4_REO_RELEASE_RING_WDG_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S4_REO_RELEASE_RING_WDG_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S4_TQM_RELEASE_RING_WDG_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S4_TQM_RELEASE_RING_WDG_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S4_PPE_RELEASE_RING_WDG_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S4_PPE_RELEASE_RING_WDG_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S5_ADDR(x)                                                            ((x) + 0x90)
+#define HWIO_UMCMN_R0_IMR_S5_PHYS(x)                                                            ((x) + 0x90)
+#define HWIO_UMCMN_R0_IMR_S5_OFFS                                                               (0x90)
+#define HWIO_UMCMN_R0_IMR_S5_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S5_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S5_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S5_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S5_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S5_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S5_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S5_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S5_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S5_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S5_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S5_IN(x))
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_IMR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_RELEASE_RING_REQ_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_RELEASE_RING_REQ_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_LINK_RING_REQ_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_LINK_RING_REQ_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_BUF_RING_REQ_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_BUF_RING_REQ_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_LINK_RING_REQ_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_LINK_RING_REQ_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_LINK_RING_REQ_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_LINK_RING_REQ_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_IMR_S5_WBM2REO_LINK_RING_REQ_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2REO_LINK_RING_REQ_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S5_WBM2TQM_LINK_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2TQM_LINK_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_BUF_RING_REQ_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_BUF_RING_REQ_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_BUF_RING_REQ_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_BUF_RING_REQ_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_IMR_S5_WBM2PPE_BUF_RING_REQ_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_IMR_S5_WBM2PPE_BUF_RING_REQ_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA2_RELEASE_RING_REQ_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA2_RELEASE_RING_REQ_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA1_RELEASE_RING_REQ_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA1_RELEASE_RING_REQ_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA0_RELEASE_RING_REQ_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA0_RELEASE_RING_REQ_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_IMR_S5_FW_RELEASE_RING_REQ_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_IMR_S5_FW_RELEASE_RING_REQ_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_IMR_S5_SW_RELEASE_RING_REQ_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_IMR_S5_SW_RELEASE_RING_REQ_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_IMR_S5_REO_RELEASE_RING_REQ_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S5_REO_RELEASE_RING_REQ_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S5_TQM_RELEASE_RING_REQ_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S5_TQM_RELEASE_RING_REQ_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S5_PPE_RELEASE_RING_REQ_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S5_PPE_RELEASE_RING_REQ_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S6_ADDR(x)                                                            ((x) + 0x94)
+#define HWIO_UMCMN_R0_IMR_S6_PHYS(x)                                                            ((x) + 0x94)
+#define HWIO_UMCMN_R0_IMR_S6_OFFS                                                               (0x94)
+#define HWIO_UMCMN_R0_IMR_S6_RMSK                                                                 0x3fffff
+#define HWIO_UMCMN_R0_IMR_S6_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S6_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S6_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S6_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S6_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S6_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S6_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S6_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S6_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S6_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S6_IN(x))
+#define HWIO_UMCMN_R0_IMR_S6_REO2PPE_RING_WDG_BMSK                                                0x200000
+#define HWIO_UMCMN_R0_IMR_S6_REO2PPE_RING_WDG_SHFT                                                      21
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW8_RING_WDG_BMSK                                                0x100000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW8_RING_WDG_SHFT                                                      20
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW7_RING_WDG_BMSK                                                 0x80000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW7_RING_WDG_SHFT                                                      19
+#define HWIO_UMCMN_R0_IMR_S6_REO_STATUS_RING_WDG_BMSK                                              0x40000
+#define HWIO_UMCMN_R0_IMR_S6_REO_STATUS_RING_WDG_SHFT                                                   18
+#define HWIO_UMCMN_R0_IMR_S6_REO_RELEASE_RING_WDG_BMSK                                             0x20000
+#define HWIO_UMCMN_R0_IMR_S6_REO_RELEASE_RING_WDG_SHFT                                                  17
+#define HWIO_UMCMN_R0_IMR_S6_REO2FW_RING_WDG_BMSK                                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S6_REO2FW_RING_WDG_SHFT                                                       16
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW0_RING_WDG_BMSK                                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW0_RING_WDG_SHFT                                                      15
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW6_RING_WDG_BMSK                                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW6_RING_WDG_SHFT                                                      14
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW5_RING_WDG_BMSK                                                  0x2000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW5_RING_WDG_SHFT                                                      13
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW4_RING_WDG_BMSK                                                  0x1000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW4_RING_WDG_SHFT                                                      12
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW3_RING_WDG_BMSK                                                   0x800
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW3_RING_WDG_SHFT                                                      11
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW2_RING_WDG_BMSK                                                   0x400
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW2_RING_WDG_SHFT                                                      10
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW1_RING_WDG_BMSK                                                   0x200
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW1_RING_WDG_SHFT                                                       9
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO_RING_WDG_BMSK                                                    0x100
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO_RING_WDG_SHFT                                                        8
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO1_RING_WDG_BMSK                                                    0x80
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO1_RING_WDG_SHFT                                                       7
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO2_RING_WDG_BMSK                                                    0x40
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO2_RING_WDG_SHFT                                                       6
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO3_RING_WDG_BMSK                                                    0x20
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO3_RING_WDG_SHFT                                                       5
+#define HWIO_UMCMN_R0_IMR_S6_REO_CMD_RING_WDG_BMSK                                                    0x10
+#define HWIO_UMCMN_R0_IMR_S6_REO_CMD_RING_WDG_SHFT                                                       4
+#define HWIO_UMCMN_R0_IMR_S6_WBM2REO_LINK_RING_WDG_BMSK                                                0x8
+#define HWIO_UMCMN_R0_IMR_S6_WBM2REO_LINK_RING_WDG_SHFT                                                  3
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO2_MLO_RING_WDG_BMSK                                              0x4
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO2_MLO_RING_WDG_SHFT                                                2
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO1_MLO_RING_WDG_BMSK                                              0x2
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO1_MLO_RING_WDG_SHFT                                                1
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO0_RING_WDG_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO0_RING_WDG_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_IMR_S7_ADDR(x)                                                            ((x) + 0x98)
+#define HWIO_UMCMN_R0_IMR_S7_PHYS(x)                                                            ((x) + 0x98)
+#define HWIO_UMCMN_R0_IMR_S7_OFFS                                                               (0x98)
+#define HWIO_UMCMN_R0_IMR_S7_RMSK                                                               0xffff000f
+#define HWIO_UMCMN_R0_IMR_S7_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S7_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S7_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S7_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S7_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S7_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S7_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S7_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S7_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S7_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S7_IN(x))
+#define HWIO_UMCMN_R0_IMR_S7_REO_CACHE_INT_BMSK                                                 0xffff0000
+#define HWIO_UMCMN_R0_IMR_S7_REO_CACHE_INT_SHFT                                                         16
+#define HWIO_UMCMN_R0_IMR_S7_REO_AC_BUF_OVER_THRESH_BMSK                                               0xf
+#define HWIO_UMCMN_R0_IMR_S7_REO_AC_BUF_OVER_THRESH_SHFT                                                 0
+
+#define HWIO_UMCMN_R0_IMR_S8_ADDR(x)                                                            ((x) + 0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_PHYS(x)                                                            ((x) + 0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_OFFS                                                               (0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S8_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S8_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S8_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S8_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S8_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S8_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S8_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S8_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S8_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S8_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S8_IN(x))
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RESERVED_BMSK                                         0xfff00000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RESERVED_SHFT                                                 20
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_INVALID_TLV_CMD_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_INVALID_TLV_CMD_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_BMSK                               0x40000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_SHFT                                    18
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_BMSK                                0x20000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_SHFT                                     17
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_BMSK                               0x10000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_SHFT                                    16
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_BMSK                           0x8000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_SHFT                               15
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_BMSK                           0x4000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_SHFT                               14
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_BMSK                                0x2000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_SHFT                                    13
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_BMSK                                      0x1000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_SHFT                                          12
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_PN_ERR_BMSK                                            0x800
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_PN_ERR_SHFT                                               11
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_BMSK                                        0x400
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_SHFT                                           10
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_NONBA_BMSK                                          0x200
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_NONBA_SHFT                                              9
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_BAR_BMSK                                            0x100
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_BAR_SHFT                                                8
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_REG_BMSK                                             0x80
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_REG_SHFT                                                7
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_BAR_BMSK                                              0x40
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_BAR_SHFT                                                 6
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_REG_BMSK                                              0x20
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_REG_SHFT                                                 5
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_DD_BMSK                                               0x10
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_DD_SHFT                                                  4
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_NONBA_DD_BMSK                                             0x8
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_NONBA_DD_SHFT                                               3
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_BMSK                                          0x4
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_SHFT                                            2
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_QD_NOTVALID_BMSK                                          0x2
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_QD_NOTVALID_SHFT                                            1
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_BMSK                                    0x1
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_SHFT                                      0
+
+#define HWIO_UMCMN_R0_IMR_S9_ADDR(x)                                                            ((x) + 0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_PHYS(x)                                                            ((x) + 0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_OFFS                                                               (0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_RMSK                                                                 0xffffff
+#define HWIO_UMCMN_R0_IMR_S9_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S9_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S9_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S9_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S9_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S9_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S9_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S9_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S9_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S9_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S9_IN(x))
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_BMSK                                            0xf00000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_WARNING_INTR_BMSK                                    0x80000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_WARNING_INTR_SHFT                                         19
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_BMSK                                  0x40000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_SHFT                                       18
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_BMSK                                  0x20000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_SHFT                                       17
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_SHFT                                       16
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_BMSK                                   0x8000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_SHFT                                       15
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_SHFT                                     13
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_BMSK                                    0x1000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_SHFT                                        12
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_BMSK                                      0x800
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_SHFT                                         11
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_BMSK                                    0x400
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_SHFT                                       10
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_BMSK                                    0x200
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_SHFT                                        9
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_BMSK                                    0x100
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_SHFT                                        8
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_BMSK                                     0x80
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_SHFT                                        7
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_BMSK                                      0x40
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_SHFT                                         6
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REORDER_BMSK                                        0x20
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REORDER_SHFT                                           5
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_BMSK                             0x10
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_SHFT                                4
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_BMSK                                     0x8
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_SHFT                                       3
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_BMSK                                0x4
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_SHFT                                  2
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_BMSK                               0x2
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_SHFT                                 1
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_BMSK                          0x1
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_SHFT                            0
+
+#define HWIO_UMCMN_R0_IMR_S10_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_OFFS                                                              (0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_IMR_S10_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S10_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S10_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S10_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S10_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S10_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S10_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S10_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S10_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S10_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S10_IN(x))
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_BMSK                            0x20000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_SHFT                                 17
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_BMSK                            0x10000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_SHFT                                 16
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_BMSK                              0x4000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_SHFT                                  14
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_BMSK                              0x2000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_SHFT                                  13
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_BMSK                              0x1000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_SHFT                                  12
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_BMSK                               0x800
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_SHFT                                  11
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_BMSK                               0x400
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_SHFT                                  10
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_BMSK                               0x100
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_SHFT                                   8
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_BMSK                                0x40
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_SHFT                                   6
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_BMSK                              0x20
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_SHFT                                 5
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_BMSK                            0x10
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_SHFT                               4
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_BMSK                                 0x8
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_SHFT                                   3
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_SHFT                                   2
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_BMSK                                 0x2
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_SHFT                                   1
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_IMR_S11_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_OFFS                                                              (0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_RMSK                                                               0x3ffffff
+#define HWIO_UMCMN_R0_IMR_S11_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S11_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S11_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S11_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S11_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S11_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S11_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S11_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S11_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S11_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S11_IN(x))
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_WDG_ERR_BMSK                                     0x2000000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_WDG_ERR_SHFT                                            25
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_REQ_ERR_BMSK                                     0x1000000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_REQ_ERR_SHFT                                            24
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_BMSK                                0x800000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_SHFT                                      23
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_BMSK                                0x400000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_SHFT                                      22
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_REQ_ERR_BMSK                                       0x100000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_REQ_ERR_SHFT                                             20
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_WDG_ERR_BMSK                                        0x80000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_WDG_ERR_SHFT                                             19
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_REQ_ERR_BMSK                                        0x40000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_REQ_ERR_SHFT                                             18
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_WDG_ERR_BMSK                                        0x20000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_WDG_ERR_SHFT                                             17
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_REQ_ERR_BMSK                                        0x10000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_REQ_ERR_SHFT                                             16
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_WDG_ERR_BMSK                                          0x2000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_WDG_ERR_SHFT                                              13
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_REQ_ERR_BMSK                                          0x1000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_REQ_ERR_SHFT                                              12
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_WDG_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_WDG_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_REQ_ERR_BMSK                                          0x400
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_REQ_ERR_SHFT                                             10
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_BMSK                                    0x200
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_SHFT                                        9
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_BMSK                                    0x100
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_SHFT                                        8
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_WDG_ERR_BMSK                                           0x80
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_WDG_ERR_SHFT                                              7
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_REQ_ERR_BMSK                                           0x40
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_REQ_ERR_SHFT                                              6
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_WDG_ERR_BMSK                                           0x20
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_WDG_ERR_SHFT                                              5
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_REQ_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_REQ_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_WDG_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_WDG_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_REQ_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_REQ_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_WDG_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_WDG_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_REQ_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_REQ_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_IMR_S12_ADDR(x)                                                           ((x) + 0xac)
+#define HWIO_UMCMN_R0_IMR_S12_PHYS(x)                                                           ((x) + 0xac)
+#define HWIO_UMCMN_R0_IMR_S12_OFFS                                                              (0xac)
+#define HWIO_UMCMN_R0_IMR_S12_RMSK                                                                0x3fffff
+#define HWIO_UMCMN_R0_IMR_S12_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S12_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S12_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S12_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S12_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S12_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S12_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S12_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S12_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S12_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S12_IN(x))
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_BMSK                                     0x200000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_SHFT                                           21
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_BMSK                                      0x100000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_SHFT                                            20
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_BMSK                                 0x80000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_SHFT                                      19
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BUFFER_LENGTH_ERROR_INT_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BUFFER_LENGTH_ERROR_INT_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BANK_ID_ERR_BMSK                                                 0x20000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BANK_ID_ERR_SHFT                                                      17
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_WARNING_BMSK                                                 0x10000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_WARNING_SHFT                                                      16
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_ERR_CLASSIFY_DIS_BMSK                                         0x2000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_ERR_CLASSIFY_DIS_SHFT                                             13
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_WDG_TO_BMSK                                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_WDG_TO_SHFT                                                       12
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_BMSK                                       0x800
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_SHFT                                          11
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_BMSK                             0x400
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_SHFT                                10
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_BMSK                                         0x200
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_SHFT                                             9
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_ETH_ERR_BMSK                                              0x100
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_ETH_ERR_SHFT                                                  8
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WMAC_ERR_BMSK                                              0x80
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WMAC_ERR_SHFT                                                 7
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WDG_TO_BMSK                                                0x40
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WDG_TO_SHFT                                                   6
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_BMSK                                     0x20
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_SHFT                                        5
+#define HWIO_UMCMN_R0_IMR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_IMR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_ERR_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_ERR_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_IMR_S13_ADDR(x)                                                           ((x) + 0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_PHYS(x)                                                           ((x) + 0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_OFFS                                                              (0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_IMR_S13_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S13_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S13_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S13_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S13_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S13_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S13_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S13_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S13_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S13_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S13_IN(x))
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_BMSK                               0x20000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_SHFT                                    17
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_BMSK                               0x10000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_SHFT                                    16
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_SHFT                                       12
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_BMSK                                   0x800
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_SHFT                                      11
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_BMSK                                   0x400
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_SHFT                                      10
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_BMSK                                      0x100
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_SHFT                                          8
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_BMSK                                       0x40
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_SHFT                                          6
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_REQ_ERR_BMSK                                            0x20
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_REQ_ERR_SHFT                                               5
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_WDG_ERR_BMSK                                            0x10
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_WDG_ERR_SHFT                                               4
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_BMSK                                          0x8
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_SHFT                                            3
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_BMSK                                          0x4
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_SHFT                                            2
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_BMSK                                          0x2
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_SHFT                                            1
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_IMR_S14_ADDR(x)                                                           ((x) + 0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_PHYS(x)                                                           ((x) + 0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_OFFS                                                              (0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_RMSK                                                               0x7ffffff
+#define HWIO_UMCMN_R0_IMR_S14_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S14_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S14_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S14_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S14_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S14_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S14_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S14_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S14_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S14_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S14_IN(x))
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                 0x4000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        26
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_BMSK                               0x2000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_SHFT                                      25
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_BMSK                          0x1000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 24
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                  0x800000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        23
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_BMSK                                0x400000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_SHFT                                      22
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_BMSK                           0x200000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 21
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                   0x100000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         20
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_BMSK                                  0x80000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_SHFT                                       19
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_BMSK                             0x40000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  18
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                    0x20000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         17
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_SHFT                                       16
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S14_TQM_CACHE_CTL_ERR_BMSK                                                0x7ff8
+#define HWIO_UMCMN_R0_IMR_S14_TQM_CACHE_CTL_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_IMR_S14_TQM_WARNING_WDG_TIMEOUT_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S14_TQM_WARNING_WDG_TIMEOUT_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S14_TQM_HW_ERROR_INTR_TIMEOUT_BMSK                                           0x2
+#define HWIO_UMCMN_R0_IMR_S14_TQM_HW_ERROR_INTR_TIMEOUT_SHFT                                             1
+#define HWIO_UMCMN_R0_IMR_S14_TQM_SW_PRGM_ERR_BMSK                                                     0x1
+#define HWIO_UMCMN_R0_IMR_S14_TQM_SW_PRGM_ERR_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_IMR_S15_ADDR(x)                                                           ((x) + 0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_PHYS(x)                                                           ((x) + 0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_OFFS                                                              (0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_RMSK                                                                  0x7fff
+#define HWIO_UMCMN_R0_IMR_S15_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S15_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S15_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S15_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S15_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S15_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S15_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S15_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S15_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S15_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S15_IN(x))
+#define HWIO_UMCMN_R0_IMR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_HWSCH_CMD_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_HWSCH_CMD_SHFT                                                13
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_SW_CMD_BMSK                                               0x1000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_SW_CMD_SHFT                                                   12
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_BMSK                                      0x800
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_SHFT                                         11
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_BMSK                                      0x400
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_SHFT                                         10
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_BMSK                                      0x200
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_SHFT                                          9
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_SATURATE_BMSK                                       0x100
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_SATURATE_SHFT                                           8
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_SATURATE_BMSK                                        0x80
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_SATURATE_SHFT                                           7
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_SATURATE_BMSK                                        0x40
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_SATURATE_SHFT                                           6
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_BMSK                                   0x20
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_SHFT                                      5
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_BMSK                                   0x10
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_SHFT                                      4
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_BMSK                                    0x8
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_SHFT                                      3
+#define HWIO_UMCMN_R0_IMR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_BMSK                                0x4
+#define HWIO_UMCMN_R0_IMR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_SHFT                                  2
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_REQ_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_REQ_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_WDG_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_WDG_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_IMR_S16_ADDR(x)                                                           ((x) + 0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_PHYS(x)                                                           ((x) + 0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_OFFS                                                              (0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_RMSK                                                                    0x1f
+#define HWIO_UMCMN_R0_IMR_S16_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S16_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S16_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S16_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S16_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S16_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S16_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S16_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S16_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S16_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S16_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S16_IN(x))
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_ERR_BMSK                                                   0x10
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_ERR_SHFT                                                      4
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_WR_ERR_BMSK                                                  0x8
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_WR_ERR_SHFT                                                    3
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_RD_ERR_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_RD_ERR_SHFT                                                    2
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_LAST_WR_ERR_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_LAST_WR_ERR_SHFT                                                   1
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_WAR_BMSK                                                    0x1
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_WAR_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_IMR_S17_ADDR(x)                                                           ((x) + 0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_PHYS(x)                                                           ((x) + 0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_OFFS                                                              (0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_RMSK                                                                  0xffff
+#define HWIO_UMCMN_R0_IMR_S17_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S17_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S17_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S17_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S17_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S17_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S17_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S17_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S17_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S17_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S17_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S17_IN(x))
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x4000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_SHFT                                  14
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_SHFT                                     13
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_BMSK                                 0x1000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_SHFT                                     12
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_BMSK                               0x800
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_SHFT                                  11
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_BMSK                               0x400
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_SHFT                                  10
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_BMSK                                0x200
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_SHFT                                    9
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_BMSK                                0x100
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_SHFT                                    8
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_BMSK                                    0x80
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_SHFT                                       7
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_BMSK                                    0x40
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_SHFT                                       6
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_BMSK                                0x20
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_SHFT                                   5
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_BMSK                                0x10
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_SHFT                                   4
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_BMSK                                  0x8
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_SHFT                                    3
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_BMSK                                  0x4
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_SHFT                                    2
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_BMSK                                     0x2
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_SHFT                                       1
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_BMSK                                  0x1
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_SHFT                                    0
+
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x)                                                    ((x) + 0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_PHYS(x)                                                    ((x) + 0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OFFS                                                       (0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_RMSK                                                              0x1
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_POR                                                        0x00000000
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_POR_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ATTR                                                                    0x3
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x))
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x), m)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x),v)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x),m,v,HWIO_UMCMN_R0_WOCLR_ISR_P_EN_IN(x))
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_VAL_BMSK                                                          0x1
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_VAL_SHFT                                                            0
+
+#define HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x)                                                     ((x) + 0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_PHYS(x)                                                     ((x) + 0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_OFFS                                                        (0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_POR                                                         0x20040000
+#define HWIO_UMCMN_R0_UMAC_REVISION_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_ATTR                                                                     0x1
+#define HWIO_UMCMN_R0_UMAC_REVISION_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_REVISION_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_REVISION_MAJOR_BMSK                                                  0xf0000000
+#define HWIO_UMCMN_R0_UMAC_REVISION_MAJOR_SHFT                                                          28
+#define HWIO_UMCMN_R0_UMAC_REVISION_MINOR_BMSK                                                   0xfff0000
+#define HWIO_UMCMN_R0_UMAC_REVISION_MINOR_SHFT                                                          16
+#define HWIO_UMCMN_R0_UMAC_REVISION_STEP_BMSK                                                       0xffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_STEP_SHFT                                                            0
+
+#define HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x)                                                        ((x) + 0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_PHYS(x)                                                        ((x) + 0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OFFS                                                           (0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_RMSK                                                             0x3bffff
+#define HWIO_UMCMN_R0_IDLE_CTRL0_POR                                                            0x000007de
+#define HWIO_UMCMN_R0_IDLE_CTRL0_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_IDLE_CTRL0_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x))
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x), m)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x),v)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x),m,v,HWIO_UMCMN_R0_IDLE_CTRL0_IN(x))
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_NOC_IDLE_REQ_BMSK                                          0x200000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_NOC_IDLE_REQ_SHFT                                                21
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_WBM_IDLE_REQ_BMSK                                          0x100000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_WBM_IDLE_REQ_SHFT                                                20
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TQM_IDLE_REQ_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TQM_IDLE_REQ_SHFT                                                19
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_REO_IDLE_REQ_BMSK                                           0x20000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_REO_IDLE_REQ_SHFT                                                17
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TCL_IDLE_REQ_BMSK                                           0x10000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TCL_IDLE_REQ_SHFT                                                16
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INTER_STATE_DLY_BMSK                                               0xffc0
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INTER_STATE_DLY_SHFT                                                    6
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IDLE_INTG_CHK_DLY_BMSK                                               0x3e
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IDLE_INTG_CHK_DLY_SHFT                                                  1
+#define HWIO_UMCMN_R0_IDLE_CTRL0_SW_IDLE_REQ_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_IDLE_CTRL0_SW_IDLE_REQ_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x)                                              ((x) + 0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_PHYS(x)                                              ((x) + 0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OFFS                                                 (0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_RMSK                                                     0x1f9f
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_POR                                                  0x00000000
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ATTR                                                              0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_DATA_BMSK                                0x1000
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_DATA_SHFT                                    12
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_OVR_BMSK                                  0x800
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_OVR_SHFT                                     11
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_DATA_BMSK                                 0x400
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_DATA_SHFT                                    10
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_OVR_BMSK                                  0x200
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_OVR_SHFT                                      9
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_DATA_BMSK                                 0x100
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_DATA_SHFT                                     8
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_OVR_BMSK                                   0x80
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_OVR_SHFT                                      7
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_DATA_BMSK                                  0x10
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_DATA_SHFT                                     4
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_OVR_BMSK                                    0x8
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_OVR_SHFT                                      3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_DATA_BMSK                                   0x4
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_DATA_SHFT                                     2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_OVR_BMSK                                    0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_OVR_SHFT                                      1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_GLOBAL_SW_OVR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_GLOBAL_SW_OVR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x)                                             ((x) + 0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_PHYS(x)                                             ((x) + 0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OFFS                                                (0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_RMSK                                                   0x3ffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_POR                                                 0x00000001
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_WAIT_IN_STATE_BMSK                                 0x3fffc
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_WAIT_IN_STATE_SHFT                                       2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_FORCE_IDLE_BMSK                                        0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_FORCE_IDLE_SHFT                                          1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_EN_BMSK                                                0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_EN_SHFT                                                  0
+
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x)                                                       ((x) + 0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_PHYS(x)                                                       ((x) + 0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_OFFS                                                          (0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_RMSK                                                                0x1f
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_POR                                                           0x0000001f
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_POR_RMSK                                                      0xffffffff
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_ATTR                                                                       0x1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x))
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x), m)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_MXI_BMSK                                                            0x10
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_MXI_SHFT                                                               4
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_REO_BMSK                                                             0x8
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_REO_SHFT                                                               3
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TCL_BMSK                                                             0x4
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TCL_SHFT                                                               2
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_WBM_BMSK                                                             0x2
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_WBM_SHFT                                                               1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TQM_BMSK                                                             0x1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TQM_SHFT                                                               0
+
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x)                                             ((x) + 0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_PHYS(x)                                             ((x) + 0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_OFFS                                                (0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_RMSK                                                      0x1e
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_POR                                                 0x00000000
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ATTR                                                             0x1
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x))
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_WBM_REL_RING_BMSK                                         0x10
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_WBM_REL_RING_SHFT                                            4
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TQM_CMD_RING_BMSK                                          0x8
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TQM_CMD_RING_SHFT                                            3
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_REO_CMD_RING_BMSK                                          0x4
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_REO_CMD_RING_SHFT                                            2
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TCL_CMD_RING_BMSK                                          0x2
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TCL_CMD_RING_SHFT                                            1
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x)                                      ((x) + 0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_PHYS(x)                                      ((x) + 0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OFFS                                         (0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_RMSK                                              0xfcf
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_POR                                          0x00000000
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_POR_RMSK                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ATTR                                                      0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_DATA_BMSK                          0x800
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_DATA_SHFT                             11
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_BMSK                               0x400
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_SHFT                                  10
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_DATA_BMSK                          0x200
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_DATA_SHFT                              9
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_BMSK                               0x100
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_SHFT                                   8
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_DATA_BMSK                           0x80
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_DATA_SHFT                              7
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_BMSK                                0x40
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_SHFT                                   6
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_DATA_BMSK                            0x8
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_DATA_SHFT                              3
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_SHFT                                   2
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_DATA_BMSK                            0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_DATA_SHFT                              1
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_S_PARE_0_ADDR(x)                                                          ((x) + 0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_PHYS(x)                                                          ((x) + 0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_OFFS                                                             (0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_0_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_0_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_0_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_0_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_0_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_0_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_0_S_PARE_0_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_S_PARE_0_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_1_ADDR(x)                                                          ((x) + 0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_PHYS(x)                                                          ((x) + 0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_OFFS                                                             (0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_1_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_1_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_1_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_1_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_1_S_PARE_1_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_S_PARE_1_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_2_ADDR(x)                                                          ((x) + 0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_PHYS(x)                                                          ((x) + 0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_OFFS                                                             (0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_2_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_2_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_2_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_2_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_2_S_PARE_2_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_S_PARE_2_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_3_ADDR(x)                                                          ((x) + 0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_PHYS(x)                                                          ((x) + 0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_OFFS                                                             (0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_3_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_3_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_3_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_3_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_3_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_3_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_3_S_PARE_3_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_S_PARE_3_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x)                                                  ((x) + 0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_PHYS(x)                                                  ((x) + 0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OFFS                                                     (0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_RMSK                                                         0xffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_POR                                                      0x00000008
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_VALUE_BMSK                                                   0xffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_VALUE_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x)                                               ((x) + 0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_PHYS(x)                                               ((x) + 0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OFFS                                                  (0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_RMSK                                                         0xf
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_POR                                                   0x00000000
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ATTR                                                               0x3
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_IN(x))
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_SUBSYSTEM_ID_BMSK                                            0xc
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_SUBSYSTEM_ID_SHFT                                              2
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_TESTBUS_VALID_CONTROL_BMSK                                   0x3
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_TESTBUS_VALID_CONTROL_SHFT                                     0
+
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x)                                                  ((x) + 0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_PHYS(x)                                                  ((x) + 0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_OFFS                                                     (0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_RMSK                                                           0x3f
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ATTR                                                                  0x1
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKON_OUT_BMSK                                    0x20
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKON_OUT_SHFT                                       5
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKDIV_BMSK                                       0x1f
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKDIV_SHFT                                          0
+
+#define HWIO_UMCMN_R0_BUF_INIT_ADDR(x)                                                          ((x) + 0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_PHYS(x)                                                          ((x) + 0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_OFFS                                                             (0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_RMSK                                                                    0x1
+#define HWIO_UMCMN_R0_BUF_INIT_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_BUF_INIT_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_BUF_INIT_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_BUF_INIT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_BUF_INIT_ADDR(x))
+#define HWIO_UMCMN_R0_BUF_INIT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_BUF_INIT_ADDR(x), m)
+#define HWIO_UMCMN_R0_BUF_INIT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_BUF_INIT_ADDR(x),v)
+#define HWIO_UMCMN_R0_BUF_INIT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_BUF_INIT_ADDR(x),m,v,HWIO_UMCMN_R0_BUF_INIT_IN(x))
+#define HWIO_UMCMN_R0_BUF_INIT_VALUE_BMSK                                                              0x1
+#define HWIO_UMCMN_R0_BUF_INIT_VALUE_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_CONTROL_ADDR(x)                                                           ((x) + 0x108)
+#define HWIO_UMCMN_R0_CONTROL_PHYS(x)                                                           ((x) + 0x108)
+#define HWIO_UMCMN_R0_CONTROL_OFFS                                                              (0x108)
+#define HWIO_UMCMN_R0_CONTROL_RMSK                                                                     0x1
+#define HWIO_UMCMN_R0_CONTROL_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_CONTROL_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_CONTROL_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_CONTROL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CONTROL_ADDR(x))
+#define HWIO_UMCMN_R0_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CONTROL_ADDR(x), m)
+#define HWIO_UMCMN_R0_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CONTROL_ADDR(x),v)
+#define HWIO_UMCMN_R0_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CONTROL_ADDR(x),m,v,HWIO_UMCMN_R0_CONTROL_IN(x))
+#define HWIO_UMCMN_R0_CONTROL_ENABLE_VALUE_BMSK                                                        0x1
+#define HWIO_UMCMN_R0_CONTROL_ENABLE_VALUE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x)                                                ((x) + 0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_PHYS(x)                                                ((x) + 0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OFFS                                                   (0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_POR                                                    0x00000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_IN(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_BMSK                                    0x80000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_SHFT                                            31
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_APB_BMSK                                0x40000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_APB_SHFT                                        30
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_TBD_BMSK                                               0x3ffffffc
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_TBD_SHFT                                                        2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_APB_VAL_BMSK                                                  0x2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_APB_VAL_SHFT                                                    1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_VAL_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_VAL_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x)                                ((x) + 0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_PHYS(x)                                ((x) + 0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OFFS                                   (0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_RMSK                                         0x7f
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_POR                                    0x00000000
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_POR_RMSK                               0xffffffff
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ATTR                                                0x3
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x))
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x), m)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x),v)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x),m,v,HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_IN(x))
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_UMAC_BMSK                                    0x40
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_UMAC_SHFT                                       6
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WCMN_MISC_EVENT_BMSK                     0x20
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WCMN_MISC_EVENT_SHFT                        5
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WCMN_MISC_EVENT_BMSK                         0x10
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WCMN_MISC_EVENT_SHFT                            4
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC2_BMSK                                0x8
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC2_SHFT                                  3
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC1_BMSK                                0x4
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC1_SHFT                                  2
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC2_BMSK                                    0x2
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC2_SHFT                                      1
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC1_BMSK                                    0x1
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC1_SHFT                                      0
+
+#define HWIO_UMCMN_R0_VID0_ADDR(x)                                                              ((x) + 0x114)
+#define HWIO_UMCMN_R0_VID0_PHYS(x)                                                              ((x) + 0x114)
+#define HWIO_UMCMN_R0_VID0_OFFS                                                                 (0x114)
+#define HWIO_UMCMN_R0_VID0_RMSK                                                                 0x1ffffff1
+#define HWIO_UMCMN_R0_VID0_POR                                                                  0x0d314830
+#define HWIO_UMCMN_R0_VID0_POR_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_VID0_ATTR                                                                              0x3
+#define HWIO_UMCMN_R0_VID0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_VID0_ADDR(x))
+#define HWIO_UMCMN_R0_VID0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_VID0_ADDR(x), m)
+#define HWIO_UMCMN_R0_VID0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_VID0_ADDR(x),v)
+#define HWIO_UMCMN_R0_VID0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_VID0_ADDR(x),m,v,HWIO_UMCMN_R0_VID0_IN(x))
+#define HWIO_UMCMN_R0_VID0_MXI_BMSK                                                             0x1f000000
+#define HWIO_UMCMN_R0_VID0_MXI_SHFT                                                                     24
+#define HWIO_UMCMN_R0_VID0_TCL_BMSK                                                               0xf80000
+#define HWIO_UMCMN_R0_VID0_TCL_SHFT                                                                     19
+#define HWIO_UMCMN_R0_VID0_WBM_BMSK                                                                0x7c000
+#define HWIO_UMCMN_R0_VID0_WBM_SHFT                                                                     14
+#define HWIO_UMCMN_R0_VID0_TQM_BMSK                                                                 0x3e00
+#define HWIO_UMCMN_R0_VID0_TQM_SHFT                                                                      9
+#define HWIO_UMCMN_R0_VID0_REO_BMSK                                                                  0x1f0
+#define HWIO_UMCMN_R0_VID0_REO_SHFT                                                                      4
+#define HWIO_UMCMN_R0_VID0_MODULE_EN_BMSK                                                              0x1
+#define HWIO_UMCMN_R0_VID0_MODULE_EN_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_VID0_EXT_ADDR(x)                                                          ((x) + 0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_PHYS(x)                                                          ((x) + 0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_OFFS                                                             (0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_RMSK                                                                0xfffff
+#define HWIO_UMCMN_R0_VID0_EXT_POR                                                              0x0005a928
+#define HWIO_UMCMN_R0_VID0_EXT_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_VID0_EXT_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_VID0_EXT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_VID0_EXT_ADDR(x))
+#define HWIO_UMCMN_R0_VID0_EXT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_VID0_EXT_ADDR(x), m)
+#define HWIO_UMCMN_R0_VID0_EXT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_VID0_EXT_ADDR(x),v)
+#define HWIO_UMCMN_R0_VID0_EXT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_VID0_EXT_ADDR(x),m,v,HWIO_UMCMN_R0_VID0_EXT_IN(x))
+#define HWIO_UMCMN_R0_VID0_EXT_TQM2_BMSK                                                           0xf8000
+#define HWIO_UMCMN_R0_VID0_EXT_TQM2_SHFT                                                                15
+#define HWIO_UMCMN_R0_VID0_EXT_REO2_BMSK                                                            0x7c00
+#define HWIO_UMCMN_R0_VID0_EXT_REO2_SHFT                                                                10
+#define HWIO_UMCMN_R0_VID0_EXT_WBM2_BMSK                                                             0x3e0
+#define HWIO_UMCMN_R0_VID0_EXT_WBM2_SHFT                                                                 5
+#define HWIO_UMCMN_R0_VID0_EXT_TCL_1_BMSK                                                             0x1f
+#define HWIO_UMCMN_R0_VID0_EXT_TCL_1_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_SS_ID_ADDR(x)                                                             ((x) + 0x11c)
+#define HWIO_UMCMN_R0_SS_ID_PHYS(x)                                                             ((x) + 0x11c)
+#define HWIO_UMCMN_R0_SS_ID_OFFS                                                                (0x11c)
+#define HWIO_UMCMN_R0_SS_ID_RMSK                                                                     0x7e1
+#define HWIO_UMCMN_R0_SS_ID_POR                                                                 0x000001e0
+#define HWIO_UMCMN_R0_SS_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_SS_ID_ATTR                                                                             0x3
+#define HWIO_UMCMN_R0_SS_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_SS_ID_ADDR(x))
+#define HWIO_UMCMN_R0_SS_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_SS_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_SS_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_SS_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_SS_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_SS_ID_ADDR(x),m,v,HWIO_UMCMN_R0_SS_ID_IN(x))
+#define HWIO_UMCMN_R0_SS_ID_WCMN_MISC_BMSK                                                           0x600
+#define HWIO_UMCMN_R0_SS_ID_WCMN_MISC_SHFT                                                               9
+#define HWIO_UMCMN_R0_SS_ID_UMAC_DBG_BMSK                                                            0x180
+#define HWIO_UMCMN_R0_SS_ID_UMAC_DBG_SHFT                                                                7
+#define HWIO_UMCMN_R0_SS_ID_UMAC_BMSK                                                                 0x60
+#define HWIO_UMCMN_R0_SS_ID_UMAC_SHFT                                                                    5
+#define HWIO_UMCMN_R0_SS_ID_ENABLE_BMSK                                                                0x1
+#define HWIO_UMCMN_R0_SS_ID_ENABLE_SHFT                                                                  0
+
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x)                                                   ((x) + 0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_PHYS(x)                                                   ((x) + 0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OFFS                                                      (0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_RMSK                                                             0x1
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_TESTBUS_OUT_IN(x))
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ENABLE_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ENABLE_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n)                                            ((base) + 0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_PHYS(base,n)                                            ((base) + 0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OFFS(n)                                                 (0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_RMSK                                                        0x7c1f
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_MAXn                                                             7
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_POR                                                     0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ATTR                                                                 0x3
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n), HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_RMSK)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n), mask)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OUTI(base,n,val)        \
+                out_dword(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n),val)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n),mask,val,HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INI(base,n))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_BLK_SEL_BMSK                                                0x7c00
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_BLK_SEL_SHFT                                                    10
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_SIG_SEL_BMSK                                                  0x1f
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_SIG_SEL_SHFT                                                     0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n)                              ((base) + 0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_PHYS(base,n)                              ((base) + 0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_OFFS(n)                                   (0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_RMSK                                      0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_MAXn                                               7
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_POR                                       0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_POR_RMSK                                  0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ATTR                                                   0x1
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n), HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_RMSK)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n), mask)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_VALUE_BMSK                                0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_VALUE_SHFT                                         0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x)                                                ((x) + 0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_PHYS(x)                                                ((x) + 0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OFFS                                                   (0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_POR                                                    0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x),v)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x),m,v,HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_IN(x))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_VALUE_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x)                                    ((x) + 0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_PHYS(x)                                    ((x) + 0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OFFS                                       (0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_RMSK                                              0xf
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_POR                                        0x0000000a
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_POR_RMSK                                   0xffffffff
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ATTR                                                    0x3
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x))
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x), m)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x),v)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x),m,v,HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_IN(x))
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_VALUE_BMSK                                        0xf
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_VALUE_SHFT                                          0
+
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x)                                                      ((x) + 0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_PHYS(x)                                                      ((x) + 0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OFFS                                                         (0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_RMSK                                                            0x3ffff
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_POR                                                          0x0002c688
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_POR_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_ATTR                                                                      0x3
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_LINK_ID_IN(x))
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_5_BMSK                                                  0x38000
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_5_SHFT                                                       15
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_4_BMSK                                                   0x7000
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_4_SHFT                                                       12
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_3_BMSK                                                    0xe00
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_3_SHFT                                                        9
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_2_BMSK                                                    0x1c0
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_2_SHFT                                                        6
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_1_BMSK                                                     0x38
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_1_SHFT                                                        3
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_0_BMSK                                                      0x7
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_0_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x)                                                    ((x) + 0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_PHYS(x)                                                    ((x) + 0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OFFS                                                       (0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_RMSK                                                             0x3f
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_POR                                                        0x0000003f
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_POR_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_ATTR                                                                    0x3
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x))
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x),m,v,HWIO_UMCMN_R0_ENABLE_LINK_ID_IN(x))
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_5_BMSK                                        0x20
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_5_SHFT                                           5
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_4_BMSK                                        0x10
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_4_SHFT                                           4
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_3_BMSK                                         0x8
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_3_SHFT                                           3
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_2_BMSK                                         0x4
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_2_SHFT                                           2
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_1_BMSK                                         0x2
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_1_SHFT                                           1
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_0_BMSK                                         0x1
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_0_SHFT                                           0
+
+#define HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x)                                                        ((x) + 0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_PHYS(x)                                                        ((x) + 0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OFFS                                                           (0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_RMSK                                                           0x7fffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_POR                                                            0x00000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_TRC_CTRL_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x),m,v,HWIO_UMCMN_R0_TRC_CTRL_1_IN(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTBUS_VALID_BMSK                                         0x40000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTBUS_VALID_SHFT                                                 30
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_MODULE_ID_BMSK                                              0x3c000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_MODULE_ID_SHFT                                                      26
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENT_ID_BMSK                                                0x3f00000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENT_ID_SHFT                                                       20
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTDATA_BMSK                                                 0xfffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTDATA_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x)                                                        ((x) + 0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_PHYS(x)                                                        ((x) + 0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OFFS                                                           (0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_POR                                                            0x00000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_TRC_CTRL_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x),m,v,HWIO_UMCMN_R0_TRC_CTRL_2_IN(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_EVENT_SEL_BMSK                                             0x80000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_EVENT_SEL_SHFT                                                     31
+#define HWIO_UMCMN_R0_TRC_CTRL_2_SUB_SYS_TESTBUS_SEL_BMSK                                       0x70000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_SUB_SYS_TESTBUS_SEL_SHFT                                               28
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_1_BMSK                                       0xff00000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_1_SHFT                                              20
+#define HWIO_UMCMN_R0_TRC_CTRL_2_UMAC_MISC_TRC_EVENT_SEL_BMSK                                      0x80000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_UMAC_MISC_TRC_EVENT_SEL_SHFT                                           19
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_BUS_MUX_SEL_BMSK                                              0x78000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_BUS_MUX_SEL_SHFT                                                   15
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_2_BMSK                                          0x7fff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_2_SHFT                                               0
+
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x)                                                     ((x) + 0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_PHYS(x)                                                     ((x) + 0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OFFS                                                        (0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_POR                                                         0x00000000
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_ATTR                                                                     0x3
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x), m)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x),v)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x),m,v,HWIO_UMCMN_R0_EVENTMASK_IX0_IN(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_VALUE_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x)                                                     ((x) + 0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_PHYS(x)                                                     ((x) + 0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OFFS                                                        (0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_POR                                                         0x00000000
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_ATTR                                                                     0x3
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x), m)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x),v)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x),m,v,HWIO_UMCMN_R0_EVENTMASK_IX1_IN(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_VALUE_SHFT                                                           0
+
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x)                                              ((x) + 0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_PHYS(x)                                              ((x) + 0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_OFFS                                                 (0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_RMSK                                                      0xfff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_POR                                                  0x00000000
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ATTR                                                              0x1
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                0xfff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                    0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x)                                                         ((x) + 0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_PHYS(x)                                                         ((x) + 0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_OFFS                                                            (0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_RMSK                                                                  0x1f
+#define HWIO_UMCMN_R1_UMAC_IDLE_POR                                                             0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_POR_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_ATTR                                                                         0x1
+#define HWIO_UMCMN_R1_UMAC_IDLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_UMAC_IDLE_GEN_MOD_BUSY_BMSK                                           0x10
+#define HWIO_UMCMN_R1_UMAC_IDLE_UMAC_IDLE_GEN_MOD_BUSY_SHFT                                              4
+#define HWIO_UMCMN_R1_UMAC_IDLE_MAIN_SM_CS_BMSK                                                        0xf
+#define HWIO_UMCMN_R1_UMAC_IDLE_MAIN_SM_CS_SHFT                                                          0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x)                                         ((x) + 0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_PHYS(x)                                         ((x) + 0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_OFFS                                            (0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_RMSK                                              0xffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_POR                                             0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_POR_RMSK                                        0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ATTR                                                         0x1
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_VALUE_BMSK                                        0xffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_VALUE_SHFT                                               0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x)                                                 ((x) + 0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_PHYS(x)                                                 ((x) + 0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OFFS                                                    (0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_RMSK                                                         0x7df
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_POR                                                     0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ATTR                                                                 0x3
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x),v)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x),m,v,HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IN(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IDLE_ERR_STATUS_SW_WDATA_BMSK                                0x7c0
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IDLE_ERR_STATUS_SW_WDATA_SHFT                                    6
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_STATUS_BMSK                                                   0x1f
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_STATUS_SHFT                                                      0
+
+/*----------------------------------------------------------------------------
+ * MODULE: MAC_TCL_REG
+ *--------------------------------------------------------------------------*/
+
+#define MAC_TCL_REG_REG_BASE                                                                                (UMAC_BASE      + 0x00044000)
+#define MAC_TCL_REG_REG_BASE_SIZE                                                                           0x3000
+#define MAC_TCL_REG_REG_BASE_USED                                                                           0x205c
+#define MAC_TCL_REG_REG_BASE_PHYS                                                                           (UMAC_BASE_PHYS + 0x00044000)
+#define MAC_TCL_REG_REG_BASE_OFFS                                                                           0x00044000
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OFFS                                                                  (0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OFFS                                                                  (0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x)                                                               ((x) + 0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_PHYS(x)                                                               ((x) + 0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OFFS                                                                  (0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OFFS                                                                  (0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x)                                                               ((x) + 0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_PHYS(x)                                                               ((x) + 0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OFFS                                                                  (0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x)                                                         ((x) + 0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_PHYS(x)                                                         ((x) + 0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OFFS                                                            (0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RMSK                                                               0x3ffe0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_POR                                                             0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ATTR                                                                         0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_TIMEOUT_VAL_BMSK                                                   0x3ffc0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_TIMEOUT_VAL_SHFT                                                         6
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RNG_PRTY_BMSK                                                         0x20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RNG_PRTY_SHFT                                                            5
+
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OFFS                                                             (0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_RMSK                                                              0x7fb7b7f
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_POR                                                              0x03700000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x))
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x), m)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x),v)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x),m,v,HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_IN(x))
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_VLAN_LLC_SEL_BMSK                                                 0x4000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_VLAN_LLC_SEL_SHFT                                                        26
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INSERT_VLAN_EN_BMSK                                               0x2000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INSERT_VLAN_EN_SHFT                                                      25
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_STOP_META_RD_AT_8B_BDRY_BMSK                                      0x1000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_STOP_META_RD_AT_8B_BDRY_SHFT                                             24
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_DSCP_TID_MAP_PROGRAM_EN_BMSK                                       0x800000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_DSCP_TID_MAP_PROGRAM_EN_SHFT                                             23
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_EXTN_NUM_BUF_RD_BMSK                                          0x700000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_EXTN_NUM_BUF_RD_SHFT                                                20
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_TCL_IDLE_BMSK                                                       0x80000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_TCL_IDLE_SHFT                                                            19
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_STAT_BMSK                                   0x20000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_STAT_SHFT                                        17
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_STAT_BMSK                                          0x10000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_STAT_SHFT                                               16
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_STAT_BMSK                                           0x4000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_STAT_SHFT                                               14
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_STAT_BMSK                                           0x2000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_STAT_SHFT                                               13
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_STAT_BMSK                                           0x1000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_STAT_SHFT                                               12
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_STAT_BMSK                                            0x800
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_STAT_SHFT                                               11
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_BMSK                                          0x200
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_SHFT                                              9
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_BMSK                                                 0x100
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_SHFT                                                     8
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_BMSK                                                  0x40
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_SHFT                                                     6
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_BMSK                                                  0x20
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_SHFT                                                     5
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_BMSK                                                  0x10
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_SHFT                                                     4
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_BMSK                                                   0x8
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_SHFT                                                     3
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_HDR_FWD_EN_BMSK                                                         0x4
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_HDR_FWD_EN_SHFT                                                           2
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_HDR_LEN_SEL_BMSK                                                   0x2
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_HDR_LEN_SEL_SHFT                                                     1
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_CLFY_DIS_BMSK                                                           0x1
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_CLFY_DIS_SHFT                                                             0
+
+#define HWIO_TCL_R0_CMN_CONFIG_ADDR(x)                                                                      ((x) + 0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_PHYS(x)                                                                      ((x) + 0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_OFFS                                                                         (0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_RMSK                                                                          0xfffffff
+#define HWIO_TCL_R0_CMN_CONFIG_POR                                                                          0x067993a2
+#define HWIO_TCL_R0_CMN_CONFIG_POR_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R0_CMN_CONFIG_ATTR                                                                                      0x3
+#define HWIO_TCL_R0_CMN_CONFIG_IN(x)            \
+                in_dword(HWIO_TCL_R0_CMN_CONFIG_ADDR(x))
+#define HWIO_TCL_R0_CMN_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CMN_CONFIG_ADDR(x), m)
+#define HWIO_TCL_R0_CMN_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CMN_CONFIG_ADDR(x),v)
+#define HWIO_TCL_R0_CMN_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CMN_CONFIG_ADDR(x),m,v,HWIO_TCL_R0_CMN_CONFIG_IN(x))
+#define HWIO_TCL_R0_CMN_CONFIG_VDEV_ID_MISMATCH_DROP_REASON_EN_BMSK                                          0x8000000
+#define HWIO_TCL_R0_CMN_CONFIG_VDEV_ID_MISMATCH_DROP_REASON_EN_SHFT                                                 27
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_PPE_DESC_BMSK                                                0x4000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_PPE_DESC_SHFT                                                       26
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_BANK_ID_BMSK                                                 0x2000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_BANK_ID_SHFT                                                        25
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_MIN_BUFFER_LEN_ERR_BMSK                                              0x1000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_MIN_BUFFER_LEN_ERR_SHFT                                                     24
+#define HWIO_TCL_R0_CMN_CONFIG_ASE_SKIP_SEARCH_EN_BMSK                                                        0x800000
+#define HWIO_TCL_R0_CMN_CONFIG_ASE_SKIP_SEARCH_EN_SHFT                                                              23
+#define HWIO_TCL_R0_CMN_CONFIG_MCAST_CMN_PN_SN_MLO_REINJECT_ENABLE_BMSK                                       0x400000
+#define HWIO_TCL_R0_CMN_CONFIG_MCAST_CMN_PN_SN_MLO_REINJECT_ENABLE_SHFT                                             22
+#define HWIO_TCL_R0_CMN_CONFIG_VDEVID_MISMATCH_EXCEPTION_BMSK                                                 0x200000
+#define HWIO_TCL_R0_CMN_CONFIG_VDEVID_MISMATCH_EXCEPTION_SHFT                                                       21
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_POINTER_NULL_EXCEPTION_BMSK                                               0x100000
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_POINTER_NULL_EXCEPTION_SHFT                                                     20
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_OVERRIDE_EXCEPTION_BMSK                                                    0x80000
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_OVERRIDE_EXCEPTION_SHFT                                                         19
+#define HWIO_TCL_R0_CMN_CONFIG_TX_NOTIFY_PRIORITY_BMSK                                                         0x40000
+#define HWIO_TCL_R0_CMN_CONFIG_TX_NOTIFY_PRIORITY_SHFT                                                              18
+#define HWIO_TCL_R0_CMN_CONFIG_PMAC_ID_SEL_BMSK                                                                0x20000
+#define HWIO_TCL_R0_CMN_CONFIG_PMAC_ID_SEL_SHFT                                                                     17
+#define HWIO_TCL_R0_CMN_CONFIG_C9D1_8870_VALUE_BMSK                                                            0x1fffe
+#define HWIO_TCL_R0_CMN_CONFIG_C9D1_8870_VALUE_SHFT                                                                  1
+#define HWIO_TCL_R0_CMN_CONFIG_ENABLE_C9D1_8870_BMSK                                                               0x1
+#define HWIO_TCL_R0_CMN_CONFIG_ENABLE_C9D1_8870_SHFT                                                                 0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x)                                                               ((x) + 0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_PHYS(x)                                                               ((x) + 0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OFFS                                                                  (0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_RMSK                                                                      0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_DROP_NO_DROP_PRIORITY_BMSK                                                0xc000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_DROP_NO_DROP_PRIORITY_SHFT                                                    14
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_RING_BMSK                                                      0x2000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_RING_SHFT                                                          13
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_REQUIRED_BMSK                                                  0x1000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_REQUIRED_SHFT                                                      12
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TIMEOUT_VAL_BMSK                                                           0xfff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TIMEOUT_VAL_SHFT                                                               0
+
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x)                                                                ((x) + 0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_PHYS(x)                                                                ((x) + 0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OFFS                                                                   (0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_RMSK                                                                        0xfff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_POR                                                                    0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_ATTR                                                                                0x3
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_TIMEOUT_VAL_BMSK                                                            0xfff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_TIMEOUT_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x)                                                           ((x) + 0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_PHYS(x)                                                           ((x) + 0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OFFS                                                              (0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_RMSK                                                                   0xfff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_TIMEOUT_VAL_BMSK                                                       0xfff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_TIMEOUT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_GEN_CTRL_ADDR(x)                                                                        ((x) + 0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_PHYS(x)                                                                        ((x) + 0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_OFFS                                                                           (0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_RMSK                                                                           0xffffe1fb
+#define HWIO_TCL_R0_GEN_CTRL_POR                                                                            0x00000000
+#define HWIO_TCL_R0_GEN_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_TCL_R0_GEN_CTRL_ATTR                                                                                        0x3
+#define HWIO_TCL_R0_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_GEN_CTRL_ADDR(x))
+#define HWIO_TCL_R0_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_GEN_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_GEN_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_GEN_CTRL_ADDR(x),m,v,HWIO_TCL_R0_GEN_CTRL_IN(x))
+#define HWIO_TCL_R0_GEN_CTRL_WHO_CLASSIFY_INFO_OFFSET_BMSK                                                  0xffff0000
+#define HWIO_TCL_R0_GEN_CTRL_WHO_CLASSIFY_INFO_OFFSET_SHFT                                                          16
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_L4_BMSK                                                        0x8000
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_L4_SHFT                                                            15
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_ESP_BMSK                                                       0x4000
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_ESP_SHFT                                                           14
+#define HWIO_TCL_R0_GEN_CTRL_FLOW_TOEPLITZ_5_SEL_BMSK                                                           0x2000
+#define HWIO_TCL_R0_GEN_CTRL_FLOW_TOEPLITZ_5_SEL_SHFT                                                               13
+#define HWIO_TCL_R0_GEN_CTRL_CCE_UPDATE_DIS_BMSK                                                                 0x100
+#define HWIO_TCL_R0_GEN_CTRL_CCE_UPDATE_DIS_SHFT                                                                     8
+#define HWIO_TCL_R0_GEN_CTRL_FSE_UPDATE_DIS_BMSK                                                                  0x80
+#define HWIO_TCL_R0_GEN_CTRL_FSE_UPDATE_DIS_SHFT                                                                     7
+#define HWIO_TCL_R0_GEN_CTRL_ADDRY_UPDATE_DIS_BMSK                                                                0x40
+#define HWIO_TCL_R0_GEN_CTRL_ADDRY_UPDATE_DIS_SHFT                                                                   6
+#define HWIO_TCL_R0_GEN_CTRL_ADDRX_UPDATE_DIS_BMSK                                                                0x20
+#define HWIO_TCL_R0_GEN_CTRL_ADDRX_UPDATE_DIS_SHFT                                                                   5
+#define HWIO_TCL_R0_GEN_CTRL_FSE_EN_BMSK                                                                          0x10
+#define HWIO_TCL_R0_GEN_CTRL_FSE_EN_SHFT                                                                             4
+#define HWIO_TCL_R0_GEN_CTRL_CCE_EN_BMSK                                                                           0x8
+#define HWIO_TCL_R0_GEN_CTRL_CCE_EN_SHFT                                                                             3
+#define HWIO_TCL_R0_GEN_CTRL_TO_FW_BMSK                                                                            0x2
+#define HWIO_TCL_R0_GEN_CTRL_TO_FW_SHFT                                                                              1
+#define HWIO_TCL_R0_GEN_CTRL_EN_11AH_BMSK                                                                          0x1
+#define HWIO_TCL_R0_GEN_CTRL_EN_11AH_SHFT                                                                            0
+
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n)                                        ((base) + 0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_PHYS(base,n)                                        ((base) + 0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OFFS(n)                                             (0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_MAXn                                                         1
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_POR                                                 0x005a0060
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ATTR                                                             0x3
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RMSK)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),mask,val,HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INI(base,n))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_NATIVE_WIFI_BMSK                                    0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_NATIVE_WIFI_SHFT                                            16
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RAW_WIFI_BMSK                                           0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RAW_WIFI_SHFT                                                0
+
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n)                                        ((base) + 0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_PHYS(base,n)                                        ((base) + 0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OFFS(n)                                             (0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_MAXn                                                         1
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_POR                                                 0x004a004a
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ATTR                                                             0x3
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_RMSK)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),mask,val,HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INI(base,n))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_IEEE_802_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_IEEE_802_SHFT                                               16
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ETHERNET_II_BMSK                                        0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ETHERNET_II_SHFT                                             0
+
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x)                                               ((x) + 0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_PHYS(x)                                               ((x) + 0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OFFS                                                  (0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_POR                                                   0x00300036
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ATTR                                                               0x3
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x))
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x),m,v,HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_IN(x))
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_NATIVE_WIFI_BMSK                                      0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_NATIVE_WIFI_SHFT                                              16
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RAW_WIFI_BMSK                                             0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RAW_WIFI_SHFT                                                  0
+
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x)                                               ((x) + 0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_PHYS(x)                                               ((x) + 0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OFFS                                                  (0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_POR                                                   0x001a001a
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ATTR                                                               0x3
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x))
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x),m,v,HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IN(x))
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IEEE_802_BMSK                                         0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IEEE_802_SHFT                                                 16
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ETHERNET_II_BMSK                                          0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ETHERNET_II_SHFT                                               0
+
+#define HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x)                                                                  ((x) + 0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PHYS(x)                                                                  ((x) + 0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OFFS                                                                     (0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_RMSK                                                                     0xff3f3cff
+#define HWIO_TCL_R0_UMXI_PRIORITY0_POR                                                                      0x55000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_UMXI_PRIORITY0_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY0_IN(x)            \
+                in_dword(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x), m)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x),v)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x),m,v,HWIO_TCL_R0_UMXI_PRIORITY0_IN(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY0_METADATA_FETCH_GXI_RD_BMSK                                               0xc0000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_METADATA_FETCH_GXI_RD_SHFT                                                       30
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PEER_TABLE_FETCH_GXI_RD_BMSK                                             0x30000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PEER_TABLE_FETCH_GXI_RD_SHFT                                                     28
+#define HWIO_TCL_R0_UMXI_PRIORITY0_DATA_FETCH_GXI_RD_BMSK                                                    0xc000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_DATA_FETCH_GXI_RD_SHFT                                                           26
+#define HWIO_TCL_R0_UMXI_PRIORITY0_EXTN_DESC_GXI_RD_BMSK                                                     0x3000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_EXTN_DESC_GXI_RD_SHFT                                                            24
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL_STATUS1_RING_BMSK                                                      0x300000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL_STATUS1_RING_SHFT                                                            20
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2FW_RING_BMSK                                                            0xc0000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2FW_RING_SHFT                                                                 18
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2TQM_RING_BMSK                                                           0x30000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2TQM_RING_SHFT                                                                16
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL_CREDIT_RING_BMSK                                                      0x3000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL_CREDIT_RING_SHFT                                                          12
+#define HWIO_TCL_R0_UMXI_PRIORITY0_FW2TCL_RING_BMSK                                                              0xc00
+#define HWIO_TCL_R0_UMXI_PRIORITY0_FW2TCL_RING_SHFT                                                                 10
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL4_RING_BMSK                                                              0xc0
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL4_RING_SHFT                                                                 6
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL3_RING_BMSK                                                              0x30
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL3_RING_SHFT                                                                 4
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL2_RING_BMSK                                                               0xc
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL2_RING_SHFT                                                                 2
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL1_RING_BMSK                                                               0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL1_RING_SHFT                                                                 0
+
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OFFS                                                                     (0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_RMSK                                                                            0xf
+#define HWIO_TCL_R0_UMXI_PRIORITY1_POR                                                                      0x00000005
+#define HWIO_TCL_R0_UMXI_PRIORITY1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY1_IN(x)            \
+                in_dword(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x), m)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x),v)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x),m,v,HWIO_TCL_R0_UMXI_PRIORITY1_IN(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_STAT_GXI_WR_BMSK                                                            0xc
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_STAT_GXI_WR_SHFT                                                              2
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_LOOKUP_GXI_RD_BMSK                                                          0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_LOOKUP_GXI_RD_SHFT                                                            0
+
+#define HWIO_TCL_R0_VC_ID_MAP_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_OFFS                                                                          (0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_RMSK                                                                               0xf6f
+#define HWIO_TCL_R0_VC_ID_MAP_POR                                                                           0x00000f00
+#define HWIO_TCL_R0_VC_ID_MAP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TCL_R0_VC_ID_MAP_ATTR                                                                                       0x3
+#define HWIO_TCL_R0_VC_ID_MAP_IN(x)            \
+                in_dword(HWIO_TCL_R0_VC_ID_MAP_ADDR(x))
+#define HWIO_TCL_R0_VC_ID_MAP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_VC_ID_MAP_ADDR(x), m)
+#define HWIO_TCL_R0_VC_ID_MAP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_VC_ID_MAP_ADDR(x),v)
+#define HWIO_TCL_R0_VC_ID_MAP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_VC_ID_MAP_ADDR(x),m,v,HWIO_TCL_R0_VC_ID_MAP_IN(x))
+#define HWIO_TCL_R0_VC_ID_MAP_METADATA_FETCH_GXI_RD_BMSK                                                         0x800
+#define HWIO_TCL_R0_VC_ID_MAP_METADATA_FETCH_GXI_RD_SHFT                                                            11
+#define HWIO_TCL_R0_VC_ID_MAP_PEER_TABLE_FETCH_GXI_RD_BMSK                                                       0x400
+#define HWIO_TCL_R0_VC_ID_MAP_PEER_TABLE_FETCH_GXI_RD_SHFT                                                          10
+#define HWIO_TCL_R0_VC_ID_MAP_DATA_FETCH_GXI_RD_BMSK                                                             0x200
+#define HWIO_TCL_R0_VC_ID_MAP_DATA_FETCH_GXI_RD_SHFT                                                                 9
+#define HWIO_TCL_R0_VC_ID_MAP_EXTN_DESC_GXI_RD_BMSK                                                              0x100
+#define HWIO_TCL_R0_VC_ID_MAP_EXTN_DESC_GXI_RD_SHFT                                                                  8
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL_CREDIT_RING_BMSK                                                             0x40
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL_CREDIT_RING_SHFT                                                                6
+#define HWIO_TCL_R0_VC_ID_MAP_FW2TCL_RING_BMSK                                                                    0x20
+#define HWIO_TCL_R0_VC_ID_MAP_FW2TCL_RING_SHFT                                                                       5
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL4_RING_BMSK                                                                    0x8
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL4_RING_SHFT                                                                      3
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL3_RING_BMSK                                                                    0x4
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL3_RING_SHFT                                                                      2
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL2_RING_BMSK                                                                    0x2
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL2_RING_SHFT                                                                      1
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL1_RING_BMSK                                                                    0x1
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL1_RING_SHFT                                                                      0
+
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OFFS                                                                    (0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_POR                                                                     0x00000002
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x)                                                                 ((x) + 0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_PHYS(x)                                                                 ((x) + 0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OFFS                                                                    (0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_POR                                                                     0x00000002
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x)                                                                 ((x) + 0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_PHYS(x)                                                                 ((x) + 0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OFFS                                                                    (0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_POR                                                                     0x00000002
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x)                                                                 ((x) + 0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_PHYS(x)                                                                 ((x) + 0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OFFS                                                                    (0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_POR                                                                     0x00000002
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x)                                                                  ((x) + 0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_PHYS(x)                                                                  ((x) + 0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OFFS                                                                     (0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_RMSK                                                                         0x1fff
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_POR                                                                      0x00000002
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL_DESC_RD_IN(x))
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_TIMEOUT_LIMIT_BMSK                                                           0x1fe0
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_TIMEOUT_LIMIT_SHFT                                                                5
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_BUNCH_COUNT_BMSK                                                               0x1f
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_BUNCH_COUNT_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x)                                                           ((x) + 0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_PHYS(x)                                                           ((x) + 0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OFFS                                                              (0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_RMSK                                                                  0x1fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_POR                                                               0x00000002
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_TIMEOUT_LIMIT_BMSK                                                    0x1fe0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_TIMEOUT_LIMIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_BUNCH_COUNT_BMSK                                                        0x1f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_BUNCH_COUNT_SHFT                                                           0
+
+#define HWIO_TCL_R0_RBM_MAPPING0_ADDR(x)                                                                    ((x) + 0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_PHYS(x)                                                                    ((x) + 0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_OFFS                                                                       (0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_RMSK                                                                        0xff0ffff
+#define HWIO_TCL_R0_RBM_MAPPING0_POR                                                                        0x00000000
+#define HWIO_TCL_R0_RBM_MAPPING0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_RBM_MAPPING0_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_RBM_MAPPING0_IN(x)            \
+                in_dword(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x))
+#define HWIO_TCL_R0_RBM_MAPPING0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x), m)
+#define HWIO_TCL_R0_RBM_MAPPING0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x),v)
+#define HWIO_TCL_R0_RBM_MAPPING0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x),m,v,HWIO_TCL_R0_RBM_MAPPING0_IN(x))
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL_CREDIT_RING_BMSK                                                     0xf000000
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL_CREDIT_RING_SHFT                                                            24
+#define HWIO_TCL_R0_RBM_MAPPING0_FW2TCL_RING_BMSK                                                             0xf00000
+#define HWIO_TCL_R0_RBM_MAPPING0_FW2TCL_RING_SHFT                                                                   20
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL4_RING_BMSK                                                              0xf000
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL4_RING_SHFT                                                                  12
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL3_RING_BMSK                                                               0xf00
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL3_RING_SHFT                                                                   8
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL2_RING_BMSK                                                                0xf0
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL2_RING_SHFT                                                                   4
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL1_RING_BMSK                                                                 0xf
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL1_RING_SHFT                                                                   0
+
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n)                                                           ((base) + 0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PHYS(base,n)                                                           ((base) + 0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OFFS(n)                                                                (0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_RMSK                                                                     0x7fffff
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MAXn                                                                           23
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_POR                                                                    0x00000038
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ATTR                                                                                0x3
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n), HWIO_TCL_R0_SW_CONFIG_BANK_n_RMSK)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n),mask,val,HWIO_TCL_R0_SW_CONFIG_BANK_n_INI(base,n))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_DSCP_TID_TABLE_NUM_BMSK                                                  0x7e0000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_DSCP_TID_TABLE_NUM_SHFT                                                        17
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PMAC_ID_BMSK                                                              0x18000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PMAC_ID_SHFT                                                                   15
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_VDEV_ID_CHECK_EN_BMSK                                                      0x4000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_VDEV_ID_CHECK_EN_SHFT                                                          14
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MESH_ENABLE_BMSK                                                           0x3000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MESH_ENABLE_SHFT                                                               12
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRY_EN_BMSK                                                               0x800
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRY_EN_SHFT                                                                  11
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRX_EN_BMSK                                                               0x400
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRX_EN_SHFT                                                                  10
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INDEX_LOOKUP_ENABLE_BMSK                                                    0x200
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INDEX_LOOKUP_ENABLE_SHFT                                                        9
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_LINK_META_SWAP_BMSK                                                         0x100
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_LINK_META_SWAP_SHFT                                                             8
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_SRC_BUFFER_SWAP_BMSK                                                         0x80
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_SRC_BUFFER_SWAP_SHFT                                                            7
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCRYPT_TYPE_BMSK                                                            0x78
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCRYPT_TYPE_SHFT                                                               3
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCAP_TYPE_BMSK                                                               0x6
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCAP_TYPE_SHFT                                                                 1
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_EPD_BMSK                                                                      0x1
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_EPD_SHFT                                                                        0
+
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n)                                               ((base) + 0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_PHYS(base,n)                                               ((base) + 0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OFFS(n)                                                    (0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_MAXn                                                               15
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_POR                                                        0x00000000
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ATTR                                                                    0x3
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n), HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_RMSK)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n),mask,val,HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INI(base,n))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x)                                                                ((x) + 0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_PHYS(x)                                                                ((x) + 0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OFFS                                                                   (0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_POR                                                                    0x00000064
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_ATTR                                                                                0x3
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x))
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x), m)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x),v)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x),m,v,HWIO_TCL_R0_MCAST_ECHO_CHECK_IN(x))
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_TIMESTAMP_AGEING_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_TIMESTAMP_AGEING_SHFT                                                           0
+
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n)                                                             ((base) + 0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_PHYS(base,n)                                                             ((base) + 0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OFFS(n)                                                                  (0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_MAXn                                                                            143
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_POR                                                                      0x00000000
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n), HWIO_TCL_R0_DSCP_TID_MAP_n_RMSK)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n),mask,val,HWIO_TCL_R0_DSCP_TID_MAP_n_INI(base,n))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R0_PCP_TID_MAP_ADDR(x)                                                                     ((x) + 0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_PHYS(x)                                                                     ((x) + 0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_OFFS                                                                        (0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_RMSK                                                                          0xffffff
+#define HWIO_TCL_R0_PCP_TID_MAP_POR                                                                         0x00000000
+#define HWIO_TCL_R0_PCP_TID_MAP_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R0_PCP_TID_MAP_ATTR                                                                                     0x3
+#define HWIO_TCL_R0_PCP_TID_MAP_IN(x)            \
+                in_dword(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x))
+#define HWIO_TCL_R0_PCP_TID_MAP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x), m)
+#define HWIO_TCL_R0_PCP_TID_MAP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x),v)
+#define HWIO_TCL_R0_PCP_TID_MAP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x),m,v,HWIO_TCL_R0_PCP_TID_MAP_IN(x))
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_7_BMSK                                                                    0xe00000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_7_SHFT                                                                          21
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_6_BMSK                                                                    0x1c0000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_6_SHFT                                                                          18
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_5_BMSK                                                                     0x38000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_5_SHFT                                                                          15
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_4_BMSK                                                                      0x7000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_4_SHFT                                                                          12
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_3_BMSK                                                                       0xe00
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_3_SHFT                                                                           9
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_2_BMSK                                                                       0x1c0
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_2_SHFT                                                                           6
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_1_BMSK                                                                        0x38
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_1_SHFT                                                                           3
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_0_BMSK                                                                         0x7
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_0_SHFT                                                                           0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x)                                                               ((x) + 0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_PHYS(x)                                                               ((x) + 0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OFFS                                                                  (0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_POR                                                                   0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_ATTR                                                                               0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_31_0_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_VAL_BMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_VAL_SHFT                                                                       0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x)                                                              ((x) + 0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_PHYS(x)                                                              ((x) + 0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OFFS                                                                 (0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_POR                                                                  0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_ATTR                                                                              0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_63_32_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_VAL_BMSK                                                             0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_VAL_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x)                                                                 ((x) + 0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_PHYS(x)                                                                 ((x) + 0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OFFS                                                                    (0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_RMSK                                                                           0x1
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_POR                                                                     0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_64_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_VAL_BMSK                                                                       0x1
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_VAL_SHFT                                                                         0
+
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x)                                                             ((x) + 0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PHYS(x)                                                             ((x) + 0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OFFS                                                                (0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_RMSK                                                                  0xfffdfc
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_POR                                                                 0x00840014
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ATTR                                                                             0x3
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x), m)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x),v)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x),m,v,HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_IN(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_MSDU_LEN_ERR_TO_FW_EN_BMSK                                            0x800000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_MSDU_LEN_ERR_TO_FW_EN_SHFT                                                  23
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_M0_FW_SEL_BMSK                                                    0x700000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_M0_FW_SEL_SHFT                                                          20
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ASE_M0_FW_SEL_BMSK                                                     0xe0000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ASE_M0_FW_SEL_SHFT                                                          17
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_M0_FW_SEL_BMSK                                                     0x1c000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_M0_FW_SEL_SHFT                                                          14
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_DROP_BMSK                                                      0x2000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_DROP_SHFT                                                          13
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_DROP_BMSK                                                      0x1000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_DROP_SHFT                                                          12
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_LOOP_BMSK                                                       0x800
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_LOOP_SHFT                                                          11
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_LOOP_BMSK                                                       0x400
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_LOOP_SHFT                                                          10
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PRIORITY_BMSK                                                            0x1c0
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PRIORITY_SHFT                                                                6
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_HANDLER_BMSK                                                     0x30
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_HANDLER_SHFT                                                        4
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_HANDLER_BMSK                                                      0xc
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_HANDLER_SHFT                                                        2
+
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x)                                                          ((x) + 0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_PHYS(x)                                                          ((x) + 0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OFFS                                                             (0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_POR                                                              0x00000000
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ATTR                                                                          0x3
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x),m,v,HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_IN(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_VAL_BMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x)                                                         ((x) + 0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_PHYS(x)                                                         ((x) + 0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OFFS                                                            (0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_RMSK                                                                  0xff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_POR                                                             0x00000000
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ATTR                                                                         0x3
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x),m,v,HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_IN(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_VAL_BMSK                                                              0xff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x)                                                          ((x) + 0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_PHYS(x)                                                          ((x) + 0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OFFS                                                             (0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_POR                                                              0x00000000
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x),m,v,HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_IN(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_VAL_BMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x)                                                         ((x) + 0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_PHYS(x)                                                         ((x) + 0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OFFS                                                            (0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_RMSK                                                                  0xff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_POR                                                             0x00000000
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ATTR                                                                         0x3
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x),m,v,HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_IN(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_VAL_BMSK                                                              0xff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x)                                                          ((x) + 0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_PHYS(x)                                                          ((x) + 0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OFFS                                                             (0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x), m)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x),v)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x),m,v,HWIO_TCL_R0_CONFIG_SEARCH_METADATA_IN(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_FSE_FAIL_NUM_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_FSE_FAIL_NUM_SHFT                                                        16
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_CCE_FAIL_NUM_BMSK                                                    0xffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_CCE_FAIL_NUM_SHFT                                                         0
+
+#define HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x)                                                                    ((x) + 0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_PHYS(x)                                                                    ((x) + 0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OFFS                                                                       (0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_RMSK                                                                             0xef
+#define HWIO_TCL_R0_TID_MAP_PRTY_POR                                                                        0x00000000
+#define HWIO_TCL_R0_TID_MAP_PRTY_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_TID_MAP_PRTY_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_TID_MAP_PRTY_IN(x)            \
+                in_dword(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x))
+#define HWIO_TCL_R0_TID_MAP_PRTY_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x), m)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x),v)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x),m,v,HWIO_TCL_R0_TID_MAP_PRTY_IN(x))
+#define HWIO_TCL_R0_TID_MAP_PRTY_TID_DEF_BMSK                                                                     0xe0
+#define HWIO_TCL_R0_TID_MAP_PRTY_TID_DEF_SHFT                                                                        5
+#define HWIO_TCL_R0_TID_MAP_PRTY_VAL_BMSK                                                                          0xf
+#define HWIO_TCL_R0_TID_MAP_PRTY_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                            ((x) + 0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                            ((x) + 0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_OFFS                                                               (0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_POR                                                                0x00000000
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ATTR                                                                            0x1
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_VAL_BMSK                                                           0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_VAL_SHFT                                                                    0
+
+#define HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x)                                                                ((x) + 0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_PHYS(x)                                                                ((x) + 0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OFFS                                                                   (0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_ATTR                                                                                0x3
+#define HWIO_TCL_R0_WATCHDOG_WARNING_IN(x)            \
+                in_dword(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x))
+#define HWIO_TCL_R0_WATCHDOG_WARNING_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x), m)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x),v)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x),m,v,HWIO_TCL_R0_WATCHDOG_WARNING_IN(x))
+#define HWIO_TCL_R0_WATCHDOG_WARNING_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_WATCHDOG_WARNING_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_WATCHDOG_WARNING_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x)                                                               ((x) + 0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_PHYS(x)                                                               ((x) + 0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OFFS                                                                  (0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_POR                                                                   0x0000ffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_ATTR                                                                               0x3
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_IN(x)            \
+                in_dword(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x))
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x), m)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x),v)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x),m,v,HWIO_TCL_R0_WATCHDOG_HW_ERROR_IN(x))
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_STATUS_BMSK                                                           0xffff0000
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_STATUS_SHFT                                                                   16
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_LIMIT_BMSK                                                                0xffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_LIMIT_SHFT                                                                     0
+
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x)                                           ((x) + 0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_PHYS(x)                                           ((x) + 0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OFFS                                              (0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_RMSK                                                  0xffff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_POR                                               0x0000000a
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ATTR                                                           0x3
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x))
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x),m,v,HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_IN(x))
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_STATUS_BMSK                                           0xff00
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_STATUS_SHFT                                                8
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_LIMIT_BMSK                                              0xff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_LIMIT_SHFT                                                 0
+
+#define HWIO_TCL_R0_LCE_RULE_n_ADDR(base,n)                                                                 ((base) + 0X6FC + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_RULE_n_PHYS(base,n)                                                                 ((base) + 0X6FC + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_RULE_n_OFFS(n)                                                                      (0X6FC + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_RULE_n_RMSK                                                                           0xffffff
+#define HWIO_TCL_R0_LCE_RULE_n_MAXn                                                                                 26
+#define HWIO_TCL_R0_LCE_RULE_n_POR                                                                          0x00000000
+#define HWIO_TCL_R0_LCE_RULE_n_POR_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R0_LCE_RULE_n_ATTR                                                                                      0x3
+#define HWIO_TCL_R0_LCE_RULE_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_LCE_RULE_n_ADDR(base,n), HWIO_TCL_R0_LCE_RULE_n_RMSK)
+#define HWIO_TCL_R0_LCE_RULE_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_LCE_RULE_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_LCE_RULE_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_LCE_RULE_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_LCE_RULE_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_LCE_RULE_n_ADDR(base,n),mask,val,HWIO_TCL_R0_LCE_RULE_n_INI(base,n))
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_MCAST_AND_L3_TYPE_BMSK                                                   0x800000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_MCAST_AND_L3_TYPE_SHFT                                                         23
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_IP_PROT_BMSK                                                             0x400000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_IP_PROT_SHFT                                                                   22
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_DEST_ADDR_BIT_0_BMSK                                                     0x200000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_DEST_ADDR_BIT_0_SHFT                                                           21
+#define HWIO_TCL_R0_LCE_RULE_n_TCP_OR_UDP_BMSK                                                                0x180000
+#define HWIO_TCL_R0_LCE_RULE_n_TCP_OR_UDP_SHFT                                                                      19
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_DEST_PORT_BMSK                                                            0x40000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_DEST_PORT_SHFT                                                                 18
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_SRC_PORT_BMSK                                                             0x20000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_SRC_PORT_SHFT                                                                  17
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_L3_TYPE_BMSK                                                              0x10000
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_L3_TYPE_SHFT                                                                   16
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_VAL_BMSK                                                                   0xffff
+#define HWIO_TCL_R0_LCE_RULE_n_MATCH_VAL_SHFT                                                                        0
+
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ADDR(base,n)                                               ((base) + 0X768 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_PHYS(base,n)                                               ((base) + 0X768 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_OFFS(n)                                                    (0X768 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_MAXn                                                               26
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_POR                                                        0x00000000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ATTR                                                                    0x3
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ADDR(base,n), HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_RMSK)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_ADDR(base,n),mask,val,HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_INI(base,n))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_LSB_n_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ADDR(base,n)                                               ((base) + 0X7D4 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_PHYS(base,n)                                               ((base) + 0X7D4 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_OFFS(n)                                                    (0X7D4 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_RMSK                                                             0xff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_MAXn                                                               26
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_POR                                                        0x00000000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ATTR                                                                    0x3
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ADDR(base,n), HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_RMSK)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_ADDR(base,n),mask,val,HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_INI(base,n))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_VAL_BMSK                                                         0xff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_FLOW_PTR_MSB_n_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ADDR(base,n)                                                    ((base) + 0X840 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_PHYS(base,n)                                                    ((base) + 0X840 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_OFFS(n)                                                         (0X840 + (0x4*(n)))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_RMSK                                                             0x3ffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_MAXn                                                                    26
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_POR                                                             0x00000000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ATTR                                                                         0x3
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ADDR(base,n), HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_RMSK)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_ADDR(base,n),mask,val,HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_INI(base,n))
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TX_NOTIFY_FRAME_BMSK                                             0x3800000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TX_NOTIFY_FRAME_SHFT                                                    23
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_NO_DROP_BMSK                                                  0x400000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_NO_DROP_SHFT                                                        22
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_RULE_HIT_BMSK                                                     0x200000
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_RULE_HIT_SHFT                                                           21
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_METADATA_BMSK                                                     0x1fffe0
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_METADATA_SHFT                                                            5
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_MSDU_DROP_BMSK                                                        0x10
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_MSDU_DROP_SHFT                                                           4
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TO_TQM_IF_M0_FW_BMSK                                                   0x8
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TO_TQM_IF_M0_FW_SHFT                                                     3
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_FLOW_LOOP_HANDLER_BMSK                                             0x4
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_FLOW_LOOP_HANDLER_SHFT                                               2
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_FLOW_HANDLER_BMSK                                                  0x3
+#define HWIO_TCL_R0_LCE_CLFY_INFO_HANDLER_n_TQM_FLOW_HANDLER_SHFT                                                    0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x)                                                                ((x) + 0x8ac)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PHYS(x)                                                                ((x) + 0x8ac)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OFFS                                                                   (0x8ac)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_RMSK                                                                   0xfffffeff
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_POR                                                                    0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ATTR                                                                                0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE0_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TQM_SRNG_BUNCH_BMSK                                                    0x80000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TQM_SRNG_BUNCH_SHFT                                                            31
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_APB_CLK_BMSK                                                           0x40000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_APB_CLK_SHFT                                                                   30
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CLFY_RES_MEM_BMSK                                                      0x20000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CLFY_RES_MEM_SHFT                                                              29
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CTRL_BMSK                                                          0x10000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CTRL_SHFT                                                                  28
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CCE_RES_BMSK                                                        0x8000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CCE_RES_SHFT                                                               27
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS2_PROD_RING_BMSK                                             0x4000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS2_PROD_RING_SHFT                                                    26
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS1_PROD_RING_BMSK                                             0x2000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS1_PROD_RING_SHFT                                                    25
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2FW_PROD_RING_BMSK                                                   0x1000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2FW_PROD_RING_SHFT                                                          24
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2TQM_PROD_RING_BMSK                                                   0x800000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2TQM_PROD_RING_SHFT                                                         23
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PROD_RING_CTRL_BMSK                                                      0x400000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PROD_RING_CTRL_SHFT                                                            22
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_DECODE_BMSK                                                          0x200000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_DECODE_SHFT                                                                21
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_GEN_BMSK                                                             0x100000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_GEN_SHFT                                                                   20
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_FETCH_BMSK                                                           0x80000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_FETCH_SHFT                                                                19
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_BUF_BMSK                                                             0x40000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_BUF_SHFT                                                                  18
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_BUF_BMSK                                                             0x20000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_BUF_SHFT                                                                  17
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_RD_BMSK                                                              0x10000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_RD_SHFT                                                                   16
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ASE_BMSK                                                                   0x8000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ASE_SHFT                                                                       15
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_3_BMSK                                                              0x4000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_3_SHFT                                                                  14
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_2_BMSK                                                              0x2000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_2_SHFT                                                                  13
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_1_BMSK                                                              0x1000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_1_SHFT                                                                  12
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_0_BMSK                                                               0x800
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_0_SHFT                                                                  11
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_6_BMSK                                                               0x400
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_6_SHFT                                                                  10
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_5_BMSK                                                               0x200
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_5_SHFT                                                                   9
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_3_BMSK                                                                0x80
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_3_SHFT                                                                   7
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_2_BMSK                                                                0x40
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_2_SHFT                                                                   6
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_1_BMSK                                                                0x20
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_1_SHFT                                                                   5
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_0_BMSK                                                                0x10
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_0_SHFT                                                                   4
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL_IDLE_REQ_SM_BMSK                                                          0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL_IDLE_REQ_SM_SHFT                                                            3
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CCE_BMSK                                                                      0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CCE_SHFT                                                                        2
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_LCE_BMSK                                                                      0x2
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_LCE_SHFT                                                                        1
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PARSER_BMSK                                                                   0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PARSER_SHFT                                                                     0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x)                                                                ((x) + 0x8b0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_PHYS(x)                                                                ((x) + 0x8b0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OFFS                                                                   (0x8b0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_RMSK                                                                         0x1d
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_POR                                                                    0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ATTR                                                                                0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE1_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CLK_ENS_EXTEND_BMSK                                                          0x10
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CLK_ENS_EXTEND_SHFT                                                             4
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CPU_IF_EXTEND_BMSK                                                            0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CPU_IF_EXTEND_SHFT                                                              3
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ERR_RECOV_BMSK                                                                0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ERR_RECOV_SHFT                                                                  2
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_FW_SRNG_BUNCH_BMSK                                                            0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_FW_SRNG_BUNCH_SHFT                                                              0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x)                                                         ((x) + 0x8b4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_PHYS(x)                                                         ((x) + 0x8b4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OFFS                                                            (0x8b4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RMSK                                                                 0x76f
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_POR                                                             0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ATTR                                                                         0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RING_ARB_BMSK                                                        0x400
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RING_ARB_SHFT                                                           10
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_FIFO_BMSK                                                            0x200
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_FIFO_SHFT                                                                9
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_STR_CTRL_BMSK                                                        0x100
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_STR_CTRL_SHFT                                                            8
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING6_BMSK                                                       0x40
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING6_SHFT                                                          6
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING5_BMSK                                                       0x20
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING5_SHFT                                                          5
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING3_BMSK                                                        0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING3_SHFT                                                          3
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING2_BMSK                                                        0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING2_SHFT                                                          2
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING1_BMSK                                                        0x2
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING1_SHFT                                                          1
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING0_BMSK                                                        0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING0_SHFT                                                          0
+
+#define HWIO_TCL_R0_CREDIT_COUNT_ADDR(x)                                                                    ((x) + 0x8b8)
+#define HWIO_TCL_R0_CREDIT_COUNT_PHYS(x)                                                                    ((x) + 0x8b8)
+#define HWIO_TCL_R0_CREDIT_COUNT_OFFS                                                                       (0x8b8)
+#define HWIO_TCL_R0_CREDIT_COUNT_RMSK                                                                          0x1ffff
+#define HWIO_TCL_R0_CREDIT_COUNT_POR                                                                        0x00000000
+#define HWIO_TCL_R0_CREDIT_COUNT_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_CREDIT_COUNT_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_CREDIT_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x))
+#define HWIO_TCL_R0_CREDIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_CREDIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x),v)
+#define HWIO_TCL_R0_CREDIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x),m,v,HWIO_TCL_R0_CREDIT_COUNT_IN(x))
+#define HWIO_TCL_R0_CREDIT_COUNT_ENABLE_BMSK                                                                   0x10000
+#define HWIO_TCL_R0_CREDIT_COUNT_ENABLE_SHFT                                                                        16
+#define HWIO_TCL_R0_CREDIT_COUNT_VAL_BMSK                                                                       0xffff
+#define HWIO_TCL_R0_CREDIT_COUNT_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x)                                                            ((x) + 0x8bc)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_PHYS(x)                                                            ((x) + 0x8bc)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_OFFS                                                               (0x8bc)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_RMSK                                                                   0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_POR                                                                0x00000000
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ATTR                                                                            0x1
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x))
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_VAL_BMSK                                                               0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_VAL_SHFT                                                                    0
+
+#define HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x)                                                                  ((x) + 0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_PHYS(x)                                                                  ((x) + 0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OFFS                                                                     (0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_RMSK                                                                            0x1
+#define HWIO_TCL_R0_ERR_RECOV_READ_POR                                                                      0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_READ_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_READ_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_ERR_RECOV_READ_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_READ_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x),v)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x),m,v,HWIO_TCL_R0_ERR_RECOV_READ_IN(x))
+#define HWIO_TCL_R0_ERR_RECOV_READ_ENABLE_BMSK                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_READ_ENABLE_SHFT                                                                       0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x)                                                      ((x) + 0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_PHYS(x)                                                      ((x) + 0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_OFFS                                                         (0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_RMSK                                                               0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_POR                                                          0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ATTR                                                                      0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_VAL_BMSK                                                           0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_VAL_SHFT                                                              0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x)                                                 ((x) + 0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_PHYS(x)                                                 ((x) + 0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_OFFS                                                    (0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_RMSK                                                          0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_POR                                                     0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ATTR                                                                 0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_VAL_BMSK                                                      0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_VAL_SHFT                                                         0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x)                                                   ((x) + 0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_PHYS(x)                                                   ((x) + 0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_OFFS                                                      (0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_RMSK                                                            0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_VAL_BMSK                                                        0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x)                                                  ((x) + 0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_PHYS(x)                                                  ((x) + 0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_OFFS                                                     (0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_RMSK                                                           0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_POR                                                      0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ATTR                                                                  0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_VAL_BMSK                                                       0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_VAL_SHFT                                                          0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x)                                                   ((x) + 0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_PHYS(x)                                                   ((x) + 0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_OFFS                                                      (0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_RMSK                                                            0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_VAL_BMSK                                                        0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x)                                                        ((x) + 0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_PHYS(x)                                                        ((x) + 0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_OFFS                                                           (0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ATTR                                                                        0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_VAL_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x)                                                        ((x) + 0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_PHYS(x)                                                        ((x) + 0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_OFFS                                                           (0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ATTR                                                                        0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_VAL_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x)                                                   ((x) + 0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_PHYS(x)                                                   ((x) + 0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_OFFS                                                      (0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_VAL_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x)                                                   ((x) + 0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_PHYS(x)                                                   ((x) + 0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_OFFS                                                      (0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_VAL_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x)                                                     ((x) + 0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_PHYS(x)                                                     ((x) + 0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_OFFS                                                        (0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x)                                                     ((x) + 0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_PHYS(x)                                                     ((x) + 0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_OFFS                                                        (0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x)                                                    ((x) + 0x8f8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_PHYS(x)                                                    ((x) + 0x8f8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_OFFS                                                       (0x8f8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ATTR                                                                    0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x)                                                    ((x) + 0x8fc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_PHYS(x)                                                    ((x) + 0x8fc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_OFFS                                                       (0x8fc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ATTR                                                                    0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x)                                                     ((x) + 0x900)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_PHYS(x)                                                     ((x) + 0x900)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_OFFS                                                        (0x900)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x)                                                     ((x) + 0x904)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_PHYS(x)                                                     ((x) + 0x904)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_OFFS                                                        (0x904)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x)                                                                 ((x) + 0x908)
+#define HWIO_TCL_R0_S_PARE_REGISTER_PHYS(x)                                                                 ((x) + 0x908)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OFFS                                                                    (0x908)
+#define HWIO_TCL_R0_S_PARE_REGISTER_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_POR                                                                     0x00000000
+#define HWIO_TCL_R0_S_PARE_REGISTER_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_S_PARE_REGISTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x))
+#define HWIO_TCL_R0_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x),m,v,HWIO_TCL_R0_S_PARE_REGISTER_IN(x))
+#define HWIO_TCL_R0_S_PARE_REGISTER_VAL_BMSK                                                                0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_VAL_SHFT                                                                         0
+
+#define HWIO_TCL_R0_MISC_CTRL_ADDR(x)                                                                       ((x) + 0x90c)
+#define HWIO_TCL_R0_MISC_CTRL_PHYS(x)                                                                       ((x) + 0x90c)
+#define HWIO_TCL_R0_MISC_CTRL_OFFS                                                                          (0x90c)
+#define HWIO_TCL_R0_MISC_CTRL_RMSK                                                                                 0x3
+#define HWIO_TCL_R0_MISC_CTRL_POR                                                                           0x00000000
+#define HWIO_TCL_R0_MISC_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_TCL_R0_MISC_CTRL_ATTR                                                                                       0x3
+#define HWIO_TCL_R0_MISC_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_MISC_CTRL_ADDR(x))
+#define HWIO_TCL_R0_MISC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_MISC_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_MISC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_MISC_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_MISC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_MISC_CTRL_ADDR(x),m,v,HWIO_TCL_R0_MISC_CTRL_IN(x))
+#define HWIO_TCL_R0_MISC_CTRL_DATA_CORRUPT_FIX_DISABLE_CHK_BIT_BMSK                                                0x2
+#define HWIO_TCL_R0_MISC_CTRL_DATA_CORRUPT_FIX_DISABLE_CHK_BIT_SHFT                                                  1
+#define HWIO_TCL_R0_MISC_CTRL_MSI_DISABLE_CHK_BIT_BMSK                                                             0x1
+#define HWIO_TCL_R0_MISC_CTRL_MSI_DISABLE_CHK_BIT_SHFT                                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OFFS                                                              (0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x914)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x914)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OFFS                                                              (0x914)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x)                                                                 ((x) + 0x918)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_PHYS(x)                                                                 ((x) + 0x918)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OFFS                                                                    (0x918)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x)                                                             ((x) + 0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_PHYS(x)                                                             ((x) + 0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_OFFS                                                                (0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x)                                                               ((x) + 0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_PHYS(x)                                                               ((x) + 0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OFFS                                                                  (0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x92c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x92c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OFFS                                                           (0x92c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OFFS                                                           (0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x954)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x954)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x954)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x958)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x958)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OFFS                                                         (0x958)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x95c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x95c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OFFS                                                         (0x95c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x960)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x960)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OFFS                                                             (0x960)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x980)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x980)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x980)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x984)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x984)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OFFS                                                                (0x984)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OFFS                                                              (0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x98c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x98c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OFFS                                                              (0x98c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x)                                                                 ((x) + 0x990)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_PHYS(x)                                                                 ((x) + 0x990)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OFFS                                                                    (0x990)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x)                                                             ((x) + 0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_PHYS(x)                                                             ((x) + 0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_OFFS                                                                (0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x)                                                               ((x) + 0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_PHYS(x)                                                               ((x) + 0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OFFS                                                                  (0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x9a4)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x9a4)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OFFS                                                           (0x9a4)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OFFS                                                           (0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x9cc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x9cc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x9cc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x9d0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x9d0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OFFS                                                         (0x9d0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x9d4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x9d4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OFFS                                                         (0x9d4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x9d8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x9d8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OFFS                                                             (0x9d8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x9f8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x9f8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x9f8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x9fc)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x9fc)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OFFS                                                                (0x9fc)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OFFS                                                              (0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xa04)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xa04)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OFFS                                                              (0xa04)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x)                                                                 ((x) + 0xa08)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_PHYS(x)                                                                 ((x) + 0xa08)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OFFS                                                                    (0xa08)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x)                                                             ((x) + 0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_PHYS(x)                                                             ((x) + 0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_OFFS                                                                (0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x)                                                               ((x) + 0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_PHYS(x)                                                               ((x) + 0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OFFS                                                                  (0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa1c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa1c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OFFS                                                           (0xa1c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OFFS                                                           (0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xa44)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xa44)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xa44)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xa48)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xa48)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OFFS                                                         (0xa48)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xa4c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xa4c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OFFS                                                         (0xa4c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xa50)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xa50)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OFFS                                                             (0xa50)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xa70)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xa70)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xa70)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x)                                                             ((x) + 0xa74)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_PHYS(x)                                                             ((x) + 0xa74)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OFFS                                                                (0xa74)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OFFS                                                              (0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xa7c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xa7c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OFFS                                                              (0xa7c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x)                                                                 ((x) + 0xa80)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_PHYS(x)                                                                 ((x) + 0xa80)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OFFS                                                                    (0xa80)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x)                                                             ((x) + 0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_PHYS(x)                                                             ((x) + 0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_OFFS                                                                (0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x)                                                               ((x) + 0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_PHYS(x)                                                               ((x) + 0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OFFS                                                                  (0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa94)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa94)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OFFS                                                           (0xa94)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OFFS                                                           (0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xabc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xabc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xabc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xac0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xac0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OFFS                                                         (0xac0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xac4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xac4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OFFS                                                         (0xac4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xac8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xac8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OFFS                                                             (0xac8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xae8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xae8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xae8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x)                                                             ((x) + 0xaec)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_PHYS(x)                                                             ((x) + 0xaec)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OFFS                                                                (0xaec)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OFFS                                                        (0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0xb6c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0xb6c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OFFS                                                        (0xb6c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RMSK                                                         0xfffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_SIZE_BMSK                                               0xfffff00
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x)                                                           ((x) + 0xb70)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_PHYS(x)                                                           ((x) + 0xb70)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OFFS                                                              (0xb70)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_RMSK                                                                    0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x)                                                       ((x) + 0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_PHYS(x)                                                       ((x) + 0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_OFFS                                                          (0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_POR                                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x)                                                         ((x) + 0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_PHYS(x)                                                         ((x) + 0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OFFS                                                            (0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RMSK                                                              0x3fffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_POR                                                             0x00000080
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ATTR                                                                         0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x)                                                  ((x) + 0xb84)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_PHYS(x)                                                  ((x) + 0xb84)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OFFS                                                     (0xb84)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x)                                                  ((x) + 0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_PHYS(x)                                                  ((x) + 0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OFFS                                                     (0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                       ((x) + 0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                       ((x) + 0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OFFS                                          (0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                        16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                            0x8000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                15
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                      0x7fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                           0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                       ((x) + 0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                       ((x) + 0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OFFS                                          (0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_RMSK                                              0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x)                                          ((x) + 0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_PHYS(x)                                          ((x) + 0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_OFFS                                             (0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_POR                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                       ((x) + 0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                       ((x) + 0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OFFS                                          (0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RMSK                                               0x3ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                            0x3ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                      ((x) + 0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                      ((x) + 0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OFFS                                         (0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                0x7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_POR                                          0x00000003
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                      0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                           0x7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                     ((x) + 0xbac)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                     ((x) + 0xbac)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_OFFS                                        (0xbac)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_RMSK                                         0xfffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_POR                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                     0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                          0xff00000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                 20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                         0xfffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0xbb0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0xbb0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OFFS                                                   (0xbb0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0xbb4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0xbb4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OFFS                                                   (0xbb4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0xbb8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0xbb8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OFFS                                                       (0xbb8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0xbd8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0xbd8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OFFS                                                 (0xbd8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x)                                                       ((x) + 0xbdc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_PHYS(x)                                                       ((x) + 0xbdc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OFFS                                                          (0xbdc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OFFS                                                              (0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xbe4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xbe4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OFFS                                                              (0xbe4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x)                                                                 ((x) + 0xbe8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_PHYS(x)                                                                 ((x) + 0xbe8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OFFS                                                                    (0xbe8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_ID_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x)                                                             ((x) + 0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_PHYS(x)                                                             ((x) + 0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_OFFS                                                                (0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x)                                                               ((x) + 0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_PHYS(x)                                                               ((x) + 0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OFFS                                                                  (0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xbfc)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xbfc)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OFFS                                                           (0xbfc)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OFFS                                                           (0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xc24)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xc24)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xc24)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xc28)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xc28)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OFFS                                                         (0xc28)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xc2c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xc2c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OFFS                                                         (0xc2c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xc30)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xc30)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OFFS                                                             (0xc30)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xc50)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xc50)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xc50)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x)                                                             ((x) + 0xc54)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_PHYS(x)                                                             ((x) + 0xc54)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OFFS                                                                (0xc54)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OFFS                                                              (0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OFFS                                                              (0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x)                                                                 ((x) + 0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_PHYS(x)                                                                 ((x) + 0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OFFS                                                                    (0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x)                                                             ((x) + 0xcdc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_PHYS(x)                                                             ((x) + 0xcdc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_OFFS                                                                (0xcdc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x)                                                               ((x) + 0xce0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_PHYS(x)                                                               ((x) + 0xce0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OFFS                                                                  (0xce0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OFFS                                                           (0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OFFS                                                           (0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xcf4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xcf4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xcf4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xcf8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xcf8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xcf8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xcfc)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xcfc)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xcfc)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OFFS                                                         (0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OFFS                                                         (0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OFFS                                                             (0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xd24)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xd24)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xd24)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xd28)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xd28)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OFFS                                                         (0xd28)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xd2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xd2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OFFS                                                         (0xd2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OFFS                                                             (0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xd40)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xd40)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xd40)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x)                                                             ((x) + 0xd44)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_PHYS(x)                                                             ((x) + 0xd44)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OFFS                                                                (0xd44)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OFFS                                                          (0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OFFS                                                          (0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RMSK                                                            0xffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_SIZE_BMSK                                                  0xffff00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x)                                                             ((x) + 0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_PHYS(x)                                                             ((x) + 0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OFFS                                                                (0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RMSK                                                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ATTR                                                                             0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x)                                                         ((x) + 0xd54)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_PHYS(x)                                                         ((x) + 0xd54)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_OFFS                                                            (0xd54)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x)                                                           ((x) + 0xd58)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_PHYS(x)                                                           ((x) + 0xd58)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OFFS                                                              (0xd58)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_POR                                                               0x00000080
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OFFS                                                       (0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OFFS                                                       (0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xd6c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xd6c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OFFS                                                (0xd6c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xd70)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xd70)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_OFFS                                               (0xd70)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xd74)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xd74)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xd74)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OFFS                                                     (0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OFFS                                                     (0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OFFS                                                         (0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xd9c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xd9c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xd9c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffc0ffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xda0)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xda0)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OFFS                                                     (0xda0)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xda4)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xda4)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OFFS                                                     (0xda4)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OFFS                                                         (0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xdb8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xdb8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xdb8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x)                                                         ((x) + 0xdbc)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_PHYS(x)                                                         ((x) + 0xdbc)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OFFS                                                            (0xdbc)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OFFS                                                               (0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OFFS                                                               (0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x)                                                                  ((x) + 0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_PHYS(x)                                                                  ((x) + 0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OFFS                                                                     (0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_POR                                                                      0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_TCL2FW_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x)                                                              ((x) + 0xe44)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_PHYS(x)                                                              ((x) + 0xe44)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_OFFS                                                                 (0xe44)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x)                                                                ((x) + 0xe48)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_PHYS(x)                                                                ((x) + 0xe48)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OFFS                                                                   (0xe48)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OFFS                                                            (0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OFFS                                                            (0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0xe5c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0xe5c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OFFS                                                     (0xe5c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0xe60)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0xe60)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_OFFS                                                    (0xe60)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0xe64)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0xe64)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0xe64)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OFFS                                                          (0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OFFS                                                          (0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OFFS                                                              (0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0xe8c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0xe8c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0xe8c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0xe90)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0xe90)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OFFS                                                          (0xe90)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0xe94)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0xe94)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OFFS                                                          (0xe94)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OFFS                                                              (0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xea8)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xea8)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xea8)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x)                                                              ((x) + 0xeac)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_PHYS(x)                                                              ((x) + 0xeac)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OFFS                                                                 (0xeac)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x)                                                           ((x) + 0xeb0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_PHYS(x)                                                           ((x) + 0xeb0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OFFS                                                              (0xeb0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_POR                                                               0x00000000
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ATTR                                                                           0x3
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_IN(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_VAL_BMSK                                                          0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_VAL_SHFT                                                                   0
+
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x)                                                          ((x) + 0xeb4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_PHYS(x)                                                          ((x) + 0xeb4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OFFS                                                             (0xeb4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_RMSK                                                                   0xff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_POR                                                              0x00000000
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ATTR                                                                          0x3
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_IN(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_VAL_BMSK                                                               0xff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x)                                                                    ((x) + 0xeb8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_PHYS(x)                                                                    ((x) + 0xeb8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OFFS                                                                       (0xeb8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_RMSK                                                                          0xfffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_POR                                                                        0x00000000
+#define HWIO_TCL_R0_ASE_GST_SIZE_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_ASE_GST_SIZE_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_SIZE_IN(x))
+#define HWIO_TCL_R0_ASE_GST_SIZE_VAL_BMSK                                                                      0xfffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x)                                                                 ((x) + 0xebc)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_PHYS(x)                                                                 ((x) + 0xebc)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OFFS                                                                    (0xebc)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_RMSK                                                                    0xffff3fff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_POR                                                                     0x00003806
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x))
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x),m,v,HWIO_TCL_R0_ASE_SEARCH_CTRL_IN(x))
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_TIMEOUT_THRESH_BMSK                                                     0xffff0000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_TIMEOUT_THRESH_SHFT                                                             16
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_CMD_READ_BYPASS_EN_BMSK                                               0x2000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_CMD_READ_BYPASS_EN_SHFT                                                   13
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_WRITE_BACK_FIX_EN_BMSK                                                0x1000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_WRITE_BACK_FIX_EN_SHFT                                                    12
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_ONLY_ENTRY_CMD_FIX_EN_BMSK                                             0x800
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_ONLY_ENTRY_CMD_FIX_EN_SHFT                                                11
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_FAILURES_ENABLE_BMSK                                                   0x400
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_FAILURES_ENABLE_SHFT                                                      10
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_DISABLE_BMSK                                                           0x200
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_DISABLE_SHFT                                                               9
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_SEARCH_SWAP_BMSK                                                             0x100
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_SEARCH_SWAP_SHFT                                                                 8
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_MAX_SEARCH_BMSK                                                               0xff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_MAX_SEARCH_SHFT                                                                  0
+
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x)                                                                ((x) + 0xec0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_PHYS(x)                                                                ((x) + 0xec0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OFFS                                                                   (0xec0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_RMSK                                                                          0x3
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_POR                                                                    0x00000000
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x))
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x),m,v,HWIO_TCL_R0_ASE_PCIE_VC_CTRL_IN(x))
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_1_BMSK                                                            0x2
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_1_SHFT                                                              1
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_0_BMSK                                                            0x1
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_0_SHFT                                                              0
+
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x)                                                                ((x) + 0xec4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_PHYS(x)                                                                ((x) + 0xec4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OFFS                                                                   (0xec4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x),m,v,HWIO_TCL_R0_ASE_WATCHDOG_WAR_IN(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x)                                                                ((x) + 0xec8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_PHYS(x)                                                                ((x) + 0xec8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OFFS                                                                   (0xec8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x),m,v,HWIO_TCL_R0_ASE_WATCHDOG_ERR_IN(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x)                                                             ((x) + 0xecc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_PHYS(x)                                                             ((x) + 0xecc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OFFS                                                                (0xecc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_POR                                                                 0x00000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ATTR                                                                             0x3
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_TCL_R0_ASE_CLKGATE_DISABLE_IN(x))
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CLK_EXTEND_BMSK                                                     0x80000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CLK_EXTEND_SHFT                                                             31
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CPU_IF_EXTEND_BMSK                                                  0x40000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CPU_IF_EXTEND_SHFT                                                          30
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_RSRVD_BMSK                                                      0x3ffffe00
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_RSRVD_SHFT                                                               9
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_TOP_BMSK                                                             0x100
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_TOP_SHFT                                                                 8
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CACHE_BMSK                                                                0x80
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CACHE_SHFT                                                                   7
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_SLOTS_ARRAY_HASH_BMSK                                                     0x40
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_SLOTS_ARRAY_HASH_SHFT                                                        6
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_APP_RETURN_BMSK                                                           0x20
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_APP_RETURN_SHFT                                                              5
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP2_BMSK                                                            0x10
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP2_SHFT                                                               4
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP1_BMSK                                                             0x8
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP1_SHFT                                                               3
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS2_BMSK                                                              0x4
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS2_SHFT                                                                2
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS1_BMSK                                                              0x2
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS1_SHFT                                                                1
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_CTL_BMSK                                                               0x1
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_CTL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x)                                                          ((x) + 0xed0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_PHYS(x)                                                          ((x) + 0xed0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_OFFS                                                             (0xed0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_RMSK                                                                    0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_POR                                                              0x00000000
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ATTR                                                                          0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x))
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_STATUS_BMSK                                                             0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_STATUS_SHFT                                                               0
+
+#define HWIO_TCL_R1_CACHE_FLUSH_ADDR(x)                                                                     ((x) + 0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_PHYS(x)                                                                     ((x) + 0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_OFFS                                                                        (0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_RMSK                                                                               0x3
+#define HWIO_TCL_R1_CACHE_FLUSH_POR                                                                         0x00000000
+#define HWIO_TCL_R1_CACHE_FLUSH_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_CACHE_FLUSH_ATTR                                                                                     0x3
+#define HWIO_TCL_R1_CACHE_FLUSH_IN(x)            \
+                in_dword(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x))
+#define HWIO_TCL_R1_CACHE_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x), m)
+#define HWIO_TCL_R1_CACHE_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x),v)
+#define HWIO_TCL_R1_CACHE_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x),m,v,HWIO_TCL_R1_CACHE_FLUSH_IN(x))
+#define HWIO_TCL_R1_CACHE_FLUSH_STATUS_BMSK                                                                        0x2
+#define HWIO_TCL_R1_CACHE_FLUSH_STATUS_SHFT                                                                          1
+#define HWIO_TCL_R1_CACHE_FLUSH_ENABLE_BMSK                                                                        0x1
+#define HWIO_TCL_R1_CACHE_FLUSH_ENABLE_SHFT                                                                          0
+
+#define HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x)                                                                  ((x) + 0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_PHYS(x)                                                                  ((x) + 0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_OFFS                                                                     (0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_RMSK                                                                     0x7fff8fff
+#define HWIO_TCL_R1_SM_STATES_IX_0_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_0_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_0_TLV_GEN_BMSK                                                             0x78000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_TLV_GEN_SHFT                                                                     27
+#define HWIO_TCL_R1_SM_STATES_IX_0_EXTN_DESC_FETCH_BMSK                                                      0x7000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_EXTN_DESC_FETCH_SHFT                                                             24
+#define HWIO_TCL_R1_SM_STATES_IX_0_MSDU_FETCH_BMSK                                                            0xe00000
+#define HWIO_TCL_R1_SM_STATES_IX_0_MSDU_FETCH_SHFT                                                                  21
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL_CREDIT_RING_BMSK                                                    0x1c0000
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL_CREDIT_RING_SHFT                                                          18
+#define HWIO_TCL_R1_SM_STATES_IX_0_FW2TCL1_RING_BMSK                                                           0x38000
+#define HWIO_TCL_R1_SM_STATES_IX_0_FW2TCL1_RING_SHFT                                                                15
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL4_RING_BMSK                                                             0xe00
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL4_RING_SHFT                                                                 9
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL3_RING_BMSK                                                             0x1c0
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL3_RING_SHFT                                                                 6
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL2_RING_BMSK                                                              0x38
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL2_RING_SHFT                                                                 3
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL1_RING_BMSK                                                               0x7
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL1_RING_SHFT                                                                 0
+
+#define HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x)                                                                  ((x) + 0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_PHYS(x)                                                                  ((x) + 0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_OFFS                                                                     (0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_RMSK                                                                     0xfffe3fff
+#define HWIO_TCL_R1_SM_STATES_IX_1_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_1_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_BMSK                                                   0xe0000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_SHFT                                                           29
+#define HWIO_TCL_R1_SM_STATES_IX_1_DSCP_TABLE_ACC_BMSK                                                      0x1c000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_DSCP_TABLE_ACC_SHFT                                                              26
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_RING_FW_CTRL_BMSK                                                    0x3800000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_RING_FW_CTRL_SHFT                                                           23
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_METADATA_BMSK                                                    0x700000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_METADATA_SHFT                                                          20
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_BMSK                                                              0xe0000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_SHFT                                                                   17
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_STATUS1_BMSK                                                             0x3800
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_STATUS1_SHFT                                                                 11
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2FW_BMSK                                                                   0x700
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2FW_SHFT                                                                       8
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2TQM_BMSK                                                                   0xe0
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2TQM_SHFT                                                                      5
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_RES_WR_BMSK                                                           0x18
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_RES_WR_SHFT                                                              3
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_BMSK                                                                   0x7
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_SHFT                                                                     0
+
+#define HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x)                                                                  ((x) + 0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_PHYS(x)                                                                  ((x) + 0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_OFFS                                                                     (0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_RMSK                                                                          0x38f
+#define HWIO_TCL_R1_SM_STATES_IX_2_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_2_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_2_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_BMSK                                                     0x380
+#define HWIO_TCL_R1_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_SHFT                                                         7
+#define HWIO_TCL_R1_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_BMSK                                                       0xc
+#define HWIO_TCL_R1_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_SHFT                                                         2
+#define HWIO_TCL_R1_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_BMSK                                                           0x3
+#define HWIO_TCL_R1_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_SHFT                                                             0
+
+#define HWIO_TCL_R1_STATUS_ADDR(x)                                                                          ((x) + 0x1010)
+#define HWIO_TCL_R1_STATUS_PHYS(x)                                                                          ((x) + 0x1010)
+#define HWIO_TCL_R1_STATUS_OFFS                                                                             (0x1010)
+#define HWIO_TCL_R1_STATUS_RMSK                                                                             0xfffddbff
+#define HWIO_TCL_R1_STATUS_POR                                                                              0x00000000
+#define HWIO_TCL_R1_STATUS_POR_RMSK                                                                         0xffffffff
+#define HWIO_TCL_R1_STATUS_ATTR                                                                                          0x1
+#define HWIO_TCL_R1_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_STATUS_ADDR(x))
+#define HWIO_TCL_R1_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_STATUS_ASE_SKIP_RES_HANDLER_IDLE_BMSK                                                   0x80000000
+#define HWIO_TCL_R1_STATUS_ASE_SKIP_RES_HANDLER_IDLE_SHFT                                                           31
+#define HWIO_TCL_R1_STATUS_HDR_BUF_EMPTY_BMSK                                                               0x40000000
+#define HWIO_TCL_R1_STATUS_HDR_BUF_EMPTY_SHFT                                                                       30
+#define HWIO_TCL_R1_STATUS_DESC_BUF_EMPTY_BMSK                                                              0x20000000
+#define HWIO_TCL_R1_STATUS_DESC_BUF_EMPTY_SHFT                                                                      29
+#define HWIO_TCL_R1_STATUS_GSE_CCE_RES_IDLE_BMSK                                                            0x10000000
+#define HWIO_TCL_R1_STATUS_GSE_CCE_RES_IDLE_SHFT                                                                    28
+#define HWIO_TCL_R1_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_BMSK                                                  0x8000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_SHFT                                                         27
+#define HWIO_TCL_R1_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_BMSK                                               0x4000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_SHFT                                                      26
+#define HWIO_TCL_R1_STATUS_PROD_RING_CTRL_IDLE_BMSK                                                          0x2000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_CTRL_IDLE_SHFT                                                                 25
+#define HWIO_TCL_R1_STATUS_TLV_DECODER_IDLE_BMSK                                                             0x1000000
+#define HWIO_TCL_R1_STATUS_TLV_DECODER_IDLE_SHFT                                                                    24
+#define HWIO_TCL_R1_STATUS_TLV_GEN_IDLE_BMSK                                                                  0x800000
+#define HWIO_TCL_R1_STATUS_TLV_GEN_IDLE_SHFT                                                                        23
+#define HWIO_TCL_R1_STATUS_GSE_CTRL_IDLE_BMSK                                                                 0x400000
+#define HWIO_TCL_R1_STATUS_GSE_CTRL_IDLE_SHFT                                                                       22
+#define HWIO_TCL_R1_STATUS_CLFY_WRAP_IDLE_BMSK                                                                0x200000
+#define HWIO_TCL_R1_STATUS_CLFY_WRAP_IDLE_SHFT                                                                      21
+#define HWIO_TCL_R1_STATUS_CCE_OR_LCE_IDLE_BMSK                                                               0x100000
+#define HWIO_TCL_R1_STATUS_CCE_OR_LCE_IDLE_SHFT                                                                     20
+#define HWIO_TCL_R1_STATUS_ASE_IDLE_BMSK                                                                       0x80000
+#define HWIO_TCL_R1_STATUS_ASE_IDLE_SHFT                                                                            19
+#define HWIO_TCL_R1_STATUS_PARSER_IDLE_BMSK                                                                    0x40000
+#define HWIO_TCL_R1_STATUS_PARSER_IDLE_SHFT                                                                         18
+#define HWIO_TCL_R1_STATUS_TCL_STATUS1_PROD_IDLE_BMSK                                                          0x10000
+#define HWIO_TCL_R1_STATUS_TCL_STATUS1_PROD_IDLE_SHFT                                                               16
+#define HWIO_TCL_R1_STATUS_TCL2FW_PROD_IDLE_BMSK                                                                0x8000
+#define HWIO_TCL_R1_STATUS_TCL2FW_PROD_IDLE_SHFT                                                                    15
+#define HWIO_TCL_R1_STATUS_TCL2TQM_PROD_IDLE_BMSK                                                               0x4000
+#define HWIO_TCL_R1_STATUS_TCL2TQM_PROD_IDLE_SHFT                                                                   14
+#define HWIO_TCL_R1_STATUS_SW2TCL_CREDIT_CONS_IDLE_BMSK                                                         0x1000
+#define HWIO_TCL_R1_STATUS_SW2TCL_CREDIT_CONS_IDLE_SHFT                                                             12
+#define HWIO_TCL_R1_STATUS_FW2TCL1_CONS_IDLE_BMSK                                                                0x800
+#define HWIO_TCL_R1_STATUS_FW2TCL1_CONS_IDLE_SHFT                                                                   11
+#define HWIO_TCL_R1_STATUS_SW2TCL4_CONS_IDLE_BMSK                                                                0x200
+#define HWIO_TCL_R1_STATUS_SW2TCL4_CONS_IDLE_SHFT                                                                    9
+#define HWIO_TCL_R1_STATUS_SW2TCL3_CONS_IDLE_BMSK                                                                0x100
+#define HWIO_TCL_R1_STATUS_SW2TCL3_CONS_IDLE_SHFT                                                                    8
+#define HWIO_TCL_R1_STATUS_SW2TCL2_CONS_IDLE_BMSK                                                                 0x80
+#define HWIO_TCL_R1_STATUS_SW2TCL2_CONS_IDLE_SHFT                                                                    7
+#define HWIO_TCL_R1_STATUS_SW2TCL1_CONS_IDLE_BMSK                                                                 0x40
+#define HWIO_TCL_R1_STATUS_SW2TCL1_CONS_IDLE_SHFT                                                                    6
+#define HWIO_TCL_R1_STATUS_GXI_IDLE_BMSK                                                                          0x20
+#define HWIO_TCL_R1_STATUS_GXI_IDLE_SHFT                                                                             5
+#define HWIO_TCL_R1_STATUS_DESC_RD_IDLE_BMSK                                                                      0x10
+#define HWIO_TCL_R1_STATUS_DESC_RD_IDLE_SHFT                                                                         4
+#define HWIO_TCL_R1_STATUS_SDU_HDR_FETCH_IDLE_BMSK                                                                 0x8
+#define HWIO_TCL_R1_STATUS_SDU_HDR_FETCH_IDLE_SHFT                                                                   3
+#define HWIO_TCL_R1_STATUS_LINK_DESC_FETCH_IDLE_BMSK                                                               0x4
+#define HWIO_TCL_R1_STATUS_LINK_DESC_FETCH_IDLE_SHFT                                                                 2
+#define HWIO_TCL_R1_STATUS_DATA_FETCH_IDLE_BMSK                                                                    0x2
+#define HWIO_TCL_R1_STATUS_DATA_FETCH_IDLE_SHFT                                                                      1
+#define HWIO_TCL_R1_STATUS_TCL_INT_IDLE_BMSK                                                                       0x1
+#define HWIO_TCL_R1_STATUS_TCL_INT_IDLE_SHFT                                                                         0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x)                                                             ((x) + 0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_PHYS(x)                                                             ((x) + 0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_OFFS                                                                (0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_RMSK                                                                0x7fff8fff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_TLV_GEN_BMSK                                                        0x78000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_TLV_GEN_SHFT                                                                27
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_EXTN_DESC_FETCH_BMSK                                                 0x7000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_EXTN_DESC_FETCH_SHFT                                                        24
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_MSDU_FETCH_BMSK                                                       0xe00000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_MSDU_FETCH_SHFT                                                             21
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL_CREDIT_RING_BMSK                                               0x1c0000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL_CREDIT_RING_SHFT                                                     18
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_FW2TCL1_RING_BMSK                                                      0x38000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_FW2TCL1_RING_SHFT                                                           15
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL4_RING_BMSK                                                        0xe00
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL4_RING_SHFT                                                            9
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL3_RING_BMSK                                                        0x1c0
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL3_RING_SHFT                                                            6
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL2_RING_BMSK                                                         0x38
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL2_RING_SHFT                                                            3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL1_RING_BMSK                                                          0x7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL1_RING_SHFT                                                            0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x)                                                             ((x) + 0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PHYS(x)                                                             ((x) + 0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_OFFS                                                                (0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_RMSK                                                                0xfffe3fff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_BMSK                                              0xe0000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_SHFT                                                      29
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_DSCP_TABLE_ACC_BMSK                                                 0x1c000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_DSCP_TABLE_ACC_SHFT                                                         26
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_RING_FW_CTRL_BMSK                                               0x3800000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_RING_FW_CTRL_SHFT                                                      23
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_METADATA_BMSK                                               0x700000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_METADATA_SHFT                                                     20
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_BMSK                                                         0xe0000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_SHFT                                                              17
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_STATUS1_BMSK                                                        0x3800
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_STATUS1_SHFT                                                            11
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2FW_BMSK                                                              0x700
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2FW_SHFT                                                                  8
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2TQM_BMSK                                                              0xe0
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2TQM_SHFT                                                                 5
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_RES_WR_BMSK                                                      0x18
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_RES_WR_SHFT                                                         3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_BMSK                                                              0x7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_SHFT                                                                0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x)                                                             ((x) + 0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_PHYS(x)                                                             ((x) + 0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_OFFS                                                                (0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_RMSK                                                                     0x38f
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_BMSK                                                0x380
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_SHFT                                                    7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_BMSK                                                  0xc
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_SHFT                                                    2
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_BMSK                                                      0x3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_SHFT                                                        0
+
+#define HWIO_TCL_R1_WDOG_STATUS_ADDR(x)                                                                     ((x) + 0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_PHYS(x)                                                                     ((x) + 0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_OFFS                                                                        (0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_RMSK                                                                        0xfffddbff
+#define HWIO_TCL_R1_WDOG_STATUS_POR                                                                         0x00000000
+#define HWIO_TCL_R1_WDOG_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_WDOG_STATUS_ATTR                                                                                     0x1
+#define HWIO_TCL_R1_WDOG_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_STATUS_ADDR(x))
+#define HWIO_TCL_R1_WDOG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_SKIP_RES_HANDLER_IDLE_BMSK                                              0x80000000
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_SKIP_RES_HANDLER_IDLE_SHFT                                                      31
+#define HWIO_TCL_R1_WDOG_STATUS_HDR_BUF_EMPTY_BMSK                                                          0x40000000
+#define HWIO_TCL_R1_WDOG_STATUS_HDR_BUF_EMPTY_SHFT                                                                  30
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_BUF_EMPTY_BMSK                                                         0x20000000
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_BUF_EMPTY_SHFT                                                                 29
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CCE_RES_IDLE_BMSK                                                       0x10000000
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CCE_RES_IDLE_SHFT                                                               28
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_BMSK                                             0x8000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_SHFT                                                    27
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_BMSK                                          0x4000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_SHFT                                                 26
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_CTRL_IDLE_BMSK                                                     0x2000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_CTRL_IDLE_SHFT                                                            25
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_DECODER_IDLE_BMSK                                                        0x1000000
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_DECODER_IDLE_SHFT                                                               24
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_GEN_IDLE_BMSK                                                             0x800000
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_GEN_IDLE_SHFT                                                                   23
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CTRL_IDLE_BMSK                                                            0x400000
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CTRL_IDLE_SHFT                                                                  22
+#define HWIO_TCL_R1_WDOG_STATUS_CLFY_WRAP_IDLE_BMSK                                                           0x200000
+#define HWIO_TCL_R1_WDOG_STATUS_CLFY_WRAP_IDLE_SHFT                                                                 21
+#define HWIO_TCL_R1_WDOG_STATUS_CCE_OR_LCE_IDLE_BMSK                                                          0x100000
+#define HWIO_TCL_R1_WDOG_STATUS_CCE_OR_LCE_IDLE_SHFT                                                                20
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_IDLE_BMSK                                                                  0x80000
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_IDLE_SHFT                                                                       19
+#define HWIO_TCL_R1_WDOG_STATUS_PARSER_IDLE_BMSK                                                               0x40000
+#define HWIO_TCL_R1_WDOG_STATUS_PARSER_IDLE_SHFT                                                                    18
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_STATUS1_PROD_IDLE_BMSK                                                     0x10000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_STATUS1_PROD_IDLE_SHFT                                                          16
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2FW_PROD_IDLE_BMSK                                                           0x8000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2FW_PROD_IDLE_SHFT                                                               15
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2TQM_PROD_IDLE_BMSK                                                          0x4000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2TQM_PROD_IDLE_SHFT                                                              14
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL_CREDIT_CONS_IDLE_BMSK                                                    0x1000
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL_CREDIT_CONS_IDLE_SHFT                                                        12
+#define HWIO_TCL_R1_WDOG_STATUS_FW2TCL1_CONS_IDLE_BMSK                                                           0x800
+#define HWIO_TCL_R1_WDOG_STATUS_FW2TCL1_CONS_IDLE_SHFT                                                              11
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL4_CONS_IDLE_BMSK                                                           0x200
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL4_CONS_IDLE_SHFT                                                               9
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL3_CONS_IDLE_BMSK                                                           0x100
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL3_CONS_IDLE_SHFT                                                               8
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL2_CONS_IDLE_BMSK                                                            0x80
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL2_CONS_IDLE_SHFT                                                               7
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL1_CONS_IDLE_BMSK                                                            0x40
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL1_CONS_IDLE_SHFT                                                               6
+#define HWIO_TCL_R1_WDOG_STATUS_GXI_IDLE_BMSK                                                                     0x20
+#define HWIO_TCL_R1_WDOG_STATUS_GXI_IDLE_SHFT                                                                        5
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_RD_IDLE_BMSK                                                                 0x10
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_RD_IDLE_SHFT                                                                    4
+#define HWIO_TCL_R1_WDOG_STATUS_SDU_HDR_FETCH_IDLE_BMSK                                                            0x8
+#define HWIO_TCL_R1_WDOG_STATUS_SDU_HDR_FETCH_IDLE_SHFT                                                              3
+#define HWIO_TCL_R1_WDOG_STATUS_LINK_DESC_FETCH_IDLE_BMSK                                                          0x4
+#define HWIO_TCL_R1_WDOG_STATUS_LINK_DESC_FETCH_IDLE_SHFT                                                            2
+#define HWIO_TCL_R1_WDOG_STATUS_DATA_FETCH_IDLE_BMSK                                                               0x2
+#define HWIO_TCL_R1_WDOG_STATUS_DATA_FETCH_IDLE_SHFT                                                                 1
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_INT_IDLE_BMSK                                                                  0x1
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_INT_IDLE_SHFT                                                                    0
+
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x)                                                    ((x) + 0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PHYS(x)                                                    ((x) + 0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_OFFS                                                       (0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_RMSK                                                          0x3f76f
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_POR                                                        0x00000000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ATTR                                                                    0x1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x))
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PARSER_BMSK                                                   0x20000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PARSER_SHFT                                                        17
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ASE_BMSK                                                      0x10000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ASE_SHFT                                                           16
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_METADATA_FETCH_BMSK                                            0x8000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_METADATA_FETCH_SHFT                                                15
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PEER_DATA_FETCH_BMSK                                           0x4000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PEER_DATA_FETCH_SHFT                                               14
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_HDR_DATA_FETCH_BMSK                                            0x2000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_HDR_DATA_FETCH_SHFT                                                13
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_LINK_EXTN_FETCH_BMSK                                           0x1000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_LINK_EXTN_FETCH_SHFT                                               12
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL_STATUS1_BMSK                                                0x400
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL_STATUS1_SHFT                                                   10
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2FW_BMSK                                                     0x200
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2FW_SHFT                                                         9
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2TQM_BMSK                                                    0x100
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2TQM_SHFT                                                        8
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL_CREDIT_BMSK                                               0x40
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL_CREDIT_SHFT                                                  6
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_FW2TCL1_BMSK                                                     0x20
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_FW2TCL1_SHFT                                                        5
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL4_BMSK                                                      0x8
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL4_SHFT                                                        3
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL3_BMSK                                                      0x4
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL3_SHFT                                                        2
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL2_BMSK                                                      0x2
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL2_SHFT                                                        1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL1_BMSK                                                      0x1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL1_SHFT                                                        0
+
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x)                                                            ((x) + 0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_PHYS(x)                                                            ((x) + 0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_OFFS                                                               (0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_RMSK                                                                     0xff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_POR                                                                0x00000000
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ATTR                                                                            0x1
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x))
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_REQ_RESP_TIME_BMSK                                                       0xff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_REQ_RESP_TIME_SHFT                                                          0
+
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x)                                                                  ((x) + 0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PHYS(x)                                                                  ((x) + 0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OFFS                                                                     (0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_RMSK                                                                     0x3fffffff
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_POR                                                                      0x00000000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x),v)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x),m,v,HWIO_TCL_R1_TESTBUS_CTRL_0_IN(x))
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                0x20000000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                        29
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_TCL_MAIN_SELECT_BMSK                                                     0x1f800000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_TCL_MAIN_SELECT_SHFT                                                             23
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_GXI_SELECT_BMSK                                                            0x7c0000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_GXI_SELECT_SHFT                                                                  18
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_FSE_SELECT_BMSK                                                             0x3c000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_FSE_SELECT_SHFT                                                                  14
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ASE_SELECT_BMSK                                                              0x3c00
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ASE_SELECT_SHFT                                                                  10
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PARSER_SELECT_BMSK                                                            0x3e0
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PARSER_SELECT_SHFT                                                                5
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_CCE_SELECT_BMSK                                                                0x1f
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_CCE_SELECT_SHFT                                                                   0
+
+#define HWIO_TCL_R1_TESTBUS_LOW_ADDR(x)                                                                     ((x) + 0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_PHYS(x)                                                                     ((x) + 0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_OFFS                                                                        (0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_RMSK                                                                        0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_POR                                                                         0x00000000
+#define HWIO_TCL_R1_TESTBUS_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_ATTR                                                                                     0x1
+#define HWIO_TCL_R1_TESTBUS_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_LOW_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_LOW_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_LOW_VAL_BMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_VAL_SHFT                                                                             0
+
+#define HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x)                                                                    ((x) + 0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_PHYS(x)                                                                    ((x) + 0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_OFFS                                                                       (0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_RMSK                                                                             0xff
+#define HWIO_TCL_R1_TESTBUS_HIGH_POR                                                                        0x00000000
+#define HWIO_TCL_R1_TESTBUS_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R1_TESTBUS_HIGH_ATTR                                                                                    0x1
+#define HWIO_TCL_R1_TESTBUS_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_HIGH_VAL_BMSK                                                                         0xff
+#define HWIO_TCL_R1_TESTBUS_HIGH_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x)                                                                  ((x) + 0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_PHYS(x)                                                                  ((x) + 0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OFFS                                                                     (0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_0_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x)                                                                  ((x) + 0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_PHYS(x)                                                                  ((x) + 0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OFFS                                                                     (0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_1_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x)                                                                  ((x) + 0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_PHYS(x)                                                                  ((x) + 0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OFFS                                                                     (0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_2_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_2_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x)                                                                  ((x) + 0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_PHYS(x)                                                                  ((x) + 0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OFFS                                                                     (0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_3_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_3_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                       ((x) + 0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                       ((x) + 0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                          (0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                          0xffffffff
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                           0x7ffe0002
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                       0x3
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                        0xfffe0000
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                17
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                         0x1fffc
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                               2
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                      0x2
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                        1
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                       0x1
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                         0
+
+#define HWIO_TCL_R1_SPARE_REGISTER_ADDR(x)                                                                  ((x) + 0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_PHYS(x)                                                                  ((x) + 0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_OFFS                                                                     (0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SPARE_REGISTER_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_SPARE_REGISTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x))
+#define HWIO_TCL_R1_SPARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x), m)
+#define HWIO_TCL_R1_SPARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x),v)
+#define HWIO_TCL_R1_SPARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x),m,v,HWIO_TCL_R1_SPARE_REGISTER_IN(x))
+#define HWIO_TCL_R1_SPARE_REGISTER_TCL_SPARE_FIELD_32_BMSK                                                  0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_TCL_SPARE_FIELD_32_SHFT                                                           0
+
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x)                                                               ((x) + 0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_PHYS(x)                                                               ((x) + 0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OFFS                                                                  (0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_RMSK                                                                         0x1
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_POR                                                                   0x00000000
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_ATTR                                                                               0x3
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TCL_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                  0x1
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                    0
+
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x)                                                           ((x) + 0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_PHYS(x)                                                           ((x) + 0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OFFS                                                              (0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_RMSK                                                                     0x1
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_POR                                                               0x00000000
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ATTR                                                                           0x3
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                              0x1
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                0
+
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x)                                                        ((x) + 0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_PHYS(x)                                                        ((x) + 0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OFFS                                                           (0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_RMSK                                                                  0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_POR                                                            0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ATTR                                                                        0x3
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x),m,v,HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_IN(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_EN_BMSK                                                               0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_EN_SHFT                                                                 0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x)                                                ((x) + 0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_PHYS(x)                                                ((x) + 0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_OFFS                                                   (0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_POR                                                    0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ATTR                                                                0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_VAL_BMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_VAL_SHFT                                                        0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x)                                                  ((x) + 0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_PHYS(x)                                                  ((x) + 0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_OFFS                                                     (0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_RMSK                                                     0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_POR                                                      0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ATTR                                                                  0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_VAL_BMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_VAL_SHFT                                                          0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x)                                             ((x) + 0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_PHYS(x)                                             ((x) + 0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_OFFS                                                (0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_RMSK                                                0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ATTR                                                             0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_VAL_BMSK                                            0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_VAL_SHFT                                                     0
+
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x)                                               ((x) + 0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PHYS(x)                                               ((x) + 0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_OFFS                                                  (0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_RMSK                                                     0xfffff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_POR                                                   0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ATTR                                                               0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PEAK_BMSK                                                0xffc00
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PEAK_SHFT                                                     10
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_CURR_BMSK                                                  0x3ff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_CURR_SHFT                                                      0
+
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x)                                                   ((x) + 0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PHYS(x)                                                   ((x) + 0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_OFFS                                                      (0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_RMSK                                                       0x3ffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_POR                                                       0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ATTR                                                                   0x1
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_SQUARE_OCCUPANCY_BMSK                                      0x3fffc00
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_SQUARE_OCCUPANCY_SHFT                                             10
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PEAK_NUM_SEARCH_PENDING_BMSK                                   0x3e0
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PEAK_NUM_SEARCH_PENDING_SHFT                                       5
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_NUM_SEARCH_PENDING_BMSK                                         0x1f
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_NUM_SEARCH_PENDING_SHFT                                            0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x)                                              ((x) + 0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_PHYS(x)                                              ((x) + 0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_OFFS                                                 (0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_RMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_POR                                                  0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ATTR                                                              0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_VAL_BMSK                                             0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_VAL_SHFT                                                      0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x)                                                ((x) + 0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_PHYS(x)                                                ((x) + 0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_OFFS                                                   (0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_POR                                                    0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ATTR                                                                0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_VAL_BMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_VAL_SHFT                                                        0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x)                                           ((x) + 0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_PHYS(x)                                           ((x) + 0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_OFFS                                              (0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_RMSK                                              0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_POR                                               0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ATTR                                                           0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_VAL_BMSK                                          0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_VAL_SHFT                                                   0
+
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x)                                                 ((x) + 0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PHYS(x)                                                 ((x) + 0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_OFFS                                                    (0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_RMSK                                                         0x3ff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_POR                                                     0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ATTR                                                                 0x1
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PEAK_NUM_SEARCH_PENDING_BMSK                                 0x3e0
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PEAK_NUM_SEARCH_PENDING_SHFT                                     5
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_NUM_SEARCH_PENDING_BMSK                                       0x1f
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_NUM_SEARCH_PENDING_SHFT                                          0
+
+#define HWIO_TCL_R1_ASE_SM_STATES_ADDR(x)                                                                   ((x) + 0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_PHYS(x)                                                                   ((x) + 0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_OFFS                                                                      (0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_RMSK                                                                        0x3fff0f
+#define HWIO_TCL_R1_ASE_SM_STATES_POR                                                                       0x00000000
+#define HWIO_TCL_R1_ASE_SM_STATES_POR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R1_ASE_SM_STATES_ATTR                                                                                   0x1
+#define HWIO_TCL_R1_ASE_SM_STATES_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_SM_STATES_ADDR(x))
+#define HWIO_TCL_R1_ASE_SM_STATES_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_SM_STATES_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_SM_STATES_GSE_CTRL_STATE_BMSK                                                         0x300000
+#define HWIO_TCL_R1_ASE_SM_STATES_GSE_CTRL_STATE_SHFT                                                               20
+#define HWIO_TCL_R1_ASE_SM_STATES_CACHE_CHK_STATE_BMSK                                                         0xc0000
+#define HWIO_TCL_R1_ASE_SM_STATES_CACHE_CHK_STATE_SHFT                                                              18
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS1_STATE_BMSK                                                          0x30000
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS1_STATE_SHFT                                                               16
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS2_STATE_BMSK                                                           0xc000
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS2_STATE_SHFT                                                               14
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP1_STATE_BMSK                                                          0x3800
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP1_STATE_SHFT                                                              11
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP2_STATE_BMSK                                                           0x700
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP2_STATE_SHFT                                                               8
+#define HWIO_TCL_R1_ASE_SM_STATES_APP_RETURN_STATE_BMSK                                                            0xf
+#define HWIO_TCL_R1_ASE_SM_STATES_APP_RETURN_STATE_SHFT                                                              0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x)                                                                 ((x) + 0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_PHYS(x)                                                                 ((x) + 0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OFFS                                                                    (0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_RMSK                                                                         0x3ff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_POR                                                                     0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ATTR                                                                                 0x3
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x),m,v,HWIO_TCL_R1_ASE_CACHE_DEBUG_IN(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_READ_IDX_BMSK                                                                0x3ff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_READ_IDX_SHFT                                                                    0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x)                                                     ((x) + 0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_PHYS(x)                                                     ((x) + 0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_OFFS                                                        (0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_RMSK                                                          0x7fffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_POR                                                         0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ATTR                                                                     0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_GST_IDX_BMSK                                                  0x7ffff8
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_GST_IDX_SHFT                                                         3
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_CACHE_ONLY_BMSK                                                    0x4
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_CACHE_ONLY_SHFT                                                      2
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_DIRTY_BMSK                                                         0x2
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_DIRTY_SHFT                                                           1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_VALID_BMSK                                                         0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_VALID_SHFT                                                           0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n)                                                    ((base) + 0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_PHYS(base,n)                                                    ((base) + 0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_OFFS(n)                                                         (0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_MAXn                                                                    31
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_POR                                                             0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ATTR                                                                         0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n), HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_RMSK)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n), mask)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_VAL_BMSK                                                        0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x)                                                                 ((x) + 0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_PHYS(x)                                                                 ((x) + 0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OFFS                                                                    (0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL1_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x)                                                                 ((x) + 0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_PHYS(x)                                                                 ((x) + 0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OFFS                                                                    (0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL1_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x)                                                                 ((x) + 0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_PHYS(x)                                                                 ((x) + 0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OFFS                                                                    (0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL2_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x)                                                                 ((x) + 0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_PHYS(x)                                                                 ((x) + 0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OFFS                                                                    (0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL2_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x)                                                                 ((x) + 0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_PHYS(x)                                                                 ((x) + 0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OFFS                                                                    (0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL3_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x)                                                                 ((x) + 0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_PHYS(x)                                                                 ((x) + 0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OFFS                                                                    (0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL3_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x)                                                                 ((x) + 0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_PHYS(x)                                                                 ((x) + 0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OFFS                                                                    (0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL4_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x)                                                                 ((x) + 0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_PHYS(x)                                                                 ((x) + 0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OFFS                                                                    (0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL4_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x)                                                           ((x) + 0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_PHYS(x)                                                           ((x) + 0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OFFS                                                              (0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_RMSK                                                                 0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_POR                                                               0x00000000
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ATTR                                                                           0x3
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_HEAD_PTR_BMSK                                                        0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x)                                                           ((x) + 0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_PHYS(x)                                                           ((x) + 0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OFFS                                                              (0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_RMSK                                                                 0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_POR                                                               0x00000000
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ATTR                                                                           0x3
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_TAIL_PTR_BMSK                                                        0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x)                                                                 ((x) + 0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_PHYS(x)                                                                 ((x) + 0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OFFS                                                                    (0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_FW2TCL1_RING_HP_IN(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x)                                                                 ((x) + 0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_PHYS(x)                                                                 ((x) + 0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OFFS                                                                    (0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_FW2TCL1_RING_TP_IN(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x)                                                                 ((x) + 0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_PHYS(x)                                                                 ((x) + 0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OFFS                                                                    (0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL2TQM_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x)                                                                 ((x) + 0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_PHYS(x)                                                                 ((x) + 0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OFFS                                                                    (0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL2TQM_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x)                                                             ((x) + 0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_PHYS(x)                                                             ((x) + 0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OFFS                                                                (0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_RMSK                                                                    0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_POR                                                                 0x00000000
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_ATTR                                                                             0x3
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL_STATUS1_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_HEAD_PTR_BMSK                                                           0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x)                                                             ((x) + 0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_PHYS(x)                                                             ((x) + 0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OFFS                                                                (0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_RMSK                                                                    0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_POR                                                                 0x00000000
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_ATTR                                                                             0x3
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL_STATUS1_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_TAIL_PTR_BMSK                                                           0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x)                                                                  ((x) + 0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_PHYS(x)                                                                  ((x) + 0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OFFS                                                                     (0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_POR                                                                      0x00000000
+#define HWIO_TCL_R2_TCL2FW_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TCL_R2_TCL2FW_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL2FW_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL2FW_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL2FW_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x)                                                                  ((x) + 0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_PHYS(x)                                                                  ((x) + 0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OFFS                                                                     (0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_POR                                                                      0x00000000
+#define HWIO_TCL_R2_TCL2FW_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TCL_R2_TCL2FW_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL2FW_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL2FW_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL2FW_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+/*----------------------------------------------------------------------------
+ * MODULE: MAC_CMN_PARSER_REG
+ *--------------------------------------------------------------------------*/
+
+#define MAC_CMN_PARSER_REG_REG_BASE                                                        (UMAC_BASE      + 0x00047000)
+#define MAC_CMN_PARSER_REG_REG_BASE_SIZE                                                   0x3000
+#define MAC_CMN_PARSER_REG_REG_BASE_USED                                                   0x508
+#define MAC_CMN_PARSER_REG_REG_BASE_PHYS                                                   (UMAC_BASE_PHYS + 0x00047000)
+#define MAC_CMN_PARSER_REG_REG_BASE_OFFS                                                   0x00047000
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x)                                              ((x) + 0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_PHYS(x)                                              ((x) + 0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_OFFS                                                 (0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x)                                              ((x) + 0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_PHYS(x)                                              ((x) + 0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_OFFS                                                 (0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_POR                                                  0x0000002b
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x)                                              ((x) + 0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_PHYS(x)                                              ((x) + 0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_OFFS                                                 (0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_POR                                                  0x0000003c
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x)                                              ((x) + 0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_PHYS(x)                                              ((x) + 0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_OFFS                                                 (0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_POR                                                  0x00000033
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x)                                              ((x) + 0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_PHYS(x)                                              ((x) + 0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_OFFS                                                 (0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_POR                                                  0x00000887
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x)                                              ((x) + 0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_PHYS(x)                                              ((x) + 0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_OFFS                                                 (0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_POR                                                  0x0000082c
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x)                                              ((x) + 0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_PHYS(x)                                              ((x) + 0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OFFS                                                 (0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x)                                              ((x) + 0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_PHYS(x)                                              ((x) + 0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OFFS                                                 (0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x)                                              ((x) + 0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_PHYS(x)                                              ((x) + 0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OFFS                                                 (0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x)                                              ((x) + 0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_PHYS(x)                                              ((x) + 0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OFFS                                                 (0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x)                                             ((x) + 0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_PHYS(x)                                             ((x) + 0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OFFS                                                (0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x)                                             ((x) + 0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_PHYS(x)                                             ((x) + 0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OFFS                                                (0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x)                                             ((x) + 0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_PHYS(x)                                             ((x) + 0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OFFS                                                (0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x)                                             ((x) + 0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_PHYS(x)                                             ((x) + 0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OFFS                                                (0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x)                                             ((x) + 0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_PHYS(x)                                             ((x) + 0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OFFS                                                (0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x)                                             ((x) + 0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_PHYS(x)                                             ((x) + 0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OFFS                                                (0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OFFS                                                (0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_RMSK                                                      0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS1_BMSK                                             0xf0
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS1_SHFT                                                4
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS0_BMSK                                              0xf
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS0_SHFT                                                0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x)                                   ((x) + 0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_PHYS(x)                                   ((x) + 0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OFFS                                      (0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_RMSK                                      0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_POR                                       0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_POR_RMSK                                  0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ATTR                                                   0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL3_BMSK                                 0xff000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL3_SHFT                                         24
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL2_BMSK                                   0xff0000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL2_SHFT                                         16
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL1_BMSK                                     0xff00
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL1_SHFT                                          8
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL0_BMSK                                       0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL0_SHFT                                          0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x)                                   ((x) + 0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_PHYS(x)                                   ((x) + 0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OFFS                                      (0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_RMSK                                      0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_POR                                       0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_POR_RMSK                                  0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ATTR                                                   0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL7_BMSK                                 0xff000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL7_SHFT                                         24
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL6_BMSK                                   0xff0000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL6_SHFT                                         16
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL5_BMSK                                     0xff00
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL5_SHFT                                          8
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL4_BMSK                                       0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL4_SHFT                                          0
+
+#define HWIO_CP_R0_IPV6_CONFIG_ADDR(x)                                                     ((x) + 0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_PHYS(x)                                                     ((x) + 0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_OFFS                                                        (0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_RMSK                                                             0xfff
+#define HWIO_CP_R0_IPV6_CONFIG_POR                                                         0x00000080
+#define HWIO_CP_R0_IPV6_CONFIG_POR_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_IPV6_CONFIG_ATTR                                                                     0x3
+#define HWIO_CP_R0_IPV6_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CONFIG_ADDR(x))
+#define HWIO_CP_R0_IPV6_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CONFIG_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CONFIG_ADDR(x),m,v,HWIO_CP_R0_IPV6_CONFIG_IN(x))
+#define HWIO_CP_R0_IPV6_CONFIG_USE_AH_FOR_FLOW_ID_BMSK                                          0x800
+#define HWIO_CP_R0_IPV6_CONFIG_USE_AH_FOR_FLOW_ID_SHFT                                             11
+#define HWIO_CP_R0_IPV6_CONFIG_SPI_FROM_AH_OR_ESP_BMSK                                          0x400
+#define HWIO_CP_R0_IPV6_CONFIG_SPI_FROM_AH_OR_ESP_SHFT                                             10
+#define HWIO_CP_R0_IPV6_CONFIG_L4_BYTES_EXCEEDED_256_BMSK                                       0x200
+#define HWIO_CP_R0_IPV6_CONFIG_L4_BYTES_EXCEEDED_256_SHFT                                           9
+#define HWIO_CP_R0_IPV6_CONFIG_L3_BYTES_EXCEEDED_256_BMSK                                       0x100
+#define HWIO_CP_R0_IPV6_CONFIG_L3_BYTES_EXCEEDED_256_SHFT                                           8
+#define HWIO_CP_R0_IPV6_CONFIG_EXT_HEADER_BYTES_BMSK                                             0xff
+#define HWIO_CP_R0_IPV6_CONFIG_EXT_HEADER_BYTES_SHFT                                                0
+
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x)                                               ((x) + 0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_PHYS(x)                                               ((x) + 0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_OFFS                                                  (0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_RMSK                                                     0x1ffff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_POR                                                   0x00010040
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_POR_RMSK                                              0xffffffff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_ATTR                                                               0x1
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x))
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_DONE_NUM_BMSK                                     0x1ff00
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_DONE_NUM_SHFT                                           8
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_NUM_BMSK                                             0xff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_NUM_SHFT                                                0
+
+#define HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x)                                                 ((x) + 0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_PHYS(x)                                                 ((x) + 0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OFFS                                                    (0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_CLKGATE_DISABLE_POR                                                     0x00000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_POR_RMSK                                                0xffffffff
+#define HWIO_CP_R0_CLKGATE_DISABLE_ATTR                                                                 0x3
+#define HWIO_CP_R0_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_CP_R0_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_CP_R0_CLKGATE_DISABLE_IN(x))
+#define HWIO_CP_R0_CLKGATE_DISABLE_CLK_EXTEND_BMSK                                         0x80000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_CLK_EXTEND_SHFT                                                 31
+#define HWIO_CP_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_BMSK                                      0x40000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_SHFT                                              30
+#define HWIO_CP_R0_CLKGATE_DISABLE_CP_RSRVD_BMSK                                           0x3fffff00
+#define HWIO_CP_R0_CLKGATE_DISABLE_CP_RSRVD_SHFT                                                    8
+#define HWIO_CP_R0_CLKGATE_DISABLE_CCE_SM_BMSK                                                   0x80
+#define HWIO_CP_R0_CLKGATE_DISABLE_CCE_SM_SHFT                                                      7
+#define HWIO_CP_R0_CLKGATE_DISABLE_NWIFI_BMSK                                                    0x40
+#define HWIO_CP_R0_CLKGATE_DISABLE_NWIFI_SHFT                                                       6
+#define HWIO_CP_R0_CLKGATE_DISABLE_ETH_BMSK                                                      0x20
+#define HWIO_CP_R0_CLKGATE_DISABLE_ETH_SHFT                                                         5
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AH_BMSK                                               0x10
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AH_SHFT                                                  4
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AC_BMSK                                                0x8
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AC_SHFT                                                  3
+#define HWIO_CP_R0_CLKGATE_DISABLE_WIFI_BMSK                                                      0x4
+#define HWIO_CP_R0_CLKGATE_DISABLE_WIFI_SHFT                                                        2
+#define HWIO_CP_R0_CLKGATE_DISABLE_CORE_BMSK                                                      0x2
+#define HWIO_CP_R0_CLKGATE_DISABLE_CORE_SHFT                                                        1
+#define HWIO_CP_R0_CLKGATE_DISABLE_APB_BMSK                                                       0x1
+#define HWIO_CP_R0_CLKGATE_DISABLE_APB_SHFT                                                         0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x)                                          ((x) + 0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_PHYS(x)                                          ((x) + 0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OFFS                                             (0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x)                                          ((x) + 0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_PHYS(x)                                          ((x) + 0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OFFS                                             (0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x)                                          ((x) + 0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_PHYS(x)                                          ((x) + 0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OFFS                                             (0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x)                                          ((x) + 0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_PHYS(x)                                          ((x) + 0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OFFS                                             (0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x)                                          ((x) + 0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_PHYS(x)                                          ((x) + 0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OFFS                                             (0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x)                                          ((x) + 0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_PHYS(x)                                          ((x) + 0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OFFS                                             (0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x)                                          ((x) + 0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_PHYS(x)                                          ((x) + 0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OFFS                                             (0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x)                                          ((x) + 0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_PHYS(x)                                          ((x) + 0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OFFS                                             (0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x)                                          ((x) + 0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_PHYS(x)                                          ((x) + 0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OFFS                                             (0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x)                                          ((x) + 0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_PHYS(x)                                          ((x) + 0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OFFS                                             (0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x)                                          ((x) + 0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_PHYS(x)                                          ((x) + 0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OFFS                                             (0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x)                                          ((x) + 0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_PHYS(x)                                          ((x) + 0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OFFS                                             (0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x)                                          ((x) + 0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_PHYS(x)                                          ((x) + 0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OFFS                                             (0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x)                                          ((x) + 0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_PHYS(x)                                          ((x) + 0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OFFS                                             (0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x)                                          ((x) + 0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_PHYS(x)                                          ((x) + 0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OFFS                                             (0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_RMSK                                                 0xffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_1_BMSK                                         0xff00
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_1_SHFT                                              8
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_0_BMSK                                           0xff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_0_SHFT                                              0
+
+#define HWIO_CP_R0_MISC_CONFIG_ADDR(x)                                                     ((x) + 0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_PHYS(x)                                                     ((x) + 0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_OFFS                                                        (0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_RMSK                                                        0x1fffffff
+#define HWIO_CP_R0_MISC_CONFIG_POR                                                         0x0003c110
+#define HWIO_CP_R0_MISC_CONFIG_POR_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_MISC_CONFIG_ATTR                                                                     0x3
+#define HWIO_CP_R0_MISC_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_MISC_CONFIG_ADDR(x))
+#define HWIO_CP_R0_MISC_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_MISC_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_MISC_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_MISC_CONFIG_ADDR(x),v)
+#define HWIO_CP_R0_MISC_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_MISC_CONFIG_ADDR(x),m,v,HWIO_CP_R0_MISC_CONFIG_IN(x))
+#define HWIO_CP_R0_MISC_CONFIG_REPORT_FLOW_ID_OR_HASH_3_BMSK                               0x10000000
+#define HWIO_CP_R0_MISC_CONFIG_REPORT_FLOW_ID_OR_HASH_3_SHFT                                       28
+#define HWIO_CP_R0_MISC_CONFIG_ETH_MIN_PACKET_LEN_BMSK                                      0xffff000
+#define HWIO_CP_R0_MISC_CONFIG_ETH_MIN_PACKET_LEN_SHFT                                             12
+#define HWIO_CP_R0_MISC_CONFIG_TIMEOUT_EN_BMSK                                                  0x800
+#define HWIO_CP_R0_MISC_CONFIG_TIMEOUT_EN_SHFT                                                     11
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_8870_BMSK                                                 0x400
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_8870_SHFT                                                    10
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_C9D1_BMSK                                                 0x200
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_C9D1_SHFT                                                     9
+#define HWIO_CP_R0_MISC_CONFIG_VLAN_LLC_FOR_802_3_BMSK                                          0x100
+#define HWIO_CP_R0_MISC_CONFIG_VLAN_LLC_FOR_802_3_SHFT                                              8
+#define HWIO_CP_R0_MISC_CONFIG_IP_DA_SA_PREFIX_BMSK                                              0xc0
+#define HWIO_CP_R0_MISC_CONFIG_IP_DA_SA_PREFIX_SHFT                                                 6
+#define HWIO_CP_R0_MISC_CONFIG_UDP_LITE_PARSE_EN_BMSK                                            0x20
+#define HWIO_CP_R0_MISC_CONFIG_UDP_LITE_PARSE_EN_SHFT                                               5
+#define HWIO_CP_R0_MISC_CONFIG_TPID_BITMAP_VALUE_BMSK                                            0x1f
+#define HWIO_CP_R0_MISC_CONFIG_TPID_BITMAP_VALUE_SHFT                                               0
+
+#define HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x)                                                  ((x) + 0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_PHYS(x)                                                  ((x) + 0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OFFS                                                     (0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_WATCHDOG_TIMER_POR                                                      0x00000000
+#define HWIO_CP_R0_WATCHDOG_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_WATCHDOG_TIMER_ATTR                                                                  0x3
+#define HWIO_CP_R0_WATCHDOG_TIMER_IN(x)            \
+                in_dword(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x))
+#define HWIO_CP_R0_WATCHDOG_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x), m)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x),v)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x),m,v,HWIO_CP_R0_WATCHDOG_TIMER_IN(x))
+#define HWIO_CP_R0_WATCHDOG_TIMER_VALUE_BMSK                                               0xfffffffe
+#define HWIO_CP_R0_WATCHDOG_TIMER_VALUE_SHFT                                                        1
+#define HWIO_CP_R0_WATCHDOG_TIMER_ENABLE_BMSK                                                     0x1
+#define HWIO_CP_R0_WATCHDOG_TIMER_ENABLE_SHFT                                                       0
+
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                       ((x) + 0x500)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                       ((x) + 0x500)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                          (0x500)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                          0xffffffff
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                           0x7ffe0002
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                      0xffffffff
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                       0x3
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                        0xfffe0000
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                17
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                         0x1fffc
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                               2
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                      0x2
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                        1
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                       0x1
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                         0
+
+#define HWIO_CP_R1_SM_STATES_ADDR(x)                                                       ((x) + 0x504)
+#define HWIO_CP_R1_SM_STATES_PHYS(x)                                                       ((x) + 0x504)
+#define HWIO_CP_R1_SM_STATES_OFFS                                                          (0x504)
+#define HWIO_CP_R1_SM_STATES_RMSK                                                          0xffffffff
+#define HWIO_CP_R1_SM_STATES_POR                                                           0x00000000
+#define HWIO_CP_R1_SM_STATES_POR_RMSK                                                      0xffffffff
+#define HWIO_CP_R1_SM_STATES_ATTR                                                                       0x1
+#define HWIO_CP_R1_SM_STATES_IN(x)            \
+                in_dword(HWIO_CP_R1_SM_STATES_ADDR(x))
+#define HWIO_CP_R1_SM_STATES_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_SM_STATES_ADDR(x), m)
+#define HWIO_CP_R1_SM_STATES_MISC_BMSK                                                     0xfffffc00
+#define HWIO_CP_R1_SM_STATES_MISC_SHFT                                                             10
+#define HWIO_CP_R1_SM_STATES_STATE_INFO_BMSK                                                    0x3e0
+#define HWIO_CP_R1_SM_STATES_STATE_INFO_SHFT                                                        5
+#define HWIO_CP_R1_SM_STATES_STATE_MAIN_BMSK                                                     0x1f
+#define HWIO_CP_R1_SM_STATES_STATE_MAIN_SHFT                                                        0
+
+#define HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x)                                               ((x) + 0x508)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_PHYS(x)                                               ((x) + 0x508)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OFFS                                                  (0x508)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_RMSK                                                         0x1
+#define HWIO_CP_R1_END_OF_TEST_CHECK_POR                                                   0x00000000
+#define HWIO_CP_R1_END_OF_TEST_CHECK_POR_RMSK                                              0xffffffff
+#define HWIO_CP_R1_END_OF_TEST_CHECK_ATTR                                                               0x3
+#define HWIO_CP_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_CP_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_CP_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_CP_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                  0x1
+#define HWIO_CP_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                    0
+
+/*----------------------------------------------------------------------------
+ * MODULE: UMAC_NOC
+ *--------------------------------------------------------------------------*/
+
+#define UMAC_NOC_REG_BASE                                                                                       (UMAC_NOC_BASE      + 0x00000000)
+#define UMAC_NOC_REG_BASE_SIZE                                                                                  0x4200
+#define UMAC_NOC_REG_BASE_USED                                                                                  0x4180
+#define UMAC_NOC_REG_BASE_PHYS                                                                                  (UMAC_NOC_BASE_PHYS + 0x00000000)
+#define UMAC_NOC_REG_BASE_OFFS                                                                                  0x00000000
+
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x)                                                                      ((x) + 0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_PHYS(x)                                                                      ((x) + 0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_OFFS                                                                         (0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_RMSK                                                                           0xffffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_POR                                                                          0x000124c9
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_ATTR                                                                                      0x1
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITTYPEID_BMSK                                                                0xff0000
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITTYPEID_SHFT                                                                      16
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITCONFID_BMSK                                                                  0xffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITCONFID_SHFT                                                                       0
+
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x)                                                                     ((x) + 0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_PHYS(x)                                                                     ((x) + 0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_OFFS                                                                        (0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_POR                                                                         0xfbb160c3
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_QNOCID_BMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_QNOCID_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OFFS                                                                      (0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_RMSK                                                                          0xff03
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_POR                                                                       0x00000003
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ATTR                                                                                   0x3
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_ERL_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ERRIGNORE_BMSK                                                                0xff00
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ERRIGNORE_SHFT                                                                     8
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_STALLEN_BMSK                                                                     0x2
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_STALLEN_SHFT                                                                       1
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_FAULTEN_BMSK                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_FAULTEN_SHFT                                                                       0
+
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_OFFS                                                                       (0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_RMSK                                                                              0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ATTR                                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ERRVLD_BMSK                                                                       0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ERRVLD_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ADDR(x)                                                                    ((x) + 0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_PHYS(x)                                                                    ((x) + 0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_OFFS                                                                       (0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_RMSK                                                                              0x1
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ATTR                                                                                    0x2
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ERRCLR_BMSK                                                                       0x1
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ERRCLR_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x)                                                                   ((x) + 0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_PHYS(x)                                                                   ((x) + 0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OFFS                                                                      (0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_RMSK                                                                       0xf3f7777
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATTR                                                                                   0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATOPC_BMSK                                                                 0xf000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATOPC_SHFT                                                                        24
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDRSPACE_BMSK                                                              0x3f0000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDRSPACE_SHFT                                                                    16
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_TRTYPE_BMSK                                                                   0x7000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_TRTYPE_SHFT                                                                       12
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ERRCODE_BMSK                                                                   0x700
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ERRCODE_SHFT                                                                       8
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OPC_BMSK                                                                        0x70
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OPC_SHFT                                                                           4
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_NONSECURE_BMSK                                                                   0x4
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_NONSECURE_SHFT                                                                     2
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_WORDERROR_BMSK                                                                   0x2
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_WORDERROR_SHFT                                                                     1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_LOGINFOVLD_BMSK                                                                  0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_LOGINFOVLD_SHFT                                                                    0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x)                                                                  ((x) + 0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_PHYS(x)                                                                  ((x) + 0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_OFFS                                                                     (0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_RMSK                                                                       0xff03ff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_REDIRECT_BMSK                                                              0xff0000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_REDIRECT_SHFT                                                                    16
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_LEN1_BMSK                                                                     0x3ff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_LEN1_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x)                                                                   ((x) + 0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PHYS(x)                                                                   ((x) + 0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_OFFS                                                                      (0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_RMSK                                                                          0xffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ATTR                                                                                   0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PATH_BMSK                                                                     0xffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PATH_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x)                                                                  ((x) + 0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_PHYS(x)                                                                  ((x) + 0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_OFFS                                                                     (0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_RMSK                                                                        0x3ffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_EXTID_BMSK                                                                  0x3ffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_EXTID_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x)                                                                   ((x) + 0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_PHYS(x)                                                                   ((x) + 0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_OFFS                                                                      (0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ATTR                                                                                   0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ERRLOG2_LSB_BMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ERRLOG2_LSB_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x)                                                                  ((x) + 0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_PHYS(x)                                                                  ((x) + 0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_OFFS                                                                     (0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_RMSK                                                                     0x7fffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ERRLOG2_MSB_BMSK                                                         0x7fffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ERRLOG2_MSB_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x)                                                                   ((x) + 0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_PHYS(x)                                                                   ((x) + 0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_OFFS                                                                      (0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ATTR                                                                                   0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ERRLOG3_LSB_BMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ERRLOG3_LSB_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x)                                                                  ((x) + 0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_PHYS(x)                                                                  ((x) + 0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_OFFS                                                                     (0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ERRLOG3_MSB_BMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ERRLOG3_MSB_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x)                                                                      ((x) + 0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_PHYS(x)                                                                      ((x) + 0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_OFFS                                                                         (0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_RMSK                                                                           0xffffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_POR                                                                          0x0000e93b
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_ATTR                                                                                      0x1
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITTYPEID_BMSK                                                                0xff0000
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITTYPEID_SHFT                                                                      16
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITCONFID_BMSK                                                                  0xffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITCONFID_SHFT                                                                       0
+
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x)                                                                     ((x) + 0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_PHYS(x)                                                                     ((x) + 0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_OFFS                                                                        (0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_POR                                                                         0xfbb160c3
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_QNOCID_BMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_QNOCID_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x)                                                                    ((x) + 0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_PHYS(x)                                                                    ((x) + 0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OFFS                                                                       (0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_RMSK                                                                              0x7
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ATTR                                                                                    0x3
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_MAXDIV_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_MAXDIV_BMSK                                                                       0x7
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_MAXDIV_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x)                                                              ((x) + 0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_PHYS(x)                                                              ((x) + 0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OFFS                                                                 (0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_RMSK                                                                     0xffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_POR                                                                  0x00000100
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_POR_RMSK                                                             0xffffffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ATTR                                                                              0x3
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_FIRSTHYSTCNT_BMSK                                                        0xffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_FIRSTHYSTCNT_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x)                                                               ((x) + 0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_PHYS(x)                                                               ((x) + 0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OFFS                                                                  (0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_RMSK                                                                       0xfff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_POR                                                                   0x00000080
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_POR_RMSK                                                              0xffffffff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ATTR                                                                               0x3
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_NEXTHYSTCNT_BMSK                                                           0xfff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_NEXTHYSTCNT_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x)                                                  ((x) + 0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_PHYS(x)                                                  ((x) + 0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_OFFS                                                     (0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_RMSK                                                       0xffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_POR                                                      0x000e3a95
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ATTR                                                                  0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITTYPEID_BMSK                                            0xff0000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITTYPEID_SHFT                                                  16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITCONFID_BMSK                                              0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITCONFID_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x)                                                 ((x) + 0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_PHYS(x)                                                 ((x) + 0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_OFFS                                                    (0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_POR                                                     0xfbb160c3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_QNOCID_BMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_QNOCID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x)                                            ((x) + 0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PHYS(x)                                            ((x) + 0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OFFS                                               (0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_RMSK                                                   0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_POR                                                0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ATTR                                                            0x3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_IN(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT15_BMSK                                            0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT15_SHFT                                                15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT14_BMSK                                            0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT14_SHFT                                                14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT13_BMSK                                            0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT13_SHFT                                                13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT12_BMSK                                            0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT12_SHFT                                                12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT11_BMSK                                             0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT11_SHFT                                                11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT10_BMSK                                             0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT10_SHFT                                                10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT9_BMSK                                              0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT9_SHFT                                                  9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT8_BMSK                                              0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT8_SHFT                                                  8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT7_BMSK                                               0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT7_SHFT                                                  7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT6_BMSK                                               0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT6_SHFT                                                  6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT5_BMSK                                               0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT5_SHFT                                                  5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT4_BMSK                                               0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT4_SHFT                                                  4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT3_BMSK                                                0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT3_SHFT                                                  3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT2_BMSK                                                0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT2_SHFT                                                  2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT1_BMSK                                                0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT1_SHFT                                                  1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT0_BMSK                                                0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PORT0_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x)                                        ((x) + 0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PHYS(x)                                        ((x) + 0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_OFFS                                           (0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_RMSK                                               0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ATTR                                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT15_BMSK                                        0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT15_SHFT                                            15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT14_BMSK                                        0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT14_SHFT                                            14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT13_BMSK                                        0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT13_SHFT                                            13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT12_BMSK                                        0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT12_SHFT                                            12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT11_BMSK                                         0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT11_SHFT                                            11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT10_BMSK                                         0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT10_SHFT                                            10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT9_BMSK                                          0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT9_SHFT                                              9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT8_BMSK                                          0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT8_SHFT                                              8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT7_BMSK                                           0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT7_SHFT                                              7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT6_BMSK                                           0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT6_SHFT                                              6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT5_BMSK                                           0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT5_SHFT                                              5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT4_BMSK                                           0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT4_SHFT                                              4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT3_BMSK                                            0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT3_SHFT                                              3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT2_BMSK                                            0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT2_SHFT                                              2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT1_BMSK                                            0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT1_SHFT                                              1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT0_BMSK                                            0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PORT0_SHFT                                              0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ADDR(x)                                           ((x) + 0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PHYS(x)                                           ((x) + 0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_OFFS                                              (0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RMSK                                                  0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ATTR                                                           0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT13_BMSK                                           0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT13_SHFT                                               13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT11_BMSK                                            0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT11_SHFT                                               11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT10_BMSK                                            0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT10_SHFT                                               10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT9_BMSK                                             0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT9_SHFT                                                 9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT8_BMSK                                             0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT8_SHFT                                                 8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT6_BMSK                                              0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT6_SHFT                                                 6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT5_BMSK                                              0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT5_SHFT                                                 5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT4_BMSK                                              0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT4_SHFT                                                 4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT3_BMSK                                               0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT3_SHFT                                                 3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT2_BMSK                                               0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT2_SHFT                                                 2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT1_BMSK                                               0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PORT1_SHFT                                                 1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ADDR(x)                                           ((x) + 0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PHYS(x)                                           ((x) + 0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_OFFS                                              (0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RMSK                                                  0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ATTR                                                           0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT13_BMSK                                           0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT13_SHFT                                               13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT11_BMSK                                            0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT11_SHFT                                               11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT10_BMSK                                            0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT10_SHFT                                               10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT9_BMSK                                             0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT9_SHFT                                                 9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT8_BMSK                                             0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT8_SHFT                                                 8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT6_BMSK                                              0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT6_SHFT                                                 6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT5_BMSK                                              0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT5_SHFT                                                 5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT4_BMSK                                              0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT4_SHFT                                                 4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT3_BMSK                                               0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT3_SHFT                                                 3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT2_BMSK                                               0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT2_SHFT                                                 2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT1_BMSK                                               0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PORT1_SHFT                                                 1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x)                                        ((x) + 0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PHYS(x)                                        ((x) + 0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_OFFS                                           (0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RMSK                                               0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_POR                                            0x00002f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ATTR                                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT13_BMSK                                        0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT13_SHFT                                            13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT11_BMSK                                         0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT11_SHFT                                            11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT10_BMSK                                         0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT10_SHFT                                            10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT9_BMSK                                          0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT9_SHFT                                              9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT8_BMSK                                          0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT8_SHFT                                              8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT6_BMSK                                           0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT6_SHFT                                              6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT5_BMSK                                           0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT5_SHFT                                              5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT4_BMSK                                           0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT4_SHFT                                              4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT3_BMSK                                            0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT3_SHFT                                              3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT2_BMSK                                            0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT2_SHFT                                              2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT1_BMSK                                            0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PORT1_SHFT                                              1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x)                                              ((x) + 0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PHYS(x)                                              ((x) + 0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_OFFS                                                 (0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RMSK                                                     0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT13_BMSK                                              0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT13_SHFT                                                  13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT11_BMSK                                               0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT11_SHFT                                                  11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT10_BMSK                                               0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT10_SHFT                                                  10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT9_BMSK                                                0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT9_SHFT                                                    9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT8_BMSK                                                0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT8_SHFT                                                    8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT6_BMSK                                                 0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT6_SHFT                                                    6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT5_BMSK                                                 0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT5_SHFT                                                    5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT4_BMSK                                                 0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT4_SHFT                                                    4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT3_BMSK                                                  0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT3_SHFT                                                    3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT2_BMSK                                                  0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT2_SHFT                                                    2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT1_BMSK                                                  0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PORT1_SHFT                                                    1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x)                                                  ((x) + 0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_PHYS(x)                                                  ((x) + 0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_OFFS                                                     (0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_RMSK                                                       0xffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_POR                                                      0x000e9029
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ATTR                                                                  0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITTYPEID_BMSK                                            0xff0000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITTYPEID_SHFT                                                  16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITCONFID_BMSK                                              0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITCONFID_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x)                                                 ((x) + 0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_PHYS(x)                                                 ((x) + 0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_OFFS                                                    (0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_POR                                                     0xfbb160c3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_QNOCID_BMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_QNOCID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x)                                            ((x) + 0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PHYS(x)                                            ((x) + 0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OFFS                                               (0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_RMSK                                                     0x1f
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_POR                                                0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ATTR                                                            0x3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_IN(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT4_BMSK                                               0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT4_SHFT                                                  4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT3_BMSK                                                0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT3_SHFT                                                  3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT2_BMSK                                                0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT2_SHFT                                                  2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT1_BMSK                                                0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT1_SHFT                                                  1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT0_BMSK                                                0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PORT0_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x)                                        ((x) + 0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PHYS(x)                                        ((x) + 0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_OFFS                                           (0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_RMSK                                                 0x1f
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ATTR                                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT4_BMSK                                           0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT4_SHFT                                              4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT3_BMSK                                            0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT3_SHFT                                              3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT2_BMSK                                            0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT2_SHFT                                              2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT1_BMSK                                            0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT1_SHFT                                              1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT0_BMSK                                            0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PORT0_SHFT                                              0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ADDR(x)                                           ((x) + 0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PHYS(x)                                           ((x) + 0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_OFFS                                              (0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_RMSK                                                0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ATTR                                                           0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT23_BMSK                                         0x800000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT23_SHFT                                               23
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT22_BMSK                                         0x400000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT22_SHFT                                               22
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT21_BMSK                                         0x200000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT21_SHFT                                               21
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT20_BMSK                                         0x100000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT20_SHFT                                               20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT19_BMSK                                          0x80000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT19_SHFT                                               19
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT18_BMSK                                          0x40000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT18_SHFT                                               18
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT17_BMSK                                          0x20000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT17_SHFT                                               17
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT16_BMSK                                          0x10000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT16_SHFT                                               16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT15_BMSK                                           0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT15_SHFT                                               15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT14_BMSK                                           0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT14_SHFT                                               14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT13_BMSK                                           0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT13_SHFT                                               13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT12_BMSK                                           0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT12_SHFT                                               12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT11_BMSK                                            0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT11_SHFT                                               11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT10_BMSK                                            0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT10_SHFT                                               10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT9_BMSK                                             0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT9_SHFT                                                 9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT8_BMSK                                             0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT8_SHFT                                                 8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT7_BMSK                                              0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT7_SHFT                                                 7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT6_BMSK                                              0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT6_SHFT                                                 6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT5_BMSK                                              0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT5_SHFT                                                 5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT4_BMSK                                              0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT4_SHFT                                                 4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT2_BMSK                                               0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT2_SHFT                                                 2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT1_BMSK                                               0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT1_SHFT                                                 1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT0_BMSK                                               0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PORT0_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ADDR(x)                                           ((x) + 0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PHYS(x)                                           ((x) + 0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_OFFS                                              (0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_RMSK                                                0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ATTR                                                           0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT23_BMSK                                         0x800000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT23_SHFT                                               23
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT22_BMSK                                         0x400000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT22_SHFT                                               22
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT21_BMSK                                         0x200000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT21_SHFT                                               21
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT20_BMSK                                         0x100000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT20_SHFT                                               20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT19_BMSK                                          0x80000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT19_SHFT                                               19
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT18_BMSK                                          0x40000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT18_SHFT                                               18
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT17_BMSK                                          0x20000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT17_SHFT                                               17
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT16_BMSK                                          0x10000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT16_SHFT                                               16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT15_BMSK                                           0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT15_SHFT                                               15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT14_BMSK                                           0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT14_SHFT                                               14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT13_BMSK                                           0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT13_SHFT                                               13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT12_BMSK                                           0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT12_SHFT                                               12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT11_BMSK                                            0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT11_SHFT                                               11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT10_BMSK                                            0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT10_SHFT                                               10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT9_BMSK                                             0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT9_SHFT                                                 9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT8_BMSK                                             0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT8_SHFT                                                 8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT7_BMSK                                              0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT7_SHFT                                                 7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT6_BMSK                                              0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT6_SHFT                                                 6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT5_BMSK                                              0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT5_SHFT                                                 5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT4_BMSK                                              0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT4_SHFT                                                 4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT2_BMSK                                               0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT2_SHFT                                                 2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT1_BMSK                                               0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT1_SHFT                                                 1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT0_BMSK                                               0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PORT0_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x)                                        ((x) + 0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PHYS(x)                                        ((x) + 0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_OFFS                                           (0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_RMSK                                             0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_POR                                            0x00000001
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ATTR                                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT23_BMSK                                      0x800000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT23_SHFT                                            23
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT22_BMSK                                      0x400000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT22_SHFT                                            22
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT21_BMSK                                      0x200000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT21_SHFT                                            21
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT20_BMSK                                      0x100000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT20_SHFT                                            20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT19_BMSK                                       0x80000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT19_SHFT                                            19
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT18_BMSK                                       0x40000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT18_SHFT                                            18
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT17_BMSK                                       0x20000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT17_SHFT                                            17
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT16_BMSK                                       0x10000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT16_SHFT                                            16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT15_BMSK                                        0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT15_SHFT                                            15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT14_BMSK                                        0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT14_SHFT                                            14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT13_BMSK                                        0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT13_SHFT                                            13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT12_BMSK                                        0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT12_SHFT                                            12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT11_BMSK                                         0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT11_SHFT                                            11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT10_BMSK                                         0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT10_SHFT                                            10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT9_BMSK                                          0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT9_SHFT                                              9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT8_BMSK                                          0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT8_SHFT                                              8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT7_BMSK                                           0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT7_SHFT                                              7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT6_BMSK                                           0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT6_SHFT                                              6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT5_BMSK                                           0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT5_SHFT                                              5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT4_BMSK                                           0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT4_SHFT                                              4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT2_BMSK                                            0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT2_SHFT                                              2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT1_BMSK                                            0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT1_SHFT                                              1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT0_BMSK                                            0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PORT0_SHFT                                              0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x)                                              ((x) + 0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PHYS(x)                                              ((x) + 0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_OFFS                                                 (0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_RMSK                                                    0xffff6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT19_BMSK                                             0x80000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT19_SHFT                                                  19
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT18_BMSK                                             0x40000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT18_SHFT                                                  18
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT17_BMSK                                             0x20000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT17_SHFT                                                  17
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT16_BMSK                                             0x10000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT16_SHFT                                                  16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT15_BMSK                                              0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT15_SHFT                                                  15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT14_BMSK                                              0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT14_SHFT                                                  14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT13_BMSK                                              0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT13_SHFT                                                  13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT12_BMSK                                              0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT12_SHFT                                                  12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT11_BMSK                                               0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT11_SHFT                                                  11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT10_BMSK                                               0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT10_SHFT                                                  10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT9_BMSK                                                0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT9_SHFT                                                    9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT8_BMSK                                                0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT8_SHFT                                                    8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT7_BMSK                                                 0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT7_SHFT                                                    7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT6_BMSK                                                 0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT6_SHFT                                                    6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT5_BMSK                                                 0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT5_SHFT                                                    5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT4_BMSK                                                 0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT4_SHFT                                                    4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT2_BMSK                                                  0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT2_SHFT                                                    2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT1_BMSK                                                  0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PORT1_SHFT                                                    1
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x)                                                         ((x) + 0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_PHYS(x)                                                         ((x) + 0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_OFFS                                                            (0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_RMSK                                                              0xffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_POR                                                             0x00083dc8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ATTR                                                                         0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                   0xff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                         16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                     0xffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x)                                                        ((x) + 0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_PHYS(x)                                                        ((x) + 0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_OFFS                                                           (0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_RMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_POR                                                            0xfbb160c3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ATTR                                                                        0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x)                                                      ((x) + 0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_PHYS(x)                                                      ((x) + 0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OFFS                                                         (0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_RMSK                                                          0x1003f3f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_POR                                                          0x00000008
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_QOSDISABLE_BMSK                                               0x1000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_QOSDISABLE_SHFT                                                      24
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                    0x3f00
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                         8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                  0x30
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                     4
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SLVURGMSGEN_BMSK                                                    0x8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SLVURGMSGEN_SHFT                                                      3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                           0x4
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                             2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                       0x2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                         1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                   ((x) + 0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                   ((x) + 0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_OFFS                                                      (0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_RMSK                                                       0xfff003f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_POR                                                       0x00a00000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                           0xfff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                  16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                    0x3f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x)                                                      ((x) + 0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_PHYS(x)                                                      ((x) + 0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OFFS                                                         (0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_RMSK                                                          0x3ff07ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_POR                                                          0x00800266
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                               0x3ff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                      16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                    0x7ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x)                                                      ((x) + 0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_PHYS(x)                                                      ((x) + 0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OFFS                                                         (0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_RMSK                                                         0x1f1f1f1f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_POR                                                          0x00000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                    0x1f000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                            24
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                      0x1f0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                            16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                        0x1f00
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                             8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                          0x1f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                    ((x) + 0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                    ((x) + 0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OFFS                                                       (0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RMSK                                                           0x3303
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                              0x3000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                  12
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                0x300
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                    8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                         0x2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                           1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                         0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                     ((x) + 0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                     ((x) + 0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OFFS                                                        (0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_RMSK                                                         0x3ff07ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_POR                                                         0x00400133
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                              0x3ff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                     16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                   0x7ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x)                                                           ((x) + 0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_PHYS(x)                                                           ((x) + 0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_OFFS                                                              (0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_RMSK                                                                0xffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_POR                                                               0x0008b525
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_POR_RMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ATTR                                                                           0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                     0xff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                           16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                       0xffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x)                                                          ((x) + 0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_PHYS(x)                                                          ((x) + 0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_OFFS                                                             (0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_RMSK                                                             0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_POR                                                              0xfbb160c3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ATTR                                                                          0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x)                                                        ((x) + 0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_PHYS(x)                                                        ((x) + 0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OFFS                                                           (0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_RMSK                                                            0x1003f37
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_QOSDISABLE_BMSK                                                 0x1000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_QOSDISABLE_SHFT                                                        24
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                      0x3f00
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                           8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                    0x30
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                       4
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                             0x4
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                               2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                         0x2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                           1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                     ((x) + 0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                     ((x) + 0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_OFFS                                                        (0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_RMSK                                                         0xfff003f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_POR                                                         0x00a00000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                             0xfff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                    16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                      0x3f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x)                                                        ((x) + 0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_PHYS(x)                                                        ((x) + 0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OFFS                                                           (0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_RMSK                                                            0x3ff07ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_POR                                                            0x00c000cc
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                 0x3ff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                        16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                      0x7ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x)                                                        ((x) + 0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_PHYS(x)                                                        ((x) + 0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OFFS                                                           (0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_RMSK                                                           0x1f1f1f1f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                      0x1f000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                              24
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                        0x1f0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                              16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                          0x1f00
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                               8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                            0x1f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                      ((x) + 0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                      ((x) + 0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OFFS                                                         (0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RMSK                                                             0x3303
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_POR                                                          0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                0x3000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                    12
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                  0x300
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                      8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                           0x2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                             1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                           0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                       ((x) + 0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                       ((x) + 0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OFFS                                                          (0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_RMSK                                                           0x3ff07ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_POR                                                           0x00600066
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                0x3ff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                       16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                     0x7ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x)                                                           ((x) + 0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_PHYS(x)                                                           ((x) + 0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_OFFS                                                              (0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_RMSK                                                                0xffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_POR                                                               0x0008d806
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_POR_RMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ATTR                                                                           0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                     0xff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                           16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                       0xffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x)                                                          ((x) + 0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_PHYS(x)                                                          ((x) + 0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_OFFS                                                             (0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_RMSK                                                             0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_POR                                                              0xfbb160c3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ATTR                                                                          0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x)                                                        ((x) + 0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_PHYS(x)                                                        ((x) + 0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OFFS                                                           (0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_RMSK                                                            0x1003f37
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_QOSDISABLE_BMSK                                                 0x1000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_QOSDISABLE_SHFT                                                        24
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                      0x3f00
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                           8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                    0x30
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                       4
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                             0x4
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                               2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                         0x2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                           1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                     ((x) + 0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                     ((x) + 0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_OFFS                                                        (0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_RMSK                                                         0xfff001f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_POR                                                         0x00a00000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                             0xfff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                    16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                      0x1f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x)                                                        ((x) + 0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_PHYS(x)                                                        ((x) + 0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OFFS                                                           (0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_RMSK                                                            0x3ff07ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_POR                                                            0x00c00266
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                 0x3ff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                        16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                      0x7ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x)                                                        ((x) + 0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_PHYS(x)                                                        ((x) + 0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OFFS                                                           (0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_RMSK                                                            0xf0f0f0f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                       0xf000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                              24
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                         0xf0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                              16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                           0xf00
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                               8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                             0xf
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                      ((x) + 0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                      ((x) + 0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OFFS                                                         (0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RMSK                                                             0x3303
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_POR                                                          0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                0x3000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                    12
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                  0x300
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                      8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                           0x2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                             1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                           0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                       ((x) + 0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                       ((x) + 0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OFFS                                                          (0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_RMSK                                                           0x3ff07ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_POR                                                           0x00600133
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                0x3ff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                       16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                     0x7ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x)                                                          ((x) + 0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_PHYS(x)                                                          ((x) + 0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_OFFS                                                             (0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_RMSK                                                               0xffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_POR                                                              0x0008d806
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ATTR                                                                          0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                    0xff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                          16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                      0xffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x)                                                         ((x) + 0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_PHYS(x)                                                         ((x) + 0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_OFFS                                                            (0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_RMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_POR                                                             0xfbb160c3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ATTR                                                                         0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x)                                                       ((x) + 0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_PHYS(x)                                                       ((x) + 0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OFFS                                                          (0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_RMSK                                                           0x1003f37
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_POR                                                           0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_QOSDISABLE_BMSK                                                0x1000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_QOSDISABLE_SHFT                                                       24
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                     0x3f00
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                          8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                   0x30
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                      4
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                            0x4
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                              2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                        0x2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                          1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                       0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                    ((x) + 0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                    ((x) + 0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_OFFS                                                       (0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_RMSK                                                        0xfff001f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_POR                                                        0x00a00000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                            0xfff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                   16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                     0x1f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x)                                                       ((x) + 0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_PHYS(x)                                                       ((x) + 0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OFFS                                                          (0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_RMSK                                                           0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_POR                                                           0x00c00266
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                       16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                     0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x)                                                       ((x) + 0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_PHYS(x)                                                       ((x) + 0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OFFS                                                          (0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_RMSK                                                           0xf0f0f0f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_POR                                                           0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                      0xf000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                             24
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                        0xf0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                             16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                          0xf00
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                              8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                            0xf
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                     ((x) + 0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                     ((x) + 0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OFFS                                                        (0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RMSK                                                            0x3303
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                               0x3000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                   12
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                 0x300
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                     8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                          0x2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                            1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                          0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                      ((x) + 0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                      ((x) + 0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OFFS                                                         (0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_RMSK                                                          0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_POR                                                          0x00600133
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                               0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                      16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                    0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x)                                                                      ((x) + 0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_PHYS(x)                                                                      ((x) + 0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_OFFS                                                                         (0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_RMSK                                                                           0xffffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_POR                                                                          0x000ce93b
+#define HWIO_UMAC_NOC_STP_SWID_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_ATTR                                                                                      0x1
+#define HWIO_UMAC_NOC_STP_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITTYPEID_BMSK                                                                0xff0000
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITTYPEID_SHFT                                                                      16
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITCONFID_BMSK                                                                  0xffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITCONFID_SHFT                                                                       0
+
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x)                                                                     ((x) + 0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_PHYS(x)                                                                     ((x) + 0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_OFFS                                                                        (0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_POR                                                                         0xfbb160c3
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_QNOCID_BMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_QNOCID_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x)                                                                     ((x) + 0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_PHYS(x)                                                                     ((x) + 0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OFFS                                                                        (0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_RMSK                                                                               0x1
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATTR                                                                                     0x3
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_ATBEN_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATBEN_BMSK                                                                         0x1
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATBEN_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x)                                                                     ((x) + 0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_PHYS(x)                                                                     ((x) + 0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OFFS                                                                        (0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_RMSK                                                                              0x7f
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATTR                                                                                     0x3
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_ATBID_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATBID_BMSK                                                                        0x7f
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATBID_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x)                                                             ((x) + 0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_PHYS(x)                                                             ((x) + 0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OFFS                                                                (0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_RMSK                                                                     0x3ff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_POR                                                                 0x00000000
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ATTR                                                                             0x3
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_SYNCOUTPERIOD_BMSK                                                       0x3ff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_SYNCOUTPERIOD_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x)                                                     ((x) + 0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_PHYS(x)                                                     ((x) + 0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_OFFS                                                        (0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_RMSK                                                          0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_POR                                                         0x00120bec
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                               0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                     16
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                 0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x)                                                    ((x) + 0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_PHYS(x)                                                    ((x) + 0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_OFFS                                                       (0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_POR                                                        0xfbb160c3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                  ((x) + 0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                  ((x) + 0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OFFS                                                     (0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_RMSK                                                           0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                          0x20
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                             5
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                   3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                    0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                      2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                     0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                       1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                 ((x) + 0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                 ((x) + 0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OFFS                                                    (0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_RMSK                                                    0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ATTR                                                                 0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                        31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                             ((x) + 0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                             ((x) + 0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                (0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                             0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                            0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                    31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                ((x) + 0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                ((x) + 0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_OFFS                                                   (0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_RMSK                                                   0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                               0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                       31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x)                                                   ((x) + 0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PHYS(x)                                                   ((x) + 0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OFFS                                                      (0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                  ((x) + 0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                  ((x) + 0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OFFS                                                     (0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_RMSK                                                            0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                         (0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                         (0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                          (0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                         (0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                          (0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                         (0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                            (0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                         ((x) + 0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                         ((x) + 0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                            (0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                        (0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                        (0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                         (0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                         (0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                          (0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                         (0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                          (0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                         (0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                            (0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                         ((x) + 0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                         ((x) + 0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                            (0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                        (0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                        (0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x)                                                     ((x) + 0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_PHYS(x)                                                     ((x) + 0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_OFFS                                                        (0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_RMSK                                                          0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_POR                                                         0x0012a0b3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                               0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                     16
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                 0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x)                                                    ((x) + 0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_PHYS(x)                                                    ((x) + 0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_OFFS                                                       (0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_POR                                                        0xfbb160c3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                  ((x) + 0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                  ((x) + 0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OFFS                                                     (0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_RMSK                                                           0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                          0x20
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                             5
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                   3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                    0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                      2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                     0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                       1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                 ((x) + 0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                 ((x) + 0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OFFS                                                    (0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_RMSK                                                    0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ATTR                                                                 0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                        31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                             ((x) + 0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                             ((x) + 0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                (0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                             0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                            0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                    31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                ((x) + 0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                ((x) + 0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_OFFS                                                   (0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_RMSK                                                   0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                               0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                       31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x)                                                   ((x) + 0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PHYS(x)                                                   ((x) + 0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OFFS                                                      (0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                  ((x) + 0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                  ((x) + 0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OFFS                                                     (0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_RMSK                                                            0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                         (0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                         (0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                          (0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                         (0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                          (0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                         (0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                            (0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                         ((x) + 0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                         ((x) + 0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                            (0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                        (0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                        (0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                         (0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                         (0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                          (0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                         (0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                          (0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                         (0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                            (0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                         ((x) + 0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                         ((x) + 0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                            (0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                        (0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                        (0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x)                                                     ((x) + 0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_PHYS(x)                                                     ((x) + 0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_OFFS                                                        (0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_RMSK                                                          0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_POR                                                         0x00120bec
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                               0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                     16
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                 0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x)                                                    ((x) + 0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_PHYS(x)                                                    ((x) + 0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_OFFS                                                       (0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_POR                                                        0xfbb160c3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                  ((x) + 0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                  ((x) + 0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OFFS                                                     (0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_RMSK                                                           0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                          0x20
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                             5
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                   3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                    0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                      2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                     0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                       1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                 ((x) + 0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                 ((x) + 0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OFFS                                                    (0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_RMSK                                                    0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ATTR                                                                 0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                        31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                             ((x) + 0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                             ((x) + 0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                (0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                             0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                            0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                    31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                ((x) + 0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                ((x) + 0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_OFFS                                                   (0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_RMSK                                                   0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                               0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                       31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x)                                                   ((x) + 0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PHYS(x)                                                   ((x) + 0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OFFS                                                      (0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                  ((x) + 0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                  ((x) + 0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OFFS                                                     (0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_RMSK                                                            0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                         (0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                         (0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                          (0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                         (0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                          (0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                         (0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                            (0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                         ((x) + 0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                         ((x) + 0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                            (0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                        (0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                        (0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                         (0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                         (0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                          (0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                         (0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                          (0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                         (0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                            (0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                         ((x) + 0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                         ((x) + 0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                            (0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                        (0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                        (0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x)                                                     ((x) + 0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_PHYS(x)                                                     ((x) + 0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_OFFS                                                        (0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_RMSK                                                          0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_POR                                                         0x0012a0b3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                               0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                     16
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                 0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x)                                                    ((x) + 0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_PHYS(x)                                                    ((x) + 0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_OFFS                                                       (0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_POR                                                        0xfbb160c3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                  ((x) + 0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                  ((x) + 0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OFFS                                                     (0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_RMSK                                                           0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                          0x20
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                             5
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                   3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                    0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                      2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                     0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                       1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                 ((x) + 0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                 ((x) + 0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OFFS                                                    (0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_RMSK                                                    0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ATTR                                                                 0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                        31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                             ((x) + 0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                             ((x) + 0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                (0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                             0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                            0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                    31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                ((x) + 0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                ((x) + 0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_OFFS                                                   (0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_RMSK                                                   0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                               0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                       31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x)                                                   ((x) + 0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PHYS(x)                                                   ((x) + 0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OFFS                                                      (0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                  ((x) + 0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                  ((x) + 0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OFFS                                                     (0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_RMSK                                                            0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                         (0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                         (0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                          (0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                         (0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                          (0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                         (0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                            (0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                         ((x) + 0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                         ((x) + 0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                            (0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                        (0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                        (0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                      ((x) + 0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                      ((x) + 0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                         (0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                      ((x) + 0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                      ((x) + 0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                         (0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                               0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                           0x3f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                          (0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                         (0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                          (0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                          0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                         6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                         (0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                      0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                         ((x) + 0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                         ((x) + 0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                            (0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                         ((x) + 0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                         ((x) + 0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                            (0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                   0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                            0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                              3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                              2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                             0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                               1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                          0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                        (0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                            0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                        (0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                       0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                            0
+
+#define HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x)                                                                       ((x) + 0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_PHYS(x)                                                                       ((x) + 0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_OFFS                                                                          (0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_RMSK                                                                            0xffffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_POR                                                                           0x000203e0
+#define HWIO_UMAC_NOC_EC_SWID_LOW_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_ATTR                                                                                       0x1
+#define HWIO_UMAC_NOC_EC_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITTYPEID_BMSK                                                                 0xff0000
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITTYPEID_SHFT                                                                       16
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITCONFID_BMSK                                                                   0xffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITCONFID_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x)                                                                      ((x) + 0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_PHYS(x)                                                                      ((x) + 0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_OFFS                                                                         (0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_RMSK                                                                         0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_POR                                                                          0xfbb160c3
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_ATTR                                                                                      0x1
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_QNOCID_BMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_QNOCID_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x)                                                                    ((x) + 0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_PHYS(x)                                                                    ((x) + 0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OFFS                                                                       (0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_RMSK                                                                              0x7
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_ATTR                                                                                    0x3
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                                             0x4
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                                               2
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_DUMPEN_BMSK                                                                       0x2
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_DUMPEN_SHFT                                                                         1
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_GLBEN_BMSK                                                                        0x1
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_GLBEN_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_ADDR(x)                                                                     ((x) + 0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_PHYS(x)                                                                     ((x) + 0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_OFFS                                                                        (0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_RMSK                                                                               0x1
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_ATTR                                                                                     0x2
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPGO_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_DUMPGO_BMSK                                                                        0x1
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_DUMPGO_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x)                                                                 ((x) + 0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_PHYS(x)                                                                 ((x) + 0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OFFS                                                                    (0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_RMSK                                                                          0x1f
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_POR                                                                     0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_POR_RMSK                                                                0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ATTR                                                                                 0x3
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_DUMPPERIOD_BMSK                                                               0x1f
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_DUMPPERIOD_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x)                                                                    ((x) + 0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_PHYS(x)                                                                    ((x) + 0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OFFS                                                                       (0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_RMSK                                                                           0xffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ATTR                                                                                    0x3
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_DUMPTHR_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_DUMPTHR_BMSK                                                                   0xffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_DUMPTHR_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x)                                                                   ((x) + 0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_PHYS(x)                                                                   ((x) + 0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OFFS                                                                      (0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_RMSK                                                                          0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ATTR                                                                                   0x3
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMMIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ALARMMIN_BMSK                                                                 0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ALARMMIN_SHFT                                                                      0
+
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x)                                                                   ((x) + 0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_PHYS(x)                                                                   ((x) + 0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OFFS                                                                      (0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_RMSK                                                                          0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ATTR                                                                                   0x3
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMMAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ALARMMAX_BMSK                                                                 0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ALARMMAX_SHFT                                                                      0
+
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x)                                                                ((x) + 0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_PHYS(x)                                                                ((x) + 0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_OFFS                                                                   (0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_RMSK                                                                          0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ALARMSTATUS_BMSK                                                              0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ALARMSTATUS_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ADDR(x)                                                                   ((x) + 0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_PHYS(x)                                                                   ((x) + 0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_OFFS                                                                      (0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_RMSK                                                                             0x1
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ATTR                                                                                   0x2
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ALARMCLR_BMSK                                                                    0x1
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ALARMCLR_SHFT                                                                      0
+
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x)                                                                    ((x) + 0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_PHYS(x)                                                                    ((x) + 0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OFFS                                                                       (0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_RMSK                                                                              0x1
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ATTR                                                                                    0x3
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMEN_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ALARMEN_BMSK                                                                      0x1
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ALARMEN_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ADDR(x)                                                                 ((x) + 0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_PHYS(x)                                                                 ((x) + 0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_OFFS                                                                    (0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_RMSK                                                                          0xff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_POR                                                                     0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_POR_RMSK                                                                0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ATTR                                                                                 0x2
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_COUNTERCLR_BMSK                                                               0xff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_COUNTERCLR_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x)                                                                ((x) + 0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_PHYS(x)                                                                ((x) + 0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OFFS                                                                   (0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x)                                                                ((x) + 0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_PHYS(x)                                                                ((x) + 0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_OFFS                                                                   (0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_COUNTER0VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_COUNTER0VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x)                                                                ((x) + 0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_PHYS(x)                                                                ((x) + 0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OFFS                                                                   (0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x)                                                                ((x) + 0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_PHYS(x)                                                                ((x) + 0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_OFFS                                                                   (0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_COUNTER1VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_COUNTER1VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x)                                                                ((x) + 0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_PHYS(x)                                                                ((x) + 0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OFFS                                                                   (0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x)                                                                ((x) + 0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_PHYS(x)                                                                ((x) + 0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_OFFS                                                                   (0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_COUNTER2VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_COUNTER2VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x)                                                                ((x) + 0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_PHYS(x)                                                                ((x) + 0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OFFS                                                                   (0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x)                                                                ((x) + 0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_PHYS(x)                                                                ((x) + 0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_OFFS                                                                   (0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_COUNTER3VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_COUNTER3VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x)                                                                ((x) + 0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_PHYS(x)                                                                ((x) + 0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OFFS                                                                   (0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x)                                                                ((x) + 0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_PHYS(x)                                                                ((x) + 0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_OFFS                                                                   (0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_COUNTER4VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_COUNTER4VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x)                                                                ((x) + 0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_PHYS(x)                                                                ((x) + 0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OFFS                                                                   (0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x)                                                                ((x) + 0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_PHYS(x)                                                                ((x) + 0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_OFFS                                                                   (0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_COUNTER5VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_COUNTER5VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x)                                                                ((x) + 0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_PHYS(x)                                                                ((x) + 0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OFFS                                                                   (0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x)                                                                ((x) + 0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_PHYS(x)                                                                ((x) + 0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_OFFS                                                                   (0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_COUNTER6VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_COUNTER6VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x)                                                                ((x) + 0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_PHYS(x)                                                                ((x) + 0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OFFS                                                                   (0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_RMSK                                                                        0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_POR                                                                    0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ALARMMODE_BMSK                                                              0x600
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ALARMMODE_SHFT                                                                  9
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_DUMPTHREN_BMSK                                                              0x100
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_DUMPTHREN_SHFT                                                                  8
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_EVENTSRC_BMSK                                                                0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_EVENTSRC_SHFT                                                                   0
+
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x)                                                                ((x) + 0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_PHYS(x)                                                                ((x) + 0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_OFFS                                                                   (0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_POR                                                                    0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ATTR                                                                                0x1
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_COUNTER7VAL_BMSK                                                           0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_COUNTER7VAL_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x)                                                     ((x) + 0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_PHYS(x)                                                     ((x) + 0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_OFFS                                                        (0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_RMSK                                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_POR                                                         0x0003fc04
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITTYPEID_BMSK                                               0xff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITTYPEID_SHFT                                                     16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITCONFID_BMSK                                                 0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITCONFID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x)                                                    ((x) + 0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_PHYS(x)                                                    ((x) + 0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_OFFS                                                       (0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_POR                                                        0xfbb160c3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_QNOCID_BMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_QNOCID_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x)                                                  ((x) + 0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_PHYS(x)                                                  ((x) + 0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OFFS                                                     (0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_RMSK                                                          0x33f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_POR                                                      0x00000020
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_BMSK                                              0x300
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_SHFT                                                  8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                          0x20
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                             5
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_BMSK                                              0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_SHFT                                                 4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_SCALEEN_BMSK                                                    0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_SCALEEN_SHFT                                                      3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_DUMPEN_BMSK                                                     0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_DUMPEN_SHFT                                                       2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_MODE_BMSK                                                       0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_MODE_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ADDR(x)                                                   ((x) + 0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_PHYS(x)                                                   ((x) + 0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_OFFS                                                      (0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_RMSK                                                             0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ATTR                                                                   0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_DUMPGO_BMSK                                                      0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_DUMPGO_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x)                                                  ((x) + 0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_PHYS(x)                                                  ((x) + 0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OFFS                                                     (0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_RMSK                                                       0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_POR                                                      0x00001000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ATTR                                                                  0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_DUMPTHR_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_DUMPTHR_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x)                                                      ((x) + 0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_PHYS(x)                                                      ((x) + 0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFS                                                         (0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_RMSK                                                          0xfffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_POR                                                          0x00a0083f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_NOMINALFREQ_BMSK                                              0xfff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_NOMINALFREQ_SHFT                                                     16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFSET_BMSK                                                      0xff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFSET_SHFT                                                           8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_WIDTH_BMSK                                                         0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_WIDTH_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x)                                                ((x) + 0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_PHYS(x)                                                ((x) + 0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_OFFS                                                   (0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ATTR                                                                0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_BMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x)                                               ((x) + 0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_PHYS(x)                                               ((x) + 0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_OFFS                                                  (0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_POR                                                   0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ATTR                                                               0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_TRCNT_BMSK                                            0xffffff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_TRCNT_SHFT                                                     8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_BMSK                                             0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_SHFT                                                0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x)                                                 ((x) + 0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_PHYS(x)                                                 ((x) + 0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_OFFS                                                    (0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_HISTBIN0_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_HISTBIN0_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x)                                                 ((x) + 0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_PHYS(x)                                                 ((x) + 0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_OFFS                                                    (0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_HISTBIN1_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_HISTBIN1_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x)                                                 ((x) + 0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_PHYS(x)                                                 ((x) + 0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_OFFS                                                    (0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_HISTBIN2_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_HISTBIN2_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x)                                                 ((x) + 0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_PHYS(x)                                                 ((x) + 0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_OFFS                                                    (0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_HISTBIN3_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_HISTBIN3_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x)                                                 ((x) + 0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_PHYS(x)                                                 ((x) + 0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_OFFS                                                    (0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_HISTBIN4_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_HISTBIN4_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x)                                                 ((x) + 0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_PHYS(x)                                                 ((x) + 0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_OFFS                                                    (0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_HISTBIN5_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_HISTBIN5_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x)                                                 ((x) + 0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_PHYS(x)                                                 ((x) + 0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_OFFS                                                    (0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_HISTBIN6_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_HISTBIN6_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x)                                                 ((x) + 0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_PHYS(x)                                                 ((x) + 0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_OFFS                                                    (0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_RMSK                                                      0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_HISTBIN7_BMSK                                             0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_HISTBIN7_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x)                                                   ((x) + 0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_PHYS(x)                                                   ((x) + 0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_OFFS                                                      (0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_RMSK                                                            0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_LATMAX_BMSK                                                     0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_LATMAX_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x)                                          ((x) + 0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_PHYS(x)                                          ((x) + 0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OFFS                                             (0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_RMSK                                             0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_POR                                              0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ATTR                                                          0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_BMSK                                   0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x)                                         ((x) + 0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_PHYS(x)                                         ((x) + 0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OFFS                                            (0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR                                             0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                           0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x)                                          ((x) + 0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_PHYS(x)                                          ((x) + 0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OFFS                                             (0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_RMSK                                             0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_POR                                              0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ATTR                                                          0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_BMSK                                   0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x)                                         ((x) + 0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_PHYS(x)                                         ((x) + 0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OFFS                                            (0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR                                             0x0000001f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                           0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x)                                            ((x) + 0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_PHYS(x)                                            ((x) + 0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OFFS                                               (0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RMSK                                                     0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_POR                                                0x00000003
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATTR                                                            0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_BMSK                                              0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_SHFT                                                 4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_CMEN_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_CMEN_SHFT                                                   3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_BMSK                                               0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_SHFT                                                 2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_WREN_BMSK                                                 0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_WREN_SHFT                                                   1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RDEN_BMSK                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RDEN_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x)                                        ((x) + 0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_PHYS(x)                                        ((x) + 0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OFFS                                           (0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_RMSK                                               0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_BMSK                             0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_SHFT                                  0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x)                                        ((x) + 0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_PHYS(x)                                        ((x) + 0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OFFS                                           (0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_RMSK                                               0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_BMSK                             0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_SHFT                                  0
+
+/*----------------------------------------------------------------------------
+ * MODULE: UMAC_ACMT
+ *--------------------------------------------------------------------------*/
+
+#define UMAC_ACMT_REG_BASE                                                           (UMAC_ACMT_BASE      + 0x00000000)
+#define UMAC_ACMT_REG_BASE_SIZE                                                      0x1000
+#define UMAC_ACMT_REG_BASE_USED                                                      0x13c
+#define UMAC_ACMT_REG_BASE_PHYS                                                      (UMAC_ACMT_BASE_PHYS + 0x00000000)
+#define UMAC_ACMT_REG_BASE_OFFS                                                      0x00000000
+
+#define HWIO_UMAC_ACMT_CTRL_ADDR(x)                                                  ((x) + 0x0)
+#define HWIO_UMAC_ACMT_CTRL_PHYS(x)                                                  ((x) + 0x0)
+#define HWIO_UMAC_ACMT_CTRL_OFFS                                                     (0x0)
+#define HWIO_UMAC_ACMT_CTRL_RMSK                                                            0x1
+#define HWIO_UMAC_ACMT_CTRL_POR                                                      0x00000000
+#define HWIO_UMAC_ACMT_CTRL_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_ACMT_CTRL_ATTR                                                                  0x3
+#define HWIO_UMAC_ACMT_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_CTRL_ADDR(x))
+#define HWIO_UMAC_ACMT_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_CTRL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_CTRL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_CTRL_ADDR(x),m,v,HWIO_UMAC_ACMT_CTRL_IN(x))
+#define HWIO_UMAC_ACMT_CTRL_ENABLE_BMSK                                                     0x1
+#define HWIO_UMAC_ACMT_CTRL_ENABLE_SHFT                                                       0
+
+#define HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x)                                           ((x) + 0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_PHYS(x)                                           ((x) + 0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OFFS                                              (0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_RMSK                                                     0x1
+#define HWIO_UMAC_ACMT_INTR_ENABLE_POR                                               0x00000000
+#define HWIO_UMAC_ACMT_INTR_ENABLE_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_ACMT_INTR_ENABLE_ATTR                                                           0x3
+#define HWIO_UMAC_ACMT_INTR_ENABLE_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x))
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x), m)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x),v)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x),m,v,HWIO_UMAC_ACMT_INTR_ENABLE_IN(x))
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INTR_EN_BMSK                                             0x1
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INTR_EN_SHFT                                               0
+
+#define HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x)                                           ((x) + 0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_PHYS(x)                                           ((x) + 0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_OFFS                                              (0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_RMSK                                                     0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_POR                                               0x00000000
+#define HWIO_UMAC_ACMT_INTR_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_ACMT_INTR_STATUS_ATTR                                                           0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x))
+#define HWIO_UMAC_ACMT_INTR_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x), m)
+#define HWIO_UMAC_ACMT_INTR_STATUS_VALID_BMSK                                               0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_VALID_SHFT                                                 0
+
+#define HWIO_UMAC_ACMT_INTR_CLEAR_ADDR(x)                                            ((x) + 0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_PHYS(x)                                            ((x) + 0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_OFFS                                               (0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_RMSK                                                      0x1
+#define HWIO_UMAC_ACMT_INTR_CLEAR_POR                                                0x00000000
+#define HWIO_UMAC_ACMT_INTR_CLEAR_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_ACMT_INTR_CLEAR_ATTR                                                            0x2
+#define HWIO_UMAC_ACMT_INTR_CLEAR_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_INTR_CLEAR_ADDR(x),v)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_CLR_BMSK                                                  0x1
+#define HWIO_UMAC_ACMT_INTR_CLEAR_CLR_SHFT                                                    0
+
+#define HWIO_UMAC_ACMT_DEBUG0_ADDR(x)                                                ((x) + 0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_PHYS(x)                                                ((x) + 0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_OFFS                                                   (0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_RMSK                                                     0xffffff
+#define HWIO_UMAC_ACMT_DEBUG0_POR                                                    0x00000000
+#define HWIO_UMAC_ACMT_DEBUG0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_ACMT_DEBUG0_ATTR                                                                0x1
+#define HWIO_UMAC_ACMT_DEBUG0_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_DEBUG0_ADDR(x))
+#define HWIO_UMAC_ACMT_DEBUG0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_DEBUG0_ADDR(x), m)
+#define HWIO_UMAC_ACMT_DEBUG0_ADDRESS_BMSK                                             0xffffff
+#define HWIO_UMAC_ACMT_DEBUG0_ADDRESS_SHFT                                                    0
+
+#define HWIO_UMAC_ACMT_DEBUG1_ADDR(x)                                                ((x) + 0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_PHYS(x)                                                ((x) + 0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_OFFS                                                   (0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_RMSK                                                   0x10000000
+#define HWIO_UMAC_ACMT_DEBUG1_POR                                                    0x00000000
+#define HWIO_UMAC_ACMT_DEBUG1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_ACMT_DEBUG1_ATTR                                                                0x1
+#define HWIO_UMAC_ACMT_DEBUG1_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_DEBUG1_ADDR(x))
+#define HWIO_UMAC_ACMT_DEBUG1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_DEBUG1_ADDR(x), m)
+#define HWIO_UMAC_ACMT_DEBUG1_RW_BMSK                                                0x10000000
+#define HWIO_UMAC_ACMT_DEBUG1_RW_SHFT                                                        28
+
+#define HWIO_UMAC_ACMT_CFG_ADDR(x)                                                   ((x) + 0x1c)
+#define HWIO_UMAC_ACMT_CFG_PHYS(x)                                                   ((x) + 0x1c)
+#define HWIO_UMAC_ACMT_CFG_OFFS                                                      (0x1c)
+#define HWIO_UMAC_ACMT_CFG_RMSK                                                            0x11
+#define HWIO_UMAC_ACMT_CFG_POR                                                       0x00000001
+#define HWIO_UMAC_ACMT_CFG_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_ACMT_CFG_ATTR                                                                   0x1
+#define HWIO_UMAC_ACMT_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_CFG_ADDR(x))
+#define HWIO_UMAC_ACMT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_CFG_ADDR(x), m)
+#define HWIO_UMAC_ACMT_CFG_DFLT_PROTECTION_BMSK                                            0x10
+#define HWIO_UMAC_ACMT_CFG_DFLT_PROTECTION_SHFT                                               4
+#define HWIO_UMAC_ACMT_CFG_PROTECTION_MODE_BMSK                                             0x1
+#define HWIO_UMAC_ACMT_CFG_PROTECTION_MODE_SHFT                                               0
+
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x)                                         ((x) + 0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_PHYS(x)                                         ((x) + 0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OFFS                                            (0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RMSK                                                 0x111
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_POR                                             0x00000111
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ATTR                                                         0x3
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x))
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x),m,v,HWIO_UMAC_ACMT_NOC_TSLV_CTRL_IN(x))
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_FORCE_POSTED_WR_BMSK                         0x100
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_FORCE_POSTED_WR_SHFT                             8
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_DEVBUFFABLE_BMSK                              0x10
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_DEVBUFFABLE_SHFT                                 4
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_TIMEOUT_ENABLE_BMSK                                    0x1
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_TIMEOUT_ENABLE_SHFT                                      0
+
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x)                                       ((x) + 0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_PHYS(x)                                       ((x) + 0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OFFS                                          (0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_RMSK                                                 0xf
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x))
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x),m,v,HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_IN(x))
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_TESTBUS_SEL_BMSK                                     0xf
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_TESTBUS_SEL_SHFT                                       0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x)                                        ((x) + 0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_PHYS(x)                                        ((x) + 0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OFFS                                           (0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE0_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x)                                        ((x) + 0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_PHYS(x)                                        ((x) + 0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OFFS                                           (0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE1_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x)                                        ((x) + 0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_PHYS(x)                                        ((x) + 0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OFFS                                           (0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE2_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x)                                        ((x) + 0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_PHYS(x)                                        ((x) + 0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OFFS                                           (0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE3_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x)                                        ((x) + 0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_PHYS(x)                                        ((x) + 0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OFFS                                           (0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE4_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x)                                        ((x) + 0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_PHYS(x)                                        ((x) + 0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OFFS                                           (0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE5_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x)                                        ((x) + 0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_PHYS(x)                                        ((x) + 0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OFFS                                           (0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE6_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x)                                        ((x) + 0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_PHYS(x)                                        ((x) + 0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OFFS                                           (0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE7_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x)                                        ((x) + 0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_PHYS(x)                                        ((x) + 0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OFFS                                           (0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE8_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x)                                        ((x) + 0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_PHYS(x)                                        ((x) + 0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OFFS                                           (0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE9_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x)                                       ((x) + 0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_PHYS(x)                                       ((x) + 0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OFFS                                          (0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE10_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x)                                       ((x) + 0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_PHYS(x)                                       ((x) + 0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OFFS                                          (0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE11_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x)                                       ((x) + 0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_PHYS(x)                                       ((x) + 0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OFFS                                          (0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE12_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x)                                       ((x) + 0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_PHYS(x)                                       ((x) + 0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OFFS                                          (0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE13_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x)                                       ((x) + 0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_PHYS(x)                                       ((x) + 0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OFFS                                          (0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE14_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x)                                       ((x) + 0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_PHYS(x)                                       ((x) + 0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OFFS                                          (0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE15_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_BASE_SHFT                                         0
+
+
+#endif /* __WCSS_SEQ_HWIOREG_UMAC_H__ */
diff --git a/hw/qca5332/wcss_version.h b/hw/qca5332/wcss_version.h
new file mode 100644
index 0000000..2d67d4e
--- /dev/null
+++ b/hw/qca5332/wcss_version.h
@@ -0,0 +1,17 @@
+
+/* 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.
+ */
+ 
+#define WCSS_VERSION 2327
diff --git a/hw/qca5332/wfss_ce_reg_seq_hwioreg.h b/hw/qca5332/wfss_ce_reg_seq_hwioreg.h
new file mode 100644
index 0000000..1695b68
--- /dev/null
+++ b/hw/qca5332/wfss_ce_reg_seq_hwioreg.h
@@ -0,0 +1,15503 @@
+
+/* 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 __WFSS_CE_REG_SEQ_HWIOREG_H__
+#define __WFSS_CE_REG_SEQ_HWIOREG_H__
+
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_0_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define CE_CFG_WFSS_CE_REG_BASE	0x740000
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00000000)
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00000000)
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00000000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_0_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00001000)
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00001000)
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00001000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_1_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00002000)
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00002000)
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00002000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_1_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00003000)
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00003000)
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00003000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_2_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00004000)
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00004000)
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00004000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_2_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00005000)
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00005000)
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00005000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_3_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00006000)
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00006000)
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00006000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_3_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00007000)
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00007000)
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00007000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_4_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00008000)
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00008000)
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00008000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_4_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00009000)
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00009000)
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00009000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_5_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x0000a000)
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000a000)
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x0000a000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_5_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x0000b000)
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000b000)
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x0000b000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_6_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x0000c000)
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000c000)
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x0000c000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_6_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x0000d000)
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000d000)
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x0000d000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_7_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x0000e000)
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000e000)
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x0000e000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_7_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x0000f000)
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x0000f000)
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x0000f000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_8_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00010000)
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00010000)
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00010000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_8_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00011000)
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00011000)
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00011000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_9_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00012000)
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00012000)
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00012000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                   (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                   (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                      ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                         (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                  ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                     (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                    ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                       (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                              (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                              (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                  (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                         ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                            (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                  0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                     0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                       3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                          0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                            2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                     ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                        (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                      0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                         4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                          0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                      ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                         (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                      ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                         (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_9_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00013000)
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00013000)
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00013000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                  ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                     (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                  ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                     (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                             0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                        ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                           (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                    ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                       (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                         (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                           0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                          0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                             0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                   14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                              0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                  12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                               0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                  0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                     7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                   0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                      6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                             0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                               ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                  (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                  (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                        0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                    ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                       (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                         0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                             15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                   0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                    ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                       (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                    ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                       (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                   ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                      (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                             0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                       0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                  ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                     (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                       0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                        0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                     0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                         0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                           ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                              (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                   (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                   (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                         (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                     0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                  ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                     (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                    ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                       (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                        0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                        0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                               0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                      22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                      ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                         (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                       16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                           0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                               15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                     0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                     ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                        (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                      (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                              (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                  (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                           ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                              (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                 0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                               0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                        ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                           (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                 0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                 0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                    4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                   0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                     3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                       0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                         1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                    ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                       (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                              0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                        ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                           (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                        ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                           (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                      ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                         (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_10_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00014000)
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00014000)
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00014000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                    (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                    (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                       ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                       ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                          (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                   ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                   ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                      (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                     ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                     ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                        (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                         0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                 (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                 (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                         (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                               (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                               (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                   (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                          ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                          ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                             (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                   0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                      0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                        3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                           0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                             2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                        0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                          1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                      ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                      ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                         (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                       0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                          4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                     0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                       1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                        0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                          (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                           0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                           16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                       ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                       ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                          (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                       ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                       ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                          (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_10_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00015000)
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00015000)
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00015000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                   ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                   ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                      (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                   ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                   ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                      (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                        0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                              0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                     8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                         0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                         ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                         ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                            (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                     ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                     ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                        (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                       ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                       ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                          (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                            0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                              0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                    14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                               0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                   12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                                0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                   0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                      7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                    0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                       6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                              0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                 5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                               0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                  4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                    0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                      3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                                ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                                ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                   (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                                ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                                ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                   (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                         0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                     ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                     ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                        (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                      16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                          0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                              15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                    0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                     ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                     ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                        (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                        ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                        ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                           (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                        0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                     ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                     ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                        (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                             0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                    ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                    ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                       (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                              0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                        0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                   ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                   ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                      (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                        0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                         0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                              ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                              ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                 (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                              ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                              ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                 (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                      0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                          0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                  ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                  ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                     (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                            ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                            ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                               (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                    (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                          (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                      0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                   ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                   ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                      (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                     ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                     ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                        (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                         0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                         0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                                0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                       22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                 (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                 (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                       ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                       ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                          (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                            0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                      0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                      ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                      ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                         (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                    ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                    ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                       (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                               (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                               (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                   (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                             (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                            ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                            ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                               (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                  0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                                0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                            0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                         ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                         ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                            (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                  0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                    0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                      3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                        0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                          2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                        0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                          1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                     ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                     ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                        (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                               0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                         ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                         ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                            (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                         ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                         ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                            (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                       ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                       ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                          (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                       ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                       ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                          (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_11_CHANNEL_SRC_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE                                                                                   (CE_CFG_WFSS_CE_REG_BASE      + 0x00016000)
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                              0x1000
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_USED                                                                              0x404
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                              (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00016000)
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                              0x00016000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                    (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                    (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                       ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                       ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                          (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                                   ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                                   ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                      (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                     ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                     ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                        (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                         0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                                 (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                                 (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                         (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                               (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                               (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                                   (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                          ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                          ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                             (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                                   0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                      0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                        3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                           0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                             2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                        0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                          1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                      ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                      ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                         (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                       0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                          4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                     0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                       1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                        0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                          (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                           0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                           16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                       ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                       ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                          (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                       ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                       ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                          (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_11_CHANNEL_DST_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE                                                                                      (CE_CFG_WFSS_CE_REG_BASE      + 0x00017000)
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_SIZE                                                                                 0x1000
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_USED                                                                                 0x40c
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_PHYS                                                                                 (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00017000)
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_OFFS                                                                                 0x00017000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                                   ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                                   ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                      (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                                   ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                                   ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                      (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                        0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                              0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                     8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                         0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                         ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                         ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                            (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                     ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                     ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                        (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                     0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                       ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                       ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                          (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                            0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                              0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                    14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                               0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                                   12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                                0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                    8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                                   0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                      7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                    0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                       6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                              0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                                 5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                               0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                  4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                    0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                      3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                                ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                                ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                                   (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                                ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                                ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                                   (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                         0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                     ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                     ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                        (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                      16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                          0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                              15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                    0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                     ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                     ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                        (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                        ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                        ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                           (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                        0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                             0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                     16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                     ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                     ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                        (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                             0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                    ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                    ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                       (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                              0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                        0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                   ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                   ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                      (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                        0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                         0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                              ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                              ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                                 (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                              ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                              ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                                 (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                      0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                          0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                                  ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                                  ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                     (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                            ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                            ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                               (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                    (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                          (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                      0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                           8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                                   ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                                   ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                      (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                     ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                     ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                        (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                         0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                         0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                                0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                       22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                                 (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                                 (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                       ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                       ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                          (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                                0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                            0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                                15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                      0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                      ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                      ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                         (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                    ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                    ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                       (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                            0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                          0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                               (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                               (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                                   (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                             (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                            ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                            ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                               (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                                  0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                                0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                            0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                         ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                         ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                            (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                                  0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                    0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                      3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                        0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                          2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                        0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                          1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                     ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                     ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                        (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                               0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                                 0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                                   2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                         ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                         ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                            (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                         ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                         ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                            (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                       ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                       ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                          (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                       ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                       ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                          (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+/*----------------------------------------------------------------------------
+ * MODULE: WFSS_CE_COMMON_REG
+ *--------------------------------------------------------------------------*/
+
+#define WFSS_CE_COMMON_REG_REG_BASE                                                                                     (CE_CFG_WFSS_CE_REG_BASE      + 0x00018000)
+#define WFSS_CE_COMMON_REG_REG_BASE_SIZE                                                                                0x1000
+#define WFSS_CE_COMMON_REG_REG_BASE_USED                                                                                0x418
+#define WFSS_CE_COMMON_REG_REG_BASE_PHYS                                                                                (CE_CFG_WFSS_CE_REG_BASE_PHYS + 0x00018000)
+#define WFSS_CE_COMMON_REG_REG_BASE_OFFS                                                                                0x00018000
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_PHYS(x)                                                                 ((x) + 0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_OFFS                                                                    (0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_VALUE_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_PHYS(x)                                                                 ((x) + 0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_OFFS                                                                    (0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_RMSK                                                                          0xff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_VALUE_BMSK                                                                    0xff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_VALUE_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x)                                                                ((x) + 0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_PHYS(x)                                                                ((x) + 0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_OFFS                                                                   (0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_RMSK                                                                        0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_POR                                                                    0x00000211
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_RD_ADDR_BMSK                                                       0xe00
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_RD_ADDR_SHFT                                                           9
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_ADDR_BMSK                                                       0x1f0
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_ADDR_SHFT                                                           4
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_DATA_BMSK                                                         0xf
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_DATA_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x)                                                             ((x) + 0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_PHYS(x)                                                             ((x) + 0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OFFS                                                                (0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_RMSK                                                                       0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                  0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x)                                                            ((x) + 0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_PHYS(x)                                                            ((x) + 0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OFFS                                                               (0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RMSK                                                               0x80000fff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                             0x80000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                                     31
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_SPARE_BMSK                                                              0x800
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_SPARE_SHFT                                                                 11
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WDOG_CTR_BMSK                                                           0x400
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WDOG_CTR_SHFT                                                              10
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_FIFO_BMSK                                                            0x200
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_FIFO_SHFT                                                                9
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_FIFO_BMSK                                                       0x100
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_FIFO_SHFT                                                           8
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_BMSK                                                        0x80
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_SHFT                                                           7
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_AXI_MAS_BMSK                                                          0x40
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_AXI_MAS_SHFT                                                             6
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_BMSK                                                     0x20
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_SHFT                                                        5
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_BMSK                                                     0x10
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_SHFT                                                        4
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_CMD_BMSK                                                          0x8
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_CMD_SHFT                                                            3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_CMD_BMSK                                                          0x4
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_CMD_SHFT                                                            2
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_CMD_BMSK                                                               0x2
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_CMD_SHFT                                                                 1
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CORE_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CORE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x)                                                                  ((x) + 0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_PHYS(x)                                                                  ((x) + 0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_OFFS                                                                     (0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_RMSK                                                                      0x1010101
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_BMSK                                                  0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_SHFT                                                         24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_BMSK                                                     0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_SHFT                                                          16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_BMSK                                                       0x100
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_SHFT                                                           8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WDTIMEOUT_INT_BMSK                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WDTIMEOUT_INT_SHFT                                                            0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x)                                                                 ((x) + 0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_PHYS(x)                                                                 ((x) + 0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_OFFS                                                                    (0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_RMSK                                                                      0x3f3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_BMSK                                                 0x3f0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_SHFT                                                       16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_ERR_PORT_BMSK                                                        0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_ERR_PORT_SHFT                                                             8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_RD_ERR_PORT_BMSK                                                          0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_RD_ERR_PORT_SHFT                                                             0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_RMSK                                                              0xffff3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_BMSK                            0xff000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_SHFT                                    24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_BMSK                             0xff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_SHFT                                   16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_BMSK                                    0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_SHFT                                         8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_BMSK                                     0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_SHFT                                        0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_RMSK                                                              0xffff3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_BMSK                            0xff000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_SHFT                                    24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_BMSK                             0xff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_SHFT                                   16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_BMSK                                    0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_SHFT                                         8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_BMSK                                     0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_SHFT                                        0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x)                                                              ((x) + 0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_PHYS(x)                                                              ((x) + 0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OFFS                                                                 (0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_RMSK                                                                  0xfffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_POR                                                                  0x00240000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_RD_FLUSH_BMSK                                             0x8000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_RD_FLUSH_SHFT                                                    27
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_WR_FLUSH_BMSK                                             0x4000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_WR_FLUSH_SHFT                                                    26
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DISABLE_WR_PREFIL_BMSK                                            0x2000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DISABLE_WR_PREFIL_SHFT                                                   25
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_WR_BOUNDARY_SPLIT_BMSK                                        0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_WR_BOUNDARY_SPLIT_SHFT                                               24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_RD_BOUNDARY_SPLIT_BMSK                                         0x800000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_RD_BOUNDARY_SPLIT_SHFT                                               23
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_BURST_SIZE_BMSK                                              0x700000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_BURST_SIZE_SHFT                                                    20
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_BURST_SIZE_BMSK                                                0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_BURST_SIZE_SHFT                                                     17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_ISSUE_THRESHOLD_BMSK                                           0x1fe00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_ISSUE_THRESHOLD_SHFT                                                 9
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_PREFETCH_THRESHOLD_BMSK                                         0x1fe
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_PREFETCH_THRESHOLD_SHFT                                             1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_CLEAR_STATS_BMSK                                                        0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_CLEAR_STATS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x)                                                              ((x) + 0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_PHYS(x)                                                              ((x) + 0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OFFS                                                                 (0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_RMSK                                                                 0xffff0001
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_POR                                                                  0x00ff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_LIMIT_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_LIMIT_SHFT                                                          16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_DISABLE_BMSK                                                       0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_DISABLE_SHFT                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x)                                                               ((x) + 0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_PHYS(x)                                                               ((x) + 0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_OFFS                                                                  (0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_RMSK                                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_GXI_WDOG_STATUS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_GXI_WDOG_STATUS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x)                                                             ((x) + 0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_PHYS(x)                                                             ((x) + 0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_OFFS                                                                (0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ATTR                                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_BMSK                                              0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_SHFT                                                      16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_BMSK                                                 0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_SHFT                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x)                                                           ((x) + 0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_PHYS(x)                                                           ((x) + 0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OFFS                                                              (0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_RMSK                                                                 0xfffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                               0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                                    17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                                  0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                                       16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                                  0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x)                                                           ((x) + 0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_PHYS(x)                                                           ((x) + 0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OFFS                                                              (0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_RMSK                                                                 0xfffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                               0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                                    17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                                  0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                                       16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                                  0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OFFS                                                    (0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_PHYS(x)                                                 ((x) + 0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OFFS                                                    (0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x)                                                 ((x) + 0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_PHYS(x)                                                 ((x) + 0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OFFS                                                    (0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x)                                                                     ((x) + 0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_PHYS(x)                                                                     ((x) + 0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OFFS                                                                        (0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_RMSK                                                                         0x1ffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_MISC_IE_BMSK                                                                 0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_MISC_IE_SHFT                                                                        24
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_DST_RING_IE_BMSK                                                              0xfff000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_DST_RING_IE_SHFT                                                                    12
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_SRC_RING_IE_BMSK                                                                 0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_SRC_RING_IE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x)                                                                     ((x) + 0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_PHYS(x)                                                                     ((x) + 0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OFFS                                                                        (0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_RMSK                                                                             0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_STS_RING_IE_BMSK                                                                 0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_STS_RING_IE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x)                                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_PHYS(x)                                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OFFS                                                                         (0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_RMSK                                                                           0xffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_DEST_BMSK                                                                      0xfff000
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_DEST_SHFT                                                                            12
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_SRC_BMSK                                                                          0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_SRC_SHFT                                                                              0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x)                                                                   ((x) + 0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_PHYS(x)                                                                   ((x) + 0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OFFS                                                                      (0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_RMSK                                                                       0x1ffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_MISC_IE_BMSK                                                               0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_MISC_IE_SHFT                                                                      24
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_DST_RING_IE_BMSK                                                            0xfff000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_DST_RING_IE_SHFT                                                                  12
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_SRC_RING_IE_BMSK                                                               0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_SRC_RING_IE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x)                                                                   ((x) + 0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_PHYS(x)                                                                   ((x) + 0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OFFS                                                                      (0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_RMSK                                                                           0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_STS_RING_IE_BMSK                                                               0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_STS_RING_IE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x)                                                          ((x) + 0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_PHYS(x)                                                          ((x) + 0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OFFS                                                             (0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_SEED_0_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_SEED_0_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x)                                                          ((x) + 0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_PHYS(x)                                                          ((x) + 0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OFFS                                                             (0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_SEED_1_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_SEED_1_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x)                                                          ((x) + 0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_PHYS(x)                                                          ((x) + 0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OFFS                                                             (0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_RMSK                                                                    0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_SEED_2_BMSK                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_SEED_2_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x)                                                               ((x) + 0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_PHYS(x)                                                               ((x) + 0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OFFS                                                                  (0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POLY_0_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POLY_0_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x)                                                               ((x) + 0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_PHYS(x)                                                               ((x) + 0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OFFS                                                                  (0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POLY_1_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POLY_1_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x)                                                               ((x) + 0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_PHYS(x)                                                               ((x) + 0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OFFS                                                                  (0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_RMSK                                                                         0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POLY_2_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POLY_2_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x)                                                                   ((x) + 0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_PHYS(x)                                                                   ((x) + 0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_OFFS                                                                      (0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_VALUE_BMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_VALUE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x)                                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_PHYS(x)                                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_OFFS                                                                      (0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_VALUE_BMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_VALUE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x)                                                                   ((x) + 0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_PHYS(x)                                                                   ((x) + 0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_OFFS                                                                      (0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_VALUE_BMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_VALUE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x)                                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_PHYS(x)                                                                   ((x) + 0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_OFFS                                                                      (0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ATTR                                                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_VALUE_BMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_VALUE_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x)                                                                ((x) + 0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_PHYS(x)                                                                ((x) + 0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OFFS                                                                   (0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_RMSK                                                                   0xfffdffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CLK_EXTEND_BMSK                                                        0x80000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CLK_EXTEND_SHFT                                                                31
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_WRAPPER_REG_CLK_BMSK                                                   0x40000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_WRAPPER_REG_CLK_SHFT                                                           30
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_REG_CLK_BMSK                                                       0x3ffc0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_REG_CLK_SHFT                                                               18
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IC_CLK_BMSK                                                               0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IC_CLK_SHFT                                                                    16
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_DMA_CLK_BMSK                                                               0xf000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_DMA_CLK_SHFT                                                                   12
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_CORE_CLK_BMSK                                                           0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_CORE_CLK_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x)                                                                ((x) + 0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_PHYS(x)                                                                ((x) + 0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OFFS                                                                   (0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_RMSK                                                                     0xffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_DST_SRNG_CLK_BMSK                                                        0xfff000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_DST_SRNG_CLK_SHFT                                                              12
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_SRC_SRNG_CLK_BMSK                                                           0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_SRC_SRNG_CLK_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x)                                                                ((x) + 0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_PHYS(x)                                                                ((x) + 0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OFFS                                                                   (0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_RMSK                                                                       0x1fff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_TZ_CLK_BMSK                                                                0x1000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_TZ_CLK_SHFT                                                                    12
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_STS_SRNG_CLK_BMSK                                                           0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_STS_SRNG_CLK_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x)                                                                   ((x) + 0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_PHYS(x)                                                                   ((x) + 0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OFFS                                                                      (0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_RMSK                                                                           0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IDLE_CFG_BMSK                                                                  0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IDLE_CFG_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x)                                                          ((x) + 0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_PHYS(x)                                                          ((x) + 0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_OFFS                                                             (0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                                0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x)                                                               ((x) + 0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_PHYS(x)                                                               ((x) + 0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OFFS                                                                  (0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_VAL_BMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_VAL_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_RMSK                                                                           0x100ff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                      0x10000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                           16
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_GXI_TESTBUS_SELECT_BMSK                                                           0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_GXI_TESTBUS_SELECT_SHFT                                                              0
+
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_POR                                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_MASK_BMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_MASK_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_POR                                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_MASK_BMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_MASK_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_PHYS(x)                                                                      ((x) + 0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_OFFS                                                                         (0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_RMSK                                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ATTR                                                                                      0x1
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_VAL_BMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_VAL_SHFT                                                                              0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x)                                                                     ((x) + 0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_PHYS(x)                                                                     ((x) + 0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_OFFS                                                                        (0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ATTR                                                                                     0x1
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_VAL_BMSK                                                                          0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_VAL_SHFT                                                                             0
+
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                        ((x) + 0x414)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                        ((x) + 0x414)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                           (0x414)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                            0x7ffe0002
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                         0xfffe0000
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                 17
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                          0x1fffc
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                                2
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                       0x2
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                         1
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                        0x1
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                          0
+
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x)                                                                ((x) + 0x418)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_PHYS(x)                                                                ((x) + 0x418)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OFFS                                                                   (0x418)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_RMSK                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x), HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                     0
+
+
+#endif /* __WFSS_CE_REG_SEQ_HWIOREG_H__ */
diff --git a/hw/qcn9224/HALcomdef.h b/hw/qcn9224/v1/HALcomdef.h
similarity index 100%
rename from hw/qcn9224/HALcomdef.h
rename to hw/qcn9224/v1/HALcomdef.h
diff --git a/hw/qcn9224/HALhwio.h b/hw/qcn9224/v1/HALhwio.h
similarity index 100%
rename from hw/qcn9224/HALhwio.h
rename to hw/qcn9224/v1/HALhwio.h
diff --git a/hw/qcn9224/ack_report.h b/hw/qcn9224/v1/ack_report.h
similarity index 100%
rename from hw/qcn9224/ack_report.h
rename to hw/qcn9224/v1/ack_report.h
diff --git a/hw/qcn9224/buffer_addr_info.h b/hw/qcn9224/v1/buffer_addr_info.h
similarity index 100%
rename from hw/qcn9224/buffer_addr_info.h
rename to hw/qcn9224/v1/buffer_addr_info.h
diff --git a/hw/qcn9224/ce_src_desc.h b/hw/qcn9224/v1/ce_src_desc.h
similarity index 100%
rename from hw/qcn9224/ce_src_desc.h
rename to hw/qcn9224/v1/ce_src_desc.h
diff --git a/hw/qcn9224/ce_stat_desc.h b/hw/qcn9224/v1/ce_stat_desc.h
similarity index 100%
rename from hw/qcn9224/ce_stat_desc.h
rename to hw/qcn9224/v1/ce_stat_desc.h
diff --git a/hw/qcn9224/coex_rx_status.h b/hw/qcn9224/v1/coex_rx_status.h
similarity index 100%
rename from hw/qcn9224/coex_rx_status.h
rename to hw/qcn9224/v1/coex_rx_status.h
diff --git a/hw/qcn9224/coex_tx_req.h b/hw/qcn9224/v1/coex_tx_req.h
similarity index 100%
rename from hw/qcn9224/coex_tx_req.h
rename to hw/qcn9224/v1/coex_tx_req.h
diff --git a/hw/qcn9224/coex_tx_status.h b/hw/qcn9224/v1/coex_tx_status.h
similarity index 100%
rename from hw/qcn9224/coex_tx_status.h
rename to hw/qcn9224/v1/coex_tx_status.h
diff --git a/hw/qcn9224/com_dtypes.h b/hw/qcn9224/v1/com_dtypes.h
similarity index 100%
rename from hw/qcn9224/com_dtypes.h
rename to hw/qcn9224/v1/com_dtypes.h
diff --git a/hw/qcn9224/eht_sig_usr_mu_mimo_info.h b/hw/qcn9224/v1/eht_sig_usr_mu_mimo_info.h
similarity index 100%
rename from hw/qcn9224/eht_sig_usr_mu_mimo_info.h
rename to hw/qcn9224/v1/eht_sig_usr_mu_mimo_info.h
diff --git a/hw/qcn9224/eht_sig_usr_ofdma_info.h b/hw/qcn9224/v1/eht_sig_usr_ofdma_info.h
similarity index 100%
rename from hw/qcn9224/eht_sig_usr_ofdma_info.h
rename to hw/qcn9224/v1/eht_sig_usr_ofdma_info.h
diff --git a/hw/qcn9224/eht_sig_usr_su_info.h b/hw/qcn9224/v1/eht_sig_usr_su_info.h
similarity index 100%
rename from hw/qcn9224/eht_sig_usr_su_info.h
rename to hw/qcn9224/v1/eht_sig_usr_su_info.h
diff --git a/hw/qcn9224/expected_response.h b/hw/qcn9224/v1/expected_response.h
similarity index 100%
rename from hw/qcn9224/expected_response.h
rename to hw/qcn9224/v1/expected_response.h
diff --git a/hw/qcn9224/he_sig_a_mu_dl_info.h b/hw/qcn9224/v1/he_sig_a_mu_dl_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_a_mu_dl_info.h
rename to hw/qcn9224/v1/he_sig_a_mu_dl_info.h
diff --git a/hw/qcn9224/he_sig_a_mu_ul_info.h b/hw/qcn9224/v1/he_sig_a_mu_ul_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_a_mu_ul_info.h
rename to hw/qcn9224/v1/he_sig_a_mu_ul_info.h
diff --git a/hw/qcn9224/he_sig_a_su_info.h b/hw/qcn9224/v1/he_sig_a_su_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_a_su_info.h
rename to hw/qcn9224/v1/he_sig_a_su_info.h
diff --git a/hw/qcn9224/he_sig_b1_mu_info.h b/hw/qcn9224/v1/he_sig_b1_mu_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_b1_mu_info.h
rename to hw/qcn9224/v1/he_sig_b1_mu_info.h
diff --git a/hw/qcn9224/he_sig_b2_mu_info.h b/hw/qcn9224/v1/he_sig_b2_mu_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_b2_mu_info.h
rename to hw/qcn9224/v1/he_sig_b2_mu_info.h
diff --git a/hw/qcn9224/he_sig_b2_ofdma_info.h b/hw/qcn9224/v1/he_sig_b2_ofdma_info.h
similarity index 100%
rename from hw/qcn9224/he_sig_b2_ofdma_info.h
rename to hw/qcn9224/v1/he_sig_b2_ofdma_info.h
diff --git a/hw/qcn9224/ht_sig_info.h b/hw/qcn9224/v1/ht_sig_info.h
similarity index 100%
rename from hw/qcn9224/ht_sig_info.h
rename to hw/qcn9224/v1/ht_sig_info.h
diff --git a/hw/qcn9224/l_sig_a_info.h b/hw/qcn9224/v1/l_sig_a_info.h
similarity index 100%
rename from hw/qcn9224/l_sig_a_info.h
rename to hw/qcn9224/v1/l_sig_a_info.h
diff --git a/hw/qcn9224/l_sig_b_info.h b/hw/qcn9224/v1/l_sig_b_info.h
similarity index 100%
rename from hw/qcn9224/l_sig_b_info.h
rename to hw/qcn9224/v1/l_sig_b_info.h
diff --git a/hw/qcn9224/macrx_abort_request_info.h b/hw/qcn9224/v1/macrx_abort_request_info.h
similarity index 100%
rename from hw/qcn9224/macrx_abort_request_info.h
rename to hw/qcn9224/v1/macrx_abort_request_info.h
diff --git a/hw/qcn9224/mactx_eht_sig_usr_mu_mimo.h b/hw/qcn9224/v1/mactx_eht_sig_usr_mu_mimo.h
similarity index 100%
rename from hw/qcn9224/mactx_eht_sig_usr_mu_mimo.h
rename to hw/qcn9224/v1/mactx_eht_sig_usr_mu_mimo.h
diff --git a/hw/qcn9224/mactx_eht_sig_usr_ofdma.h b/hw/qcn9224/v1/mactx_eht_sig_usr_ofdma.h
similarity index 100%
rename from hw/qcn9224/mactx_eht_sig_usr_ofdma.h
rename to hw/qcn9224/v1/mactx_eht_sig_usr_ofdma.h
diff --git a/hw/qcn9224/mactx_eht_sig_usr_su.h b/hw/qcn9224/v1/mactx_eht_sig_usr_su.h
similarity index 100%
rename from hw/qcn9224/mactx_eht_sig_usr_su.h
rename to hw/qcn9224/v1/mactx_eht_sig_usr_su.h
diff --git a/hw/qcn9224/mactx_he_sig_a_mu_dl.h b/hw/qcn9224/v1/mactx_he_sig_a_mu_dl.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_a_mu_dl.h
rename to hw/qcn9224/v1/mactx_he_sig_a_mu_dl.h
diff --git a/hw/qcn9224/mactx_he_sig_a_mu_ul.h b/hw/qcn9224/v1/mactx_he_sig_a_mu_ul.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_a_mu_ul.h
rename to hw/qcn9224/v1/mactx_he_sig_a_mu_ul.h
diff --git a/hw/qcn9224/mactx_he_sig_a_su.h b/hw/qcn9224/v1/mactx_he_sig_a_su.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_a_su.h
rename to hw/qcn9224/v1/mactx_he_sig_a_su.h
diff --git a/hw/qcn9224/mactx_he_sig_b1_mu.h b/hw/qcn9224/v1/mactx_he_sig_b1_mu.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_b1_mu.h
rename to hw/qcn9224/v1/mactx_he_sig_b1_mu.h
diff --git a/hw/qcn9224/mactx_he_sig_b2_mu.h b/hw/qcn9224/v1/mactx_he_sig_b2_mu.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_b2_mu.h
rename to hw/qcn9224/v1/mactx_he_sig_b2_mu.h
diff --git a/hw/qcn9224/mactx_he_sig_b2_ofdma.h b/hw/qcn9224/v1/mactx_he_sig_b2_ofdma.h
similarity index 100%
rename from hw/qcn9224/mactx_he_sig_b2_ofdma.h
rename to hw/qcn9224/v1/mactx_he_sig_b2_ofdma.h
diff --git a/hw/qcn9224/mactx_ht_sig.h b/hw/qcn9224/v1/mactx_ht_sig.h
similarity index 100%
rename from hw/qcn9224/mactx_ht_sig.h
rename to hw/qcn9224/v1/mactx_ht_sig.h
diff --git a/hw/qcn9224/mactx_l_sig_a.h b/hw/qcn9224/v1/mactx_l_sig_a.h
similarity index 100%
rename from hw/qcn9224/mactx_l_sig_a.h
rename to hw/qcn9224/v1/mactx_l_sig_a.h
diff --git a/hw/qcn9224/mactx_l_sig_b.h b/hw/qcn9224/v1/mactx_l_sig_b.h
similarity index 100%
rename from hw/qcn9224/mactx_l_sig_b.h
rename to hw/qcn9224/v1/mactx_l_sig_b.h
diff --git a/hw/qcn9224/mactx_phy_desc.h b/hw/qcn9224/v1/mactx_phy_desc.h
similarity index 100%
rename from hw/qcn9224/mactx_phy_desc.h
rename to hw/qcn9224/v1/mactx_phy_desc.h
diff --git a/hw/qcn9224/mactx_service.h b/hw/qcn9224/v1/mactx_service.h
similarity index 100%
rename from hw/qcn9224/mactx_service.h
rename to hw/qcn9224/v1/mactx_service.h
diff --git a/hw/qcn9224/mactx_u_sig_eht_su_mu.h b/hw/qcn9224/v1/mactx_u_sig_eht_su_mu.h
similarity index 100%
rename from hw/qcn9224/mactx_u_sig_eht_su_mu.h
rename to hw/qcn9224/v1/mactx_u_sig_eht_su_mu.h
diff --git a/hw/qcn9224/mactx_u_sig_eht_tb.h b/hw/qcn9224/v1/mactx_u_sig_eht_tb.h
similarity index 100%
rename from hw/qcn9224/mactx_u_sig_eht_tb.h
rename to hw/qcn9224/v1/mactx_u_sig_eht_tb.h
diff --git a/hw/qcn9224/mactx_user_desc_common.h b/hw/qcn9224/v1/mactx_user_desc_common.h
similarity index 100%
rename from hw/qcn9224/mactx_user_desc_common.h
rename to hw/qcn9224/v1/mactx_user_desc_common.h
diff --git a/hw/qcn9224/mactx_user_desc_per_user.h b/hw/qcn9224/v1/mactx_user_desc_per_user.h
similarity index 100%
rename from hw/qcn9224/mactx_user_desc_per_user.h
rename to hw/qcn9224/v1/mactx_user_desc_per_user.h
diff --git a/hw/qcn9224/mactx_vht_sig_a.h b/hw/qcn9224/v1/mactx_vht_sig_a.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_a.h
rename to hw/qcn9224/v1/mactx_vht_sig_a.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu160.h b/hw/qcn9224/v1/mactx_vht_sig_b_mu160.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_mu160.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_mu160.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu20.h b/hw/qcn9224/v1/mactx_vht_sig_b_mu20.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_mu20.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_mu20.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu40.h b/hw/qcn9224/v1/mactx_vht_sig_b_mu40.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_mu40.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_mu40.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu80.h b/hw/qcn9224/v1/mactx_vht_sig_b_mu80.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_mu80.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_mu80.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su160.h b/hw/qcn9224/v1/mactx_vht_sig_b_su160.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_su160.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_su160.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su20.h b/hw/qcn9224/v1/mactx_vht_sig_b_su20.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_su20.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_su20.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su40.h b/hw/qcn9224/v1/mactx_vht_sig_b_su40.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_su40.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_su40.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su80.h b/hw/qcn9224/v1/mactx_vht_sig_b_su80.h
similarity index 100%
rename from hw/qcn9224/mactx_vht_sig_b_su80.h
rename to hw/qcn9224/v1/mactx_vht_sig_b_su80.h
diff --git a/hw/qcn9224/mlo_sta_id_details.h b/hw/qcn9224/v1/mlo_sta_id_details.h
similarity index 100%
rename from hw/qcn9224/mlo_sta_id_details.h
rename to hw/qcn9224/v1/mlo_sta_id_details.h
diff --git a/hw/qcn9224/mon_buffer_addr.h b/hw/qcn9224/v1/mon_buffer_addr.h
similarity index 100%
rename from hw/qcn9224/mon_buffer_addr.h
rename to hw/qcn9224/v1/mon_buffer_addr.h
diff --git a/hw/qcn9224/mon_destination_ring.h b/hw/qcn9224/v1/mon_destination_ring.h
similarity index 100%
rename from hw/qcn9224/mon_destination_ring.h
rename to hw/qcn9224/v1/mon_destination_ring.h
diff --git a/hw/qcn9224/mon_destination_ring_with_drop.h b/hw/qcn9224/v1/mon_destination_ring_with_drop.h
similarity index 100%
rename from hw/qcn9224/mon_destination_ring_with_drop.h
rename to hw/qcn9224/v1/mon_destination_ring_with_drop.h
diff --git a/hw/qcn9224/mon_drop.h b/hw/qcn9224/v1/mon_drop.h
similarity index 100%
rename from hw/qcn9224/mon_drop.h
rename to hw/qcn9224/v1/mon_drop.h
diff --git a/hw/qcn9224/mon_ingress_ring.h b/hw/qcn9224/v1/mon_ingress_ring.h
similarity index 100%
rename from hw/qcn9224/mon_ingress_ring.h
rename to hw/qcn9224/v1/mon_ingress_ring.h
diff --git a/hw/qcn9224/no_ack_report.h b/hw/qcn9224/v1/no_ack_report.h
similarity index 100%
rename from hw/qcn9224/no_ack_report.h
rename to hw/qcn9224/v1/no_ack_report.h
diff --git a/hw/qcn9224/ofdma_trigger_details.h b/hw/qcn9224/v1/ofdma_trigger_details.h
similarity index 100%
rename from hw/qcn9224/ofdma_trigger_details.h
rename to hw/qcn9224/v1/ofdma_trigger_details.h
diff --git a/hw/qcn9224/pcu_ppdu_setup_init.h b/hw/qcn9224/v1/pcu_ppdu_setup_init.h
similarity index 100%
rename from hw/qcn9224/pcu_ppdu_setup_init.h
rename to hw/qcn9224/v1/pcu_ppdu_setup_init.h
diff --git a/hw/qcn9224/pdg_response.h b/hw/qcn9224/v1/pdg_response.h
similarity index 100%
rename from hw/qcn9224/pdg_response.h
rename to hw/qcn9224/v1/pdg_response.h
diff --git a/hw/qcn9224/pdg_response_rate_setting.h b/hw/qcn9224/v1/pdg_response_rate_setting.h
similarity index 100%
rename from hw/qcn9224/pdg_response_rate_setting.h
rename to hw/qcn9224/v1/pdg_response_rate_setting.h
diff --git a/hw/qcn9224/pdg_tx_req.h b/hw/qcn9224/v1/pdg_tx_req.h
similarity index 100%
rename from hw/qcn9224/pdg_tx_req.h
rename to hw/qcn9224/v1/pdg_tx_req.h
diff --git a/hw/qcn9224/phyrx_abort_request_info.h b/hw/qcn9224/v1/phyrx_abort_request_info.h
similarity index 100%
rename from hw/qcn9224/phyrx_abort_request_info.h
rename to hw/qcn9224/v1/phyrx_abort_request_info.h
diff --git a/hw/qcn9224/phyrx_common_user_info.h b/hw/qcn9224/v1/phyrx_common_user_info.h
similarity index 100%
rename from hw/qcn9224/phyrx_common_user_info.h
rename to hw/qcn9224/v1/phyrx_common_user_info.h
diff --git a/hw/qcn9224/phyrx_he_sig_a_mu_dl.h b/hw/qcn9224/v1/phyrx_he_sig_a_mu_dl.h
similarity index 100%
rename from hw/qcn9224/phyrx_he_sig_a_mu_dl.h
rename to hw/qcn9224/v1/phyrx_he_sig_a_mu_dl.h
diff --git a/hw/qcn9224/phyrx_he_sig_a_su.h b/hw/qcn9224/v1/phyrx_he_sig_a_su.h
similarity index 100%
rename from hw/qcn9224/phyrx_he_sig_a_su.h
rename to hw/qcn9224/v1/phyrx_he_sig_a_su.h
diff --git a/hw/qcn9224/phyrx_he_sig_b1_mu.h b/hw/qcn9224/v1/phyrx_he_sig_b1_mu.h
similarity index 100%
rename from hw/qcn9224/phyrx_he_sig_b1_mu.h
rename to hw/qcn9224/v1/phyrx_he_sig_b1_mu.h
diff --git a/hw/qcn9224/phyrx_he_sig_b2_mu.h b/hw/qcn9224/v1/phyrx_he_sig_b2_mu.h
similarity index 100%
rename from hw/qcn9224/phyrx_he_sig_b2_mu.h
rename to hw/qcn9224/v1/phyrx_he_sig_b2_mu.h
diff --git a/hw/qcn9224/phyrx_he_sig_b2_ofdma.h b/hw/qcn9224/v1/phyrx_he_sig_b2_ofdma.h
similarity index 100%
rename from hw/qcn9224/phyrx_he_sig_b2_ofdma.h
rename to hw/qcn9224/v1/phyrx_he_sig_b2_ofdma.h
diff --git a/hw/qcn9224/phyrx_ht_sig.h b/hw/qcn9224/v1/phyrx_ht_sig.h
similarity index 100%
rename from hw/qcn9224/phyrx_ht_sig.h
rename to hw/qcn9224/v1/phyrx_ht_sig.h
diff --git a/hw/qcn9224/phyrx_l_sig_a.h b/hw/qcn9224/v1/phyrx_l_sig_a.h
similarity index 100%
rename from hw/qcn9224/phyrx_l_sig_a.h
rename to hw/qcn9224/v1/phyrx_l_sig_a.h
diff --git a/hw/qcn9224/phyrx_l_sig_b.h b/hw/qcn9224/v1/phyrx_l_sig_b.h
similarity index 100%
rename from hw/qcn9224/phyrx_l_sig_b.h
rename to hw/qcn9224/v1/phyrx_l_sig_b.h
diff --git a/hw/qcn9224/phyrx_location.h b/hw/qcn9224/v1/phyrx_location.h
similarity index 100%
rename from hw/qcn9224/phyrx_location.h
rename to hw/qcn9224/v1/phyrx_location.h
diff --git a/hw/qcn9224/phyrx_other_receive_info_ru_details.h b/hw/qcn9224/v1/phyrx_other_receive_info_ru_details.h
similarity index 100%
rename from hw/qcn9224/phyrx_other_receive_info_ru_details.h
rename to hw/qcn9224/v1/phyrx_other_receive_info_ru_details.h
diff --git a/hw/qcn9224/phyrx_pkt_end.h b/hw/qcn9224/v1/phyrx_pkt_end.h
similarity index 100%
rename from hw/qcn9224/phyrx_pkt_end.h
rename to hw/qcn9224/v1/phyrx_pkt_end.h
diff --git a/hw/qcn9224/phyrx_pkt_end_info.h b/hw/qcn9224/v1/phyrx_pkt_end_info.h
similarity index 100%
rename from hw/qcn9224/phyrx_pkt_end_info.h
rename to hw/qcn9224/v1/phyrx_pkt_end_info.h
diff --git a/hw/qcn9224/phyrx_rssi_legacy.h b/hw/qcn9224/v1/phyrx_rssi_legacy.h
similarity index 100%
rename from hw/qcn9224/phyrx_rssi_legacy.h
rename to hw/qcn9224/v1/phyrx_rssi_legacy.h
diff --git a/hw/qcn9224/phyrx_vht_sig_a.h b/hw/qcn9224/v1/phyrx_vht_sig_a.h
similarity index 100%
rename from hw/qcn9224/phyrx_vht_sig_a.h
rename to hw/qcn9224/v1/phyrx_vht_sig_a.h
diff --git a/hw/qcn9224/phytx_abort_request_info.h b/hw/qcn9224/v1/phytx_abort_request_info.h
similarity index 100%
rename from hw/qcn9224/phytx_abort_request_info.h
rename to hw/qcn9224/v1/phytx_abort_request_info.h
diff --git a/hw/qcn9224/phytx_ppdu_header_info_request.h b/hw/qcn9224/v1/phytx_ppdu_header_info_request.h
similarity index 100%
rename from hw/qcn9224/phytx_ppdu_header_info_request.h
rename to hw/qcn9224/v1/phytx_ppdu_header_info_request.h
diff --git a/hw/qcn9224/receive_rssi_info.h b/hw/qcn9224/v1/receive_rssi_info.h
similarity index 100%
rename from hw/qcn9224/receive_rssi_info.h
rename to hw/qcn9224/v1/receive_rssi_info.h
diff --git a/hw/qcn9224/receive_user_info.h b/hw/qcn9224/v1/receive_user_info.h
similarity index 100%
rename from hw/qcn9224/receive_user_info.h
rename to hw/qcn9224/v1/receive_user_info.h
diff --git a/hw/qcn9224/received_response_user_15_8.h b/hw/qcn9224/v1/received_response_user_15_8.h
similarity index 100%
rename from hw/qcn9224/received_response_user_15_8.h
rename to hw/qcn9224/v1/received_response_user_15_8.h
diff --git a/hw/qcn9224/received_response_user_23_16.h b/hw/qcn9224/v1/received_response_user_23_16.h
similarity index 100%
rename from hw/qcn9224/received_response_user_23_16.h
rename to hw/qcn9224/v1/received_response_user_23_16.h
diff --git a/hw/qcn9224/received_response_user_31_24.h b/hw/qcn9224/v1/received_response_user_31_24.h
similarity index 100%
rename from hw/qcn9224/received_response_user_31_24.h
rename to hw/qcn9224/v1/received_response_user_31_24.h
diff --git a/hw/qcn9224/received_response_user_36_32.h b/hw/qcn9224/v1/received_response_user_36_32.h
similarity index 100%
rename from hw/qcn9224/received_response_user_36_32.h
rename to hw/qcn9224/v1/received_response_user_36_32.h
diff --git a/hw/qcn9224/received_response_user_7_0.h b/hw/qcn9224/v1/received_response_user_7_0.h
similarity index 100%
rename from hw/qcn9224/received_response_user_7_0.h
rename to hw/qcn9224/v1/received_response_user_7_0.h
diff --git a/hw/qcn9224/received_response_user_info.h b/hw/qcn9224/v1/received_response_user_info.h
similarity index 100%
rename from hw/qcn9224/received_response_user_info.h
rename to hw/qcn9224/v1/received_response_user_info.h
diff --git a/hw/qcn9224/received_trigger_info.h b/hw/qcn9224/v1/received_trigger_info.h
similarity index 100%
rename from hw/qcn9224/received_trigger_info.h
rename to hw/qcn9224/v1/received_trigger_info.h
diff --git a/hw/qcn9224/received_trigger_info_details.h b/hw/qcn9224/v1/received_trigger_info_details.h
similarity index 100%
rename from hw/qcn9224/received_trigger_info_details.h
rename to hw/qcn9224/v1/received_trigger_info_details.h
diff --git a/hw/qcn9224/reo_descriptor_threshold_reached_status.h b/hw/qcn9224/v1/reo_descriptor_threshold_reached_status.h
similarity index 100%
rename from hw/qcn9224/reo_descriptor_threshold_reached_status.h
rename to hw/qcn9224/v1/reo_descriptor_threshold_reached_status.h
diff --git a/hw/qcn9224/reo_destination_ring.h b/hw/qcn9224/v1/reo_destination_ring.h
similarity index 100%
rename from hw/qcn9224/reo_destination_ring.h
rename to hw/qcn9224/v1/reo_destination_ring.h
diff --git a/hw/qcn9224/reo_entrance_ring.h b/hw/qcn9224/v1/reo_entrance_ring.h
similarity index 100%
rename from hw/qcn9224/reo_entrance_ring.h
rename to hw/qcn9224/v1/reo_entrance_ring.h
diff --git a/hw/qcn9224/reo_flush_cache.h b/hw/qcn9224/v1/reo_flush_cache.h
similarity index 100%
rename from hw/qcn9224/reo_flush_cache.h
rename to hw/qcn9224/v1/reo_flush_cache.h
diff --git a/hw/qcn9224/reo_flush_cache_status.h b/hw/qcn9224/v1/reo_flush_cache_status.h
similarity index 100%
rename from hw/qcn9224/reo_flush_cache_status.h
rename to hw/qcn9224/v1/reo_flush_cache_status.h
diff --git a/hw/qcn9224/reo_flush_queue.h b/hw/qcn9224/v1/reo_flush_queue.h
similarity index 100%
rename from hw/qcn9224/reo_flush_queue.h
rename to hw/qcn9224/v1/reo_flush_queue.h
diff --git a/hw/qcn9224/reo_flush_queue_status.h b/hw/qcn9224/v1/reo_flush_queue_status.h
similarity index 100%
rename from hw/qcn9224/reo_flush_queue_status.h
rename to hw/qcn9224/v1/reo_flush_queue_status.h
diff --git a/hw/qcn9224/reo_flush_timeout_list.h b/hw/qcn9224/v1/reo_flush_timeout_list.h
similarity index 100%
rename from hw/qcn9224/reo_flush_timeout_list.h
rename to hw/qcn9224/v1/reo_flush_timeout_list.h
diff --git a/hw/qcn9224/reo_flush_timeout_list_status.h b/hw/qcn9224/v1/reo_flush_timeout_list_status.h
similarity index 100%
rename from hw/qcn9224/reo_flush_timeout_list_status.h
rename to hw/qcn9224/v1/reo_flush_timeout_list_status.h
diff --git a/hw/qcn9224/reo_get_queue_stats.h b/hw/qcn9224/v1/reo_get_queue_stats.h
similarity index 100%
rename from hw/qcn9224/reo_get_queue_stats.h
rename to hw/qcn9224/v1/reo_get_queue_stats.h
diff --git a/hw/qcn9224/reo_get_queue_stats_status.h b/hw/qcn9224/v1/reo_get_queue_stats_status.h
similarity index 100%
rename from hw/qcn9224/reo_get_queue_stats_status.h
rename to hw/qcn9224/v1/reo_get_queue_stats_status.h
diff --git a/hw/qcn9224/reo_unblock_cache.h b/hw/qcn9224/v1/reo_unblock_cache.h
similarity index 100%
rename from hw/qcn9224/reo_unblock_cache.h
rename to hw/qcn9224/v1/reo_unblock_cache.h
diff --git a/hw/qcn9224/reo_unblock_cache_status.h b/hw/qcn9224/v1/reo_unblock_cache_status.h
similarity index 100%
rename from hw/qcn9224/reo_unblock_cache_status.h
rename to hw/qcn9224/v1/reo_unblock_cache_status.h
diff --git a/hw/qcn9224/reo_update_rx_reo_queue.h b/hw/qcn9224/v1/reo_update_rx_reo_queue.h
similarity index 100%
rename from hw/qcn9224/reo_update_rx_reo_queue.h
rename to hw/qcn9224/v1/reo_update_rx_reo_queue.h
diff --git a/hw/qcn9224/reo_update_rx_reo_queue_status.h b/hw/qcn9224/v1/reo_update_rx_reo_queue_status.h
similarity index 100%
rename from hw/qcn9224/reo_update_rx_reo_queue_status.h
rename to hw/qcn9224/v1/reo_update_rx_reo_queue_status.h
diff --git a/hw/qcn9224/response_end_status.h b/hw/qcn9224/v1/response_end_status.h
similarity index 100%
rename from hw/qcn9224/response_end_status.h
rename to hw/qcn9224/v1/response_end_status.h
diff --git a/hw/qcn9224/response_start_status.h b/hw/qcn9224/v1/response_start_status.h
similarity index 100%
rename from hw/qcn9224/response_start_status.h
rename to hw/qcn9224/v1/response_start_status.h
diff --git a/hw/qcn9224/ru_allocation_160_info.h b/hw/qcn9224/v1/ru_allocation_160_info.h
similarity index 100%
rename from hw/qcn9224/ru_allocation_160_info.h
rename to hw/qcn9224/v1/ru_allocation_160_info.h
diff --git a/hw/qcn9224/rx_attention.h b/hw/qcn9224/v1/rx_attention.h
similarity index 100%
rename from hw/qcn9224/rx_attention.h
rename to hw/qcn9224/v1/rx_attention.h
diff --git a/hw/qcn9224/rx_flow_search_entry.h b/hw/qcn9224/v1/rx_flow_search_entry.h
similarity index 100%
rename from hw/qcn9224/rx_flow_search_entry.h
rename to hw/qcn9224/v1/rx_flow_search_entry.h
diff --git a/hw/qcn9224/rx_frame_1k_bitmap_ack.h b/hw/qcn9224/v1/rx_frame_1k_bitmap_ack.h
similarity index 100%
rename from hw/qcn9224/rx_frame_1k_bitmap_ack.h
rename to hw/qcn9224/v1/rx_frame_1k_bitmap_ack.h
diff --git a/hw/qcn9224/rx_frame_bitmap_ack.h b/hw/qcn9224/v1/rx_frame_bitmap_ack.h
similarity index 100%
rename from hw/qcn9224/rx_frame_bitmap_ack.h
rename to hw/qcn9224/v1/rx_frame_bitmap_ack.h
diff --git a/hw/qcn9224/rx_frame_bitmap_req.h b/hw/qcn9224/v1/rx_frame_bitmap_req.h
similarity index 100%
rename from hw/qcn9224/rx_frame_bitmap_req.h
rename to hw/qcn9224/v1/rx_frame_bitmap_req.h
diff --git a/hw/qcn9224/rx_location_info.h b/hw/qcn9224/v1/rx_location_info.h
similarity index 100%
rename from hw/qcn9224/rx_location_info.h
rename to hw/qcn9224/v1/rx_location_info.h
diff --git a/hw/qcn9224/rx_mpdu_desc_info.h b/hw/qcn9224/v1/rx_mpdu_desc_info.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_desc_info.h
rename to hw/qcn9224/v1/rx_mpdu_desc_info.h
diff --git a/hw/qcn9224/rx_mpdu_details.h b/hw/qcn9224/v1/rx_mpdu_details.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_details.h
rename to hw/qcn9224/v1/rx_mpdu_details.h
diff --git a/hw/qcn9224/rx_mpdu_end.h b/hw/qcn9224/v1/rx_mpdu_end.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_end.h
rename to hw/qcn9224/v1/rx_mpdu_end.h
diff --git a/hw/qcn9224/rx_mpdu_info.h b/hw/qcn9224/v1/rx_mpdu_info.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_info.h
rename to hw/qcn9224/v1/rx_mpdu_info.h
diff --git a/hw/qcn9224/rx_mpdu_link_ptr.h b/hw/qcn9224/v1/rx_mpdu_link_ptr.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_link_ptr.h
rename to hw/qcn9224/v1/rx_mpdu_link_ptr.h
diff --git a/hw/qcn9224/rx_mpdu_start.h b/hw/qcn9224/v1/rx_mpdu_start.h
similarity index 100%
rename from hw/qcn9224/rx_mpdu_start.h
rename to hw/qcn9224/v1/rx_mpdu_start.h
diff --git a/hw/qcn9224/rx_msdu_desc_info.h b/hw/qcn9224/v1/rx_msdu_desc_info.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_desc_info.h
rename to hw/qcn9224/v1/rx_msdu_desc_info.h
diff --git a/hw/qcn9224/rx_msdu_details.h b/hw/qcn9224/v1/rx_msdu_details.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_details.h
rename to hw/qcn9224/v1/rx_msdu_details.h
diff --git a/hw/qcn9224/rx_msdu_end.h b/hw/qcn9224/v1/rx_msdu_end.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_end.h
rename to hw/qcn9224/v1/rx_msdu_end.h
diff --git a/hw/qcn9224/rx_msdu_ext_desc_info.h b/hw/qcn9224/v1/rx_msdu_ext_desc_info.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_ext_desc_info.h
rename to hw/qcn9224/v1/rx_msdu_ext_desc_info.h
diff --git a/hw/qcn9224/rx_msdu_link.h b/hw/qcn9224/v1/rx_msdu_link.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_link.h
rename to hw/qcn9224/v1/rx_msdu_link.h
diff --git a/hw/qcn9224/rx_msdu_start.h b/hw/qcn9224/v1/rx_msdu_start.h
similarity index 100%
rename from hw/qcn9224/rx_msdu_start.h
rename to hw/qcn9224/v1/rx_msdu_start.h
diff --git a/hw/qcn9224/rx_ppdu_ack_report.h b/hw/qcn9224/v1/rx_ppdu_ack_report.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_ack_report.h
rename to hw/qcn9224/v1/rx_ppdu_ack_report.h
diff --git a/hw/qcn9224/rx_ppdu_end_user_stats.h b/hw/qcn9224/v1/rx_ppdu_end_user_stats.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_end_user_stats.h
rename to hw/qcn9224/v1/rx_ppdu_end_user_stats.h
diff --git a/hw/qcn9224/rx_ppdu_end_user_stats_ext.h b/hw/qcn9224/v1/rx_ppdu_end_user_stats_ext.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_end_user_stats_ext.h
rename to hw/qcn9224/v1/rx_ppdu_end_user_stats_ext.h
diff --git a/hw/qcn9224/rx_ppdu_no_ack_report.h b/hw/qcn9224/v1/rx_ppdu_no_ack_report.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_no_ack_report.h
rename to hw/qcn9224/v1/rx_ppdu_no_ack_report.h
diff --git a/hw/qcn9224/rx_ppdu_start.h b/hw/qcn9224/v1/rx_ppdu_start.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_start.h
rename to hw/qcn9224/v1/rx_ppdu_start.h
diff --git a/hw/qcn9224/rx_ppdu_start_user_info.h b/hw/qcn9224/v1/rx_ppdu_start_user_info.h
similarity index 100%
rename from hw/qcn9224/rx_ppdu_start_user_info.h
rename to hw/qcn9224/v1/rx_ppdu_start_user_info.h
diff --git a/hw/qcn9224/rx_preamble.h b/hw/qcn9224/v1/rx_preamble.h
similarity index 100%
rename from hw/qcn9224/rx_preamble.h
rename to hw/qcn9224/v1/rx_preamble.h
diff --git a/hw/qcn9224/rx_reo_queue.h b/hw/qcn9224/v1/rx_reo_queue.h
similarity index 100%
rename from hw/qcn9224/rx_reo_queue.h
rename to hw/qcn9224/v1/rx_reo_queue.h
diff --git a/hw/qcn9224/rx_reo_queue_1k.h b/hw/qcn9224/v1/rx_reo_queue_1k.h
similarity index 100%
rename from hw/qcn9224/rx_reo_queue_1k.h
rename to hw/qcn9224/v1/rx_reo_queue_1k.h
diff --git a/hw/qcn9224/rx_reo_queue_ext.h b/hw/qcn9224/v1/rx_reo_queue_ext.h
similarity index 100%
rename from hw/qcn9224/rx_reo_queue_ext.h
rename to hw/qcn9224/v1/rx_reo_queue_ext.h
diff --git a/hw/qcn9224/rx_reo_queue_reference.h b/hw/qcn9224/v1/rx_reo_queue_reference.h
similarity index 100%
rename from hw/qcn9224/rx_reo_queue_reference.h
rename to hw/qcn9224/v1/rx_reo_queue_reference.h
diff --git a/hw/qcn9224/rx_response_required_info.h b/hw/qcn9224/v1/rx_response_required_info.h
similarity index 100%
rename from hw/qcn9224/rx_response_required_info.h
rename to hw/qcn9224/v1/rx_response_required_info.h
diff --git a/hw/qcn9224/rx_rxpcu_classification_overview.h b/hw/qcn9224/v1/rx_rxpcu_classification_overview.h
similarity index 100%
rename from hw/qcn9224/rx_rxpcu_classification_overview.h
rename to hw/qcn9224/v1/rx_rxpcu_classification_overview.h
diff --git a/hw/qcn9224/rx_start_param.h b/hw/qcn9224/v1/rx_start_param.h
similarity index 100%
rename from hw/qcn9224/rx_start_param.h
rename to hw/qcn9224/v1/rx_start_param.h
diff --git a/hw/qcn9224/rx_timing_offset_info.h b/hw/qcn9224/v1/rx_timing_offset_info.h
similarity index 100%
rename from hw/qcn9224/rx_timing_offset_info.h
rename to hw/qcn9224/v1/rx_timing_offset_info.h
diff --git a/hw/qcn9224/rx_trig_info.h b/hw/qcn9224/v1/rx_trig_info.h
similarity index 100%
rename from hw/qcn9224/rx_trig_info.h
rename to hw/qcn9224/v1/rx_trig_info.h
diff --git a/hw/qcn9224/rxpcu_early_rx_indication.h b/hw/qcn9224/v1/rxpcu_early_rx_indication.h
similarity index 100%
rename from hw/qcn9224/rxpcu_early_rx_indication.h
rename to hw/qcn9224/v1/rxpcu_early_rx_indication.h
diff --git a/hw/qcn9224/rxpcu_ppdu_end_info.h b/hw/qcn9224/v1/rxpcu_ppdu_end_info.h
similarity index 100%
rename from hw/qcn9224/rxpcu_ppdu_end_info.h
rename to hw/qcn9224/v1/rxpcu_ppdu_end_info.h
diff --git a/hw/qcn9224/rxpcu_ppdu_end_layout_info.h b/hw/qcn9224/v1/rxpcu_ppdu_end_layout_info.h
similarity index 100%
rename from hw/qcn9224/rxpcu_ppdu_end_layout_info.h
rename to hw/qcn9224/v1/rxpcu_ppdu_end_layout_info.h
diff --git a/hw/qcn9224/rxpt_classify_info.h b/hw/qcn9224/v1/rxpt_classify_info.h
similarity index 100%
rename from hw/qcn9224/rxpt_classify_info.h
rename to hw/qcn9224/v1/rxpt_classify_info.h
diff --git a/hw/qcn9224/seq_hwio.h b/hw/qcn9224/v1/seq_hwio.h
similarity index 100%
rename from hw/qcn9224/seq_hwio.h
rename to hw/qcn9224/v1/seq_hwio.h
diff --git a/hw/qcn9224/service_info.h b/hw/qcn9224/v1/service_info.h
similarity index 100%
rename from hw/qcn9224/service_info.h
rename to hw/qcn9224/v1/service_info.h
diff --git a/hw/qcn9224/sw_monitor_ring.h b/hw/qcn9224/v1/sw_monitor_ring.h
similarity index 100%
rename from hw/qcn9224/sw_monitor_ring.h
rename to hw/qcn9224/v1/sw_monitor_ring.h
diff --git a/hw/qcn9224/tcl_data_cmd.h b/hw/qcn9224/v1/tcl_data_cmd.h
similarity index 100%
rename from hw/qcn9224/tcl_data_cmd.h
rename to hw/qcn9224/v1/tcl_data_cmd.h
diff --git a/hw/qcn9224/tcl_entrance_from_ppe_ring.h b/hw/qcn9224/v1/tcl_entrance_from_ppe_ring.h
similarity index 100%
rename from hw/qcn9224/tcl_entrance_from_ppe_ring.h
rename to hw/qcn9224/v1/tcl_entrance_from_ppe_ring.h
diff --git a/hw/qcn9224/tcl_gse_cmd.h b/hw/qcn9224/v1/tcl_gse_cmd.h
similarity index 100%
rename from hw/qcn9224/tcl_gse_cmd.h
rename to hw/qcn9224/v1/tcl_gse_cmd.h
diff --git a/hw/qcn9224/tcl_status_ring.h b/hw/qcn9224/v1/tcl_status_ring.h
similarity index 100%
rename from hw/qcn9224/tcl_status_ring.h
rename to hw/qcn9224/v1/tcl_status_ring.h
diff --git a/hw/qcn9224/tlv_hdr.h b/hw/qcn9224/v1/tlv_hdr.h
similarity index 100%
rename from hw/qcn9224/tlv_hdr.h
rename to hw/qcn9224/v1/tlv_hdr.h
diff --git a/hw/qcn9224/tlv_tag_def.h b/hw/qcn9224/v1/tlv_tag_def.h
similarity index 100%
rename from hw/qcn9224/tlv_tag_def.h
rename to hw/qcn9224/v1/tlv_tag_def.h
diff --git a/hw/qcn9224/tx_cbf_info.h b/hw/qcn9224/v1/tx_cbf_info.h
similarity index 100%
rename from hw/qcn9224/tx_cbf_info.h
rename to hw/qcn9224/v1/tx_cbf_info.h
diff --git a/hw/qcn9224/tx_fes_setup.h b/hw/qcn9224/v1/tx_fes_setup.h
similarity index 100%
rename from hw/qcn9224/tx_fes_setup.h
rename to hw/qcn9224/v1/tx_fes_setup.h
diff --git a/hw/qcn9224/tx_fes_status_1k_ba.h b/hw/qcn9224/v1/tx_fes_status_1k_ba.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_1k_ba.h
rename to hw/qcn9224/v1/tx_fes_status_1k_ba.h
diff --git a/hw/qcn9224/tx_fes_status_ack_or_ba.h b/hw/qcn9224/v1/tx_fes_status_ack_or_ba.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_ack_or_ba.h
rename to hw/qcn9224/v1/tx_fes_status_ack_or_ba.h
diff --git a/hw/qcn9224/tx_fes_status_end.h b/hw/qcn9224/v1/tx_fes_status_end.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_end.h
rename to hw/qcn9224/v1/tx_fes_status_end.h
diff --git a/hw/qcn9224/tx_fes_status_prot.h b/hw/qcn9224/v1/tx_fes_status_prot.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_prot.h
rename to hw/qcn9224/v1/tx_fes_status_prot.h
diff --git a/hw/qcn9224/tx_fes_status_start.h b/hw/qcn9224/v1/tx_fes_status_start.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_start.h
rename to hw/qcn9224/v1/tx_fes_status_start.h
diff --git a/hw/qcn9224/tx_fes_status_start_ppdu.h b/hw/qcn9224/v1/tx_fes_status_start_ppdu.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_start_ppdu.h
rename to hw/qcn9224/v1/tx_fes_status_start_ppdu.h
diff --git a/hw/qcn9224/tx_fes_status_start_prot.h b/hw/qcn9224/v1/tx_fes_status_start_prot.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_start_prot.h
rename to hw/qcn9224/v1/tx_fes_status_start_prot.h
diff --git a/hw/qcn9224/tx_fes_status_user_ppdu.h b/hw/qcn9224/v1/tx_fes_status_user_ppdu.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_user_ppdu.h
rename to hw/qcn9224/v1/tx_fes_status_user_ppdu.h
diff --git a/hw/qcn9224/tx_fes_status_user_response.h b/hw/qcn9224/v1/tx_fes_status_user_response.h
similarity index 100%
rename from hw/qcn9224/tx_fes_status_user_response.h
rename to hw/qcn9224/v1/tx_fes_status_user_response.h
diff --git a/hw/qcn9224/tx_flush_req.h b/hw/qcn9224/v1/tx_flush_req.h
similarity index 100%
rename from hw/qcn9224/tx_flush_req.h
rename to hw/qcn9224/v1/tx_flush_req.h
diff --git a/hw/qcn9224/tx_mpdu_start.h b/hw/qcn9224/v1/tx_mpdu_start.h
similarity index 100%
rename from hw/qcn9224/tx_mpdu_start.h
rename to hw/qcn9224/v1/tx_mpdu_start.h
diff --git a/hw/qcn9224/tx_msdu_extension.h b/hw/qcn9224/v1/tx_msdu_extension.h
similarity index 100%
rename from hw/qcn9224/tx_msdu_extension.h
rename to hw/qcn9224/v1/tx_msdu_extension.h
diff --git a/hw/qcn9224/tx_msdu_start.h b/hw/qcn9224/v1/tx_msdu_start.h
similarity index 100%
rename from hw/qcn9224/tx_msdu_start.h
rename to hw/qcn9224/v1/tx_msdu_start.h
diff --git a/hw/qcn9224/tx_peer_entry.h b/hw/qcn9224/v1/tx_peer_entry.h
similarity index 100%
rename from hw/qcn9224/tx_peer_entry.h
rename to hw/qcn9224/v1/tx_peer_entry.h
diff --git a/hw/qcn9224/tx_queue_extension.h b/hw/qcn9224/v1/tx_queue_extension.h
similarity index 100%
rename from hw/qcn9224/tx_queue_extension.h
rename to hw/qcn9224/v1/tx_queue_extension.h
diff --git a/hw/qcn9224/tx_rate_stats_info.h b/hw/qcn9224/v1/tx_rate_stats_info.h
similarity index 100%
rename from hw/qcn9224/tx_rate_stats_info.h
rename to hw/qcn9224/v1/tx_rate_stats_info.h
diff --git a/hw/qcn9224/tx_raw_or_native_frame_setup.h b/hw/qcn9224/v1/tx_raw_or_native_frame_setup.h
similarity index 100%
rename from hw/qcn9224/tx_raw_or_native_frame_setup.h
rename to hw/qcn9224/v1/tx_raw_or_native_frame_setup.h
diff --git a/hw/qcn9224/txpcu_buffer_basics.h b/hw/qcn9224/v1/txpcu_buffer_basics.h
similarity index 100%
rename from hw/qcn9224/txpcu_buffer_basics.h
rename to hw/qcn9224/v1/txpcu_buffer_basics.h
diff --git a/hw/qcn9224/txpcu_buffer_status.h b/hw/qcn9224/v1/txpcu_buffer_status.h
similarity index 100%
rename from hw/qcn9224/txpcu_buffer_status.h
rename to hw/qcn9224/v1/txpcu_buffer_status.h
diff --git a/hw/qcn9224/txpcu_user_buffer_status.h b/hw/qcn9224/v1/txpcu_user_buffer_status.h
similarity index 100%
rename from hw/qcn9224/txpcu_user_buffer_status.h
rename to hw/qcn9224/v1/txpcu_user_buffer_status.h
diff --git a/hw/qcn9224/u_sig_eht_su_mu_info.h b/hw/qcn9224/v1/u_sig_eht_su_mu_info.h
similarity index 100%
rename from hw/qcn9224/u_sig_eht_su_mu_info.h
rename to hw/qcn9224/v1/u_sig_eht_su_mu_info.h
diff --git a/hw/qcn9224/u_sig_eht_tb_info.h b/hw/qcn9224/v1/u_sig_eht_tb_info.h
similarity index 100%
rename from hw/qcn9224/u_sig_eht_tb_info.h
rename to hw/qcn9224/v1/u_sig_eht_tb_info.h
diff --git a/hw/qcn9224/unallocated_ru_160_info.h b/hw/qcn9224/v1/unallocated_ru_160_info.h
similarity index 100%
rename from hw/qcn9224/unallocated_ru_160_info.h
rename to hw/qcn9224/v1/unallocated_ru_160_info.h
diff --git a/hw/qcn9224/uniform_descriptor_header.h b/hw/qcn9224/v1/uniform_descriptor_header.h
similarity index 100%
rename from hw/qcn9224/uniform_descriptor_header.h
rename to hw/qcn9224/v1/uniform_descriptor_header.h
diff --git a/hw/qcn9224/uniform_reo_cmd_header.h b/hw/qcn9224/v1/uniform_reo_cmd_header.h
similarity index 100%
rename from hw/qcn9224/uniform_reo_cmd_header.h
rename to hw/qcn9224/v1/uniform_reo_cmd_header.h
diff --git a/hw/qcn9224/uniform_reo_status_header.h b/hw/qcn9224/v1/uniform_reo_status_header.h
similarity index 100%
rename from hw/qcn9224/uniform_reo_status_header.h
rename to hw/qcn9224/v1/uniform_reo_status_header.h
diff --git a/hw/qcn9224/vht_sig_a_info.h b/hw/qcn9224/v1/vht_sig_a_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_a_info.h
rename to hw/qcn9224/v1/vht_sig_a_info.h
diff --git a/hw/qcn9224/vht_sig_b_mu160_info.h b/hw/qcn9224/v1/vht_sig_b_mu160_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_mu160_info.h
rename to hw/qcn9224/v1/vht_sig_b_mu160_info.h
diff --git a/hw/qcn9224/vht_sig_b_mu20_info.h b/hw/qcn9224/v1/vht_sig_b_mu20_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_mu20_info.h
rename to hw/qcn9224/v1/vht_sig_b_mu20_info.h
diff --git a/hw/qcn9224/vht_sig_b_mu40_info.h b/hw/qcn9224/v1/vht_sig_b_mu40_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_mu40_info.h
rename to hw/qcn9224/v1/vht_sig_b_mu40_info.h
diff --git a/hw/qcn9224/vht_sig_b_mu80_info.h b/hw/qcn9224/v1/vht_sig_b_mu80_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_mu80_info.h
rename to hw/qcn9224/v1/vht_sig_b_mu80_info.h
diff --git a/hw/qcn9224/vht_sig_b_su160_info.h b/hw/qcn9224/v1/vht_sig_b_su160_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_su160_info.h
rename to hw/qcn9224/v1/vht_sig_b_su160_info.h
diff --git a/hw/qcn9224/vht_sig_b_su20_info.h b/hw/qcn9224/v1/vht_sig_b_su20_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_su20_info.h
rename to hw/qcn9224/v1/vht_sig_b_su20_info.h
diff --git a/hw/qcn9224/vht_sig_b_su40_info.h b/hw/qcn9224/v1/vht_sig_b_su40_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_su40_info.h
rename to hw/qcn9224/v1/vht_sig_b_su40_info.h
diff --git a/hw/qcn9224/vht_sig_b_su80_info.h b/hw/qcn9224/v1/vht_sig_b_su80_info.h
similarity index 100%
rename from hw/qcn9224/vht_sig_b_su80_info.h
rename to hw/qcn9224/v1/vht_sig_b_su80_info.h
diff --git a/hw/qcn9224/wbm2sw_completion_ring_rx.h b/hw/qcn9224/v1/wbm2sw_completion_ring_rx.h
similarity index 100%
rename from hw/qcn9224/wbm2sw_completion_ring_rx.h
rename to hw/qcn9224/v1/wbm2sw_completion_ring_rx.h
diff --git a/hw/qcn9224/wbm2sw_completion_ring_tx.h b/hw/qcn9224/v1/wbm2sw_completion_ring_tx.h
similarity index 100%
rename from hw/qcn9224/wbm2sw_completion_ring_tx.h
rename to hw/qcn9224/v1/wbm2sw_completion_ring_tx.h
diff --git a/hw/qcn9224/wbm_buffer_ring.h b/hw/qcn9224/v1/wbm_buffer_ring.h
similarity index 100%
rename from hw/qcn9224/wbm_buffer_ring.h
rename to hw/qcn9224/v1/wbm_buffer_ring.h
diff --git a/hw/qcn9224/wbm_link_descriptor_ring.h b/hw/qcn9224/v1/wbm_link_descriptor_ring.h
similarity index 100%
rename from hw/qcn9224/wbm_link_descriptor_ring.h
rename to hw/qcn9224/v1/wbm_link_descriptor_ring.h
diff --git a/hw/qcn9224/wbm_release_ring.h b/hw/qcn9224/v1/wbm_release_ring.h
similarity index 100%
rename from hw/qcn9224/wbm_release_ring.h
rename to hw/qcn9224/v1/wbm_release_ring.h
diff --git a/hw/qcn9224/wbm_release_ring_rx.h b/hw/qcn9224/v1/wbm_release_ring_rx.h
similarity index 100%
rename from hw/qcn9224/wbm_release_ring_rx.h
rename to hw/qcn9224/v1/wbm_release_ring_rx.h
diff --git a/hw/qcn9224/wbm_release_ring_tx.h b/hw/qcn9224/v1/wbm_release_ring_tx.h
similarity index 100%
rename from hw/qcn9224/wbm_release_ring_tx.h
rename to hw/qcn9224/v1/wbm_release_ring_tx.h
diff --git a/hw/qcn9224/wcss_seq_hwiobase.h b/hw/qcn9224/v1/wcss_seq_hwiobase.h
similarity index 100%
rename from hw/qcn9224/wcss_seq_hwiobase.h
rename to hw/qcn9224/v1/wcss_seq_hwiobase.h
diff --git a/hw/qcn9224/wcss_seq_hwioreg_umac.h b/hw/qcn9224/v1/wcss_seq_hwioreg_umac.h
similarity index 100%
rename from hw/qcn9224/wcss_seq_hwioreg_umac.h
rename to hw/qcn9224/v1/wcss_seq_hwioreg_umac.h
diff --git a/hw/qcn9224/wcss_version.h b/hw/qcn9224/v1/wcss_version.h
similarity index 100%
rename from hw/qcn9224/wcss_version.h
rename to hw/qcn9224/v1/wcss_version.h
diff --git a/hw/qcn9224/wfss_ce_reg_seq_hwioreg.h b/hw/qcn9224/v1/wfss_ce_reg_seq_hwioreg.h
similarity index 100%
rename from hw/qcn9224/wfss_ce_reg_seq_hwioreg.h
rename to hw/qcn9224/v1/wfss_ce_reg_seq_hwioreg.h
diff --git a/hw/qcn9224/v2/HALcomdef.h b/hw/qcn9224/v2/HALcomdef.h
new file mode 100644
index 0000000..83d04a2
--- /dev/null
+++ b/hw/qcn9224/v2/HALcomdef.h
@@ -0,0 +1,62 @@
+
+/* 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 HAL_COMDEF_H
+#define HAL_COMDEF_H
+ 
+
+
+ 
+#ifndef _ARM_ASM_
+
+ 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "com_dtypes.h"
+
+ 
+
+ 
+#ifndef _BOOL32_DEFINED
+typedef  unsigned long int  bool32;
+#define _BOOL32_DEFINED
+#endif
+
+ 
+#define HAL_ENUM_32BITS(x) HAL_##x##_FORCE32BITS = 0x7FFFFFFF
+
+ 
+
+   
+
+  #define inp(port)         (*((volatile byte *) (port)))
+  #define inpw(port)        (*((volatile word *) (port)))
+  #define inpdw(port)       (*((volatile dword *)(port)))
+
+  #define outp(port, val)   (*((volatile byte *) (port)) = ((byte) (val)))
+  #define outpw(port, val)  (*((volatile word *) (port)) = ((word) (val)))
+  #define outpdw(port, val) (*((volatile dword *) (port)) = ((dword) (val)))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  
+
+#endif  
+
diff --git a/hw/qcn9224/v2/HALhwio.h b/hw/qcn9224/v2/HALhwio.h
new file mode 100644
index 0000000..3acbbaa
--- /dev/null
+++ b/hw/qcn9224/v2/HALhwio.h
@@ -0,0 +1,351 @@
+
+/* 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 HAL_HWIO_H
+#define HAL_HWIO_H
+ 
+ 
+  
+
+ 
+
+
+ 
+#include "HALcomdef.h"
+
+
+
+ 
+
+  
+
+ 
+#define HWIO_BASE_PTR(base) base##_BASE_PTR
+
+
+ 
+#ifdef __ARMCC_VERSION
+  #define DECLARE_HWIO_BASE_PTR(base) __weak uint8 *HWIO_BASE_PTR(base)
+#else
+  #define DECLARE_HWIO_BASE_PTR(base) uint8 *HWIO_BASE_PTR(base)
+#endif
+
+ 
+
+#ifdef CONFIG_WHAL_MM
+#define SEQ_WCSS_WCMN_OFFSET     SEQ_WCSS_TOP_CMN_OFFSET
+#define SEQ_WCSS_PMM_OFFSET      SEQ_WCSS_PMM_TOP_OFFSET
+#endif
+
+
+  
+
+ 
+#define HWIO_ADDR(hwiosym)                               __msmhwio_addr(hwiosym)
+#define HWIO_ADDRI(hwiosym, index)                       __msmhwio_addri(hwiosym, index)
+#define HWIO_ADDRI2(hwiosym, index1, index2)             __msmhwio_addri2(hwiosym, index1, index2)
+#define HWIO_ADDRI3(hwiosym, index1, index2, index3)     __msmhwio_addri3(hwiosym, index1, index2, index3)
+
+#define HWIO_ADDRX(base, hwiosym)                           __msmhwio_addrx(base, hwiosym)
+#define HWIO_ADDRXI(base, hwiosym, index)                   __msmhwio_addrxi(base, hwiosym, index)
+#define HWIO_ADDRXI2(base, hwiosym, index1, index2)         __msmhwio_addrxi2(base, hwiosym, index1, index2)
+#define HWIO_ADDRXI3(base, hwiosym, index1, index2, index3) __msmhwio_addrxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_PHYS(hwiosym)                               __msmhwio_phys(hwiosym)
+#define HWIO_PHYSI(hwiosym, index)                       __msmhwio_physi(hwiosym, index)
+#define HWIO_PHYSI2(hwiosym, index1, index2)             __msmhwio_physi2(hwiosym, index1, index2)
+#define HWIO_PHYSI3(hwiosym, index1, index2, index3)     __msmhwio_physi3(hwiosym, index1, index2, index3)
+
+#define HWIO_PHYSX(base, hwiosym)                           __msmhwio_physx(base, hwiosym)
+#define HWIO_PHYSXI(base, hwiosym, index)                   __msmhwio_physxi(base, hwiosym, index)
+#define HWIO_PHYSXI2(base, hwiosym, index1, index2)         __msmhwio_physxi2(base, hwiosym, index1, index2)
+#define HWIO_PHYSXI3(base, hwiosym, index1, index2, index3) __msmhwio_physxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_OFFS(hwiosym)                               __msmhwio_offs(hwiosym)
+#define HWIO_OFFSI(hwiosym, index)                       __msmhwio_offsi(hwiosym, index)
+#define HWIO_OFFSI2(hwiosym, index1, index2)             __msmhwio_offsi2(hwiosym, index1, index2)
+#define HWIO_OFFSI3(hwiosym, index1, index2, index3)     __msmhwio_offsi3(hwiosym, index1, index2, index3)
+ 
+
+ 
+#define HWIO_IN(hwiosym)                                         __msmhwio_in(hwiosym)
+#define HWIO_INI(hwiosym, index)                                 __msmhwio_ini(hwiosym, index)
+#define HWIO_INI2(hwiosym, index1, index2)                       __msmhwio_ini2(hwiosym, index1, index2)
+#define HWIO_INI3(hwiosym, index1, index2, index3)               __msmhwio_ini3(hwiosym, index1, index2, index3)
+
+#define HWIO_INM(hwiosym, mask)                                  __msmhwio_inm(hwiosym, mask)
+#define HWIO_INMI(hwiosym, index, mask)                          __msmhwio_inmi(hwiosym, index, mask)
+#define HWIO_INMI2(hwiosym, index1, index2, mask)                __msmhwio_inmi2(hwiosym, index1, index2, mask)
+#define HWIO_INMI3(hwiosym, index1, index2, index3, mask)        __msmhwio_inmi3(hwiosym, index1, index2, index3, mask)
+
+#define HWIO_INF(io, field)                                      (HWIO_INM(io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI(io, index, field)                              (HWIO_INMI(io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI2(io, index1, index2, field)                    (HWIO_INMI2(io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INFI3(io, index1, index2, index3, field)            (HWIO_INMI3(io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+
+#define HWIO_INX(base, hwiosym)                                  __msmhwio_inx(base, hwiosym)
+#define HWIO_INXI(base, hwiosym, index)                          __msmhwio_inxi(base, hwiosym, index)
+#define HWIO_INXI2(base, hwiosym, index1, index2)                __msmhwio_inxi2(base, hwiosym, index1, index2)
+#define HWIO_INXI3(base, hwiosym, index1, index2, index3)        __msmhwio_inxi3(base, hwiosym, index1, index2, index3)
+
+#define HWIO_INXM(base, hwiosym, mask)                           __msmhwio_inxm(base, hwiosym, mask)
+#define HWIO_INXMI(base, hwiosym, index, mask)                   __msmhwio_inxmi(base, hwiosym, index, mask)
+#define HWIO_INXMI2(base, hwiosym, index1, index2, mask)         __msmhwio_inxmi2(base, hwiosym, index1, index2, mask)
+#define HWIO_INXMI3(base, hwiosym, index1, index2, index3, mask) __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask)
+
+#define HWIO_INXF(base, io, field)                               (HWIO_INXM(base, io, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI(base, io, index, field)                       (HWIO_INXMI(base, io, index, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI2(base, io, index1, index2, field)             (HWIO_INXMI2(base, io, index1, index2, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+#define HWIO_INXFI3(base, io, index1, index2, index3, field)     (HWIO_INXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field)) >> HWIO_SHFT(io, field))
+ 
+
+ 
+#define HWIO_OUT(hwiosym, val)                                   __msmhwio_out(hwiosym, val)
+#define HWIO_OUTI(hwiosym, index, val)                           __msmhwio_outi(hwiosym, index, val)
+#define HWIO_OUTI2(hwiosym, index1, index2, val)                 __msmhwio_outi2(hwiosym, index1, index2, val)
+#define HWIO_OUTI3(hwiosym, index1, index2, index3, val)         __msmhwio_outi3(hwiosym, index1, index2, index3, val)
+
+#define HWIO_OUTM(hwiosym, mask, val)                            __msmhwio_outm(hwiosym, mask, val)
+#define HWIO_OUTMI(hwiosym, index, mask, val)                    __msmhwio_outmi(hwiosym, index, mask, val)
+#define HWIO_OUTMI2(hwiosym, index1, index2, mask, val)          __msmhwio_outmi2(hwiosym, index1, index2, mask, val)
+#define HWIO_OUTMI3(hwiosym, index1, index2, index3, mask, val)  __msmhwio_outmi3(hwiosym, index1, index2, index3, mask, val)
+
+#define HWIO_OUTF(io, field, val)                                HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI(io, index, field, val)                        HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI2(io, index1, index2, field, val)              HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTFI3(io, index1, index2, index3, field, val)      HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTV(io, field, val)                                HWIO_OUTM(io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI(io, index, field, val)                        HWIO_OUTMI(io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI2(io, index1, index2, field, val)              HWIO_OUTMI2(io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTVI3(io, index1, index2, index3, field, val)      HWIO_OUTMI3(io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTX(base, hwiosym, val)                                   __msmhwio_outx(base, hwiosym, val)
+#define HWIO_OUTXI(base, hwiosym, index, val)                           __msmhwio_outxi(base, hwiosym, index, val)
+#define HWIO_OUTXI2(base, hwiosym, index1, index2, val)                 __msmhwio_outxi2(base, hwiosym, index1, index2, val)
+#define HWIO_OUTXI3(base, hwiosym, index1, index2, index3, val)         __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val)
+
+#define HWIO_OUTXM(base, hwiosym, mask, val)                            __msmhwio_outxm(base, hwiosym, mask, val)
+#define HWIO_OUTXM2(base, hwiosym, mask1, mask2, val1, val2)  __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2)
+#define HWIO_OUTXM3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3) __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3, val1, val2, val3)
+#define HWIO_OUTXM4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4)
+#define HWIO_OUTXMI(base, hwiosym, index, mask, val)                    __msmhwio_outxmi(base, hwiosym, index, mask, val)
+#define HWIO_OUTXMI2(base, hwiosym, index1, index2, mask, val)          __msmhwio_outxmi2(base, hwiosym, index1, index2, mask, val)
+#define HWIO_OUTXMI3(base, hwiosym, index1, index2, index3, mask, val)  __msmhwio_outxmi3(base, hwiosym, index1, index2, index3, mask, val)
+
+#define HWIO_OUTXF(base, io, field, val)                                HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTX2F(base, io, field1, field2, val1, val2)                                HWIO_OUTXM2(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2), (uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2))
+#define HWIO_OUTX3F(base, io, field1, field2, field3, val1, val2, val3)                                HWIO_OUTXM3(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2),  HWIO_FMSK(io, field3),(uint32)(val1) << HWIO_SHFT(io, field1), (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3) )
+#define HWIO_OUTX4F(base, io, field1, field2, field3, field4, val1, val2, val3, val4)                                HWIO_OUTXM4(base, io, HWIO_FMSK(io, field1),  HWIO_FMSK(io, field2),  HWIO_FMSK(io, field3),  HWIO_FMSK(io, field4), (uint32)(val1) << HWIO_SHFT(io, field1) , (uint32)(val2) << HWIO_SHFT(io, field2), (uint32)(val3) << HWIO_SHFT(io, field3), (uint32)(val4) << HWIO_SHFT(io, field4) )
+
+#define HWIO_OUTXFI(base, io, index, field, val)                        HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTXFI2(base, io, index1, index2, field, val)              HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+#define HWIO_OUTXFI3(base, io, index1, index2, index3, field, val)      HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(val) << HWIO_SHFT(io, field))
+
+#define HWIO_OUTXV(base, io, field, val)                                HWIO_OUTXM(base, io, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI(base, io, index, field, val)                        HWIO_OUTXMI(base, io, index, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI2(base, io, index1, index2, field, val)              HWIO_OUTXMI2(base, io, index1, index2, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+#define HWIO_OUTXVI3(base, io, index1, index2, index3, field, val)      HWIO_OUTXMI3(base, io, index1, index2, index3, HWIO_FMSK(io, field), (uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field))
+ 
+
+ 
+#define HWIO_RMSK(hwiosym)                               __msmhwio_rmsk(hwiosym)
+#define HWIO_RMSKI(hwiosym, index)                       __msmhwio_rmski(hwiosym, index)
+#define HWIO_RSHFT(hwiosym)                              __msmhwio_rshft(hwiosym)
+#define HWIO_SHFT(hwio_regsym, hwio_fldsym)              __msmhwio_shft(hwio_regsym, hwio_fldsym)
+#define HWIO_FMSK(hwio_regsym, hwio_fldsym)              __msmhwio_fmsk(hwio_regsym, hwio_fldsym)
+#define HWIO_VAL(io, field, val)                         __msmhwio_val(io, field, val)
+#define HWIO_FVAL(io, field, val)                        (((uint32)(val) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
+#define HWIO_FVALV(io, field, val)                       (((uint32)(HWIO_VAL(io, field, val)) << HWIO_SHFT(io, field)) & HWIO_FMSK(io, field))
+ 
+
+ 
+#define HWIO_SHDW(hwiosym)                               __msmhwio_shdw(hwiosym)
+#define HWIO_SHDWI(hwiosym, index)                       __msmhwio_shdwi(hwiosym, index)
+ 
+
+   
+
+
+ 
+
+ 
+#define __msmhwio_in(hwiosym)                                   HWIO_##hwiosym##_IN
+#define __msmhwio_ini(hwiosym, index)                           HWIO_##hwiosym##_INI(index)
+#define __msmhwio_ini2(hwiosym, index1, index2)                 HWIO_##hwiosym##_INI2(index1, index2)
+#define __msmhwio_ini3(hwiosym, index1, index2, index3)         HWIO_##hwiosym##_INI3(index1, index2, index3)
+#define __msmhwio_inm(hwiosym, mask)                            HWIO_##hwiosym##_INM(mask)
+#define __msmhwio_inmi(hwiosym, index, mask)                    HWIO_##hwiosym##_INMI(index, mask)
+#define __msmhwio_inmi2(hwiosym, index1, index2, mask)          HWIO_##hwiosym##_INMI2(index1, index2, mask)
+#define __msmhwio_inmi3(hwiosym, index1, index2, index3, mask)  HWIO_##hwiosym##_INMI3(index1, index2, index3, mask)
+#define __msmhwio_out(hwiosym, val)                             HWIO_##hwiosym##_OUT(val)
+#define __msmhwio_outi(hwiosym, index, val)                     HWIO_##hwiosym##_OUTI(index,val)
+#define __msmhwio_outi2(hwiosym, index1, index2, val)           HWIO_##hwiosym##_OUTI2(index1, index2, val)
+#define __msmhwio_outi3(hwiosym, index1, index2, index3, val)   HWIO_##hwiosym##_OUTI2(index1, index2, index3, val)
+#define __msmhwio_outm(hwiosym, mask, val)                      HWIO_##hwiosym##_OUTM(mask, val)
+#define __msmhwio_outmi(hwiosym, index, mask, val)              HWIO_##hwiosym##_OUTMI(index, mask, val)
+#define __msmhwio_outmi2(hwiosym, idx1, idx2, mask, val)        HWIO_##hwiosym##_OUTMI2(idx1, idx2, mask, val)
+#define __msmhwio_outmi3(hwiosym, idx1, idx2, idx3, mask, val)  HWIO_##hwiosym##_OUTMI3(idx1, idx2, idx3, mask, val)
+#define __msmhwio_addr(hwiosym)                                 HWIO_##hwiosym##_ADDR
+#define __msmhwio_addri(hwiosym, index)                         HWIO_##hwiosym##_ADDR(index)
+#define __msmhwio_addri2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_ADDR(idx1, idx2)
+#define __msmhwio_addri3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_ADDR(idx1, idx2, idx3)
+#define __msmhwio_phys(hwiosym)                                 HWIO_##hwiosym##_PHYS
+#define __msmhwio_physi(hwiosym, index)                         HWIO_##hwiosym##_PHYS(index)
+#define __msmhwio_physi2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_PHYS(idx1, idx2)
+#define __msmhwio_physi3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_PHYS(idx1, idx2, idx3)
+#define __msmhwio_offs(hwiosym)                                 HWIO_##hwiosym##_OFFS 
+#define __msmhwio_offsi(hwiosym, index)                         HWIO_##hwiosym##_OFFS(index)
+#define __msmhwio_offsi2(hwiosym, idx1, idx2)                   HWIO_##hwiosym##_OFFS(idx1, idx2)
+#define __msmhwio_offsi3(hwiosym, idx1, idx2, idx3)             HWIO_##hwiosym##_OFFS(idx1, idx2, idx3)
+#define __msmhwio_rmsk(hwiosym)                                 HWIO_##hwiosym##_RMSK
+#define __msmhwio_rmski(hwiosym, index)                         HWIO_##hwiosym##_RMSK(index)
+#define __msmhwio_fmsk(hwiosym, hwiofldsym)                     HWIO_##hwiosym##_##hwiofldsym##_BMSK
+#define __msmhwio_rshft(hwiosym)                                HWIO_##hwiosym##_SHFT
+#define __msmhwio_shft(hwiosym, hwiofldsym)                     HWIO_##hwiosym##_##hwiofldsym##_SHFT
+#define __msmhwio_shdw(hwiosym)                                 HWIO_##hwiosym##_shadow
+#define __msmhwio_shdwi(hwiosym, index)                         HWIO_##hwiosym##_SHDW(index)
+#define __msmhwio_val(hwiosym, hwiofld, hwioval)                HWIO_##hwiosym##_##hwiofld##_##hwioval##_FVAL
+
+#define __msmhwio_inx(base, hwiosym)                                  HWIO_##hwiosym##_IN(base)
+#define __msmhwio_inxi(base, hwiosym, index)                          HWIO_##hwiosym##_INI(base, index)
+#define __msmhwio_inxi2(base, hwiosym, index1, index2)                HWIO_##hwiosym##_INI2(base, index1, index2)
+#define __msmhwio_inxi3(base, hwiosym, index1, index2, index3)        HWIO_##hwiosym##_INI3(base, index1, index2, index3)
+#define __msmhwio_inxm(base, hwiosym, mask)                           HWIO_##hwiosym##_INM(base, mask)
+#define __msmhwio_inxmi(base, hwiosym, index, mask)                   HWIO_##hwiosym##_INMI(base, index, mask)
+#define __msmhwio_inxmi2(base, hwiosym, index1, index2, mask)         HWIO_##hwiosym##_INMI2(base, index1, index2, mask)
+#define __msmhwio_inxmi3(base, hwiosym, index1, index2, index3, mask) HWIO_##hwiosym##_INMI3(base, index1, index2, index3, mask)
+#define __msmhwio_outx(base, hwiosym, val)                            HWIO_##hwiosym##_OUT(base, val)
+#define __msmhwio_outxi(base, hwiosym, index, val)                    HWIO_##hwiosym##_OUTI(base, index,val)
+#define __msmhwio_outxi2(base, hwiosym, index1, index2, val)          HWIO_##hwiosym##_OUTI2(base, index1, index2, val)
+#define __msmhwio_outxi3(base, hwiosym, index1, index2, index3, val)  HWIO_##hwiosym##_OUTI2(base, index1, index2, index3, val)
+#define __msmhwio_outxm(base, hwiosym, mask, val)                     HWIO_##hwiosym##_OUTM(base, mask, val)
+#define __msmhwio_outxm2(base, hwiosym, mask1, mask2, val1, val2)  {	\
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                               }
+#define __msmhwio_outxm3(base, hwiosym, mask1, mask2, mask3,  val1, val2, val3) { \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask3, val3); \
+                                                                               }  
+#define __msmhwio_outxm4(base, hwiosym, mask1, mask2, mask3, mask4, val1, val2, val3, val4) { \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask1, val1); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask2, val2); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask3, val3); \
+                                                                                HWIO_##hwiosym##_OUTM(base, mask4, val4); \
+                                                                               } 
+
+
+#define __msmhwio_outxmi(base, hwiosym, index, mask, val)             HWIO_##hwiosym##_OUTMI(base, index, mask, val)
+#define __msmhwio_outxmi2(base, hwiosym, idx1, idx2, mask, val)       HWIO_##hwiosym##_OUTMI2(base, idx1, idx2, mask, val)
+#define __msmhwio_outxmi3(base, hwiosym, idx1, idx2, idx3, mask, val) HWIO_##hwiosym##_OUTMI3(base, idx1, idx2, idx3, mask, val)
+#define __msmhwio_addrx(base, hwiosym)                                HWIO_##hwiosym##_ADDR(base)
+#define __msmhwio_addrxi(base, hwiosym, index)                        HWIO_##hwiosym##_ADDR(base, index)
+#define __msmhwio_addrxi2(base, hwiosym, idx1, idx2)                  HWIO_##hwiosym##_ADDR(base, idx1, idx2)
+#define __msmhwio_addrxi3(base, hwiosym, idx1, idx2, idx3)            HWIO_##hwiosym##_ADDR(base, idx1, idx2, idx3)
+#define __msmhwio_physx(base, hwiosym)                                HWIO_##hwiosym##_PHYS(base)
+#define __msmhwio_physxi(base, hwiosym, index)                        HWIO_##hwiosym##_PHYS(base, index)
+#define __msmhwio_physxi2(base, hwiosym, idx1, idx2)                  HWIO_##hwiosym##_PHYS(base, idx1, idx2)
+#define __msmhwio_physxi3(base, hwiosym, idx1, idx2, idx3)            HWIO_##hwiosym##_PHYS(base, idx1, idx2, idx3)
+
+
+ 
+#define HWIO_INTLOCK()
+#define HWIO_INTFREE()
+
+
+ 
+#define __inp(port)         (*((volatile uint8 *) (port)))
+#define __inpw(port)        (*((volatile uint16 *) (port)))
+#define __inpdw(port)       (*((volatile uint32 *) (port)))
+#define __outp(port, val)   (*((volatile uint8 *) (port)) = ((uint8) (val)))
+#define __outpw(port, val)  (*((volatile uint16 *) (port)) = ((uint16) (val)))
+#define __outpdw(port, val) (*((volatile uint32 *) (port)) = ((uint32) (val)))
+
+
+#ifdef HAL_HWIO_EXTERNAL
+
+ 
+#undef  __inp
+#undef  __inpw
+#undef  __inpdw
+#undef  __outp
+#undef  __outpw
+#undef  __outpdw
+
+#define  __inp(port)          __inp_extern((uint32) (port))
+#define  __inpw(port)         __inpw_extern((uint32) (port))
+#define  __inpdw(port)        __inpdw_extern((uint32) (port))
+#define  __outp(port, val)    __outp_extern((uint32) (port), val)
+#define  __outpw(port, val)   __outpw_extern((uint32) (port), val)
+#define  __outpdw(port, val)  __outpdw_extern((uint32) (port), val)
+
+extern uint8   __inp_extern      ( uint32 nAddr );
+extern uint16  __inpw_extern     ( uint32 nAddr );
+extern uint32  __inpdw_extern    ( uint32 nAddr );
+extern void    __outp_extern     ( uint32 nAddr, uint8  nData );
+extern void    __outpw_extern    ( uint32 nAddr, uint16 nData );
+extern void    __outpdw_extern   ( uint32 nAddr, uint32 nData );
+
+#endif  
+
+
+ 
+#define in_byte(addr)               (__inp(addr))
+#define in_byte_masked(addr, mask)  (__inp(addr) & (mask)) 
+#define out_byte(addr, val)         __outp(addr,val)
+#define out_byte_masked(io, mask, val, shadow)  \
+  HWIO_INTLOCK();    \
+  out_byte( io, shadow); \
+  shadow = (shadow & (uint16)(~(mask))) | ((uint16)((val) & (mask))); \
+  HWIO_INTFREE()
+#define out_byte_masked_ns(io, mask, val, current_reg_content)  \
+  out_byte( io, ((current_reg_content & (uint16)(~(mask))) | \
+                ((uint16)((val) & (mask)))) )
+
+
+ 
+#define in_word(addr)              (__inpw(addr))
+#define in_word_masked(addr, mask) (__inpw(addr) & (mask))
+#define out_word(addr, val)        __outpw(addr,val)
+#define out_word_masked(io, mask, val, shadow)  \
+  HWIO_INTLOCK( ); \
+  shadow = (shadow & (uint16)(~(mask))) |  ((uint16)((val) & (mask))); \
+  out_word( io, shadow); \
+  HWIO_INTFREE( )
+#define out_word_masked_ns(io, mask, val, current_reg_content)  \
+  out_word( io, ((current_reg_content & (uint16)(~(mask))) | \
+                ((uint16)((val) & (mask)))) )
+
+
+ 
+#define in_dword(addr)              (__inpdw(addr))
+#define in_dword_masked(addr, mask) (__inpdw(addr) & (mask))
+#define out_dword(addr, val)        __outpdw(addr,val)
+#define out_dword_masked(io, mask, val, shadow)  \
+   HWIO_INTLOCK(); \
+   shadow = (shadow & (uint32)(~(mask))) | ((uint32)((val) & (mask))); \
+   out_dword( io, shadow); \
+   HWIO_INTFREE()
+#define out_dword_masked_ns(io, mask, val, current_reg_content) \
+  out_dword( io, ((current_reg_content & (uint32)(~(mask))) | \
+                 ((uint32)((val) & (mask)))) )
+
+ 
+
+#endif  
+
diff --git a/hw/qcn9224/v2/ack_report.h b/hw/qcn9224/v2/ack_report.h
new file mode 100644
index 0000000..be7d6ea
--- /dev/null
+++ b/hw/qcn9224/v2/ack_report.h
@@ -0,0 +1,92 @@
+
+/* 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 _ACK_REPORT_H_
+#define _ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_ACK_REPORT 1
+
+
+struct ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t selfgen_response_reason                                 :  4,  
+                      ax_trigger_type                                         :  4,  
+                      sr_ppdu                                                 :  1,  
+                      reserved                                                :  7,  
+                      frame_control                                           : 16;  
+#else
+             uint32_t frame_control                                           : 16,  
+                      reserved                                                :  7,  
+                      sr_ppdu                                                 :  1,  
+                      ax_trigger_type                                         :  4,  
+                      selfgen_response_reason                                 :  4;  
+#endif
+};
+
+
+ 
+
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_OFFSET                                   0x00000000
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_LSB                                      0
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MSB                                      3
+#define ACK_REPORT_SELFGEN_RESPONSE_REASON_MASK                                     0x0000000f
+
+
+ 
+
+#define ACK_REPORT_AX_TRIGGER_TYPE_OFFSET                                           0x00000000
+#define ACK_REPORT_AX_TRIGGER_TYPE_LSB                                              4
+#define ACK_REPORT_AX_TRIGGER_TYPE_MSB                                              7
+#define ACK_REPORT_AX_TRIGGER_TYPE_MASK                                             0x000000f0
+
+
+ 
+
+#define ACK_REPORT_SR_PPDU_OFFSET                                                   0x00000000
+#define ACK_REPORT_SR_PPDU_LSB                                                      8
+#define ACK_REPORT_SR_PPDU_MSB                                                      8
+#define ACK_REPORT_SR_PPDU_MASK                                                     0x00000100
+
+
+ 
+
+#define ACK_REPORT_RESERVED_OFFSET                                                  0x00000000
+#define ACK_REPORT_RESERVED_LSB                                                     9
+#define ACK_REPORT_RESERVED_MSB                                                     15
+#define ACK_REPORT_RESERVED_MASK                                                    0x0000fe00
+
+
+ 
+
+#define ACK_REPORT_FRAME_CONTROL_OFFSET                                             0x00000000
+#define ACK_REPORT_FRAME_CONTROL_LSB                                                16
+#define ACK_REPORT_FRAME_CONTROL_MSB                                                31
+#define ACK_REPORT_FRAME_CONTROL_MASK                                               0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/buffer_addr_info.h b/hw/qcn9224/v2/buffer_addr_info.h
new file mode 100644
index 0000000..d6daf53
--- /dev/null
+++ b/hw/qcn9224/v2/buffer_addr_info.h
@@ -0,0 +1,82 @@
+
+/* 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 _BUFFER_ADDR_INFO_H_
+#define _BUFFER_ADDR_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_BUFFER_ADDR_INFO 2
+
+
+struct buffer_addr_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_addr_31_0                                        : 32;  
+             uint32_t buffer_addr_39_32                                       :  8,  
+                      return_buffer_manager                                   :  4,  
+                      sw_buffer_cookie                                        : 20;  
+#else
+             uint32_t buffer_addr_31_0                                        : 32;  
+             uint32_t sw_buffer_cookie                                        : 20,  
+                      return_buffer_manager                                   :  4,  
+                      buffer_addr_39_32                                       :  8;  
+#endif
+};
+
+
+ 
+
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                                    0x00000000
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_LSB                                       0
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MSB                                       31
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_31_0_MASK                                      0xffffffff
+
+
+ 
+
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                                   0x00000004
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_LSB                                      0
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MSB                                      7
+#define BUFFER_ADDR_INFO_BUFFER_ADDR_39_32_MASK                                     0x000000ff
+
+
+ 
+
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                               0x00000004
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                                  8
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                                  11
+#define BUFFER_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                                 0x00000f00
+
+
+ 
+
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                                    0x00000004
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_LSB                                       12
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MSB                                       31
+#define BUFFER_ADDR_INFO_SW_BUFFER_COOKIE_MASK                                      0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/ce_src_desc.h b/hw/qcn9224/v2/ce_src_desc.h
new file mode 100644
index 0000000..4d86289
--- /dev/null
+++ b/hw/qcn9224/v2/ce_src_desc.h
@@ -0,0 +1,192 @@
+
+/* 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 _CE_SRC_DESC_H_
+#define _CE_SRC_DESC_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_CE_SRC_DESC 4
+
+
+struct ce_src_desc {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t src_buffer_low                                          : 32;  
+             uint32_t src_buffer_high                                         :  8,  
+                      toeplitz_en                                             :  1,  
+                      src_swap                                                :  1,  
+                      dest_swap                                               :  1,  
+                      gather                                                  :  1,  
+                      ce_res_0                                                :  1,  
+                      barrier_read                                            :  1,  
+                      ce_res_1                                                :  2,  
+                      length                                                  : 16;  
+             uint32_t fw_metadata                                             : 16,  
+                      ce_res_2                                                : 16;  
+             uint32_t ce_res_3                                                : 20,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t src_buffer_low                                          : 32;  
+             uint32_t length                                                  : 16,  
+                      ce_res_1                                                :  2,  
+                      barrier_read                                            :  1,  
+                      ce_res_0                                                :  1,  
+                      gather                                                  :  1,  
+                      dest_swap                                               :  1,  
+                      src_swap                                                :  1,  
+                      toeplitz_en                                             :  1,  
+                      src_buffer_high                                         :  8;  
+             uint32_t ce_res_2                                                : 16,  
+                      fw_metadata                                             : 16;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      ce_res_3                                                : 20;  
+#endif
+};
+
+
+ 
+
+#define CE_SRC_DESC_SRC_BUFFER_LOW_OFFSET                                           0x00000000
+#define CE_SRC_DESC_SRC_BUFFER_LOW_LSB                                              0
+#define CE_SRC_DESC_SRC_BUFFER_LOW_MSB                                              31
+#define CE_SRC_DESC_SRC_BUFFER_LOW_MASK                                             0xffffffff
+
+
+ 
+
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_OFFSET                                          0x00000004
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_LSB                                             0
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_MSB                                             7
+#define CE_SRC_DESC_SRC_BUFFER_HIGH_MASK                                            0x000000ff
+
+
+ 
+
+#define CE_SRC_DESC_TOEPLITZ_EN_OFFSET                                              0x00000004
+#define CE_SRC_DESC_TOEPLITZ_EN_LSB                                                 8
+#define CE_SRC_DESC_TOEPLITZ_EN_MSB                                                 8
+#define CE_SRC_DESC_TOEPLITZ_EN_MASK                                                0x00000100
+
+
+ 
+
+#define CE_SRC_DESC_SRC_SWAP_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_SRC_SWAP_LSB                                                    9
+#define CE_SRC_DESC_SRC_SWAP_MSB                                                    9
+#define CE_SRC_DESC_SRC_SWAP_MASK                                                   0x00000200
+
+
+ 
+
+#define CE_SRC_DESC_DEST_SWAP_OFFSET                                                0x00000004
+#define CE_SRC_DESC_DEST_SWAP_LSB                                                   10
+#define CE_SRC_DESC_DEST_SWAP_MSB                                                   10
+#define CE_SRC_DESC_DEST_SWAP_MASK                                                  0x00000400
+
+
+ 
+
+#define CE_SRC_DESC_GATHER_OFFSET                                                   0x00000004
+#define CE_SRC_DESC_GATHER_LSB                                                      11
+#define CE_SRC_DESC_GATHER_MSB                                                      11
+#define CE_SRC_DESC_GATHER_MASK                                                     0x00000800
+
+
+ 
+
+#define CE_SRC_DESC_CE_RES_0_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_CE_RES_0_LSB                                                    12
+#define CE_SRC_DESC_CE_RES_0_MSB                                                    12
+#define CE_SRC_DESC_CE_RES_0_MASK                                                   0x00001000
+
+
+ 
+
+#define CE_SRC_DESC_BARRIER_READ_OFFSET                                             0x00000004
+#define CE_SRC_DESC_BARRIER_READ_LSB                                                13
+#define CE_SRC_DESC_BARRIER_READ_MSB                                                13
+#define CE_SRC_DESC_BARRIER_READ_MASK                                               0x00002000
+
+
+ 
+
+#define CE_SRC_DESC_CE_RES_1_OFFSET                                                 0x00000004
+#define CE_SRC_DESC_CE_RES_1_LSB                                                    14
+#define CE_SRC_DESC_CE_RES_1_MSB                                                    15
+#define CE_SRC_DESC_CE_RES_1_MASK                                                   0x0000c000
+
+
+ 
+
+#define CE_SRC_DESC_LENGTH_OFFSET                                                   0x00000004
+#define CE_SRC_DESC_LENGTH_LSB                                                      16
+#define CE_SRC_DESC_LENGTH_MSB                                                      31
+#define CE_SRC_DESC_LENGTH_MASK                                                     0xffff0000
+
+
+ 
+
+#define CE_SRC_DESC_FW_METADATA_OFFSET                                              0x00000008
+#define CE_SRC_DESC_FW_METADATA_LSB                                                 0
+#define CE_SRC_DESC_FW_METADATA_MSB                                                 15
+#define CE_SRC_DESC_FW_METADATA_MASK                                                0x0000ffff
+
+
+ 
+
+#define CE_SRC_DESC_CE_RES_2_OFFSET                                                 0x00000008
+#define CE_SRC_DESC_CE_RES_2_LSB                                                    16
+#define CE_SRC_DESC_CE_RES_2_MSB                                                    31
+#define CE_SRC_DESC_CE_RES_2_MASK                                                   0xffff0000
+
+
+ 
+
+#define CE_SRC_DESC_CE_RES_3_OFFSET                                                 0x0000000c
+#define CE_SRC_DESC_CE_RES_3_LSB                                                    0
+#define CE_SRC_DESC_CE_RES_3_MSB                                                    19
+#define CE_SRC_DESC_CE_RES_3_MASK                                                   0x000fffff
+
+
+ 
+
+#define CE_SRC_DESC_RING_ID_OFFSET                                                  0x0000000c
+#define CE_SRC_DESC_RING_ID_LSB                                                     20
+#define CE_SRC_DESC_RING_ID_MSB                                                     27
+#define CE_SRC_DESC_RING_ID_MASK                                                    0x0ff00000
+
+
+ 
+
+#define CE_SRC_DESC_LOOPING_COUNT_OFFSET                                            0x0000000c
+#define CE_SRC_DESC_LOOPING_COUNT_LSB                                               28
+#define CE_SRC_DESC_LOOPING_COUNT_MSB                                               31
+#define CE_SRC_DESC_LOOPING_COUNT_MASK                                              0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/ce_stat_desc.h b/hw/qcn9224/v2/ce_stat_desc.h
new file mode 100644
index 0000000..fb5e4bf
--- /dev/null
+++ b/hw/qcn9224/v2/ce_stat_desc.h
@@ -0,0 +1,182 @@
+
+/* 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 _CE_STAT_DESC_H_
+#define _CE_STAT_DESC_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_CE_STAT_DESC 4
+
+
+struct ce_stat_desc {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ce_res_5                                                :  8,  
+                      toeplitz_en                                             :  1,  
+                      src_swap                                                :  1,  
+                      dest_swap                                               :  1,  
+                      gather                                                  :  1,  
+                      barrier_read                                            :  1,  
+                      ce_res_6                                                :  3,  
+                      length                                                  : 16;  
+             uint32_t toeplitz_hash_0                                         : 32;  
+             uint32_t toeplitz_hash_1                                         : 32;  
+             uint32_t fw_metadata                                             : 16,  
+                      ce_res_7                                                :  4,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t length                                                  : 16,  
+                      ce_res_6                                                :  3,  
+                      barrier_read                                            :  1,  
+                      gather                                                  :  1,  
+                      dest_swap                                               :  1,  
+                      src_swap                                                :  1,  
+                      toeplitz_en                                             :  1,  
+                      ce_res_5                                                :  8;  
+             uint32_t toeplitz_hash_0                                         : 32;  
+             uint32_t toeplitz_hash_1                                         : 32;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      ce_res_7                                                :  4,  
+                      fw_metadata                                             : 16;  
+#endif
+};
+
+
+ 
+
+#define CE_STAT_DESC_CE_RES_5_OFFSET                                                0x00000000
+#define CE_STAT_DESC_CE_RES_5_LSB                                                   0
+#define CE_STAT_DESC_CE_RES_5_MSB                                                   7
+#define CE_STAT_DESC_CE_RES_5_MASK                                                  0x000000ff
+
+
+ 
+
+#define CE_STAT_DESC_TOEPLITZ_EN_OFFSET                                             0x00000000
+#define CE_STAT_DESC_TOEPLITZ_EN_LSB                                                8
+#define CE_STAT_DESC_TOEPLITZ_EN_MSB                                                8
+#define CE_STAT_DESC_TOEPLITZ_EN_MASK                                               0x00000100
+
+
+ 
+
+#define CE_STAT_DESC_SRC_SWAP_OFFSET                                                0x00000000
+#define CE_STAT_DESC_SRC_SWAP_LSB                                                   9
+#define CE_STAT_DESC_SRC_SWAP_MSB                                                   9
+#define CE_STAT_DESC_SRC_SWAP_MASK                                                  0x00000200
+
+
+ 
+
+#define CE_STAT_DESC_DEST_SWAP_OFFSET                                               0x00000000
+#define CE_STAT_DESC_DEST_SWAP_LSB                                                  10
+#define CE_STAT_DESC_DEST_SWAP_MSB                                                  10
+#define CE_STAT_DESC_DEST_SWAP_MASK                                                 0x00000400
+
+
+ 
+
+#define CE_STAT_DESC_GATHER_OFFSET                                                  0x00000000
+#define CE_STAT_DESC_GATHER_LSB                                                     11
+#define CE_STAT_DESC_GATHER_MSB                                                     11
+#define CE_STAT_DESC_GATHER_MASK                                                    0x00000800
+
+
+ 
+
+#define CE_STAT_DESC_BARRIER_READ_OFFSET                                            0x00000000
+#define CE_STAT_DESC_BARRIER_READ_LSB                                               12
+#define CE_STAT_DESC_BARRIER_READ_MSB                                               12
+#define CE_STAT_DESC_BARRIER_READ_MASK                                              0x00001000
+
+
+ 
+
+#define CE_STAT_DESC_CE_RES_6_OFFSET                                                0x00000000
+#define CE_STAT_DESC_CE_RES_6_LSB                                                   13
+#define CE_STAT_DESC_CE_RES_6_MSB                                                   15
+#define CE_STAT_DESC_CE_RES_6_MASK                                                  0x0000e000
+
+
+ 
+
+#define CE_STAT_DESC_LENGTH_OFFSET                                                  0x00000000
+#define CE_STAT_DESC_LENGTH_LSB                                                     16
+#define CE_STAT_DESC_LENGTH_MSB                                                     31
+#define CE_STAT_DESC_LENGTH_MASK                                                    0xffff0000
+
+
+ 
+
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_OFFSET                                         0x00000004
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_LSB                                            0
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_MSB                                            31
+#define CE_STAT_DESC_TOEPLITZ_HASH_0_MASK                                           0xffffffff
+
+
+ 
+
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_OFFSET                                         0x00000008
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_LSB                                            0
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_MSB                                            31
+#define CE_STAT_DESC_TOEPLITZ_HASH_1_MASK                                           0xffffffff
+
+
+ 
+
+#define CE_STAT_DESC_FW_METADATA_OFFSET                                             0x0000000c
+#define CE_STAT_DESC_FW_METADATA_LSB                                                0
+#define CE_STAT_DESC_FW_METADATA_MSB                                                15
+#define CE_STAT_DESC_FW_METADATA_MASK                                               0x0000ffff
+
+
+ 
+
+#define CE_STAT_DESC_CE_RES_7_OFFSET                                                0x0000000c
+#define CE_STAT_DESC_CE_RES_7_LSB                                                   16
+#define CE_STAT_DESC_CE_RES_7_MSB                                                   19
+#define CE_STAT_DESC_CE_RES_7_MASK                                                  0x000f0000
+
+
+ 
+
+#define CE_STAT_DESC_RING_ID_OFFSET                                                 0x0000000c
+#define CE_STAT_DESC_RING_ID_LSB                                                    20
+#define CE_STAT_DESC_RING_ID_MSB                                                    27
+#define CE_STAT_DESC_RING_ID_MASK                                                   0x0ff00000
+
+
+ 
+
+#define CE_STAT_DESC_LOOPING_COUNT_OFFSET                                           0x0000000c
+#define CE_STAT_DESC_LOOPING_COUNT_LSB                                              28
+#define CE_STAT_DESC_LOOPING_COUNT_MSB                                              31
+#define CE_STAT_DESC_LOOPING_COUNT_MASK                                             0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/coex_rx_status.h b/hw/qcn9224/v2/coex_rx_status.h
similarity index 100%
copy from hw/qcn9224/coex_rx_status.h
copy to hw/qcn9224/v2/coex_rx_status.h
diff --git a/hw/qcn9224/coex_tx_req.h b/hw/qcn9224/v2/coex_tx_req.h
similarity index 100%
copy from hw/qcn9224/coex_tx_req.h
copy to hw/qcn9224/v2/coex_tx_req.h
diff --git a/hw/qcn9224/coex_tx_status.h b/hw/qcn9224/v2/coex_tx_status.h
similarity index 100%
copy from hw/qcn9224/coex_tx_status.h
copy to hw/qcn9224/v2/coex_tx_status.h
diff --git a/hw/qcn9224/v2/com_dtypes.h b/hw/qcn9224/v2/com_dtypes.h
new file mode 100644
index 0000000..1db70bc
--- /dev/null
+++ b/hw/qcn9224/v2/com_dtypes.h
@@ -0,0 +1,213 @@
+
+/* 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 COM_DTYPES_H
+#define COM_DTYPES_H
+
+ 
+ 
+ 
+
+
+ 
+
+
+ 
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ 
+#ifdef T_WINNT
+   #ifndef WIN32
+      #define WIN32
+   #endif
+   #include <stdlib.h>
+#endif
+
+ 
+
+#ifdef TRUE
+#undef TRUE
+#endif
+
+#ifdef FALSE
+#undef FALSE
+#endif
+
+ 
+
+ 
+#define TRUE   1    
+#define FALSE  0    
+
+#define  ON   1     
+#define  OFF  0     
+
+#ifndef NULL
+  #define NULL  0     
+#endif
+   
+
+ 
+
+   
+
+ 
+#ifndef _ARM_ASM_
+#ifndef _BOOLEAN_DEFINED
+
+ 
+ 
+typedef  unsigned char      boolean;     
+#define _BOOLEAN_DEFINED
+#endif
+
+ 
+#if defined(DALSTDDEF_H)  
+#define _BOOLEAN_DEFINED
+#define _UINT32_DEFINED
+#define _UINT16_DEFINED
+#define _UINT8_DEFINED
+#define _INT32_DEFINED
+#define _INT16_DEFINED
+#define _INT8_DEFINED
+#define _UINT64_DEFINED
+#define _INT64_DEFINED
+#define _BYTE_DEFINED
+#endif  
+ 
+
+#ifndef _UINT32_DEFINED
+ 
+typedef  unsigned long int  uint32;      
+#define _UINT32_DEFINED
+#endif
+
+#ifndef _UINT16_DEFINED
+ 
+typedef  unsigned short     uint16;      
+#define _UINT16_DEFINED
+#endif
+
+#ifndef _UINT8_DEFINED
+ 
+typedef  unsigned char      uint8;       
+#define _UINT8_DEFINED
+#endif
+
+#ifndef _INT32_DEFINED
+ 
+typedef  signed long int    int32;
+#define _INT32_DEFINED
+#endif
+
+#ifndef _INT16_DEFINED
+ 
+typedef  signed short       int16;
+#define _INT16_DEFINED
+#endif
+
+#ifndef _INT8_DEFINED
+ 
+typedef  signed char        int8;        
+#define _INT8_DEFINED
+#endif
+
+ 
+ 
+#ifndef _BYTE_DEFINED
+ 
+typedef  unsigned char      byte;         
+#define  _BYTE_DEFINED
+#endif
+
+ 
+typedef  unsigned short     word;
+ 
+typedef  unsigned long      dword;        
+
+ 
+typedef  unsigned char      uint1;
+ 
+typedef  unsigned short     uint2;
+ 
+typedef  unsigned long      uint4;        
+
+ 
+typedef  signed char        int1;
+          
+typedef  signed short       int2;
+      
+typedef  long int           int4;         
+
+ 
+typedef  signed long        sint31;
+        
+typedef  signed short       sint15;
+        
+typedef  signed char        sint7; 
+
+typedef uint16 UWord16 ;
+typedef uint32 UWord32 ;
+typedef int32  Word32 ;
+typedef int16  Word16 ;
+typedef uint8  UWord8 ;
+typedef int8   Word8 ;
+typedef int32  Vect32 ;
+ 
+
+#if (! defined T_WINNT) && (! defined __GNUC__)
+   
+  #ifndef _INT64_DEFINED
+     
+    typedef long long     int64;       
+    #define _INT64_DEFINED
+  #endif
+  #ifndef _UINT64_DEFINED
+     
+    typedef  unsigned long long  uint64;      
+    #define _UINT64_DEFINED
+  #endif
+#else  
+   
+  #if (defined __GNUC__) 
+    #ifndef _INT64_DEFINED
+      typedef long long           int64;
+      #define _INT64_DEFINED
+    #endif
+    #ifndef _UINT64_DEFINED
+      typedef unsigned long long  uint64;
+      #define _UINT64_DEFINED
+    #endif
+  #else
+    typedef  __int64              int64;        
+    #ifndef _UINT64_DEFINED
+      typedef  unsigned __int64   uint64;       
+      #define _UINT64_DEFINED
+    #endif
+  #endif
+#endif  
+
+#endif  
+
+#ifdef __cplusplus
+}
+#endif
+
+   
+#endif   
diff --git a/hw/qcn9224/v2/eht_sig_usr_mu_mimo_info.h b/hw/qcn9224/v2/eht_sig_usr_mu_mimo_info.h
new file mode 100644
index 0000000..0058ad9
--- /dev/null
+++ b/hw/qcn9224/v2/eht_sig_usr_mu_mimo_info.h
@@ -0,0 +1,152 @@
+
+/* 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 _EHT_SIG_USR_MU_MIMO_INFO_H_
+#define _EHT_SIG_USR_MU_MIMO_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_MU_MIMO_INFO 2
+
+
+struct eht_sig_usr_mu_mimo_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11,  
+                      sta_mcs                                                 :  4,  
+                      sta_coding                                              :  1,  
+                      sta_spatial_config                                      :  6,  
+                      reserved_0a                                             :  1,  
+                      rx_integrity_check_passed                               :  1,  
+                      subband80_cc_mask                                       :  8;  
+             uint32_t user_order_subband80_0                                  :  8,  
+                      user_order_subband80_1                                  :  8,  
+                      user_order_subband80_2                                  :  8,  
+                      user_order_subband80_3                                  :  8;  
+#else
+             uint32_t subband80_cc_mask                                       :  8,  
+                      rx_integrity_check_passed                               :  1,  
+                      reserved_0a                                             :  1,  
+                      sta_spatial_config                                      :  6,  
+                      sta_coding                                              :  1,  
+                      sta_mcs                                                 :  4,  
+                      sta_id                                                  : 11;  
+             uint32_t user_order_subband80_3                                  :  8,  
+                      user_order_subband80_2                                  :  8,  
+                      user_order_subband80_1                                  :  8,  
+                      user_order_subband80_0                                  :  8;  
+#endif
+};
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_OFFSET                                      0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_LSB                                         0
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MSB                                         10
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_ID_MASK                                        0x000007ff
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_OFFSET                                     0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_LSB                                        11
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MSB                                        14
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_MCS_MASK                                       0x00007800
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_OFFSET                                  0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_LSB                                     15
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MSB                                     15
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_CODING_MASK                                    0x00008000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_OFFSET                          0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_LSB                             16
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MSB                             21
+#define EHT_SIG_USR_MU_MIMO_INFO_STA_SPATIAL_CONFIG_MASK                            0x003f0000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_OFFSET                                 0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_LSB                                    22
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MSB                                    22
+#define EHT_SIG_USR_MU_MIMO_INFO_RESERVED_0A_MASK                                   0x00400000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                   0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                      23
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                      23
+#define EHT_SIG_USR_MU_MIMO_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                     0x00800000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_OFFSET                           0x00000000
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_LSB                              24
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MSB                              31
+#define EHT_SIG_USR_MU_MIMO_INFO_SUBBAND80_CC_MASK_MASK                             0xff000000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_LSB                         0
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MSB                         7
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_0_MASK                        0x000000ff
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_LSB                         8
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MSB                         15
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_1_MASK                        0x0000ff00
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_LSB                         16
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MSB                         23
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_2_MASK                        0x00ff0000
+
+
+ 
+
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_OFFSET                      0x00000004
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_LSB                         24
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MSB                         31
+#define EHT_SIG_USR_MU_MIMO_INFO_USER_ORDER_SUBBAND80_3_MASK                        0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/eht_sig_usr_ofdma_info.h b/hw/qcn9224/v2/eht_sig_usr_ofdma_info.h
new file mode 100644
index 0000000..6fc7898
--- /dev/null
+++ b/hw/qcn9224/v2/eht_sig_usr_ofdma_info.h
@@ -0,0 +1,172 @@
+
+/* 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 _EHT_SIG_USR_OFDMA_INFO_H_
+#define _EHT_SIG_USR_OFDMA_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_OFDMA_INFO 2
+
+
+struct eht_sig_usr_ofdma_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11,  
+                      sta_mcs                                                 :  4,  
+                      validate_0a                                             :  1,  
+                      nss                                                     :  4,  
+                      txbf                                                    :  1,  
+                      sta_coding                                              :  1,  
+                      reserved_0b                                             :  1,  
+                      rx_integrity_check_passed                               :  1,  
+                      subband80_cc_mask                                       :  8;  
+             uint32_t user_order_subband80_0                                  :  8,  
+                      user_order_subband80_1                                  :  8,  
+                      user_order_subband80_2                                  :  8,  
+                      user_order_subband80_3                                  :  8;  
+#else
+             uint32_t subband80_cc_mask                                       :  8,  
+                      rx_integrity_check_passed                               :  1,  
+                      reserved_0b                                             :  1,  
+                      sta_coding                                              :  1,  
+                      txbf                                                    :  1,  
+                      nss                                                     :  4,  
+                      validate_0a                                             :  1,  
+                      sta_mcs                                                 :  4,  
+                      sta_id                                                  : 11;  
+             uint32_t user_order_subband80_3                                  :  8,  
+                      user_order_subband80_2                                  :  8,  
+                      user_order_subband80_1                                  :  8,  
+                      user_order_subband80_0                                  :  8;  
+#endif
+};
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_OFFSET                                        0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_LSB                                           0
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MSB                                           10
+#define EHT_SIG_USR_OFDMA_INFO_STA_ID_MASK                                          0x000007ff
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_OFFSET                                       0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_LSB                                          11
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MSB                                          14
+#define EHT_SIG_USR_OFDMA_INFO_STA_MCS_MASK                                         0x00007800
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_OFFSET                                   0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_LSB                                      15
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MSB                                      15
+#define EHT_SIG_USR_OFDMA_INFO_VALIDATE_0A_MASK                                     0x00008000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_NSS_OFFSET                                           0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_NSS_LSB                                              16
+#define EHT_SIG_USR_OFDMA_INFO_NSS_MSB                                              19
+#define EHT_SIG_USR_OFDMA_INFO_NSS_MASK                                             0x000f0000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_OFFSET                                          0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_LSB                                             20
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_MSB                                             20
+#define EHT_SIG_USR_OFDMA_INFO_TXBF_MASK                                            0x00100000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_OFFSET                                    0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_LSB                                       21
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MSB                                       21
+#define EHT_SIG_USR_OFDMA_INFO_STA_CODING_MASK                                      0x00200000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_OFFSET                                   0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_LSB                                      22
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MSB                                      22
+#define EHT_SIG_USR_OFDMA_INFO_RESERVED_0B_MASK                                     0x00400000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                     0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                        23
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                        23
+#define EHT_SIG_USR_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                       0x00800000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_OFFSET                             0x00000000
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_LSB                                24
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MSB                                31
+#define EHT_SIG_USR_OFDMA_INFO_SUBBAND80_CC_MASK_MASK                               0xff000000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_LSB                           0
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MSB                           7
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_0_MASK                          0x000000ff
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_LSB                           8
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MSB                           15
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_1_MASK                          0x0000ff00
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_LSB                           16
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MSB                           23
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_2_MASK                          0x00ff0000
+
+
+ 
+
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_OFFSET                        0x00000004
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_LSB                           24
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MSB                           31
+#define EHT_SIG_USR_OFDMA_INFO_USER_ORDER_SUBBAND80_3_MASK                          0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/eht_sig_usr_su_info.h b/hw/qcn9224/v2/eht_sig_usr_su_info.h
new file mode 100644
index 0000000..ae8e6b8
--- /dev/null
+++ b/hw/qcn9224/v2/eht_sig_usr_su_info.h
@@ -0,0 +1,122 @@
+
+/* 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 _EHT_SIG_USR_SU_INFO_H_
+#define _EHT_SIG_USR_SU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_EHT_SIG_USR_SU_INFO 1
+
+
+struct eht_sig_usr_su_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11,  
+                      sta_mcs                                                 :  4,  
+                      validate_0a                                             :  1,  
+                      nss                                                     :  4,  
+                      txbf                                                    :  1,  
+                      sta_coding                                              :  1,  
+                      reserved_0b                                             :  9,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_0b                                             :  9,  
+                      sta_coding                                              :  1,  
+                      txbf                                                    :  1,  
+                      nss                                                     :  4,  
+                      validate_0a                                             :  1,  
+                      sta_mcs                                                 :  4,  
+                      sta_id                                                  : 11;  
+#endif
+};
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_STA_ID_OFFSET                                           0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_ID_LSB                                              0
+#define EHT_SIG_USR_SU_INFO_STA_ID_MSB                                              10
+#define EHT_SIG_USR_SU_INFO_STA_ID_MASK                                             0x000007ff
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_STA_MCS_OFFSET                                          0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_MCS_LSB                                             11
+#define EHT_SIG_USR_SU_INFO_STA_MCS_MSB                                             14
+#define EHT_SIG_USR_SU_INFO_STA_MCS_MASK                                            0x00007800
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_OFFSET                                      0x00000000
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_LSB                                         15
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MSB                                         15
+#define EHT_SIG_USR_SU_INFO_VALIDATE_0A_MASK                                        0x00008000
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_NSS_OFFSET                                              0x00000000
+#define EHT_SIG_USR_SU_INFO_NSS_LSB                                                 16
+#define EHT_SIG_USR_SU_INFO_NSS_MSB                                                 19
+#define EHT_SIG_USR_SU_INFO_NSS_MASK                                                0x000f0000
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_TXBF_OFFSET                                             0x00000000
+#define EHT_SIG_USR_SU_INFO_TXBF_LSB                                                20
+#define EHT_SIG_USR_SU_INFO_TXBF_MSB                                                20
+#define EHT_SIG_USR_SU_INFO_TXBF_MASK                                               0x00100000
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_STA_CODING_OFFSET                                       0x00000000
+#define EHT_SIG_USR_SU_INFO_STA_CODING_LSB                                          21
+#define EHT_SIG_USR_SU_INFO_STA_CODING_MSB                                          21
+#define EHT_SIG_USR_SU_INFO_STA_CODING_MASK                                         0x00200000
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_OFFSET                                      0x00000000
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_LSB                                         22
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MSB                                         30
+#define EHT_SIG_USR_SU_INFO_RESERVED_0B_MASK                                        0x7fc00000
+
+
+ 
+
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000000
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define EHT_SIG_USR_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/expected_response.h b/hw/qcn9224/v2/expected_response.h
similarity index 100%
copy from hw/qcn9224/expected_response.h
copy to hw/qcn9224/v2/expected_response.h
diff --git a/hw/qcn9224/v2/he_sig_a_mu_dl_info.h b/hw/qcn9224/v2/he_sig_a_mu_dl_info.h
new file mode 100644
index 0000000..4d27d27
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_a_mu_dl_info.h
@@ -0,0 +1,262 @@
+
+/* 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 _HE_SIG_A_MU_DL_INFO_H_
+#define _HE_SIG_A_MU_DL_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_MU_DL_INFO 2
+
+
+struct he_sig_a_mu_dl_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t dl_ul_flag                                              :  1,  
+                      mcs_of_sig_b                                            :  3,  
+                      dcm_of_sig_b                                            :  1,  
+                      bss_color_id                                            :  6,  
+                      spatial_reuse                                           :  4,  
+                      transmit_bw                                             :  3,  
+                      num_sig_b_symbols                                       :  4,  
+                      comp_mode_sig_b                                         :  1,  
+                      cp_ltf_size                                             :  2,  
+                      doppler_indication                                      :  1,  
+                      reserved_0a                                             :  6;  
+             uint32_t txop_duration                                           :  7,  
+                      reserved_1a                                             :  1,  
+                      num_ltf_symbols                                         :  3,  
+                      ldpc_extra_symbol                                       :  1,  
+                      stbc                                                    :  1,  
+                      packet_extension_a_factor                               :  2,  
+                      packet_extension_pe_disambiguity                        :  1,  
+                      crc                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_1b                                             :  5,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0a                                             :  6,  
+                      doppler_indication                                      :  1,  
+                      cp_ltf_size                                             :  2,  
+                      comp_mode_sig_b                                         :  1,  
+                      num_sig_b_symbols                                       :  4,  
+                      transmit_bw                                             :  3,  
+                      spatial_reuse                                           :  4,  
+                      bss_color_id                                            :  6,  
+                      dcm_of_sig_b                                            :  1,  
+                      mcs_of_sig_b                                            :  3,  
+                      dl_ul_flag                                              :  1;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_1b                                             :  5,  
+                      tail                                                    :  6,  
+                      crc                                                     :  4,  
+                      packet_extension_pe_disambiguity                        :  1,  
+                      packet_extension_a_factor                               :  2,  
+                      stbc                                                    :  1,  
+                      ldpc_extra_symbol                                       :  1,  
+                      num_ltf_symbols                                         :  3,  
+                      reserved_1a                                             :  1,  
+                      txop_duration                                           :  7;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_OFFSET                                       0x00000000
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_LSB                                          0
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MSB                                          0
+#define HE_SIG_A_MU_DL_INFO_DL_UL_FLAG_MASK                                         0x00000001
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_LSB                                        1
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MSB                                        3
+#define HE_SIG_A_MU_DL_INFO_MCS_OF_SIG_B_MASK                                       0x0000000e
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_LSB                                        4
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MSB                                        4
+#define HE_SIG_A_MU_DL_INFO_DCM_OF_SIG_B_MASK                                       0x00000010
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_LSB                                        5
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MSB                                        10
+#define HE_SIG_A_MU_DL_INFO_BSS_COLOR_ID_MASK                                       0x000007e0
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_OFFSET                                    0x00000000
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_LSB                                       11
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MSB                                       14
+#define HE_SIG_A_MU_DL_INFO_SPATIAL_REUSE_MASK                                      0x00007800
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_LSB                                         15
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MSB                                         17
+#define HE_SIG_A_MU_DL_INFO_TRANSMIT_BW_MASK                                        0x00038000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_OFFSET                                0x00000000
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_LSB                                   18
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MSB                                   21
+#define HE_SIG_A_MU_DL_INFO_NUM_SIG_B_SYMBOLS_MASK                                  0x003c0000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_OFFSET                                  0x00000000
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_LSB                                     22
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MSB                                     22
+#define HE_SIG_A_MU_DL_INFO_COMP_MODE_SIG_B_MASK                                    0x00400000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_LSB                                         23
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MSB                                         24
+#define HE_SIG_A_MU_DL_INFO_CP_LTF_SIZE_MASK                                        0x01800000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_OFFSET                               0x00000000
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_LSB                                  25
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MSB                                  25
+#define HE_SIG_A_MU_DL_INFO_DOPPLER_INDICATION_MASK                                 0x02000000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_LSB                                         26
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MSB                                         31
+#define HE_SIG_A_MU_DL_INFO_RESERVED_0A_MASK                                        0xfc000000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_OFFSET                                    0x00000004
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_LSB                                       0
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MSB                                       6
+#define HE_SIG_A_MU_DL_INFO_TXOP_DURATION_MASK                                      0x0000007f
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_LSB                                         7
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MSB                                         7
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1A_MASK                                        0x00000080
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_OFFSET                                  0x00000004
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_LSB                                     8
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MSB                                     10
+#define HE_SIG_A_MU_DL_INFO_NUM_LTF_SYMBOLS_MASK                                    0x00000700
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                0x00000004
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_LSB                                   11
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MSB                                   11
+#define HE_SIG_A_MU_DL_INFO_LDPC_EXTRA_SYMBOL_MASK                                  0x00000800
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_STBC_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_DL_INFO_STBC_LSB                                                12
+#define HE_SIG_A_MU_DL_INFO_STBC_MSB                                                12
+#define HE_SIG_A_MU_DL_INFO_STBC_MASK                                               0x00001000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET                        0x00000004
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_LSB                           13
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MSB                           14
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_A_FACTOR_MASK                          0x00006000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET                 0x00000004
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                    15
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                    15
+#define HE_SIG_A_MU_DL_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                   0x00008000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_CRC_OFFSET                                              0x00000004
+#define HE_SIG_A_MU_DL_INFO_CRC_LSB                                                 16
+#define HE_SIG_A_MU_DL_INFO_CRC_MSB                                                 19
+#define HE_SIG_A_MU_DL_INFO_CRC_MASK                                                0x000f0000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_TAIL_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_DL_INFO_TAIL_LSB                                                20
+#define HE_SIG_A_MU_DL_INFO_TAIL_MSB                                                25
+#define HE_SIG_A_MU_DL_INFO_TAIL_MASK                                               0x03f00000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_LSB                                         26
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MSB                                         30
+#define HE_SIG_A_MU_DL_INFO_RESERVED_1B_MASK                                        0x7c000000
+
+
+ 
+
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000004
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define HE_SIG_A_MU_DL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/he_sig_a_mu_ul_info.h b/hw/qcn9224/v2/he_sig_a_mu_ul_info.h
new file mode 100644
index 0000000..4821b27
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_a_mu_ul_info.h
@@ -0,0 +1,162 @@
+
+/* 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 _HE_SIG_A_MU_UL_INFO_H_
+#define _HE_SIG_A_MU_UL_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2
+
+
+struct he_sig_a_mu_ul_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t format_indication                                       :  1,  
+                      bss_color_id                                            :  6,  
+                      spatial_reuse                                           : 16,  
+                      reserved_0a                                             :  1,  
+                      transmit_bw                                             :  2,  
+                      reserved_0b                                             :  6;  
+             uint32_t txop_duration                                           :  7,  
+                      reserved_1a                                             :  9,  
+                      crc                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_1b                                             :  5,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0b                                             :  6,  
+                      transmit_bw                                             :  2,  
+                      reserved_0a                                             :  1,  
+                      spatial_reuse                                           : 16,  
+                      bss_color_id                                            :  6,  
+                      format_indication                                       :  1;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_1b                                             :  5,  
+                      tail                                                    :  6,  
+                      crc                                                     :  4,  
+                      reserved_1a                                             :  9,  
+                      txop_duration                                           :  7;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_OFFSET                                0x00000000
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_LSB                                   0
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MSB                                   0
+#define HE_SIG_A_MU_UL_INFO_FORMAT_INDICATION_MASK                                  0x00000001
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_OFFSET                                     0x00000000
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_LSB                                        1
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MSB                                        6
+#define HE_SIG_A_MU_UL_INFO_BSS_COLOR_ID_MASK                                       0x0000007e
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_OFFSET                                    0x00000000
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_LSB                                       7
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MSB                                       22
+#define HE_SIG_A_MU_UL_INFO_SPATIAL_REUSE_MASK                                      0x007fff80
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_LSB                                         23
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MSB                                         23
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0A_MASK                                        0x00800000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_LSB                                         24
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MSB                                         25
+#define HE_SIG_A_MU_UL_INFO_TRANSMIT_BW_MASK                                        0x03000000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_OFFSET                                      0x00000000
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_LSB                                         26
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MSB                                         31
+#define HE_SIG_A_MU_UL_INFO_RESERVED_0B_MASK                                        0xfc000000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_OFFSET                                    0x00000004
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_LSB                                       0
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MSB                                       6
+#define HE_SIG_A_MU_UL_INFO_TXOP_DURATION_MASK                                      0x0000007f
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_LSB                                         7
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MSB                                         15
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1A_MASK                                        0x0000ff80
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_CRC_OFFSET                                              0x00000004
+#define HE_SIG_A_MU_UL_INFO_CRC_LSB                                                 16
+#define HE_SIG_A_MU_UL_INFO_CRC_MSB                                                 19
+#define HE_SIG_A_MU_UL_INFO_CRC_MASK                                                0x000f0000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_TAIL_OFFSET                                             0x00000004
+#define HE_SIG_A_MU_UL_INFO_TAIL_LSB                                                20
+#define HE_SIG_A_MU_UL_INFO_TAIL_MSB                                                25
+#define HE_SIG_A_MU_UL_INFO_TAIL_MASK                                               0x03f00000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_OFFSET                                      0x00000004
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_LSB                                         26
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MSB                                         30
+#define HE_SIG_A_MU_UL_INFO_RESERVED_1B_MASK                                        0x7c000000
+
+
+ 
+
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                        0x00000004
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                           31
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                           31
+#define HE_SIG_A_MU_UL_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                          0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/he_sig_a_su_info.h b/hw/qcn9224/v2/he_sig_a_su_info.h
new file mode 100644
index 0000000..2d78c51
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_a_su_info.h
@@ -0,0 +1,312 @@
+
+/* 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 _HE_SIG_A_SU_INFO_H_
+#define _HE_SIG_A_SU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_A_SU_INFO 2
+
+
+struct he_sig_a_su_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t format_indication                                       :  1,  
+                      beam_change                                             :  1,  
+                      dl_ul_flag                                              :  1,  
+                      transmit_mcs                                            :  4,  
+                      dcm                                                     :  1,  
+                      bss_color_id                                            :  6,  
+                      reserved_0a                                             :  1,  
+                      spatial_reuse                                           :  4,  
+                      transmit_bw                                             :  2,  
+                      cp_ltf_size                                             :  2,  
+                      nsts                                                    :  3,  
+                      reserved_0b                                             :  6;  
+             uint32_t txop_duration                                           :  7,  
+                      coding                                                  :  1,  
+                      ldpc_extra_symbol                                       :  1,  
+                      stbc                                                    :  1,  
+                      txbf                                                    :  1,  
+                      packet_extension_a_factor                               :  2,  
+                      packet_extension_pe_disambiguity                        :  1,  
+                      reserved_1a                                             :  1,  
+                      doppler_indication                                      :  1,  
+                      crc                                                     :  4,  
+                      tail                                                    :  6,  
+                      dot11ax_su_extended                                     :  1,  
+                      dot11ax_ext_ru_size                                     :  3,  
+                      rx_ndp                                                  :  1,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0b                                             :  6,  
+                      nsts                                                    :  3,  
+                      cp_ltf_size                                             :  2,  
+                      transmit_bw                                             :  2,  
+                      spatial_reuse                                           :  4,  
+                      reserved_0a                                             :  1,  
+                      bss_color_id                                            :  6,  
+                      dcm                                                     :  1,  
+                      transmit_mcs                                            :  4,  
+                      dl_ul_flag                                              :  1,  
+                      beam_change                                             :  1,  
+                      format_indication                                       :  1;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      rx_ndp                                                  :  1,  
+                      dot11ax_ext_ru_size                                     :  3,  
+                      dot11ax_su_extended                                     :  1,  
+                      tail                                                    :  6,  
+                      crc                                                     :  4,  
+                      doppler_indication                                      :  1,  
+                      reserved_1a                                             :  1,  
+                      packet_extension_pe_disambiguity                        :  1,  
+                      packet_extension_a_factor                               :  2,  
+                      txbf                                                    :  1,  
+                      stbc                                                    :  1,  
+                      ldpc_extra_symbol                                       :  1,  
+                      coding                                                  :  1,  
+                      txop_duration                                           :  7;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_OFFSET                                   0x00000000
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_LSB                                      0
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MSB                                      0
+#define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MASK                                     0x00000001
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_LSB                                            1
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MSB                                            1
+#define HE_SIG_A_SU_INFO_BEAM_CHANGE_MASK                                           0x00000002
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_OFFSET                                          0x00000000
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_LSB                                             2
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MSB                                             2
+#define HE_SIG_A_SU_INFO_DL_UL_FLAG_MASK                                            0x00000004
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_OFFSET                                        0x00000000
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_LSB                                           3
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MSB                                           6
+#define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MASK                                          0x00000078
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_DCM_OFFSET                                                 0x00000000
+#define HE_SIG_A_SU_INFO_DCM_LSB                                                    7
+#define HE_SIG_A_SU_INFO_DCM_MSB                                                    7
+#define HE_SIG_A_SU_INFO_DCM_MASK                                                   0x00000080
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_OFFSET                                        0x00000000
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_LSB                                           8
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MSB                                           13
+#define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MASK                                          0x00003f00
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_RESERVED_0A_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_RESERVED_0A_LSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_0A_MSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_0A_MASK                                           0x00004000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_OFFSET                                       0x00000000
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_LSB                                          15
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MSB                                          18
+#define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MASK                                         0x00078000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_LSB                                            19
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MSB                                            20
+#define HE_SIG_A_SU_INFO_TRANSMIT_BW_MASK                                           0x00180000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_LSB                                            21
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MSB                                            22
+#define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MASK                                           0x00600000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_NSTS_OFFSET                                                0x00000000
+#define HE_SIG_A_SU_INFO_NSTS_LSB                                                   23
+#define HE_SIG_A_SU_INFO_NSTS_MSB                                                   25
+#define HE_SIG_A_SU_INFO_NSTS_MASK                                                  0x03800000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_RESERVED_0B_OFFSET                                         0x00000000
+#define HE_SIG_A_SU_INFO_RESERVED_0B_LSB                                            26
+#define HE_SIG_A_SU_INFO_RESERVED_0B_MSB                                            31
+#define HE_SIG_A_SU_INFO_RESERVED_0B_MASK                                           0xfc000000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_OFFSET                                       0x00000004
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_LSB                                          0
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_MSB                                          6
+#define HE_SIG_A_SU_INFO_TXOP_DURATION_MASK                                         0x0000007f
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_CODING_OFFSET                                              0x00000004
+#define HE_SIG_A_SU_INFO_CODING_LSB                                                 7
+#define HE_SIG_A_SU_INFO_CODING_MSB                                                 7
+#define HE_SIG_A_SU_INFO_CODING_MASK                                                0x00000080
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                   0x00000004
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_LSB                                      8
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MSB                                      8
+#define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MASK                                     0x00000100
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_STBC_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_STBC_LSB                                                   9
+#define HE_SIG_A_SU_INFO_STBC_MSB                                                   9
+#define HE_SIG_A_SU_INFO_STBC_MASK                                                  0x00000200
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_TXBF_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_TXBF_LSB                                                   10
+#define HE_SIG_A_SU_INFO_TXBF_MSB                                                   10
+#define HE_SIG_A_SU_INFO_TXBF_MASK                                                  0x00000400
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET                           0x00000004
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_LSB                              11
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MSB                              12
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MASK                             0x00001800
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET                    0x00000004
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                       13
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                       13
+#define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                      0x00002000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_RESERVED_1A_OFFSET                                         0x00000004
+#define HE_SIG_A_SU_INFO_RESERVED_1A_LSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_1A_MSB                                            14
+#define HE_SIG_A_SU_INFO_RESERVED_1A_MASK                                           0x00004000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_OFFSET                                  0x00000004
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_LSB                                     15
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MSB                                     15
+#define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MASK                                    0x00008000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_CRC_OFFSET                                                 0x00000004
+#define HE_SIG_A_SU_INFO_CRC_LSB                                                    16
+#define HE_SIG_A_SU_INFO_CRC_MSB                                                    19
+#define HE_SIG_A_SU_INFO_CRC_MASK                                                   0x000f0000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_TAIL_OFFSET                                                0x00000004
+#define HE_SIG_A_SU_INFO_TAIL_LSB                                                   20
+#define HE_SIG_A_SU_INFO_TAIL_MSB                                                   25
+#define HE_SIG_A_SU_INFO_TAIL_MASK                                                  0x03f00000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_OFFSET                                 0x00000004
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_LSB                                    26
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MSB                                    26
+#define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MASK                                   0x04000000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_OFFSET                                 0x00000004
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_LSB                                    27
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MSB                                    29
+#define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MASK                                   0x38000000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_RX_NDP_OFFSET                                              0x00000004
+#define HE_SIG_A_SU_INFO_RX_NDP_LSB                                                 30
+#define HE_SIG_A_SU_INFO_RX_NDP_MSB                                                 30
+#define HE_SIG_A_SU_INFO_RX_NDP_MASK                                                0x40000000
+
+
+ 
+
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                           0x00000004
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                              31
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                              31
+#define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                             0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/he_sig_b1_mu_info.h b/hw/qcn9224/v2/he_sig_b1_mu_info.h
new file mode 100644
index 0000000..d534399
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_b1_mu_info.h
@@ -0,0 +1,72 @@
+
+/* 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 _HE_SIG_B1_MU_INFO_H_
+#define _HE_SIG_B1_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B1_MU_INFO 1
+
+
+struct he_sig_b1_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_allocation                                           :  8,  
+                      reserved_0                                              : 23,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_0                                              : 23,  
+                      ru_allocation                                           :  8;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_OFFSET                                      0x00000000
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_LSB                                         0
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MSB                                         7
+#define HE_SIG_B1_MU_INFO_RU_ALLOCATION_MASK                                        0x000000ff
+
+
+ 
+
+#define HE_SIG_B1_MU_INFO_RESERVED_0_OFFSET                                         0x00000000
+#define HE_SIG_B1_MU_INFO_RESERVED_0_LSB                                            8
+#define HE_SIG_B1_MU_INFO_RESERVED_0_MSB                                            30
+#define HE_SIG_B1_MU_INFO_RESERVED_0_MASK                                           0x7fffff00
+
+
+ 
+
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000000
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define HE_SIG_B1_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/he_sig_b2_mu_info.h b/hw/qcn9224/v2/he_sig_b2_mu_info.h
new file mode 100644
index 0000000..1f1947b
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_b2_mu_info.h
@@ -0,0 +1,152 @@
+
+/* 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 _HE_SIG_B2_MU_INFO_H_
+#define _HE_SIG_B2_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B2_MU_INFO 2
+
+
+struct he_sig_b2_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11,  
+                      sta_spatial_config                                      :  4,  
+                      sta_mcs                                                 :  4,  
+                      reserved_set_to_1                                       :  1,  
+                      sta_coding                                              :  1,  
+                      reserved_0a                                             :  7,  
+                      nsts                                                    :  3,  
+                      rx_integrity_check_passed                               :  1;  
+             uint32_t user_order                                              :  8,  
+                      cc_mask                                                 :  8,  
+                      reserved_1a                                             : 16;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      nsts                                                    :  3,  
+                      reserved_0a                                             :  7,  
+                      sta_coding                                              :  1,  
+                      reserved_set_to_1                                       :  1,  
+                      sta_mcs                                                 :  4,  
+                      sta_spatial_config                                      :  4,  
+                      sta_id                                                  : 11;  
+             uint32_t reserved_1a                                             : 16,  
+                      cc_mask                                                 :  8,  
+                      user_order                                              :  8;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_STA_ID_OFFSET                                             0x00000000
+#define HE_SIG_B2_MU_INFO_STA_ID_LSB                                                0
+#define HE_SIG_B2_MU_INFO_STA_ID_MSB                                                10
+#define HE_SIG_B2_MU_INFO_STA_ID_MASK                                               0x000007ff
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_OFFSET                                 0x00000000
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_LSB                                    11
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MSB                                    14
+#define HE_SIG_B2_MU_INFO_STA_SPATIAL_CONFIG_MASK                                   0x00007800
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_STA_MCS_OFFSET                                            0x00000000
+#define HE_SIG_B2_MU_INFO_STA_MCS_LSB                                               15
+#define HE_SIG_B2_MU_INFO_STA_MCS_MSB                                               18
+#define HE_SIG_B2_MU_INFO_STA_MCS_MASK                                              0x00078000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_OFFSET                                  0x00000000
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_LSB                                     19
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MSB                                     19
+#define HE_SIG_B2_MU_INFO_RESERVED_SET_TO_1_MASK                                    0x00080000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_STA_CODING_OFFSET                                         0x00000000
+#define HE_SIG_B2_MU_INFO_STA_CODING_LSB                                            20
+#define HE_SIG_B2_MU_INFO_STA_CODING_MSB                                            20
+#define HE_SIG_B2_MU_INFO_STA_CODING_MASK                                           0x00100000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_OFFSET                                        0x00000000
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_LSB                                           21
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_MSB                                           27
+#define HE_SIG_B2_MU_INFO_RESERVED_0A_MASK                                          0x0fe00000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_NSTS_OFFSET                                               0x00000000
+#define HE_SIG_B2_MU_INFO_NSTS_LSB                                                  28
+#define HE_SIG_B2_MU_INFO_NSTS_MSB                                                  30
+#define HE_SIG_B2_MU_INFO_NSTS_MASK                                                 0x70000000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000000
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define HE_SIG_B2_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_USER_ORDER_OFFSET                                         0x00000004
+#define HE_SIG_B2_MU_INFO_USER_ORDER_LSB                                            0
+#define HE_SIG_B2_MU_INFO_USER_ORDER_MSB                                            7
+#define HE_SIG_B2_MU_INFO_USER_ORDER_MASK                                           0x000000ff
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_CC_MASK_OFFSET                                            0x00000004
+#define HE_SIG_B2_MU_INFO_CC_MASK_LSB                                               8
+#define HE_SIG_B2_MU_INFO_CC_MASK_MSB                                               15
+#define HE_SIG_B2_MU_INFO_CC_MASK_MASK                                              0x0000ff00
+
+
+ 
+
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_OFFSET                                        0x00000004
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_LSB                                           16
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_MSB                                           31
+#define HE_SIG_B2_MU_INFO_RESERVED_1A_MASK                                          0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/he_sig_b2_ofdma_info.h b/hw/qcn9224/v2/he_sig_b2_ofdma_info.h
new file mode 100644
index 0000000..026840f
--- /dev/null
+++ b/hw/qcn9224/v2/he_sig_b2_ofdma_info.h
@@ -0,0 +1,152 @@
+
+/* 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 _HE_SIG_B2_OFDMA_INFO_H_
+#define _HE_SIG_B2_OFDMA_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HE_SIG_B2_OFDMA_INFO 2
+
+
+struct he_sig_b2_ofdma_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t sta_id                                                  : 11,  
+                      nsts                                                    :  3,  
+                      txbf                                                    :  1,  
+                      sta_mcs                                                 :  4,  
+                      sta_dcm                                                 :  1,  
+                      sta_coding                                              :  1,  
+                      reserved_0                                              : 10,  
+                      rx_integrity_check_passed                               :  1;  
+             uint32_t user_order                                              :  8,  
+                      cc_mask                                                 :  8,  
+                      reserved_1a                                             : 16;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_0                                              : 10,  
+                      sta_coding                                              :  1,  
+                      sta_dcm                                                 :  1,  
+                      sta_mcs                                                 :  4,  
+                      txbf                                                    :  1,  
+                      nsts                                                    :  3,  
+                      sta_id                                                  : 11;  
+             uint32_t reserved_1a                                             : 16,  
+                      cc_mask                                                 :  8,  
+                      user_order                                              :  8;  
+#endif
+};
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_OFFSET                                          0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_LSB                                             0
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_MSB                                             10
+#define HE_SIG_B2_OFDMA_INFO_STA_ID_MASK                                            0x000007ff
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_NSTS_OFFSET                                            0x00000000
+#define HE_SIG_B2_OFDMA_INFO_NSTS_LSB                                               11
+#define HE_SIG_B2_OFDMA_INFO_NSTS_MSB                                               13
+#define HE_SIG_B2_OFDMA_INFO_NSTS_MASK                                              0x00003800
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_TXBF_OFFSET                                            0x00000000
+#define HE_SIG_B2_OFDMA_INFO_TXBF_LSB                                               14
+#define HE_SIG_B2_OFDMA_INFO_TXBF_MSB                                               14
+#define HE_SIG_B2_OFDMA_INFO_TXBF_MASK                                              0x00004000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_OFFSET                                         0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_LSB                                            15
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MSB                                            18
+#define HE_SIG_B2_OFDMA_INFO_STA_MCS_MASK                                           0x00078000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_OFFSET                                         0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_LSB                                            19
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MSB                                            19
+#define HE_SIG_B2_OFDMA_INFO_STA_DCM_MASK                                           0x00080000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_OFFSET                                      0x00000000
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_LSB                                         20
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MSB                                         20
+#define HE_SIG_B2_OFDMA_INFO_STA_CODING_MASK                                        0x00100000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_LSB                                         21
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MSB                                         30
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_0_MASK                                        0x7fe00000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                       0x00000000
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                          31
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                          31
+#define HE_SIG_B2_OFDMA_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                         0x80000000
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_OFFSET                                      0x00000004
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_LSB                                         0
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MSB                                         7
+#define HE_SIG_B2_OFDMA_INFO_USER_ORDER_MASK                                        0x000000ff
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_OFFSET                                         0x00000004
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_LSB                                            8
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MSB                                            15
+#define HE_SIG_B2_OFDMA_INFO_CC_MASK_MASK                                           0x0000ff00
+
+
+ 
+
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_OFFSET                                     0x00000004
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_LSB                                        16
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MSB                                        31
+#define HE_SIG_B2_OFDMA_INFO_RESERVED_1A_MASK                                       0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/ht_sig_info.h b/hw/qcn9224/v2/ht_sig_info.h
new file mode 100644
index 0000000..a6ab3ae
--- /dev/null
+++ b/hw/qcn9224/v2/ht_sig_info.h
@@ -0,0 +1,202 @@
+
+/* 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 _HT_SIG_INFO_H_
+#define _HT_SIG_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_HT_SIG_INFO 2
+
+
+struct ht_sig_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mcs                                                     :  7,  
+                      cbw                                                     :  1,  
+                      length                                                  : 16,  
+                      reserved_0                                              :  8;  
+             uint32_t smoothing                                               :  1,  
+                      not_sounding                                            :  1,  
+                      ht_reserved                                             :  1,  
+                      aggregation                                             :  1,  
+                      stbc                                                    :  2,  
+                      fec_coding                                              :  1,  
+                      short_gi                                                :  1,  
+                      num_ext_sp_str                                          :  2,  
+                      crc                                                     :  8,  
+                      signal_tail                                             :  6,  
+                      reserved_1                                              :  7,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0                                              :  8,  
+                      length                                                  : 16,  
+                      cbw                                                     :  1,  
+                      mcs                                                     :  7;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_1                                              :  7,  
+                      signal_tail                                             :  6,  
+                      crc                                                     :  8,  
+                      num_ext_sp_str                                          :  2,  
+                      short_gi                                                :  1,  
+                      fec_coding                                              :  1,  
+                      stbc                                                    :  2,  
+                      aggregation                                             :  1,  
+                      ht_reserved                                             :  1,  
+                      not_sounding                                            :  1,  
+                      smoothing                                               :  1;  
+#endif
+};
+
+
+ 
+
+#define HT_SIG_INFO_MCS_OFFSET                                                      0x00000000
+#define HT_SIG_INFO_MCS_LSB                                                         0
+#define HT_SIG_INFO_MCS_MSB                                                         6
+#define HT_SIG_INFO_MCS_MASK                                                        0x0000007f
+
+
+ 
+
+#define HT_SIG_INFO_CBW_OFFSET                                                      0x00000000
+#define HT_SIG_INFO_CBW_LSB                                                         7
+#define HT_SIG_INFO_CBW_MSB                                                         7
+#define HT_SIG_INFO_CBW_MASK                                                        0x00000080
+
+
+ 
+
+#define HT_SIG_INFO_LENGTH_OFFSET                                                   0x00000000
+#define HT_SIG_INFO_LENGTH_LSB                                                      8
+#define HT_SIG_INFO_LENGTH_MSB                                                      23
+#define HT_SIG_INFO_LENGTH_MASK                                                     0x00ffff00
+
+
+ 
+
+#define HT_SIG_INFO_RESERVED_0_OFFSET                                               0x00000000
+#define HT_SIG_INFO_RESERVED_0_LSB                                                  24
+#define HT_SIG_INFO_RESERVED_0_MSB                                                  31
+#define HT_SIG_INFO_RESERVED_0_MASK                                                 0xff000000
+
+
+ 
+
+#define HT_SIG_INFO_SMOOTHING_OFFSET                                                0x00000004
+#define HT_SIG_INFO_SMOOTHING_LSB                                                   0
+#define HT_SIG_INFO_SMOOTHING_MSB                                                   0
+#define HT_SIG_INFO_SMOOTHING_MASK                                                  0x00000001
+
+
+ 
+
+#define HT_SIG_INFO_NOT_SOUNDING_OFFSET                                             0x00000004
+#define HT_SIG_INFO_NOT_SOUNDING_LSB                                                1
+#define HT_SIG_INFO_NOT_SOUNDING_MSB                                                1
+#define HT_SIG_INFO_NOT_SOUNDING_MASK                                               0x00000002
+
+
+ 
+
+#define HT_SIG_INFO_HT_RESERVED_OFFSET                                              0x00000004
+#define HT_SIG_INFO_HT_RESERVED_LSB                                                 2
+#define HT_SIG_INFO_HT_RESERVED_MSB                                                 2
+#define HT_SIG_INFO_HT_RESERVED_MASK                                                0x00000004
+
+
+ 
+
+#define HT_SIG_INFO_AGGREGATION_OFFSET                                              0x00000004
+#define HT_SIG_INFO_AGGREGATION_LSB                                                 3
+#define HT_SIG_INFO_AGGREGATION_MSB                                                 3
+#define HT_SIG_INFO_AGGREGATION_MASK                                                0x00000008
+
+
+ 
+
+#define HT_SIG_INFO_STBC_OFFSET                                                     0x00000004
+#define HT_SIG_INFO_STBC_LSB                                                        4
+#define HT_SIG_INFO_STBC_MSB                                                        5
+#define HT_SIG_INFO_STBC_MASK                                                       0x00000030
+
+
+ 
+
+#define HT_SIG_INFO_FEC_CODING_OFFSET                                               0x00000004
+#define HT_SIG_INFO_FEC_CODING_LSB                                                  6
+#define HT_SIG_INFO_FEC_CODING_MSB                                                  6
+#define HT_SIG_INFO_FEC_CODING_MASK                                                 0x00000040
+
+
+ 
+
+#define HT_SIG_INFO_SHORT_GI_OFFSET                                                 0x00000004
+#define HT_SIG_INFO_SHORT_GI_LSB                                                    7
+#define HT_SIG_INFO_SHORT_GI_MSB                                                    7
+#define HT_SIG_INFO_SHORT_GI_MASK                                                   0x00000080
+
+
+ 
+
+#define HT_SIG_INFO_NUM_EXT_SP_STR_OFFSET                                           0x00000004
+#define HT_SIG_INFO_NUM_EXT_SP_STR_LSB                                              8
+#define HT_SIG_INFO_NUM_EXT_SP_STR_MSB                                              9
+#define HT_SIG_INFO_NUM_EXT_SP_STR_MASK                                             0x00000300
+
+
+ 
+
+#define HT_SIG_INFO_CRC_OFFSET                                                      0x00000004
+#define HT_SIG_INFO_CRC_LSB                                                         10
+#define HT_SIG_INFO_CRC_MSB                                                         17
+#define HT_SIG_INFO_CRC_MASK                                                        0x0003fc00
+
+
+ 
+
+#define HT_SIG_INFO_SIGNAL_TAIL_OFFSET                                              0x00000004
+#define HT_SIG_INFO_SIGNAL_TAIL_LSB                                                 18
+#define HT_SIG_INFO_SIGNAL_TAIL_MSB                                                 23
+#define HT_SIG_INFO_SIGNAL_TAIL_MASK                                                0x00fc0000
+
+
+ 
+
+#define HT_SIG_INFO_RESERVED_1_OFFSET                                               0x00000004
+#define HT_SIG_INFO_RESERVED_1_LSB                                                  24
+#define HT_SIG_INFO_RESERVED_1_MSB                                                  30
+#define HT_SIG_INFO_RESERVED_1_MASK                                                 0x7f000000
+
+
+ 
+
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                                0x00000004
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                   31
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                   31
+#define HT_SIG_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                  0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/l_sig_a_info.h b/hw/qcn9224/v2/l_sig_a_info.h
new file mode 100644
index 0000000..10f1a13
--- /dev/null
+++ b/hw/qcn9224/v2/l_sig_a_info.h
@@ -0,0 +1,132 @@
+
+/* 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 _L_SIG_A_INFO_H_
+#define _L_SIG_A_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_L_SIG_A_INFO 1
+
+
+struct l_sig_a_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rate                                                    :  4,  
+                      lsig_reserved                                           :  1,  
+                      length                                                  : 12,  
+                      parity                                                  :  1,  
+                      tail                                                    :  6,  
+                      pkt_type                                                :  4,  
+                      captured_implicit_sounding                              :  1,  
+                      reserved                                                :  2,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved                                                :  2,  
+                      captured_implicit_sounding                              :  1,  
+                      pkt_type                                                :  4,  
+                      tail                                                    :  6,  
+                      parity                                                  :  1,  
+                      length                                                  : 12,  
+                      lsig_reserved                                           :  1,  
+                      rate                                                    :  4;  
+#endif
+};
+
+
+ 
+
+#define L_SIG_A_INFO_RATE_OFFSET                                                    0x00000000
+#define L_SIG_A_INFO_RATE_LSB                                                       0
+#define L_SIG_A_INFO_RATE_MSB                                                       3
+#define L_SIG_A_INFO_RATE_MASK                                                      0x0000000f
+
+
+ 
+
+#define L_SIG_A_INFO_LSIG_RESERVED_OFFSET                                           0x00000000
+#define L_SIG_A_INFO_LSIG_RESERVED_LSB                                              4
+#define L_SIG_A_INFO_LSIG_RESERVED_MSB                                              4
+#define L_SIG_A_INFO_LSIG_RESERVED_MASK                                             0x00000010
+
+
+ 
+
+#define L_SIG_A_INFO_LENGTH_OFFSET                                                  0x00000000
+#define L_SIG_A_INFO_LENGTH_LSB                                                     5
+#define L_SIG_A_INFO_LENGTH_MSB                                                     16
+#define L_SIG_A_INFO_LENGTH_MASK                                                    0x0001ffe0
+
+
+ 
+
+#define L_SIG_A_INFO_PARITY_OFFSET                                                  0x00000000
+#define L_SIG_A_INFO_PARITY_LSB                                                     17
+#define L_SIG_A_INFO_PARITY_MSB                                                     17
+#define L_SIG_A_INFO_PARITY_MASK                                                    0x00020000
+
+
+ 
+
+#define L_SIG_A_INFO_TAIL_OFFSET                                                    0x00000000
+#define L_SIG_A_INFO_TAIL_LSB                                                       18
+#define L_SIG_A_INFO_TAIL_MSB                                                       23
+#define L_SIG_A_INFO_TAIL_MASK                                                      0x00fc0000
+
+
+ 
+
+#define L_SIG_A_INFO_PKT_TYPE_OFFSET                                                0x00000000
+#define L_SIG_A_INFO_PKT_TYPE_LSB                                                   24
+#define L_SIG_A_INFO_PKT_TYPE_MSB                                                   27
+#define L_SIG_A_INFO_PKT_TYPE_MASK                                                  0x0f000000
+
+
+ 
+
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_OFFSET                              0x00000000
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_LSB                                 28
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MSB                                 28
+#define L_SIG_A_INFO_CAPTURED_IMPLICIT_SOUNDING_MASK                                0x10000000
+
+
+ 
+
+#define L_SIG_A_INFO_RESERVED_OFFSET                                                0x00000000
+#define L_SIG_A_INFO_RESERVED_LSB                                                   29
+#define L_SIG_A_INFO_RESERVED_MSB                                                   30
+#define L_SIG_A_INFO_RESERVED_MASK                                                  0x60000000
+
+
+ 
+
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                               0x00000000
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                  31
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                  31
+#define L_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                 0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/l_sig_b_info.h b/hw/qcn9224/v2/l_sig_b_info.h
new file mode 100644
index 0000000..4c821e2
--- /dev/null
+++ b/hw/qcn9224/v2/l_sig_b_info.h
@@ -0,0 +1,82 @@
+
+/* 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 _L_SIG_B_INFO_H_
+#define _L_SIG_B_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_L_SIG_B_INFO 1
+
+
+struct l_sig_b_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rate                                                    :  4,  
+                      length                                                  : 12,  
+                      reserved                                                : 15,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved                                                : 15,  
+                      length                                                  : 12,  
+                      rate                                                    :  4;  
+#endif
+};
+
+
+ 
+
+#define L_SIG_B_INFO_RATE_OFFSET                                                    0x00000000
+#define L_SIG_B_INFO_RATE_LSB                                                       0
+#define L_SIG_B_INFO_RATE_MSB                                                       3
+#define L_SIG_B_INFO_RATE_MASK                                                      0x0000000f
+
+
+ 
+
+#define L_SIG_B_INFO_LENGTH_OFFSET                                                  0x00000000
+#define L_SIG_B_INFO_LENGTH_LSB                                                     4
+#define L_SIG_B_INFO_LENGTH_MSB                                                     15
+#define L_SIG_B_INFO_LENGTH_MASK                                                    0x0000fff0
+
+
+ 
+
+#define L_SIG_B_INFO_RESERVED_OFFSET                                                0x00000000
+#define L_SIG_B_INFO_RESERVED_LSB                                                   16
+#define L_SIG_B_INFO_RESERVED_MSB                                                   30
+#define L_SIG_B_INFO_RESERVED_MASK                                                  0x7fff0000
+
+
+ 
+
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                               0x00000000
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                  31
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                  31
+#define L_SIG_B_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                                 0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/macrx_abort_request_info.h b/hw/qcn9224/v2/macrx_abort_request_info.h
new file mode 100644
index 0000000..df1a7ba
--- /dev/null
+++ b/hw/qcn9224/v2/macrx_abort_request_info.h
@@ -0,0 +1,62 @@
+
+/* 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 _MACRX_ABORT_REQUEST_INFO_H_
+#define _MACRX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_MACRX_ABORT_REQUEST_INFO 1
+
+
+struct macrx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t macrx_abort_reason                                      :  8,  
+                      reserved_0                                              :  8;  
+#else
+             uint16_t reserved_0                                              :  8,  
+                      macrx_abort_reason                                      :  8;  
+#endif
+};
+
+
+ 
+
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_OFFSET                          0x00000000
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_LSB                             0
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MSB                             7
+#define MACRX_ABORT_REQUEST_INFO_MACRX_ABORT_REASON_MASK                            0x000000ff
+
+
+ 
+
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET                                  0x00000000
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_LSB                                     8
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MSB                                     15
+#define MACRX_ABORT_REQUEST_INFO_RESERVED_0_MASK                                    0x0000ff00
+
+
+
+#endif    
diff --git a/hw/qcn9224/mactx_eht_sig_usr_mu_mimo.h b/hw/qcn9224/v2/mactx_eht_sig_usr_mu_mimo.h
similarity index 100%
copy from hw/qcn9224/mactx_eht_sig_usr_mu_mimo.h
copy to hw/qcn9224/v2/mactx_eht_sig_usr_mu_mimo.h
diff --git a/hw/qcn9224/mactx_eht_sig_usr_ofdma.h b/hw/qcn9224/v2/mactx_eht_sig_usr_ofdma.h
similarity index 100%
copy from hw/qcn9224/mactx_eht_sig_usr_ofdma.h
copy to hw/qcn9224/v2/mactx_eht_sig_usr_ofdma.h
diff --git a/hw/qcn9224/mactx_eht_sig_usr_su.h b/hw/qcn9224/v2/mactx_eht_sig_usr_su.h
similarity index 100%
copy from hw/qcn9224/mactx_eht_sig_usr_su.h
copy to hw/qcn9224/v2/mactx_eht_sig_usr_su.h
diff --git a/hw/qcn9224/mactx_he_sig_a_mu_dl.h b/hw/qcn9224/v2/mactx_he_sig_a_mu_dl.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_a_mu_dl.h
copy to hw/qcn9224/v2/mactx_he_sig_a_mu_dl.h
diff --git a/hw/qcn9224/mactx_he_sig_a_mu_ul.h b/hw/qcn9224/v2/mactx_he_sig_a_mu_ul.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_a_mu_ul.h
copy to hw/qcn9224/v2/mactx_he_sig_a_mu_ul.h
diff --git a/hw/qcn9224/mactx_he_sig_a_su.h b/hw/qcn9224/v2/mactx_he_sig_a_su.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_a_su.h
copy to hw/qcn9224/v2/mactx_he_sig_a_su.h
diff --git a/hw/qcn9224/mactx_he_sig_b1_mu.h b/hw/qcn9224/v2/mactx_he_sig_b1_mu.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_b1_mu.h
copy to hw/qcn9224/v2/mactx_he_sig_b1_mu.h
diff --git a/hw/qcn9224/mactx_he_sig_b2_mu.h b/hw/qcn9224/v2/mactx_he_sig_b2_mu.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_b2_mu.h
copy to hw/qcn9224/v2/mactx_he_sig_b2_mu.h
diff --git a/hw/qcn9224/mactx_he_sig_b2_ofdma.h b/hw/qcn9224/v2/mactx_he_sig_b2_ofdma.h
similarity index 100%
copy from hw/qcn9224/mactx_he_sig_b2_ofdma.h
copy to hw/qcn9224/v2/mactx_he_sig_b2_ofdma.h
diff --git a/hw/qcn9224/mactx_ht_sig.h b/hw/qcn9224/v2/mactx_ht_sig.h
similarity index 100%
copy from hw/qcn9224/mactx_ht_sig.h
copy to hw/qcn9224/v2/mactx_ht_sig.h
diff --git a/hw/qcn9224/mactx_l_sig_a.h b/hw/qcn9224/v2/mactx_l_sig_a.h
similarity index 100%
copy from hw/qcn9224/mactx_l_sig_a.h
copy to hw/qcn9224/v2/mactx_l_sig_a.h
diff --git a/hw/qcn9224/mactx_l_sig_b.h b/hw/qcn9224/v2/mactx_l_sig_b.h
similarity index 100%
copy from hw/qcn9224/mactx_l_sig_b.h
copy to hw/qcn9224/v2/mactx_l_sig_b.h
diff --git a/hw/qcn9224/mactx_phy_desc.h b/hw/qcn9224/v2/mactx_phy_desc.h
similarity index 100%
copy from hw/qcn9224/mactx_phy_desc.h
copy to hw/qcn9224/v2/mactx_phy_desc.h
diff --git a/hw/qcn9224/mactx_service.h b/hw/qcn9224/v2/mactx_service.h
similarity index 100%
copy from hw/qcn9224/mactx_service.h
copy to hw/qcn9224/v2/mactx_service.h
diff --git a/hw/qcn9224/mactx_u_sig_eht_su_mu.h b/hw/qcn9224/v2/mactx_u_sig_eht_su_mu.h
similarity index 100%
copy from hw/qcn9224/mactx_u_sig_eht_su_mu.h
copy to hw/qcn9224/v2/mactx_u_sig_eht_su_mu.h
diff --git a/hw/qcn9224/mactx_u_sig_eht_tb.h b/hw/qcn9224/v2/mactx_u_sig_eht_tb.h
similarity index 100%
copy from hw/qcn9224/mactx_u_sig_eht_tb.h
copy to hw/qcn9224/v2/mactx_u_sig_eht_tb.h
diff --git a/hw/qcn9224/mactx_user_desc_common.h b/hw/qcn9224/v2/mactx_user_desc_common.h
similarity index 100%
copy from hw/qcn9224/mactx_user_desc_common.h
copy to hw/qcn9224/v2/mactx_user_desc_common.h
diff --git a/hw/qcn9224/mactx_user_desc_per_user.h b/hw/qcn9224/v2/mactx_user_desc_per_user.h
similarity index 100%
copy from hw/qcn9224/mactx_user_desc_per_user.h
copy to hw/qcn9224/v2/mactx_user_desc_per_user.h
diff --git a/hw/qcn9224/mactx_vht_sig_a.h b/hw/qcn9224/v2/mactx_vht_sig_a.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_a.h
copy to hw/qcn9224/v2/mactx_vht_sig_a.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu160.h b/hw/qcn9224/v2/mactx_vht_sig_b_mu160.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_mu160.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_mu160.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu20.h b/hw/qcn9224/v2/mactx_vht_sig_b_mu20.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_mu20.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_mu20.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu40.h b/hw/qcn9224/v2/mactx_vht_sig_b_mu40.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_mu40.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_mu40.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_mu80.h b/hw/qcn9224/v2/mactx_vht_sig_b_mu80.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_mu80.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_mu80.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su160.h b/hw/qcn9224/v2/mactx_vht_sig_b_su160.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_su160.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_su160.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su20.h b/hw/qcn9224/v2/mactx_vht_sig_b_su20.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_su20.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_su20.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su40.h b/hw/qcn9224/v2/mactx_vht_sig_b_su40.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_su40.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_su40.h
diff --git a/hw/qcn9224/mactx_vht_sig_b_su80.h b/hw/qcn9224/v2/mactx_vht_sig_b_su80.h
similarity index 100%
copy from hw/qcn9224/mactx_vht_sig_b_su80.h
copy to hw/qcn9224/v2/mactx_vht_sig_b_su80.h
diff --git a/hw/qcn9224/mlo_sta_id_details.h b/hw/qcn9224/v2/mlo_sta_id_details.h
old mode 100755
new mode 100644
similarity index 100%
copy from hw/qcn9224/mlo_sta_id_details.h
copy to hw/qcn9224/v2/mlo_sta_id_details.h
diff --git a/hw/qcn9224/mon_buffer_addr.h b/hw/qcn9224/v2/mon_buffer_addr.h
similarity index 100%
copy from hw/qcn9224/mon_buffer_addr.h
copy to hw/qcn9224/v2/mon_buffer_addr.h
diff --git a/hw/qcn9224/mon_destination_ring.h b/hw/qcn9224/v2/mon_destination_ring.h
similarity index 100%
copy from hw/qcn9224/mon_destination_ring.h
copy to hw/qcn9224/v2/mon_destination_ring.h
diff --git a/hw/qcn9224/mon_destination_ring_with_drop.h b/hw/qcn9224/v2/mon_destination_ring_with_drop.h
similarity index 100%
copy from hw/qcn9224/mon_destination_ring_with_drop.h
copy to hw/qcn9224/v2/mon_destination_ring_with_drop.h
diff --git a/hw/qcn9224/v2/mon_drop.h b/hw/qcn9224/v2/mon_drop.h
new file mode 100644
index 0000000..d1fdd9f
--- /dev/null
+++ b/hw/qcn9224/v2/mon_drop.h
@@ -0,0 +1,104 @@
+
+/* 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 _MON_DROP_H_
+#define _MON_DROP_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_MON_DROP 2
+
+#define NUM_OF_QWORDS_MON_DROP 1
+
+
+struct mon_drop {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ppdu_id                                                 : 32;  
+             uint32_t ppdu_drop_cnt                                           : 10,  
+                      mpdu_drop_cnt                                           : 10,  
+                      tlv_drop_cnt                                            : 10,  
+                      end_of_ppdu_seen                                        :  1,  
+                      reserved_1a                                             :  1;  
+#else
+             uint32_t ppdu_id                                                 : 32;  
+             uint32_t reserved_1a                                             :  1,  
+                      end_of_ppdu_seen                                        :  1,  
+                      tlv_drop_cnt                                            : 10,  
+                      mpdu_drop_cnt                                           : 10,  
+                      ppdu_drop_cnt                                           : 10;  
+#endif
+};
+
+
+ 
+
+#define MON_DROP_PPDU_ID_OFFSET                                                     0x0000000000000000
+#define MON_DROP_PPDU_ID_LSB                                                        0
+#define MON_DROP_PPDU_ID_MSB                                                        31
+#define MON_DROP_PPDU_ID_MASK                                                       0x00000000ffffffff
+
+
+ 
+
+#define MON_DROP_PPDU_DROP_CNT_OFFSET                                               0x0000000000000000
+#define MON_DROP_PPDU_DROP_CNT_LSB                                                  32
+#define MON_DROP_PPDU_DROP_CNT_MSB                                                  41
+#define MON_DROP_PPDU_DROP_CNT_MASK                                                 0x000003ff00000000
+
+
+ 
+
+#define MON_DROP_MPDU_DROP_CNT_OFFSET                                               0x0000000000000000
+#define MON_DROP_MPDU_DROP_CNT_LSB                                                  42
+#define MON_DROP_MPDU_DROP_CNT_MSB                                                  51
+#define MON_DROP_MPDU_DROP_CNT_MASK                                                 0x000ffc0000000000
+
+
+ 
+
+#define MON_DROP_TLV_DROP_CNT_OFFSET                                                0x0000000000000000
+#define MON_DROP_TLV_DROP_CNT_LSB                                                   52
+#define MON_DROP_TLV_DROP_CNT_MSB                                                   61
+#define MON_DROP_TLV_DROP_CNT_MASK                                                  0x3ff0000000000000
+
+
+ 
+
+#define MON_DROP_END_OF_PPDU_SEEN_OFFSET                                            0x0000000000000000
+#define MON_DROP_END_OF_PPDU_SEEN_LSB                                               62
+#define MON_DROP_END_OF_PPDU_SEEN_MSB                                               62
+#define MON_DROP_END_OF_PPDU_SEEN_MASK                                              0x4000000000000000
+
+
+ 
+
+#define MON_DROP_RESERVED_1A_OFFSET                                                 0x0000000000000000
+#define MON_DROP_RESERVED_1A_LSB                                                    63
+#define MON_DROP_RESERVED_1A_MSB                                                    63
+#define MON_DROP_RESERVED_1A_MASK                                                   0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/mon_ingress_ring.h b/hw/qcn9224/v2/mon_ingress_ring.h
similarity index 100%
copy from hw/qcn9224/mon_ingress_ring.h
copy to hw/qcn9224/v2/mon_ingress_ring.h
diff --git a/hw/qcn9224/v2/no_ack_report.h b/hw/qcn9224/v2/no_ack_report.h
new file mode 100644
index 0000000..f04eeab
--- /dev/null
+++ b/hw/qcn9224/v2/no_ack_report.h
@@ -0,0 +1,172 @@
+
+/* 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 _NO_ACK_REPORT_H_
+#define _NO_ACK_REPORT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_NO_ACK_REPORT 4
+
+
+struct no_ack_report {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t no_ack_transmit_reason                                  :  4,  
+                      macrx_abort_reason                                      :  4,  
+                      phyrx_abort_reason                                      :  8,  
+                      frame_control                                           : 16;  
+             uint32_t rx_ppdu_duration                                        : 24,  
+                      sr_ppdu_during_obss                                     :  1,  
+                      selfgen_response_reason_to_sr_ppdu                      :  4,  
+                      reserved_1                                              :  3;  
+             uint32_t pre_bt_broadcast_status_details                         : 12,  
+                      first_bt_broadcast_status_details                       : 12,  
+                      reserved_2                                              :  8;  
+             uint32_t second_bt_broadcast_status_details                      : 12,  
+                      reserved_3                                              : 20;  
+#else
+             uint32_t frame_control                                           : 16,  
+                      phyrx_abort_reason                                      :  8,  
+                      macrx_abort_reason                                      :  4,  
+                      no_ack_transmit_reason                                  :  4;  
+             uint32_t reserved_1                                              :  3,  
+                      selfgen_response_reason_to_sr_ppdu                      :  4,  
+                      sr_ppdu_during_obss                                     :  1,  
+                      rx_ppdu_duration                                        : 24;  
+             uint32_t reserved_2                                              :  8,  
+                      first_bt_broadcast_status_details                       : 12,  
+                      pre_bt_broadcast_status_details                         : 12;  
+             uint32_t reserved_3                                              : 20,  
+                      second_bt_broadcast_status_details                      : 12;  
+#endif
+};
+
+
+ 
+
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_OFFSET                                 0x00000000
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_LSB                                    0
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MSB                                    3
+#define NO_ACK_REPORT_NO_ACK_TRANSMIT_REASON_MASK                                   0x0000000f
+
+
+ 
+
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_OFFSET                                     0x00000000
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_LSB                                        4
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_MSB                                        7
+#define NO_ACK_REPORT_MACRX_ABORT_REASON_MASK                                       0x000000f0
+
+
+ 
+
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_OFFSET                                     0x00000000
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_LSB                                        8
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MSB                                        15
+#define NO_ACK_REPORT_PHYRX_ABORT_REASON_MASK                                       0x0000ff00
+
+
+ 
+
+#define NO_ACK_REPORT_FRAME_CONTROL_OFFSET                                          0x00000000
+#define NO_ACK_REPORT_FRAME_CONTROL_LSB                                             16
+#define NO_ACK_REPORT_FRAME_CONTROL_MSB                                             31
+#define NO_ACK_REPORT_FRAME_CONTROL_MASK                                            0xffff0000
+
+
+ 
+
+#define NO_ACK_REPORT_RX_PPDU_DURATION_OFFSET                                       0x00000004
+#define NO_ACK_REPORT_RX_PPDU_DURATION_LSB                                          0
+#define NO_ACK_REPORT_RX_PPDU_DURATION_MSB                                          23
+#define NO_ACK_REPORT_RX_PPDU_DURATION_MASK                                         0x00ffffff
+
+
+ 
+
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_OFFSET                                    0x00000004
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_LSB                                       24
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MSB                                       24
+#define NO_ACK_REPORT_SR_PPDU_DURING_OBSS_MASK                                      0x01000000
+
+
+ 
+
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_OFFSET                     0x00000004
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_LSB                        25
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MSB                        28
+#define NO_ACK_REPORT_SELFGEN_RESPONSE_REASON_TO_SR_PPDU_MASK                       0x1e000000
+
+
+ 
+
+#define NO_ACK_REPORT_RESERVED_1_OFFSET                                             0x00000004
+#define NO_ACK_REPORT_RESERVED_1_LSB                                                29
+#define NO_ACK_REPORT_RESERVED_1_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_1_MASK                                               0xe0000000
+
+
+ 
+
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET                        0x00000008
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_LSB                           0
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MSB                           11
+#define NO_ACK_REPORT_PRE_BT_BROADCAST_STATUS_DETAILS_MASK                          0x00000fff
+
+
+ 
+
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET                      0x00000008
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB                         12
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB                         23
+#define NO_ACK_REPORT_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK                        0x00fff000
+
+
+ 
+
+#define NO_ACK_REPORT_RESERVED_2_OFFSET                                             0x00000008
+#define NO_ACK_REPORT_RESERVED_2_LSB                                                24
+#define NO_ACK_REPORT_RESERVED_2_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_2_MASK                                               0xff000000
+
+
+ 
+
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET                     0x0000000c
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB                        0
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB                        11
+#define NO_ACK_REPORT_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK                       0x00000fff
+
+
+ 
+
+#define NO_ACK_REPORT_RESERVED_3_OFFSET                                             0x0000000c
+#define NO_ACK_REPORT_RESERVED_3_LSB                                                12
+#define NO_ACK_REPORT_RESERVED_3_MSB                                                31
+#define NO_ACK_REPORT_RESERVED_3_MASK                                               0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/ofdma_trigger_details.h b/hw/qcn9224/v2/ofdma_trigger_details.h
similarity index 100%
copy from hw/qcn9224/ofdma_trigger_details.h
copy to hw/qcn9224/v2/ofdma_trigger_details.h
diff --git a/hw/qcn9224/pcu_ppdu_setup_init.h b/hw/qcn9224/v2/pcu_ppdu_setup_init.h
similarity index 100%
copy from hw/qcn9224/pcu_ppdu_setup_init.h
copy to hw/qcn9224/v2/pcu_ppdu_setup_init.h
diff --git a/hw/qcn9224/pdg_response.h b/hw/qcn9224/v2/pdg_response.h
similarity index 100%
copy from hw/qcn9224/pdg_response.h
copy to hw/qcn9224/v2/pdg_response.h
diff --git a/hw/qcn9224/v2/pdg_response_rate_setting.h b/hw/qcn9224/v2/pdg_response_rate_setting.h
new file mode 100644
index 0000000..27db6f1
--- /dev/null
+++ b/hw/qcn9224/v2/pdg_response_rate_setting.h
@@ -0,0 +1,598 @@
+
+/* 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 _PDG_RESPONSE_RATE_SETTING_H_
+#define _PDG_RESPONSE_RATE_SETTING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "mlo_sta_id_details.h"
+#define NUM_OF_DWORDS_PDG_RESPONSE_RATE_SETTING 7
+
+
+struct pdg_response_rate_setting {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reserved_0a                                             :  1,  
+                      tx_antenna_sector_ctrl                                  : 24,  
+                      pkt_type                                                :  4,  
+                      smoothing                                               :  1,  
+                      ldpc                                                    :  1,  
+                      stbc                                                    :  1;  
+             uint32_t alt_tx_pwr                                              :  8,  
+                      alt_min_tx_pwr                                          :  8,  
+                      alt_nss                                                 :  3,  
+                      alt_tx_chain_mask                                       :  8,  
+                      alt_bw                                                  :  3,  
+                      stf_ltf_3db_boost                                       :  1,  
+                      force_extra_symbol                                      :  1;  
+             uint32_t alt_rate_mcs                                            :  4,  
+                      nss                                                     :  3,  
+                      dpd_enable                                              :  1,  
+                      tx_pwr                                                  :  8,  
+                      min_tx_pwr                                              :  8,  
+                      tx_chain_mask                                           :  8;  
+             uint32_t reserved_3a                                             :  8,  
+                      sgi                                                     :  2,  
+                      rate_mcs                                                :  4,  
+                      reserved_3b                                             :  2,  
+                      tx_pwr_1                                                :  8,  
+                      alt_tx_pwr_1                                            :  8;  
+             uint32_t aggregation                                             :  1,  
+                      dot11ax_bss_color_id                                    :  6,  
+                      dot11ax_spatial_reuse                                   :  4,  
+                      dot11ax_cp_ltf_size                                     :  2,  
+                      dot11ax_dcm                                             :  1,  
+                      dot11ax_doppler_indication                              :  1,  
+                      dot11ax_su_extended                                     :  1,  
+                      dot11ax_min_packet_extension                            :  2,  
+                      dot11ax_pe_nss                                          :  3,  
+                      dot11ax_pe_content                                      :  1,  
+                      dot11ax_pe_ltf_size                                     :  2,  
+                      dot11ax_chain_csd_en                                    :  1,  
+                      dot11ax_pe_chain_csd_en                                 :  1,  
+                      dot11ax_dl_ul_flag                                      :  1,  
+                      reserved_4a                                             :  5;  
+             uint32_t dot11ax_ext_ru_start_index                              :  4,  
+                      dot11ax_ext_ru_size                                     :  4,  
+                      eht_duplicate_mode                                      :  2,  
+                      he_sigb_dcm                                             :  1,  
+                      he_sigb_0_mcs                                           :  3,  
+                      num_he_sigb_sym                                         :  5,  
+                      required_response_time_source                           :  1,  
+                      reserved_5a                                             :  6,  
+                      u_sig_puncture_pattern_encoding                         :  6;  
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+             uint16_t required_response_time                                  : 12,  
+                      dot11be_params_placeholder                              :  4;  
+#else
+             uint32_t stbc                                                    :  1,  
+                      ldpc                                                    :  1,  
+                      smoothing                                               :  1,  
+                      pkt_type                                                :  4,  
+                      tx_antenna_sector_ctrl                                  : 24,  
+                      reserved_0a                                             :  1;  
+             uint32_t force_extra_symbol                                      :  1,  
+                      stf_ltf_3db_boost                                       :  1,  
+                      alt_bw                                                  :  3,  
+                      alt_tx_chain_mask                                       :  8,  
+                      alt_nss                                                 :  3,  
+                      alt_min_tx_pwr                                          :  8,  
+                      alt_tx_pwr                                              :  8;  
+             uint32_t tx_chain_mask                                           :  8,  
+                      min_tx_pwr                                              :  8,  
+                      tx_pwr                                                  :  8,  
+                      dpd_enable                                              :  1,  
+                      nss                                                     :  3,  
+                      alt_rate_mcs                                            :  4;  
+             uint32_t alt_tx_pwr_1                                            :  8,  
+                      tx_pwr_1                                                :  8,  
+                      reserved_3b                                             :  2,  
+                      rate_mcs                                                :  4,  
+                      sgi                                                     :  2,  
+                      reserved_3a                                             :  8;  
+             uint32_t reserved_4a                                             :  5,  
+                      dot11ax_dl_ul_flag                                      :  1,  
+                      dot11ax_pe_chain_csd_en                                 :  1,  
+                      dot11ax_chain_csd_en                                    :  1,  
+                      dot11ax_pe_ltf_size                                     :  2,  
+                      dot11ax_pe_content                                      :  1,  
+                      dot11ax_pe_nss                                          :  3,  
+                      dot11ax_min_packet_extension                            :  2,  
+                      dot11ax_su_extended                                     :  1,  
+                      dot11ax_doppler_indication                              :  1,  
+                      dot11ax_dcm                                             :  1,  
+                      dot11ax_cp_ltf_size                                     :  2,  
+                      dot11ax_spatial_reuse                                   :  4,  
+                      dot11ax_bss_color_id                                    :  6,  
+                      aggregation                                             :  1;  
+             uint32_t u_sig_puncture_pattern_encoding                         :  6,  
+                      reserved_5a                                             :  6,  
+                      required_response_time_source                           :  1,  
+                      num_he_sigb_sym                                         :  5,  
+                      he_sigb_0_mcs                                           :  3,  
+                      he_sigb_dcm                                             :  1,  
+                      eht_duplicate_mode                                      :  2,  
+                      dot11ax_ext_ru_size                                     :  4,  
+                      dot11ax_ext_ru_start_index                              :  4;  
+             uint32_t dot11be_params_placeholder                              :  4,  
+                      required_response_time                                  : 12;  
+             struct   mlo_sta_id_details                                        mlo_sta_id_details_rx;
+#endif
+};
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_OFFSET                                0x00000000
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MASK                                  0x00000001
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_OFFSET                     0x00000000
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_LSB                        1
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MSB                        24
+#define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MASK                       0x01fffffe
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_OFFSET                                   0x00000000
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_LSB                                      25
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MSB                                      28
+#define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MASK                                     0x1e000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_OFFSET                                  0x00000000
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_LSB                                     29
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MSB                                     29
+#define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MASK                                    0x20000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_LDPC_OFFSET                                       0x00000000
+#define PDG_RESPONSE_RATE_SETTING_LDPC_LSB                                          30
+#define PDG_RESPONSE_RATE_SETTING_LDPC_MSB                                          30
+#define PDG_RESPONSE_RATE_SETTING_LDPC_MASK                                         0x40000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_STBC_OFFSET                                       0x00000000
+#define PDG_RESPONSE_RATE_SETTING_STBC_LSB                                          31
+#define PDG_RESPONSE_RATE_SETTING_STBC_MSB                                          31
+#define PDG_RESPONSE_RATE_SETTING_STBC_MASK                                         0x80000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_OFFSET                                 0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_LSB                                    0
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MASK                                   0x000000ff
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_OFFSET                             0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_LSB                                8
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MSB                                15
+#define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MASK                               0x0000ff00
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_OFFSET                                    0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_LSB                                       16
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MSB                                       18
+#define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MASK                                      0x00070000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_OFFSET                          0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_LSB                             19
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MSB                             26
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MASK                            0x07f80000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_OFFSET                                     0x00000004
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_LSB                                        27
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_MSB                                        29
+#define PDG_RESPONSE_RATE_SETTING_ALT_BW_MASK                                       0x38000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_OFFSET                          0x00000004
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_LSB                             30
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MSB                             30
+#define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MASK                            0x40000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_OFFSET                         0x00000004
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_LSB                            31
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MSB                            31
+#define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MASK                           0x80000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_OFFSET                               0x00000008
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_LSB                                  0
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MSB                                  3
+#define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MASK                                 0x0000000f
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_NSS_OFFSET                                        0x00000008
+#define PDG_RESPONSE_RATE_SETTING_NSS_LSB                                           4
+#define PDG_RESPONSE_RATE_SETTING_NSS_MSB                                           6
+#define PDG_RESPONSE_RATE_SETTING_NSS_MASK                                          0x00000070
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_OFFSET                                 0x00000008
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_LSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MSB                                    7
+#define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MASK                                   0x00000080
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_OFFSET                                     0x00000008
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_LSB                                        8
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_MSB                                        15
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_MASK                                       0x0000ff00
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_OFFSET                                 0x00000008
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_LSB                                    16
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MSB                                    23
+#define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MASK                                   0x00ff0000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_OFFSET                              0x00000008
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_LSB                                 24
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MSB                                 31
+#define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MASK                                0xff000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_OFFSET                                0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MSB                                   7
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MASK                                  0x000000ff
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_SGI_OFFSET                                        0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_SGI_LSB                                           8
+#define PDG_RESPONSE_RATE_SETTING_SGI_MSB                                           9
+#define PDG_RESPONSE_RATE_SETTING_SGI_MASK                                          0x00000300
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_OFFSET                                   0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_LSB                                      10
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MSB                                      13
+#define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MASK                                     0x00003c00
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_OFFSET                                0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_LSB                                   14
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MSB                                   15
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MASK                                  0x0000c000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_OFFSET                                   0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_LSB                                      16
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MSB                                      23
+#define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MASK                                     0x00ff0000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_OFFSET                               0x0000000c
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_LSB                                  24
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MSB                                  31
+#define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MASK                                 0xff000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_LSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MSB                                   0
+#define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MASK                                  0x00000001
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_OFFSET                       0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_LSB                          1
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MSB                          6
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MASK                         0x0000007e
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_OFFSET                      0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_LSB                         7
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MSB                         10
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MASK                        0x00000780
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_LSB                           11
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MSB                           12
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MASK                          0x00001800
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_LSB                                   13
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MSB                                   13
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MASK                                  0x00002000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_OFFSET                 0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_LSB                    14
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MSB                    14
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MASK                   0x00004000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_LSB                           15
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MSB                           15
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MASK                          0x00008000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_OFFSET               0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_LSB                  16
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MSB                  17
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MASK                 0x00030000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_OFFSET                             0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_LSB                                18
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MSB                                20
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MASK                               0x001c0000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_OFFSET                         0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_LSB                            21
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MSB                            21
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MASK                           0x00200000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_OFFSET                        0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_LSB                           22
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MSB                           23
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MASK                          0x00c00000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_OFFSET                       0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_LSB                          24
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MSB                          24
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MASK                         0x01000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_OFFSET                    0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_LSB                       25
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MSB                       25
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MASK                      0x02000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_OFFSET                         0x00000010
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_LSB                            26
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MSB                            26
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MASK                           0x04000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_OFFSET                                0x00000010
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_LSB                                   27
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MSB                                   31
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MASK                                  0xf8000000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_OFFSET                 0x00000014
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_LSB                    0
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MSB                    3
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MASK                   0x0000000f
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_OFFSET                        0x00000014
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_LSB                           4
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MSB                           7
+#define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MASK                          0x000000f0
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_OFFSET                         0x00000014
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_LSB                            8
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MSB                            9
+#define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MASK                           0x00000300
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_OFFSET                                0x00000014
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_LSB                                   10
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MSB                                   10
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MASK                                  0x00000400
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_OFFSET                              0x00000014
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_LSB                                 11
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MSB                                 13
+#define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MASK                                0x00003800
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_OFFSET                            0x00000014
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_LSB                               14
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MSB                               18
+#define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MASK                              0x0007c000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET              0x00000014
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_LSB                 19
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MSB                 19
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MASK                0x00080000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_OFFSET                                0x00000014
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_LSB                                   20
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MSB                                   25
+#define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MASK                                  0x03f00000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET            0x00000014
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB               26
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB               31
+#define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK              0xfc000000
+
+
+ 
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET      0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB         0
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB         9
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK        0x000003ff
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET   0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB      10
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB      10
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK     0x00000400
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB   11
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB   11
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK  0x00000800
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB   12
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB   12
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK  0x00001000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET          0x00000018
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB             13
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB             15
+#define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK            0x0000e000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_OFFSET                     0x00000018
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_LSB                        16
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MSB                        27
+#define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MASK                       0x0fff0000
+
+
+ 
+
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_OFFSET                 0x00000018
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_LSB                    28
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MSB                    31
+#define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MASK                   0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/pdg_tx_req.h b/hw/qcn9224/v2/pdg_tx_req.h
similarity index 100%
copy from hw/qcn9224/pdg_tx_req.h
copy to hw/qcn9224/v2/pdg_tx_req.h
diff --git a/hw/qcn9224/v2/phyrx_abort_request_info.h b/hw/qcn9224/v2/phyrx_abort_request_info.h
new file mode 100644
index 0000000..570f1e4
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_abort_request_info.h
@@ -0,0 +1,92 @@
+
+/* 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 _PHYRX_ABORT_REQUEST_INFO_H_
+#define _PHYRX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_ABORT_REQUEST_INFO 1
+
+
+struct phyrx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phyrx_abort_reason                                      :  8,  
+                      phy_enters_nap_state                                    :  1,  
+                      phy_enters_defer_state                                  :  1,  
+                      reserved_0                                              :  6,  
+                      receive_duration                                        : 16;  
+#else
+             uint32_t receive_duration                                        : 16,  
+                      reserved_0                                              :  6,  
+                      phy_enters_defer_state                                  :  1,  
+                      phy_enters_nap_state                                    :  1,  
+                      phyrx_abort_reason                                      :  8;  
+#endif
+};
+
+
+ 
+
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_OFFSET                          0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_LSB                             0
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MSB                             7
+#define PHYRX_ABORT_REQUEST_INFO_PHYRX_ABORT_REASON_MASK                            0x000000ff
+
+
+ 
+
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_OFFSET                        0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_LSB                           8
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MSB                           8
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_NAP_STATE_MASK                          0x00000100
+
+
+ 
+
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_OFFSET                      0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_LSB                         9
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MSB                         9
+#define PHYRX_ABORT_REQUEST_INFO_PHY_ENTERS_DEFER_STATE_MASK                        0x00000200
+
+
+ 
+
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_OFFSET                                  0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_LSB                                     10
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MSB                                     15
+#define PHYRX_ABORT_REQUEST_INFO_RESERVED_0_MASK                                    0x0000fc00
+
+
+ 
+
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_OFFSET                            0x00000000
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_LSB                               16
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MSB                               31
+#define PHYRX_ABORT_REQUEST_INFO_RECEIVE_DURATION_MASK                              0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_common_user_info.h b/hw/qcn9224/v2/phyrx_common_user_info.h
new file mode 100644
index 0000000..33f913a
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_common_user_info.h
@@ -0,0 +1,234 @@
+
+/* 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 _PHYRX_COMMON_USER_INFO_H_
+#define _PHYRX_COMMON_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_COMMON_USER_INFO 4
+
+#define NUM_OF_QWORDS_PHYRX_COMMON_USER_INFO 2
+
+
+struct phyrx_common_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t receive_duration                                        : 16,  
+                      reserved_0a                                             : 16;  
+             uint32_t u_sig_puncture_pattern_encoding                         :  6,  
+                      reserved_1a                                             : 26;  
+             uint32_t eht_ppdu_type                                           :  2,  
+                      bss_color_id                                            :  6,  
+                      dl_ul_flag                                              :  1,  
+                      txop_duration                                           :  7,  
+                      cp_setting                                              :  2,  
+                      ltf_size                                                :  2,  
+                      spatial_reuse                                           :  4,  
+                      rx_ndp                                                  :  1,  
+                      dot11be_su_extended                                     :  1,  
+                      reserved_2a                                             :  6;  
+             uint32_t eht_duplicate                                           :  2,  
+                      eht_sig_cmn_field_type                                  :  2,  
+                      doppler_indication                                      :  1,  
+                      sta_id                                                  : 11,  
+                      puncture_bitmap                                         : 16;  
+#else
+             uint32_t reserved_0a                                             : 16,  
+                      receive_duration                                        : 16;  
+             uint32_t reserved_1a                                             : 26,  
+                      u_sig_puncture_pattern_encoding                         :  6;  
+             uint32_t reserved_2a                                             :  6,  
+                      dot11be_su_extended                                     :  1,  
+                      rx_ndp                                                  :  1,  
+                      spatial_reuse                                           :  4,  
+                      ltf_size                                                :  2,  
+                      cp_setting                                              :  2,  
+                      txop_duration                                           :  7,  
+                      dl_ul_flag                                              :  1,  
+                      bss_color_id                                            :  6,  
+                      eht_ppdu_type                                           :  2;  
+             uint32_t puncture_bitmap                                         : 16,  
+                      sta_id                                                  : 11,  
+                      doppler_indication                                      :  1,  
+                      eht_sig_cmn_field_type                                  :  2,  
+                      eht_duplicate                                           :  2;  
+#endif
+};
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_OFFSET                              0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_LSB                                 0
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MSB                                 15
+#define PHYRX_COMMON_USER_INFO_RECEIVE_DURATION_MASK                                0x000000000000ffff
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_OFFSET                                   0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_LSB                                      16
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MSB                                      31
+#define PHYRX_COMMON_USER_INFO_RESERVED_0A_MASK                                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET               0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB                  32
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB                  37
+#define PHYRX_COMMON_USER_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK                 0x0000003f00000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_OFFSET                                   0x0000000000000000
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_LSB                                      38
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MSB                                      63
+#define PHYRX_COMMON_USER_INFO_RESERVED_1A_MASK                                     0xffffffc000000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_LSB                                    0
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MSB                                    1
+#define PHYRX_COMMON_USER_INFO_EHT_PPDU_TYPE_MASK                                   0x0000000000000003
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_OFFSET                                  0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_LSB                                     2
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MSB                                     7
+#define PHYRX_COMMON_USER_INFO_BSS_COLOR_ID_MASK                                    0x00000000000000fc
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_OFFSET                                    0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_LSB                                       8
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MSB                                       8
+#define PHYRX_COMMON_USER_INFO_DL_UL_FLAG_MASK                                      0x0000000000000100
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_LSB                                    9
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MSB                                    15
+#define PHYRX_COMMON_USER_INFO_TXOP_DURATION_MASK                                   0x000000000000fe00
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_OFFSET                                    0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_LSB                                       16
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_MSB                                       17
+#define PHYRX_COMMON_USER_INFO_CP_SETTING_MASK                                      0x0000000000030000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_OFFSET                                      0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_LSB                                         18
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MSB                                         19
+#define PHYRX_COMMON_USER_INFO_LTF_SIZE_MASK                                        0x00000000000c0000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_LSB                                    20
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MSB                                    23
+#define PHYRX_COMMON_USER_INFO_SPATIAL_REUSE_MASK                                   0x0000000000f00000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_RX_NDP_OFFSET                                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_RX_NDP_LSB                                           24
+#define PHYRX_COMMON_USER_INFO_RX_NDP_MSB                                           24
+#define PHYRX_COMMON_USER_INFO_RX_NDP_MASK                                          0x0000000001000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_OFFSET                           0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_LSB                              25
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MSB                              25
+#define PHYRX_COMMON_USER_INFO_DOT11BE_SU_EXTENDED_MASK                             0x0000000002000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_LSB                                      26
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MSB                                      31
+#define PHYRX_COMMON_USER_INFO_RESERVED_2A_MASK                                     0x00000000fc000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_OFFSET                                 0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_LSB                                    32
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MSB                                    33
+#define PHYRX_COMMON_USER_INFO_EHT_DUPLICATE_MASK                                   0x0000000300000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_OFFSET                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_LSB                           34
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MSB                           35
+#define PHYRX_COMMON_USER_INFO_EHT_SIG_CMN_FIELD_TYPE_MASK                          0x0000000c00000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_OFFSET                            0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_LSB                               36
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MSB                               36
+#define PHYRX_COMMON_USER_INFO_DOPPLER_INDICATION_MASK                              0x0000001000000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_STA_ID_OFFSET                                        0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_STA_ID_LSB                                           37
+#define PHYRX_COMMON_USER_INFO_STA_ID_MSB                                           47
+#define PHYRX_COMMON_USER_INFO_STA_ID_MASK                                          0x0000ffe000000000
+
+
+ 
+
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_OFFSET                               0x0000000000000008
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_LSB                                  48
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MSB                                  63
+#define PHYRX_COMMON_USER_INFO_PUNCTURE_BITMAP_MASK                                 0xffff000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_he_sig_a_mu_dl.h b/hw/qcn9224/v2/phyrx_he_sig_a_mu_dl.h
new file mode 100644
index 0000000..09387d2
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_he_sig_a_mu_dl.h
@@ -0,0 +1,226 @@
+
+/* 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 _PHYRX_HE_SIG_A_MU_DL_H_
+#define _PHYRX_HE_SIG_A_MU_DL_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_mu_dl_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_MU_DL 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_MU_DL 1
+
+
+struct phyrx_he_sig_a_mu_dl {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_mu_dl_info                                       phyrx_he_sig_a_mu_dl_info_details;
+#else
+             struct   he_sig_a_mu_dl_info                                       phyrx_he_sig_a_mu_dl_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET    0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_LSB       0
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MSB       0
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_MASK      0x0000000000000001
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_LSB     1
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MSB     3
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_MCS_OF_SIG_B_MASK    0x000000000000000e
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_LSB     4
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MSB     4
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DCM_OF_SIG_B_MASK    0x0000000000000010
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_LSB     5
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MSB     10
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_BSS_COLOR_ID_MASK    0x00000000000007e0
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_LSB    11
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MSB    14
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_SPATIAL_REUSE_MASK   0x0000000000007800
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_LSB      15
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MSB      17
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TRANSMIT_BW_MASK     0x0000000000038000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_LSB 18
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MSB 21
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_SIG_B_SYMBOLS_MASK 0x00000000003c0000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_LSB  22
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MSB  22
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_COMP_MODE_SIG_B_MASK 0x0000000000400000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_LSB      23
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MSB      24
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CP_LTF_SIZE_MASK     0x0000000001800000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_LSB 25
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MSB 25
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000000002000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_LSB      26
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MSB      31
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_0A_MASK     0x00000000fc000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_LSB    32
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MSB    38
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TXOP_DURATION_MASK   0x0000007f00000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_LSB      39
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MSB      39
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1A_MASK     0x0000008000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_LSB  40
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MSB  42
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_NUM_LTF_SYMBOLS_MASK 0x0000070000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 43
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 43
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000080000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_LSB             44
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MSB             44
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_STBC_MASK            0x0000100000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 45
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 46
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000600000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 47
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 47
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000800000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_LSB              48
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MSB              51
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_CRC_MASK             0x000f000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_LSB             52
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MSB             57
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_TAIL_MASK            0x03f0000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_LSB      58
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MSB      62
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RESERVED_1B_MASK     0x7c00000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_he_sig_a_su.h b/hw/qcn9224/v2/phyrx_he_sig_a_su.h
new file mode 100644
index 0000000..04d8124
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_he_sig_a_su.h
@@ -0,0 +1,266 @@
+
+/* 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 _PHYRX_HE_SIG_A_SU_H_
+#define _PHYRX_HE_SIG_A_SU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_a_su_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_A_SU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_A_SU 1
+
+
+struct phyrx_he_sig_a_su {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_a_su_info                                          phyrx_he_sig_a_su_info_details;
+#else
+             struct   he_sig_a_su_info                                          phyrx_he_sig_a_su_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB      0
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB      0
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK     0x0000000000000001
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB            1
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB            1
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK           0x0000000000000002
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET          0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB             2
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB             2
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK            0x0000000000000004
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB           3
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB           6
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK          0x0000000000000078
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET                 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB                    7
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB                    7
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK                   0x0000000000000080
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB           8
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB           13
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK          0x0000000000003f00
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB            14
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB            14
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK           0x0000000000004000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB          15
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB          18
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK         0x0000000000078000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB            19
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB            20
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK           0x0000000000180000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB            21
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB            22
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK           0x0000000000600000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB                   23
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB                   25
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK                  0x0000000003800000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB            26
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB            31
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK           0x00000000fc000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB          32
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB          38
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK         0x0000007f00000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB                 39
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB                 39
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK                0x0000008000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET   0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB      40
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB      40
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK     0x0000010000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB                   41
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB                   41
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK                  0x0000020000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB                   42
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB                   42
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK                  0x0000040000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET         0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB            46
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB            46
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK           0x0000400000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB     47
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB     47
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK    0x0000800000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET                 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB                    48
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB                    51
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK                   0x000f000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET                0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB                   52
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB                   57
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK                  0x03f0000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB    58
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB    58
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK   0x0400000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB    59
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB    61
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK   0x3800000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB                 62
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB                 62
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK                0x4000000000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
+#define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_he_sig_b1_mu.h b/hw/qcn9224/v2/phyrx_he_sig_b1_mu.h
new file mode 100644
index 0000000..5bc1e77
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_he_sig_b1_mu.h
@@ -0,0 +1,84 @@
+
+/* 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 _PHYRX_HE_SIG_B1_MU_H_
+#define _PHYRX_HE_SIG_B1_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b1_mu_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B1_MU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B1_MU 1
+
+
+struct phyrx_he_sig_b1_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b1_mu_info                                         phyrx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   he_sig_b1_mu_info                                         phyrx_he_sig_b1_mu_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_LSB        0
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MSB        7
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_MASK       0x00000000000000ff
+
+
+ 
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_LSB           8
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MSB           30
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RESERVED_0_MASK          0x000000007fffff00
+
+
+ 
+
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_OFFSET                                     0x0000000000000000
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_LSB                                        32
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MSB                                        63
+#define PHYRX_HE_SIG_B1_MU_TLV64_PADDING_MASK                                       0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_he_sig_b2_mu.h b/hw/qcn9224/v2/phyrx_he_sig_b2_mu.h
new file mode 100644
index 0000000..500c198
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_he_sig_b2_mu.h
@@ -0,0 +1,138 @@
+
+/* 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 _PHYRX_HE_SIG_B2_MU_H_
+#define _PHYRX_HE_SIG_B2_MU_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_mu_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_MU 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_MU 1
+
+
+struct phyrx_he_sig_b2_mu {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_mu_info                                         phyrx_he_sig_b2_mu_info_details;
+#else
+             struct   he_sig_b2_mu_info                                         phyrx_he_sig_b2_mu_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET            0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB               0
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB               10
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK              0x00000000000007ff
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB   11
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB   14
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK  0x0000000000007800
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB              15
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB              18
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK             0x0000000000078000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB    19
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB    19
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK   0x0000000000080000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB           20
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB           20
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK          0x0000000000100000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB          21
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB          27
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK         0x000000000fe00000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET              0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB                 28
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB                 30
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK                0x0000000070000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB           32
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB           39
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK          0x000000ff00000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET           0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB              40
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB              47
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK             0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET       0x0000000000000000
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB          48
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB          63
+#define PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK         0xffff000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_he_sig_b2_ofdma.h b/hw/qcn9224/v2/phyrx_he_sig_b2_ofdma.h
new file mode 100644
index 0000000..2405fa9
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_he_sig_b2_ofdma.h
@@ -0,0 +1,138 @@
+
+/* 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 _PHYRX_HE_SIG_B2_OFDMA_H_
+#define _PHYRX_HE_SIG_B2_OFDMA_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "he_sig_b2_ofdma_info.h"
+#define NUM_OF_DWORDS_PHYRX_HE_SIG_B2_OFDMA 2
+
+#define NUM_OF_QWORDS_PHYRX_HE_SIG_B2_OFDMA 1
+
+
+struct phyrx_he_sig_b2_ofdma {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   he_sig_b2_ofdma_info                                      phyrx_he_sig_b2_ofdma_info_details;
+#else
+             struct   he_sig_b2_ofdma_info                                      phyrx_he_sig_b2_ofdma_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET      0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_LSB         0
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MSB         10
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_MASK        0x00000000000007ff
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_LSB           11
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MSB           13
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_NSTS_MASK          0x0000000000003800
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_OFFSET        0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_LSB           14
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MSB           14
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_TXBF_MASK          0x0000000000004000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_LSB        15
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MSB        18
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_MCS_MASK       0x0000000000078000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_LSB        19
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MSB        19
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_DCM_MASK       0x0000000000080000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_LSB     20
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MSB     20
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_CODING_MASK    0x0000000000100000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_LSB     21
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MSB     30
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_0_MASK    0x000000007fe00000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_OFFSET  0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_LSB     32
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MSB     39
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_USER_ORDER_MASK    0x000000ff00000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_OFFSET     0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_LSB        40
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MSB        47
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_CC_MASK_MASK       0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_LSB    48
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MSB    63
+#define PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_RESERVED_1A_MASK   0xffff000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_ht_sig.h b/hw/qcn9224/v2/phyrx_ht_sig.h
new file mode 100644
index 0000000..ff883e0
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_ht_sig.h
@@ -0,0 +1,178 @@
+
+/* 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 _PHYRX_HT_SIG_H_
+#define _PHYRX_HT_SIG_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "ht_sig_info.h"
+#define NUM_OF_DWORDS_PHYRX_HT_SIG 2
+
+#define NUM_OF_QWORDS_PHYRX_HT_SIG 1
+
+
+struct phyrx_ht_sig {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   ht_sig_info                                               phyrx_ht_sig_info_details;
+#else
+             struct   ht_sig_info                                               phyrx_ht_sig_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_LSB                              0
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MSB                              6
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_MCS_MASK                             0x000000000000007f
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_LSB                              7
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MSB                              7
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CBW_MASK                             0x0000000000000080
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET                        0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_LSB                           8
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MSB                           23
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MASK                          0x0000000000ffff00
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB                       24
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MSB                       31
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK                      0x00000000ff000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET                     0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB                        32
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MSB                        32
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK                       0x0000000100000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET                  0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB                     33
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MSB                     33
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK                    0x0000000200000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB                      34
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MSB                      34
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK                     0x0000000400000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB                      35
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MSB                      35
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK                     0x0000000800000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_OFFSET                          0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_LSB                             36
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MSB                             37
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_STBC_MASK                            0x0000003000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB                       38
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MSB                       38
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK                      0x0000004000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET                      0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB                         39
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MSB                         39
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK                        0x0000008000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET                0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB                   40
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MSB                   41
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK                  0x0000030000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_OFFSET                           0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_LSB                              42
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MSB                              49
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_CRC_MASK                             0x0003fc0000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET                   0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB                      50
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MSB                      55
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK                     0x00fc000000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET                    0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB                       56
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MSB                       62
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK                      0x7f00000000000000
+
+
+ 
+
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET     0x0000000000000000
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB        63
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB        63
+#define PHYRX_HT_SIG_PHYRX_HT_SIG_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK       0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_l_sig_a.h b/hw/qcn9224/v2/phyrx_l_sig_a.h
new file mode 100644
index 0000000..d88bd8e
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_l_sig_a.h
@@ -0,0 +1,132 @@
+
+/* 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 _PHYRX_L_SIG_A_H_
+#define _PHYRX_L_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_a_info.h"
+#define NUM_OF_DWORDS_PHYRX_L_SIG_A 2
+
+#define NUM_OF_QWORDS_PHYRX_L_SIG_A 1
+
+
+struct phyrx_l_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_a_info                                              phyrx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   l_sig_a_info                                              phyrx_l_sig_a_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_LSB                           0
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MSB                           3
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET               0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB                  4
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MSB                  4
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK                 0x0000000000000010
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_LSB                         5
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MSB                         16
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MASK                        0x000000000001ffe0
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_LSB                         17
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MSB                         17
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MASK                        0x0000000000020000
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_LSB                           18
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MSB                           23
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MASK                          0x0000000000fc0000
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB                       24
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MSB                       27
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK                      0x000000000f000000
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET  0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB     28
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MSB     28
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK    0x0000000010000000
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_LSB                       29
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MSB                       30
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MASK                      0x0000000060000000
+
+
+ 
+
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+ 
+
+#define PHYRX_L_SIG_A_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define PHYRX_L_SIG_A_TLV64_PADDING_LSB                                             32
+#define PHYRX_L_SIG_A_TLV64_PADDING_MSB                                             63
+#define PHYRX_L_SIG_A_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_l_sig_b.h b/hw/qcn9224/v2/phyrx_l_sig_b.h
new file mode 100644
index 0000000..d9023f0
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_l_sig_b.h
@@ -0,0 +1,92 @@
+
+/* 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 _PHYRX_L_SIG_B_H_
+#define _PHYRX_L_SIG_B_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "l_sig_b_info.h"
+#define NUM_OF_DWORDS_PHYRX_L_SIG_B 2
+
+#define NUM_OF_QWORDS_PHYRX_L_SIG_B 1
+
+
+struct phyrx_l_sig_b {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   l_sig_b_info                                              phyrx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   l_sig_b_info                                              phyrx_l_sig_b_info_details;
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_OFFSET                        0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_LSB                           0
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MSB                           3
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_MASK                          0x000000000000000f
+
+
+ 
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_OFFSET                      0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_LSB                         4
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MSB                         15
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_LENGTH_MASK                        0x000000000000fff0
+
+
+ 
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_OFFSET                    0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_LSB                       16
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MSB                       30
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RESERVED_MASK                      0x000000007fff0000
+
+
+ 
+
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET   0x0000000000000000
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB      31
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB      31
+#define PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK     0x0000000080000000
+
+
+ 
+
+#define PHYRX_L_SIG_B_TLV64_PADDING_OFFSET                                          0x0000000000000000
+#define PHYRX_L_SIG_B_TLV64_PADDING_LSB                                             32
+#define PHYRX_L_SIG_B_TLV64_PADDING_MSB                                             63
+#define PHYRX_L_SIG_B_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_location.h b/hw/qcn9224/v2/phyrx_location.h
new file mode 100644
index 0000000..1e56434
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_location.h
@@ -0,0 +1,554 @@
+
+/* 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 _PHYRX_LOCATION_H_
+#define _PHYRX_LOCATION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_location_info.h"
+#define NUM_OF_DWORDS_PHYRX_LOCATION 28
+
+#define NUM_OF_QWORDS_PHYRX_LOCATION 14
+
+
+struct phyrx_location {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_location_info                                          rx_location_info_details;
+#else
+             struct   rx_location_info                                          rx_location_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_OFFSET       0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_LSB          0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MSB          0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_LOCATION_INFO_VALID_MASK         0x0000000000000001
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_OFFSET             0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_LSB                1
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MSB                1
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_HW_IFFT_MODE_MASK               0x0000000000000002
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_OFFSET                0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_LSB                   2
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MSB                   3
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_11AZ_MODE_MASK                  0x000000000000000c
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_OFFSET                   0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_LSB                      4
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MSB                      7
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_0_MASK                     0x00000000000000f0
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_OFFSET                  0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_LSB                     8
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MSB                     15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_FAC_MASK                    0x000000000000ff00
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_OFFSET            0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_LSB               16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MSB               23
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_RX_CHAIN_MASK_MASK              0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_OFFSET              0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_LSB                 24
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MSB                 31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_NUM_STREAMS_MASK                0x00000000ff000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_OFFSET     0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_LSB        32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MSB        39
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FIRST_SELECTED_CHAIN_MASK       0x000000ff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_OFFSET    0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_LSB       40
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MSB       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_SECOND_SELECTED_CHAIN_MASK      0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_OFFSET               0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_LSB                  48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MSB                  55
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFR_STATUS_MASK                 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_OFFSET               0x0000000000000000
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_LSB                  56
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MSB                  63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CIR_STATUS_MASK                 0xff00000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_LSB    0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MSB    31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_LOW32_MASK   0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_LSB    32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MSB    39
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CHE_BUFFER_POINTER_HIGH8_MASK   0x000000ff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_OFFSET                   0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_LSB                      40
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_3_MASK                     0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_OFFSET               0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_LSB                  48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MSB                  51
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_VHT_MASK                 0x000f000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_OFFSET               0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_LSB                  52
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MSB                  55
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PKT_BW_LEG_MASK                 0x00f0000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_OFFSET                 0x0000000000000008
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_LSB                    56
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MSB                    63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_MCS_RATE_MASK                   0xff00000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_OFFSET          0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_LSB             0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MSB             15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_CFO_MEASUREMENT_MASK            0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_OFFSET            0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_LSB               16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MSB               23
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_PREAMBLE_TYPE_MASK              0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_OFFSET                  0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_LSB                     24
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MSB                     31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_GI_TYPE_MASK                    0x00000000ff000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_OFFSET                  0x0000000000000010
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_LSB                     32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MSB                     63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_MASK                    0xffffffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_OFFSET            0x0000000000000018
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_LSB               0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MSB               31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_START_TS_UPPER_MASK              0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_OFFSET                    0x0000000000000018
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RX_END_TS_MASK                      0xffffffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_LSB                     0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MSB                     15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN0_MASK                    0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_LSB                     16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MSB                     31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN1_MASK                    0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_LSB                     32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MSB                     47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN2_MASK                    0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_OFFSET                  0x0000000000000020
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_LSB                     48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MSB                     63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_CHAIN3_MASK                    0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_OFFSET           0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_LSB              0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MSB              7
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_GAIN_REPORT_STATUS_MASK             0x00000000000000ff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_OFFSET       0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_LSB          8
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MSB          15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_TIMING_BACKOFF_SEL_MASK         0x000000000000ff00
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_OFFSET             0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_LSB                16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MSB                31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_COMBINED_MASK               0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_OFFSET                    0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_0_MASK                      0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_OFFSET                    0x0000000000000028
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_1_MASK                      0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_LSB                       0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MSB                       15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_2_MASK                      0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_LSB                       16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MSB                       31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_3_MASK                      0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_4_MASK                      0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_OFFSET                    0x0000000000000030
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_5_MASK                      0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_LSB                       0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MSB                       15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_6_MASK                      0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_LSB                       16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MSB                       31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_7_MASK                      0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_LSB                       32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MSB                       47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_8_MASK                      0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_OFFSET                    0x0000000000000038
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_LSB                       48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MSB                       63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_9_MASK                      0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_10_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_11_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_12_MASK                     0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_OFFSET                   0x0000000000000040
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_13_MASK                     0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_14_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_15_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_16_MASK                     0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_OFFSET                   0x0000000000000048
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_17_MASK                     0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_18_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_19_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_20_MASK                     0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_OFFSET                   0x0000000000000050
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_21_MASK                     0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_22_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_23_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_24_MASK                     0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_OFFSET                   0x0000000000000058
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_25_MASK                     0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_26_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_27_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_LSB                      32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MSB                      47
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_28_MASK                     0x0000ffff00000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_OFFSET                   0x0000000000000060
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_LSB                      48
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MSB                      63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_29_MASK                     0xffff000000000000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_OFFSET                   0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_LSB                      0
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MSB                      15
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_30_MASK                     0x000000000000ffff
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_OFFSET                   0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_LSB                      16
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MSB                      31
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RTT_FAC_31_MASK                     0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_OFFSET                 0x0000000000000068
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_LSB                    32
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MSB                    63
+#define PHYRX_LOCATION_RX_LOCATION_INFO_DETAILS_RESERVED_27A_MASK                   0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_other_receive_info_ru_details.h b/hw/qcn9224/v2/phyrx_other_receive_info_ru_details.h
new file mode 100644
index 0000000..acd2d0b
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_other_receive_info_ru_details.h
@@ -0,0 +1,84 @@
+
+/* 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 _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
+#define _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 4
+
+#define NUM_OF_QWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 2
+
+
+struct phyrx_other_receive_info_ru_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_details_channel_0                                    : 32;  
+             uint32_t ru_details_channel_1                                    : 32;  
+             uint32_t spare                                                   : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             uint32_t ru_details_channel_0                                    : 32;  
+             uint32_t ru_details_channel_1                                    : 32;  
+             uint32_t spare                                                   : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_OFFSET             0x0000000000000000
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_LSB                0
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MSB                31
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_0_MASK               0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_OFFSET             0x0000000000000000
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_LSB                32
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MSB                63
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_RU_DETAILS_CHANNEL_1_MASK               0xffffffff00000000
+
+
+ 
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_OFFSET                            0x0000000000000008
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_LSB                               0
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MSB                               31
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_SPARE_MASK                              0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_OFFSET                    0x0000000000000008
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_LSB                       32
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MSB                       63
+#define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_TLV64_PADDING_MASK                      0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_pkt_end.h b/hw/qcn9224/v2/phyrx_pkt_end.h
new file mode 100644
index 0000000..cab46a2
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_pkt_end.h
@@ -0,0 +1,704 @@
+
+/* 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 _PHYRX_PKT_END_H_
+#define _PHYRX_PKT_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phyrx_pkt_end_info.h"
+#define NUM_OF_DWORDS_PHYRX_PKT_END 24
+
+#define NUM_OF_QWORDS_PHYRX_PKT_END 12
+
+
+struct phyrx_pkt_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   phyrx_pkt_end_info                                        rx_pkt_end_details;
+#else
+             struct   phyrx_pkt_end_info                                        rx_pkt_end_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_OFFSET                    0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_LSB                       0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_MSB                       0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_INTERNAL_NAP_MASK                      0x0000000000000001
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_OFFSET                 0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_LSB                    1
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_MSB                    1
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_LOCATION_INFO_VALID_MASK                   0x0000000000000002
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_OFFSET                   0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_LSB                      2
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_MSB                      2
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_TIMING_INFO_VALID_MASK                     0x0000000000000004
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_OFFSET                     0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_LSB                        3
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_MSB                        3
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_INFO_VALID_MASK                       0x0000000000000008
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_LSB                            4
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_MSB                            4
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0A_MASK                           0x0000000000000010
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_OFFSET            0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_LSB               5
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_MSB               5
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_FRAMELESS_FRAME_RECEIVED_MASK              0x0000000000000020
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_LSB                            6
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_MSB                            7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0B_MASK                           0x00000000000000c0
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_OFFSET                           0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_LSB                              8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_MSB                              15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RSSI_COMB_MASK                             0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_OFFSET                         0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_LSB                            16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_MSB                            31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RESERVED_0C_MASK                           0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_OFFSET            0x0000000000000000
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_LSB               32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_MSB               63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_LOWER_32_MASK              0xffffffff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_OFFSET            0x0000000000000008
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_LSB               0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_MSB               31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_1_UPPER_32_MASK              0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_OFFSET            0x0000000000000008
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_LSB               32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_MSB               63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_LOWER_32_MASK              0xffffffff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_OFFSET            0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_LSB               0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_MSB               31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_TIMESTAMP_2_UPPER_32_MASK              0x00000000ffffffff
+
+
+ 
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_OFFSET 0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MSB 43
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MASK 0x00000fff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000010
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_LSB 44
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MASK 0xfffff00000000000
+
+
+ 
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET 0x0000000000000018
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET 0x0000000000000028
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET 0x0000000000000038
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET 0x0000000000000048
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB 0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB 7
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK 0x00000000000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB 8
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB 15
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK 0x000000000000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB 16
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB 23
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK 0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB 24
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB 31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB 32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB 39
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK 0x000000ff00000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB 40
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB 47
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB 48
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB 55
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB 56
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB 63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK 0xff00000000000000
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_OFFSET                  0x0000000000000058
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_LSB                     0
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_MSB                     31
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_31_0_MASK                    0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_OFFSET                 0x0000000000000058
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_LSB                    32
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_MSB                    63
+#define PHYRX_PKT_END_RX_PKT_END_DETAILS_PHY_SW_STATUS_63_32_MASK                   0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_pkt_end_info.h b/hw/qcn9224/v2/phyrx_pkt_end_info.h
new file mode 100644
index 0000000..e0b2cd6
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_pkt_end_info.h
@@ -0,0 +1,732 @@
+
+/* 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 _PHYRX_PKT_END_INFO_H_
+#define _PHYRX_PKT_END_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_rssi_info.h"
+#include "rx_timing_offset_info.h"
+#define NUM_OF_DWORDS_PHYRX_PKT_END_INFO 24
+
+
+struct phyrx_pkt_end_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_internal_nap                                        :  1,  
+                      location_info_valid                                     :  1,  
+                      timing_info_valid                                       :  1,  
+                      rssi_info_valid                                         :  1,  
+                      reserved_0a                                             :  1,  
+                      frameless_frame_received                                :  1,  
+                      reserved_0b                                             :  2,  
+                      rssi_comb                                               :  8,  
+                      reserved_0c                                             : 16;  
+             uint32_t phy_timestamp_1_lower_32                                : 32;  
+             uint32_t phy_timestamp_1_upper_32                                : 32;  
+             uint32_t phy_timestamp_2_lower_32                                : 32;  
+             uint32_t phy_timestamp_2_upper_32                                : 32;  
+             struct   rx_timing_offset_info                                     rx_timing_offset_info_details;
+             struct   receive_rssi_info                                         post_rssi_info_details;
+             uint32_t phy_sw_status_31_0                                      : 32;  
+             uint32_t phy_sw_status_63_32                                     : 32;  
+#else
+             uint32_t reserved_0c                                             : 16,  
+                      rssi_comb                                               :  8,  
+                      reserved_0b                                             :  2,  
+                      frameless_frame_received                                :  1,  
+                      reserved_0a                                             :  1,  
+                      rssi_info_valid                                         :  1,  
+                      timing_info_valid                                       :  1,  
+                      location_info_valid                                     :  1,  
+                      phy_internal_nap                                        :  1;  
+             uint32_t phy_timestamp_1_lower_32                                : 32;  
+             uint32_t phy_timestamp_1_upper_32                                : 32;  
+             uint32_t phy_timestamp_2_lower_32                                : 32;  
+             uint32_t phy_timestamp_2_upper_32                                : 32;  
+             struct   rx_timing_offset_info                                     rx_timing_offset_info_details;
+             struct   receive_rssi_info                                         post_rssi_info_details;
+             uint32_t phy_sw_status_31_0                                      : 32;  
+             uint32_t phy_sw_status_63_32                                     : 32;  
+#endif
+};
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_OFFSET                                  0x00000000
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_LSB                                     0
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_MSB                                     0
+#define PHYRX_PKT_END_INFO_PHY_INTERNAL_NAP_MASK                                    0x00000001
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_OFFSET                               0x00000000
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_LSB                                  1
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_MSB                                  1
+#define PHYRX_PKT_END_INFO_LOCATION_INFO_VALID_MASK                                 0x00000002
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_OFFSET                                 0x00000000
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_LSB                                    2
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_MSB                                    2
+#define PHYRX_PKT_END_INFO_TIMING_INFO_VALID_MASK                                   0x00000004
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_OFFSET                                   0x00000000
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_LSB                                      3
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_MSB                                      3
+#define PHYRX_PKT_END_INFO_RSSI_INFO_VALID_MASK                                     0x00000008
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RESERVED_0A_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0A_LSB                                          4
+#define PHYRX_PKT_END_INFO_RESERVED_0A_MSB                                          4
+#define PHYRX_PKT_END_INFO_RESERVED_0A_MASK                                         0x00000010
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_OFFSET                          0x00000000
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_LSB                             5
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_MSB                             5
+#define PHYRX_PKT_END_INFO_FRAMELESS_FRAME_RECEIVED_MASK                            0x00000020
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RESERVED_0B_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0B_LSB                                          6
+#define PHYRX_PKT_END_INFO_RESERVED_0B_MSB                                          7
+#define PHYRX_PKT_END_INFO_RESERVED_0B_MASK                                         0x000000c0
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RSSI_COMB_OFFSET                                         0x00000000
+#define PHYRX_PKT_END_INFO_RSSI_COMB_LSB                                            8
+#define PHYRX_PKT_END_INFO_RSSI_COMB_MSB                                            15
+#define PHYRX_PKT_END_INFO_RSSI_COMB_MASK                                           0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RESERVED_0C_OFFSET                                       0x00000000
+#define PHYRX_PKT_END_INFO_RESERVED_0C_LSB                                          16
+#define PHYRX_PKT_END_INFO_RESERVED_0C_MSB                                          31
+#define PHYRX_PKT_END_INFO_RESERVED_0C_MASK                                         0xffff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_OFFSET                          0x00000004
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_LOWER_32_MASK                            0xffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_OFFSET                          0x00000008
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_1_UPPER_32_MASK                            0xffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_OFFSET                          0x0000000c
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_LOWER_32_MASK                            0xffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_OFFSET                          0x00000010
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_LSB                             0
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_MSB                             31
+#define PHYRX_PKT_END_INFO_PHY_TIMESTAMP_2_UPPER_32_MASK                            0xffffffff
+
+
+ 
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_OFFSET 0x00000014
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_LSB  0
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MSB  11
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESIDUAL_PHASE_OFFSET_MASK 0x00000fff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_OFFSET            0x00000014
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_LSB               12
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MSB               31
+#define PHYRX_PKT_END_INFO_RX_TIMING_OFFSET_INFO_DETAILS_RESERVED_MASK              0xfffff000
+
+
+ 
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET          0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK            0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET          0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK            0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET    0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK      0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET   0x00000018
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET    0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK      0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET   0x0000001c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET       0x00000020
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET       0x00000024
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET          0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK            0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET          0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK            0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET    0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK      0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET   0x00000028
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET    0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK      0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET   0x0000002c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET       0x00000030
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET       0x00000034
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET          0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK            0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET          0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK            0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET    0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK      0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET   0x00000038
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET    0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK      0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET   0x0000003c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET       0x00000040
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET       0x00000044
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET          0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB             0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB             7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK            0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET          0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB             8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB             15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK            0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET    0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB       16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB       23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK      0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET   0x00000048
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET    0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB       0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB       7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK      0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB  8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB  15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB  16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB  23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET   0x0000004c
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB      24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB      31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK     0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET       0x00000050
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB          0
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB          7
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK         0x000000ff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB          8
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB          15
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK         0x0000ff00
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB          16
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB          23
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK         0x00ff0000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET       0x00000054
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB          24
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB          31
+#define PHYRX_PKT_END_INFO_POST_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK         0xff000000
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_OFFSET                                0x00000058
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_LSB                                   0
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_MSB                                   31
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_31_0_MASK                                  0xffffffff
+
+
+ 
+
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_OFFSET                               0x0000005c
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_LSB                                  0
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_MSB                                  31
+#define PHYRX_PKT_END_INFO_PHY_SW_STATUS_63_32_MASK                                 0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_rssi_legacy.h b/hw/qcn9224/v2/phyrx_rssi_legacy.h
new file mode 100644
index 0000000..fcf12e3
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_rssi_legacy.h
@@ -0,0 +1,1299 @@
+
+/* 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 _PHYRX_RSSI_LEGACY_H_
+#define _PHYRX_RSSI_LEGACY_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_rssi_info.h"
+#define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 42
+
+#define NUM_OF_QWORDS_PHYRX_RSSI_LEGACY 21
+
+
+struct phyrx_rssi_legacy {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reception_type                                          :  4,  
+                      rx_chain_mask_type                                      :  1,  
+                      receive_bandwidth                                       :  3,  
+                      rx_chain_mask                                           :  8,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t preamble_time_to_rxframe                                :  8,  
+                      standalone_snifer_mode                                  :  1,  
+                      reserved_5a                                             : 23;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             struct   receive_rssi_info                                         pre_rssi_info_details;
+             struct   receive_rssi_info                                         preamble_rssi_info_details;
+             uint32_t pre_rssi_comb                                           :  8,  
+                      rssi_comb                                               :  8,  
+                      normalized_pre_rssi_comb                                :  8,  
+                      normalized_rssi_comb                                    :  8;  
+             uint32_t rssi_comb_ppdu                                          :  8,  
+                      rssi_db_to_dbm_offset                                   :  8,  
+                      rssi_for_spatial_reuse                                  :  8,  
+                      rssi_for_trigger_resp                                   :  8;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      rx_chain_mask                                           :  8,  
+                      receive_bandwidth                                       :  3,  
+                      rx_chain_mask_type                                      :  1,  
+                      reception_type                                          :  4;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 23,  
+                      standalone_snifer_mode                                  :  1,  
+                      preamble_time_to_rxframe                                :  8;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             struct   receive_rssi_info                                         pre_rssi_info_details;
+             struct   receive_rssi_info                                         preamble_rssi_info_details;
+             uint32_t normalized_rssi_comb                                    :  8,  
+                      normalized_pre_rssi_comb                                :  8,  
+                      rssi_comb                                               :  8,  
+                      pre_rssi_comb                                           :  8;  
+             uint32_t rssi_for_trigger_resp                                   :  8,  
+                      rssi_for_spatial_reuse                                  :  8,  
+                      rssi_db_to_dbm_offset                                   :  8,  
+                      rssi_comb_ppdu                                          :  8;  
+#endif
+};
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_OFFSET                                     0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_LSB                                        0
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_MSB                                        3
+#define PHYRX_RSSI_LEGACY_RECEPTION_TYPE_MASK                                       0x000000000000000f
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_OFFSET                                 0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_LSB                                    4
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_MSB                                    4
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_TYPE_MASK                                   0x0000000000000010
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_OFFSET                                  0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_LSB                                     5
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_MSB                                     7
+#define PHYRX_RSSI_LEGACY_RECEIVE_BANDWIDTH_MASK                                    0x00000000000000e0
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_OFFSET                                      0x0000000000000000
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_LSB                                         8
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_MSB                                         15
+#define PHYRX_RSSI_LEGACY_RX_CHAIN_MASK_MASK                                        0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_OFFSET                                        0x0000000000000000
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_LSB                                           16
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_MSB                                           31
+#define PHYRX_RSSI_LEGACY_PHY_PPDU_ID_MASK                                          0x00000000ffff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_OFFSET                                   0x0000000000000000
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_LSB                                      32
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_MSB                                      63
+#define PHYRX_RSSI_LEGACY_SW_PHY_META_DATA_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_OFFSET                          0x0000000000000008
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_LSB                             0
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_MSB                             31
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_31_0_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_OFFSET                         0x0000000000000008
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_LSB                            32
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_MSB                            63
+#define PHYRX_RSSI_LEGACY_PPDU_START_TIMESTAMP_63_32_MASK                           0xffffffff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_LSB                                           0
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_MSB                                           31
+#define PHYRX_RSSI_LEGACY_RESERVED_4A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_OFFSET                           0x0000000000000010
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_LSB                              32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_MSB                              39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_TIME_TO_RXFRAME_MASK                             0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_OFFSET                             0x0000000000000010
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_LSB                                40
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_MSB                                40
+#define PHYRX_RSSI_LEGACY_STANDALONE_SNIFER_MODE_MASK                               0x0000010000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_OFFSET                                        0x0000000000000010
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_LSB                                           41
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_MSB                                           63
+#define PHYRX_RSSI_LEGACY_RESERVED_5A_MASK                                          0xfffffe0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_OFFSET                                        0x0000000000000018
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_LSB                                           0
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_MSB                                           31
+#define PHYRX_RSSI_LEGACY_RESERVED_6A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_OFFSET                                        0x0000000000000018
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_LSB                                           32
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_MSB                                           63
+#define PHYRX_RSSI_LEGACY_RESERVED_7A_MASK                                          0xffffffff00000000
+
+
+ 
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET            0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK              0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET            0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK              0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET      0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK        0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET     0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK       0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET      0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK        0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK   0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK   0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET     0x0000000000000020
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK       0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK           0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK           0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK           0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK           0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK           0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK           0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK           0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET         0x0000000000000028
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK           0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET            0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK              0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET            0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK              0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET      0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK        0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET     0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK       0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET      0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK        0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK   0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK   0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET     0x0000000000000030
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK       0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK           0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK           0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK           0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK           0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK           0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK           0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK           0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET         0x0000000000000038
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK           0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET            0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK              0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET            0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK              0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET      0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK        0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET     0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK       0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET      0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK        0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK   0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK   0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET     0x0000000000000040
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK       0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK           0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK           0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK           0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK           0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK           0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK           0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK           0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET         0x0000000000000048
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK           0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET            0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB               0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB               7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK              0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET            0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB               8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB               15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK              0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET      0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB         16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB         23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK        0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET     0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB        24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB        31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK       0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET      0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB         32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB         39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK        0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB    40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB    47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK   0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB    48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB    55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK   0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET     0x0000000000000050
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB        56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB        63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK       0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB            0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB            7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK           0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB            8
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB            15
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK           0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB            16
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB            23
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK           0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB            24
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB            31
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK           0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB            32
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB            39
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK           0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB            40
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB            47
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK           0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB            48
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB            55
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK           0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET         0x0000000000000058
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB            56
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB            63
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK           0xff00000000000000
+
+
+ 
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET       0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_MASK         0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_OFFSET       0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN0_MASK         0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN0_MASK   0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN0_MASK  0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN0_MASK   0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_OFFSET 0x0000000000000060
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN0_MASK  0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN0_MASK      0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN0_MASK      0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN0_MASK      0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN0_MASK      0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN0_MASK      0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN0_MASK      0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN0_MASK      0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_OFFSET    0x0000000000000068
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN0_MASK      0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_OFFSET       0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN1_MASK         0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_OFFSET       0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN1_MASK         0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN1_MASK   0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN1_MASK  0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN1_MASK   0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_OFFSET 0x0000000000000070
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN1_MASK  0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN1_MASK      0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN1_MASK      0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN1_MASK      0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN1_MASK      0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN1_MASK      0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN1_MASK      0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN1_MASK      0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_OFFSET    0x0000000000000078
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN1_MASK      0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_OFFSET       0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN2_MASK         0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_OFFSET       0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN2_MASK         0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN2_MASK   0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN2_MASK  0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN2_MASK   0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_OFFSET 0x0000000000000080
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN2_MASK  0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN2_MASK      0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN2_MASK      0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN2_MASK      0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN2_MASK      0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN2_MASK      0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN2_MASK      0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN2_MASK      0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_OFFSET    0x0000000000000088
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN2_MASK      0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_OFFSET       0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_LSB          0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MSB          7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN3_MASK         0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_OFFSET       0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_LSB          8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MSB          15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT20_CHAIN3_MASK         0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_LSB    16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MSB    23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_LOW20_CHAIN3_MASK   0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_LSB   24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MSB   31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT40_HIGH20_CHAIN3_MASK  0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_LSB    32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MSB    39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW20_CHAIN3_MASK   0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB 40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB 47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK 0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB 48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB 55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK 0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_OFFSET 0x0000000000000090
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_LSB   56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MSB   63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT80_HIGH20_CHAIN3_MASK  0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_LSB       0
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MSB       7
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_0_CHAIN3_MASK      0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_LSB       8
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MSB       15
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_1_CHAIN3_MASK      0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_LSB       16
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MSB       23
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_2_CHAIN3_MASK      0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_LSB       24
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MSB       31
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_3_CHAIN3_MASK      0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_LSB       32
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MSB       39
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_4_CHAIN3_MASK      0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_LSB       40
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MSB       47
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_5_CHAIN3_MASK      0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_LSB       48
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MSB       55
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_6_CHAIN3_MASK      0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_OFFSET    0x0000000000000098
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_LSB       56
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MSB       63
+#define PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_EXT160_7_CHAIN3_MASK      0xff00000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_OFFSET                                      0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_LSB                                         0
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_MSB                                         7
+#define PHYRX_RSSI_LEGACY_PRE_RSSI_COMB_MASK                                        0x00000000000000ff
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_OFFSET                                          0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_LSB                                             8
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_MSB                                             15
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_MASK                                            0x000000000000ff00
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_OFFSET                           0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_LSB                              16
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_MSB                              23
+#define PHYRX_RSSI_LEGACY_NORMALIZED_PRE_RSSI_COMB_MASK                             0x0000000000ff0000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_OFFSET                               0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_LSB                                  24
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_MSB                                  31
+#define PHYRX_RSSI_LEGACY_NORMALIZED_RSSI_COMB_MASK                                 0x00000000ff000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_OFFSET                                     0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_LSB                                        32
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_MSB                                        39
+#define PHYRX_RSSI_LEGACY_RSSI_COMB_PPDU_MASK                                       0x000000ff00000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_OFFSET                              0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_LSB                                 40
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_MSB                                 47
+#define PHYRX_RSSI_LEGACY_RSSI_DB_TO_DBM_OFFSET_MASK                                0x0000ff0000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_OFFSET                             0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_LSB                                48
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_MSB                                55
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_SPATIAL_REUSE_MASK                               0x00ff000000000000
+
+
+ 
+
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_OFFSET                              0x00000000000000a0
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_LSB                                 56
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_MSB                                 63
+#define PHYRX_RSSI_LEGACY_RSSI_FOR_TRIGGER_RESP_MASK                                0xff00000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phyrx_vht_sig_a.h b/hw/qcn9224/v2/phyrx_vht_sig_a.h
new file mode 100644
index 0000000..e2c0341
--- /dev/null
+++ b/hw/qcn9224/v2/phyrx_vht_sig_a.h
@@ -0,0 +1,194 @@
+
+/* 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 _PHYRX_VHT_SIG_A_H_
+#define _PHYRX_VHT_SIG_A_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "vht_sig_a_info.h"
+#define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2
+
+#define NUM_OF_QWORDS_PHYRX_VHT_SIG_A 1
+
+
+struct phyrx_vht_sig_a {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   vht_sig_a_info                                            phyrx_vht_sig_a_info_details;
+#else
+             struct   vht_sig_a_info                                            phyrx_vht_sig_a_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET               0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB                  0
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MSB                  1
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK                 0x0000000000000003
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET         0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB            2
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MSB            2
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK           0x0000000000000004
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET                    0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB                       3
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MSB                       3
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK                      0x0000000000000008
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET                0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB                   4
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MSB                   9
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK                  0x00000000000003f0
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET                   0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB                      10
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MSB                      21
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK                     0x00000000003ffc00
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB        22
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MSB        22
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK       0x0000000000400000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET        0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB           23
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MSB           23
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK          0x0000000000800000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB                 24
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MSB                 31
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK                0x00000000ff000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB                 32
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MSB                 33
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK                0x0000000300000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET            0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB               34
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MSB               34
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK              0x0000000400000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET       0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB          35
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB          35
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK         0x0000000800000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET                     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB                        36
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MSB                        39
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK                       0x000000f000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB                 40
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MSB                 40
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK                0x0000010000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET         0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB            41
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MSB            41
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK           0x0000020000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET                     0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB                        42
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MSB                        49
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK                       0x0003fc0000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET                    0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB                       50
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MSB                       55
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK                      0x00fc000000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET              0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB                 56
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MSB                 62
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK                0x7f00000000000000
+
+
+ 
+
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB  63
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB  63
+#define PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/phytx_abort_request_info.h b/hw/qcn9224/v2/phytx_abort_request_info.h
new file mode 100644
index 0000000..171d000
--- /dev/null
+++ b/hw/qcn9224/v2/phytx_abort_request_info.h
@@ -0,0 +1,72 @@
+
+/* 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 _PHYTX_ABORT_REQUEST_INFO_H_
+#define _PHYTX_ABORT_REQUEST_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_WORDS_PHYTX_ABORT_REQUEST_INFO 1
+
+
+struct phytx_abort_request_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint16_t phytx_abort_reason                                      :  8,  
+                      user_number                                             :  6,  
+                      reserved                                                :  2;  
+#else
+             uint16_t reserved                                                :  2,  
+                      user_number                                             :  6,  
+                      phytx_abort_reason                                      :  8;  
+#endif
+};
+
+
+ 
+
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_OFFSET                          0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_LSB                             0
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MSB                             7
+#define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MASK                            0x000000ff
+
+
+ 
+
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_OFFSET                                 0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_LSB                                    8
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MSB                                    13
+#define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MASK                                   0x00003f00
+
+
+ 
+
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_OFFSET                                    0x00000000
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_LSB                                       14
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MSB                                       15
+#define PHYTX_ABORT_REQUEST_INFO_RESERVED_MASK                                      0x0000c000
+
+
+
+#endif    
diff --git a/hw/qcn9224/phytx_ppdu_header_info_request.h b/hw/qcn9224/v2/phytx_ppdu_header_info_request.h
similarity index 100%
copy from hw/qcn9224/phytx_ppdu_header_info_request.h
copy to hw/qcn9224/v2/phytx_ppdu_header_info_request.h
diff --git a/hw/qcn9224/v2/receive_rssi_info.h b/hw/qcn9224/v2/receive_rssi_info.h
new file mode 100644
index 0000000..9837a3a
--- /dev/null
+++ b/hw/qcn9224/v2/receive_rssi_info.h
@@ -0,0 +1,682 @@
+
+/* 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 _RECEIVE_RSSI_INFO_H_
+#define _RECEIVE_RSSI_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVE_RSSI_INFO 16
+
+
+struct receive_rssi_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rssi_pri20_chain0                                       :  8,  
+                      rssi_ext20_chain0                                       :  8,  
+                      rssi_ext40_low20_chain0                                 :  8,  
+                      rssi_ext40_high20_chain0                                :  8;  
+             uint32_t rssi_ext80_low20_chain0                                 :  8,  
+                      rssi_ext80_low_high20_chain0                            :  8,  
+                      rssi_ext80_high_low20_chain0                            :  8,  
+                      rssi_ext80_high20_chain0                                :  8;  
+             uint32_t rssi_ext160_0_chain0                                    :  8,  
+                      rssi_ext160_1_chain0                                    :  8,  
+                      rssi_ext160_2_chain0                                    :  8,  
+                      rssi_ext160_3_chain0                                    :  8;  
+             uint32_t rssi_ext160_4_chain0                                    :  8,  
+                      rssi_ext160_5_chain0                                    :  8,  
+                      rssi_ext160_6_chain0                                    :  8,  
+                      rssi_ext160_7_chain0                                    :  8;  
+             uint32_t rssi_pri20_chain1                                       :  8,  
+                      rssi_ext20_chain1                                       :  8,  
+                      rssi_ext40_low20_chain1                                 :  8,  
+                      rssi_ext40_high20_chain1                                :  8;  
+             uint32_t rssi_ext80_low20_chain1                                 :  8,  
+                      rssi_ext80_low_high20_chain1                            :  8,  
+                      rssi_ext80_high_low20_chain1                            :  8,  
+                      rssi_ext80_high20_chain1                                :  8;  
+             uint32_t rssi_ext160_0_chain1                                    :  8,  
+                      rssi_ext160_1_chain1                                    :  8,  
+                      rssi_ext160_2_chain1                                    :  8,  
+                      rssi_ext160_3_chain1                                    :  8;  
+             uint32_t rssi_ext160_4_chain1                                    :  8,  
+                      rssi_ext160_5_chain1                                    :  8,  
+                      rssi_ext160_6_chain1                                    :  8,  
+                      rssi_ext160_7_chain1                                    :  8;  
+             uint32_t rssi_pri20_chain2                                       :  8,  
+                      rssi_ext20_chain2                                       :  8,  
+                      rssi_ext40_low20_chain2                                 :  8,  
+                      rssi_ext40_high20_chain2                                :  8;  
+             uint32_t rssi_ext80_low20_chain2                                 :  8,  
+                      rssi_ext80_low_high20_chain2                            :  8,  
+                      rssi_ext80_high_low20_chain2                            :  8,  
+                      rssi_ext80_high20_chain2                                :  8;  
+             uint32_t rssi_ext160_0_chain2                                    :  8,  
+                      rssi_ext160_1_chain2                                    :  8,  
+                      rssi_ext160_2_chain2                                    :  8,  
+                      rssi_ext160_3_chain2                                    :  8;  
+             uint32_t rssi_ext160_4_chain2                                    :  8,  
+                      rssi_ext160_5_chain2                                    :  8,  
+                      rssi_ext160_6_chain2                                    :  8,  
+                      rssi_ext160_7_chain2                                    :  8;  
+             uint32_t rssi_pri20_chain3                                       :  8,  
+                      rssi_ext20_chain3                                       :  8,  
+                      rssi_ext40_low20_chain3                                 :  8,  
+                      rssi_ext40_high20_chain3                                :  8;  
+             uint32_t rssi_ext80_low20_chain3                                 :  8,  
+                      rssi_ext80_low_high20_chain3                            :  8,  
+                      rssi_ext80_high_low20_chain3                            :  8,  
+                      rssi_ext80_high20_chain3                                :  8;  
+             uint32_t rssi_ext160_0_chain3                                    :  8,  
+                      rssi_ext160_1_chain3                                    :  8,  
+                      rssi_ext160_2_chain3                                    :  8,  
+                      rssi_ext160_3_chain3                                    :  8;  
+             uint32_t rssi_ext160_4_chain3                                    :  8,  
+                      rssi_ext160_5_chain3                                    :  8,  
+                      rssi_ext160_6_chain3                                    :  8,  
+                      rssi_ext160_7_chain3                                    :  8;  
+#else
+             uint32_t rssi_ext40_high20_chain0                                :  8,  
+                      rssi_ext40_low20_chain0                                 :  8,  
+                      rssi_ext20_chain0                                       :  8,  
+                      rssi_pri20_chain0                                       :  8;  
+             uint32_t rssi_ext80_high20_chain0                                :  8,  
+                      rssi_ext80_high_low20_chain0                            :  8,  
+                      rssi_ext80_low_high20_chain0                            :  8,  
+                      rssi_ext80_low20_chain0                                 :  8;  
+             uint32_t rssi_ext160_3_chain0                                    :  8,  
+                      rssi_ext160_2_chain0                                    :  8,  
+                      rssi_ext160_1_chain0                                    :  8,  
+                      rssi_ext160_0_chain0                                    :  8;  
+             uint32_t rssi_ext160_7_chain0                                    :  8,  
+                      rssi_ext160_6_chain0                                    :  8,  
+                      rssi_ext160_5_chain0                                    :  8,  
+                      rssi_ext160_4_chain0                                    :  8;  
+             uint32_t rssi_ext40_high20_chain1                                :  8,  
+                      rssi_ext40_low20_chain1                                 :  8,  
+                      rssi_ext20_chain1                                       :  8,  
+                      rssi_pri20_chain1                                       :  8;  
+             uint32_t rssi_ext80_high20_chain1                                :  8,  
+                      rssi_ext80_high_low20_chain1                            :  8,  
+                      rssi_ext80_low_high20_chain1                            :  8,  
+                      rssi_ext80_low20_chain1                                 :  8;  
+             uint32_t rssi_ext160_3_chain1                                    :  8,  
+                      rssi_ext160_2_chain1                                    :  8,  
+                      rssi_ext160_1_chain1                                    :  8,  
+                      rssi_ext160_0_chain1                                    :  8;  
+             uint32_t rssi_ext160_7_chain1                                    :  8,  
+                      rssi_ext160_6_chain1                                    :  8,  
+                      rssi_ext160_5_chain1                                    :  8,  
+                      rssi_ext160_4_chain1                                    :  8;  
+             uint32_t rssi_ext40_high20_chain2                                :  8,  
+                      rssi_ext40_low20_chain2                                 :  8,  
+                      rssi_ext20_chain2                                       :  8,  
+                      rssi_pri20_chain2                                       :  8;  
+             uint32_t rssi_ext80_high20_chain2                                :  8,  
+                      rssi_ext80_high_low20_chain2                            :  8,  
+                      rssi_ext80_low_high20_chain2                            :  8,  
+                      rssi_ext80_low20_chain2                                 :  8;  
+             uint32_t rssi_ext160_3_chain2                                    :  8,  
+                      rssi_ext160_2_chain2                                    :  8,  
+                      rssi_ext160_1_chain2                                    :  8,  
+                      rssi_ext160_0_chain2                                    :  8;  
+             uint32_t rssi_ext160_7_chain2                                    :  8,  
+                      rssi_ext160_6_chain2                                    :  8,  
+                      rssi_ext160_5_chain2                                    :  8,  
+                      rssi_ext160_4_chain2                                    :  8;  
+             uint32_t rssi_ext40_high20_chain3                                :  8,  
+                      rssi_ext40_low20_chain3                                 :  8,  
+                      rssi_ext20_chain3                                       :  8,  
+                      rssi_pri20_chain3                                       :  8;  
+             uint32_t rssi_ext80_high20_chain3                                :  8,  
+                      rssi_ext80_high_low20_chain3                            :  8,  
+                      rssi_ext80_low_high20_chain3                            :  8,  
+                      rssi_ext80_low20_chain3                                 :  8;  
+             uint32_t rssi_ext160_3_chain3                                    :  8,  
+                      rssi_ext160_2_chain3                                    :  8,  
+                      rssi_ext160_1_chain3                                    :  8,  
+                      rssi_ext160_0_chain3                                    :  8;  
+             uint32_t rssi_ext160_7_chain3                                    :  8,  
+                      rssi_ext160_6_chain3                                    :  8,  
+                      rssi_ext160_5_chain3                                    :  8,  
+                      rssi_ext160_4_chain3                                    :  8;  
+#endif
+};
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_OFFSET                                  0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN0_MASK                                    0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_OFFSET                                  0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN0_MASK                                    0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_OFFSET                            0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN0_MASK                              0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_OFFSET                           0x00000000
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN0_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_OFFSET                            0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN0_MASK                              0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_OFFSET                       0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN0_MASK                         0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_OFFSET                       0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN0_MASK                         0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_OFFSET                           0x00000004
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN0_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN0_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN0_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN0_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_OFFSET                               0x00000008
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN0_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN0_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN0_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN0_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_OFFSET                               0x0000000c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN0_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_OFFSET                                  0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN1_MASK                                    0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_OFFSET                                  0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN1_MASK                                    0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_OFFSET                            0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN1_MASK                              0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_OFFSET                           0x00000010
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN1_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_OFFSET                            0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN1_MASK                              0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_OFFSET                       0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN1_MASK                         0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_OFFSET                       0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN1_MASK                         0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_OFFSET                           0x00000014
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN1_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN1_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN1_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN1_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_OFFSET                               0x00000018
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN1_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN1_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN1_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN1_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_OFFSET                               0x0000001c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN1_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_OFFSET                                  0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN2_MASK                                    0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_OFFSET                                  0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN2_MASK                                    0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_OFFSET                            0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN2_MASK                              0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_OFFSET                           0x00000020
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN2_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_OFFSET                            0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN2_MASK                              0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_OFFSET                       0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN2_MASK                         0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_OFFSET                       0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN2_MASK                         0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_OFFSET                           0x00000024
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN2_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN2_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN2_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN2_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_OFFSET                               0x00000028
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN2_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN2_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN2_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN2_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_OFFSET                               0x0000002c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN2_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_OFFSET                                  0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_LSB                                     0
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MSB                                     7
+#define RECEIVE_RSSI_INFO_RSSI_PRI20_CHAIN3_MASK                                    0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_OFFSET                                  0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_LSB                                     8
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MSB                                     15
+#define RECEIVE_RSSI_INFO_RSSI_EXT20_CHAIN3_MASK                                    0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_OFFSET                            0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_LSB                               16
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MSB                               23
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_LOW20_CHAIN3_MASK                              0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_OFFSET                           0x00000030
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT40_HIGH20_CHAIN3_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_OFFSET                            0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_LSB                               0
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MSB                               7
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW20_CHAIN3_MASK                              0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_OFFSET                       0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_LSB                          8
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MSB                          15
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_LOW_HIGH20_CHAIN3_MASK                         0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_OFFSET                       0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_LSB                          16
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MSB                          23
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH_LOW20_CHAIN3_MASK                         0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_OFFSET                           0x00000034
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_LSB                              24
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MSB                              31
+#define RECEIVE_RSSI_INFO_RSSI_EXT80_HIGH20_CHAIN3_MASK                             0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_0_CHAIN3_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_1_CHAIN3_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_2_CHAIN3_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_OFFSET                               0x00000038
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_3_CHAIN3_MASK                                 0xff000000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_LSB                                  0
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MSB                                  7
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_4_CHAIN3_MASK                                 0x000000ff
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_LSB                                  8
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MSB                                  15
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_5_CHAIN3_MASK                                 0x0000ff00
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_LSB                                  16
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MSB                                  23
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_6_CHAIN3_MASK                                 0x00ff0000
+
+
+ 
+
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_OFFSET                               0x0000003c
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_LSB                                  24
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MSB                                  31
+#define RECEIVE_RSSI_INFO_RSSI_EXT160_7_CHAIN3_MASK                                 0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/receive_user_info.h b/hw/qcn9224/v2/receive_user_info.h
new file mode 100644
index 0000000..273810c
--- /dev/null
+++ b/hw/qcn9224/v2/receive_user_info.h
@@ -0,0 +1,392 @@
+
+/* 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 _RECEIVE_USER_INFO_H_
+#define _RECEIVE_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVE_USER_INFO 8
+
+
+struct receive_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_ppdu_id                                             : 16,  
+                      user_rssi                                               :  8,  
+                      pkt_type                                                :  4,  
+                      stbc                                                    :  1,  
+                      reception_type                                          :  3;  
+             uint32_t rate_mcs                                                :  4,  
+                      sgi                                                     :  2,  
+                      he_ranging_ndp                                          :  1,  
+                      reserved_1a                                             :  1,  
+                      mimo_ss_bitmap                                          :  8,  
+                      receive_bandwidth                                       :  3,  
+                      reserved_1b                                             :  5,  
+                      dl_ofdma_user_index                                     :  8;  
+             uint32_t dl_ofdma_content_channel                                :  1,  
+                      reserved_2a                                             :  7,  
+                      nss                                                     :  3,  
+                      stream_offset                                           :  3,  
+                      sta_dcm                                                 :  1,  
+                      ldpc                                                    :  1,  
+                      ru_type_80_0                                            :  4,  
+                      ru_type_80_1                                            :  4,  
+                      ru_type_80_2                                            :  4,  
+                      ru_type_80_3                                            :  4;  
+             uint32_t ru_start_index_80_0                                     :  6,  
+                      reserved_3a                                             :  2,  
+                      ru_start_index_80_1                                     :  6,  
+                      reserved_3b                                             :  2,  
+                      ru_start_index_80_2                                     :  6,  
+                      reserved_3c                                             :  2,  
+                      ru_start_index_80_3                                     :  6,  
+                      reserved_3d                                             :  2;  
+             uint32_t user_fd_rssi_seg0                                       : 32;  
+             uint32_t user_fd_rssi_seg1                                       : 32;  
+             uint32_t user_fd_rssi_seg2                                       : 32;  
+             uint32_t user_fd_rssi_seg3                                       : 32;  
+#else
+             uint32_t reception_type                                          :  3,  
+                      stbc                                                    :  1,  
+                      pkt_type                                                :  4,  
+                      user_rssi                                               :  8,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t dl_ofdma_user_index                                     :  8,  
+                      reserved_1b                                             :  5,  
+                      receive_bandwidth                                       :  3,  
+                      mimo_ss_bitmap                                          :  8,  
+                      reserved_1a                                             :  1,  
+                      he_ranging_ndp                                          :  1,  
+                      sgi                                                     :  2,  
+                      rate_mcs                                                :  4;  
+             uint32_t ru_type_80_3                                            :  4,  
+                      ru_type_80_2                                            :  4,  
+                      ru_type_80_1                                            :  4,  
+                      ru_type_80_0                                            :  4,  
+                      ldpc                                                    :  1,  
+                      sta_dcm                                                 :  1,  
+                      stream_offset                                           :  3,  
+                      nss                                                     :  3,  
+                      reserved_2a                                             :  7,  
+                      dl_ofdma_content_channel                                :  1;  
+             uint32_t reserved_3d                                             :  2,  
+                      ru_start_index_80_3                                     :  6,  
+                      reserved_3c                                             :  2,  
+                      ru_start_index_80_2                                     :  6,  
+                      reserved_3b                                             :  2,  
+                      ru_start_index_80_1                                     :  6,  
+                      reserved_3a                                             :  2,  
+                      ru_start_index_80_0                                     :  6;  
+             uint32_t user_fd_rssi_seg0                                       : 32;  
+             uint32_t user_fd_rssi_seg1                                       : 32;  
+             uint32_t user_fd_rssi_seg2                                       : 32;  
+             uint32_t user_fd_rssi_seg3                                       : 32;  
+#endif
+};
+
+
+ 
+
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_OFFSET                                        0x00000000
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_LSB                                           0
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_MSB                                           15
+#define RECEIVE_USER_INFO_PHY_PPDU_ID_MASK                                          0x0000ffff
+
+
+ 
+
+#define RECEIVE_USER_INFO_USER_RSSI_OFFSET                                          0x00000000
+#define RECEIVE_USER_INFO_USER_RSSI_LSB                                             16
+#define RECEIVE_USER_INFO_USER_RSSI_MSB                                             23
+#define RECEIVE_USER_INFO_USER_RSSI_MASK                                            0x00ff0000
+
+
+ 
+
+#define RECEIVE_USER_INFO_PKT_TYPE_OFFSET                                           0x00000000
+#define RECEIVE_USER_INFO_PKT_TYPE_LSB                                              24
+#define RECEIVE_USER_INFO_PKT_TYPE_MSB                                              27
+#define RECEIVE_USER_INFO_PKT_TYPE_MASK                                             0x0f000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_STBC_OFFSET                                               0x00000000
+#define RECEIVE_USER_INFO_STBC_LSB                                                  28
+#define RECEIVE_USER_INFO_STBC_MSB                                                  28
+#define RECEIVE_USER_INFO_STBC_MASK                                                 0x10000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_OFFSET                                     0x00000000
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_LSB                                        29
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_MSB                                        31
+#define RECEIVE_USER_INFO_RECEPTION_TYPE_MASK                                       0xe0000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RATE_MCS_OFFSET                                           0x00000004
+#define RECEIVE_USER_INFO_RATE_MCS_LSB                                              0
+#define RECEIVE_USER_INFO_RATE_MCS_MSB                                              3
+#define RECEIVE_USER_INFO_RATE_MCS_MASK                                             0x0000000f
+
+
+ 
+
+#define RECEIVE_USER_INFO_SGI_OFFSET                                                0x00000004
+#define RECEIVE_USER_INFO_SGI_LSB                                                   4
+#define RECEIVE_USER_INFO_SGI_MSB                                                   5
+#define RECEIVE_USER_INFO_SGI_MASK                                                  0x00000030
+
+
+ 
+
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_OFFSET                                     0x00000004
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_LSB                                        6
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_MSB                                        6
+#define RECEIVE_USER_INFO_HE_RANGING_NDP_MASK                                       0x00000040
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_1A_OFFSET                                        0x00000004
+#define RECEIVE_USER_INFO_RESERVED_1A_LSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_1A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_1A_MASK                                          0x00000080
+
+
+ 
+
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_OFFSET                                     0x00000004
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_LSB                                        8
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MSB                                        15
+#define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MASK                                       0x0000ff00
+
+
+ 
+
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_OFFSET                                  0x00000004
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_LSB                                     16
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MSB                                     18
+#define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MASK                                    0x00070000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_1B_OFFSET                                        0x00000004
+#define RECEIVE_USER_INFO_RESERVED_1B_LSB                                           19
+#define RECEIVE_USER_INFO_RESERVED_1B_MSB                                           23
+#define RECEIVE_USER_INFO_RESERVED_1B_MASK                                          0x00f80000
+
+
+ 
+
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_OFFSET                                0x00000004
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_LSB                                   24
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MSB                                   31
+#define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MASK                                  0xff000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_OFFSET                           0x00000008
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_LSB                              0
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MSB                              0
+#define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MASK                             0x00000001
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_2A_OFFSET                                        0x00000008
+#define RECEIVE_USER_INFO_RESERVED_2A_LSB                                           1
+#define RECEIVE_USER_INFO_RESERVED_2A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_2A_MASK                                          0x000000fe
+
+
+ 
+
+#define RECEIVE_USER_INFO_NSS_OFFSET                                                0x00000008
+#define RECEIVE_USER_INFO_NSS_LSB                                                   8
+#define RECEIVE_USER_INFO_NSS_MSB                                                   10
+#define RECEIVE_USER_INFO_NSS_MASK                                                  0x00000700
+
+
+ 
+
+#define RECEIVE_USER_INFO_STREAM_OFFSET_OFFSET                                      0x00000008
+#define RECEIVE_USER_INFO_STREAM_OFFSET_LSB                                         11
+#define RECEIVE_USER_INFO_STREAM_OFFSET_MSB                                         13
+#define RECEIVE_USER_INFO_STREAM_OFFSET_MASK                                        0x00003800
+
+
+ 
+
+#define RECEIVE_USER_INFO_STA_DCM_OFFSET                                            0x00000008
+#define RECEIVE_USER_INFO_STA_DCM_LSB                                               14
+#define RECEIVE_USER_INFO_STA_DCM_MSB                                               14
+#define RECEIVE_USER_INFO_STA_DCM_MASK                                              0x00004000
+
+
+ 
+
+#define RECEIVE_USER_INFO_LDPC_OFFSET                                               0x00000008
+#define RECEIVE_USER_INFO_LDPC_LSB                                                  15
+#define RECEIVE_USER_INFO_LDPC_MSB                                                  15
+#define RECEIVE_USER_INFO_LDPC_MASK                                                 0x00008000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_LSB                                          16
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_MSB                                          19
+#define RECEIVE_USER_INFO_RU_TYPE_80_0_MASK                                         0x000f0000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_LSB                                          20
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_MSB                                          23
+#define RECEIVE_USER_INFO_RU_TYPE_80_1_MASK                                         0x00f00000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_LSB                                          24
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_MSB                                          27
+#define RECEIVE_USER_INFO_RU_TYPE_80_2_MASK                                         0x0f000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_OFFSET                                       0x00000008
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_LSB                                          28
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_MSB                                          31
+#define RECEIVE_USER_INFO_RU_TYPE_80_3_MASK                                         0xf0000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_LSB                                   0
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MSB                                   5
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MASK                                  0x0000003f
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_3A_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3A_LSB                                           6
+#define RECEIVE_USER_INFO_RESERVED_3A_MSB                                           7
+#define RECEIVE_USER_INFO_RESERVED_3A_MASK                                          0x000000c0
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_LSB                                   8
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MSB                                   13
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MASK                                  0x00003f00
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_3B_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3B_LSB                                           14
+#define RECEIVE_USER_INFO_RESERVED_3B_MSB                                           15
+#define RECEIVE_USER_INFO_RESERVED_3B_MASK                                          0x0000c000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_LSB                                   16
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MSB                                   21
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MASK                                  0x003f0000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_3C_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3C_LSB                                           22
+#define RECEIVE_USER_INFO_RESERVED_3C_MSB                                           23
+#define RECEIVE_USER_INFO_RESERVED_3C_MASK                                          0x00c00000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_OFFSET                                0x0000000c
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_LSB                                   24
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MSB                                   29
+#define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MASK                                  0x3f000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_RESERVED_3D_OFFSET                                        0x0000000c
+#define RECEIVE_USER_INFO_RESERVED_3D_LSB                                           30
+#define RECEIVE_USER_INFO_RESERVED_3D_MSB                                           31
+#define RECEIVE_USER_INFO_RESERVED_3D_MASK                                          0xc0000000
+
+
+ 
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_OFFSET                                  0x00000010
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MASK                                    0xffffffff
+
+
+ 
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_OFFSET                                  0x00000014
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MASK                                    0xffffffff
+
+
+ 
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_OFFSET                                  0x00000018
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MASK                                    0xffffffff
+
+
+ 
+
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_OFFSET                                  0x0000001c
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_LSB                                     0
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MSB                                     31
+#define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MASK                                    0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/received_response_user_15_8.h b/hw/qcn9224/v2/received_response_user_15_8.h
similarity index 100%
copy from hw/qcn9224/received_response_user_15_8.h
copy to hw/qcn9224/v2/received_response_user_15_8.h
diff --git a/hw/qcn9224/received_response_user_23_16.h b/hw/qcn9224/v2/received_response_user_23_16.h
similarity index 100%
copy from hw/qcn9224/received_response_user_23_16.h
copy to hw/qcn9224/v2/received_response_user_23_16.h
diff --git a/hw/qcn9224/received_response_user_31_24.h b/hw/qcn9224/v2/received_response_user_31_24.h
similarity index 100%
copy from hw/qcn9224/received_response_user_31_24.h
copy to hw/qcn9224/v2/received_response_user_31_24.h
diff --git a/hw/qcn9224/received_response_user_36_32.h b/hw/qcn9224/v2/received_response_user_36_32.h
similarity index 100%
copy from hw/qcn9224/received_response_user_36_32.h
copy to hw/qcn9224/v2/received_response_user_36_32.h
diff --git a/hw/qcn9224/received_response_user_7_0.h b/hw/qcn9224/v2/received_response_user_7_0.h
similarity index 100%
copy from hw/qcn9224/received_response_user_7_0.h
copy to hw/qcn9224/v2/received_response_user_7_0.h
diff --git a/hw/qcn9224/v2/received_response_user_info.h b/hw/qcn9224/v2/received_response_user_info.h
new file mode 100644
index 0000000..2beefb5
--- /dev/null
+++ b/hw/qcn9224/v2/received_response_user_info.h
@@ -0,0 +1,312 @@
+
+/* 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 _RECEIVED_RESPONSE_USER_INFO_H_
+#define _RECEIVED_RESPONSE_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVED_RESPONSE_USER_INFO 8
+
+
+struct received_response_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t mpdu_fcs_pass_count                                     : 12,  
+                      mpdu_fcs_fail_count                                     : 12,  
+                      qosnull_frame_count                                     :  4,  
+                      reserved_0a                                             :  3,  
+                      user_info_valid                                         :  1;  
+             uint32_t null_delimiter_count                                    : 22,  
+                      reserved_1a                                             :  9,  
+                      ht_control_valid                                        :  1;  
+             uint32_t ht_control                                              : 32;  
+             uint32_t qos_control_valid                                       : 16,  
+                      eosp                                                    : 16;  
+             uint32_t qos_control_15_8_tid_0                                  :  8,  
+                      qos_control_15_8_tid_1                                  :  8,  
+                      qos_control_15_8_tid_2                                  :  8,  
+                      qos_control_15_8_tid_3                                  :  8;  
+             uint32_t qos_control_15_8_tid_4                                  :  8,  
+                      qos_control_15_8_tid_5                                  :  8,  
+                      qos_control_15_8_tid_6                                  :  8,  
+                      qos_control_15_8_tid_7                                  :  8;  
+             uint32_t qos_control_15_8_tid_8                                  :  8,  
+                      qos_control_15_8_tid_9                                  :  8,  
+                      qos_control_15_8_tid_10                                 :  8,  
+                      qos_control_15_8_tid_11                                 :  8;  
+             uint32_t qos_control_15_8_tid_12                                 :  8,  
+                      qos_control_15_8_tid_13                                 :  8,  
+                      qos_control_15_8_tid_14                                 :  8,  
+                      qos_control_15_8_tid_15                                 :  8;  
+#else
+             uint32_t user_info_valid                                         :  1,  
+                      reserved_0a                                             :  3,  
+                      qosnull_frame_count                                     :  4,  
+                      mpdu_fcs_fail_count                                     : 12,  
+                      mpdu_fcs_pass_count                                     : 12;  
+             uint32_t ht_control_valid                                        :  1,  
+                      reserved_1a                                             :  9,  
+                      null_delimiter_count                                    : 22;  
+             uint32_t ht_control                                              : 32;  
+             uint32_t eosp                                                    : 16,  
+                      qos_control_valid                                       : 16;  
+             uint32_t qos_control_15_8_tid_3                                  :  8,  
+                      qos_control_15_8_tid_2                                  :  8,  
+                      qos_control_15_8_tid_1                                  :  8,  
+                      qos_control_15_8_tid_0                                  :  8;  
+             uint32_t qos_control_15_8_tid_7                                  :  8,  
+                      qos_control_15_8_tid_6                                  :  8,  
+                      qos_control_15_8_tid_5                                  :  8,  
+                      qos_control_15_8_tid_4                                  :  8;  
+             uint32_t qos_control_15_8_tid_11                                 :  8,  
+                      qos_control_15_8_tid_10                                 :  8,  
+                      qos_control_15_8_tid_9                                  :  8,  
+                      qos_control_15_8_tid_8                                  :  8;  
+             uint32_t qos_control_15_8_tid_15                                 :  8,  
+                      qos_control_15_8_tid_14                                 :  8,  
+                      qos_control_15_8_tid_13                                 :  8,  
+                      qos_control_15_8_tid_12                                 :  8;  
+#endif
+};
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_LSB                         0
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MSB                         11
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_PASS_COUNT_MASK                        0x00000fff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_LSB                         12
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MSB                         23
+#define RECEIVED_RESPONSE_USER_INFO_MPDU_FCS_FAIL_COUNT_MASK                        0x00fff000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_OFFSET                      0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_LSB                         24
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MSB                         27
+#define RECEIVED_RESPONSE_USER_INFO_QOSNULL_FRAME_COUNT_MASK                        0x0f000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_OFFSET                              0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_LSB                                 28
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MSB                                 30
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_0A_MASK                                0x70000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_OFFSET                          0x00000000
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_LSB                             31
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MSB                             31
+#define RECEIVED_RESPONSE_USER_INFO_USER_INFO_VALID_MASK                            0x80000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_OFFSET                     0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_LSB                        0
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MSB                        21
+#define RECEIVED_RESPONSE_USER_INFO_NULL_DELIMITER_COUNT_MASK                       0x003fffff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_OFFSET                              0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_LSB                                 22
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MSB                                 30
+#define RECEIVED_RESPONSE_USER_INFO_RESERVED_1A_MASK                                0x7fc00000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_OFFSET                         0x00000004
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_LSB                            31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MSB                            31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_VALID_MASK                           0x80000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_OFFSET                               0x00000008
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_LSB                                  0
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MSB                                  31
+#define RECEIVED_RESPONSE_USER_INFO_HT_CONTROL_MASK                                 0xffffffff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_OFFSET                        0x0000000c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_LSB                           0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MSB                           15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_VALID_MASK                          0x0000ffff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_OFFSET                                     0x0000000c
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_LSB                                        16
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_MSB                                        31
+#define RECEIVED_RESPONSE_USER_INFO_EOSP_MASK                                       0xffff0000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_0_MASK                     0x000000ff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_1_MASK                     0x0000ff00
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_LSB                      16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MSB                      23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_2_MASK                     0x00ff0000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_OFFSET                   0x00000010
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_LSB                      24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MSB                      31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_3_MASK                     0xff000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_4_MASK                     0x000000ff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_5_MASK                     0x0000ff00
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_LSB                      16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MSB                      23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_6_MASK                     0x00ff0000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_OFFSET                   0x00000014
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_LSB                      24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MSB                      31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_7_MASK                     0xff000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_OFFSET                   0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_LSB                      0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MSB                      7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_8_MASK                     0x000000ff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_OFFSET                   0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_LSB                      8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MSB                      15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_9_MASK                     0x0000ff00
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_OFFSET                  0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_LSB                     16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MSB                     23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_10_MASK                    0x00ff0000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_OFFSET                  0x00000018
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_LSB                     24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MSB                     31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_11_MASK                    0xff000000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_LSB                     0
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MSB                     7
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_12_MASK                    0x000000ff
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_LSB                     8
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MSB                     15
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_13_MASK                    0x0000ff00
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_LSB                     16
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MSB                     23
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_14_MASK                    0x00ff0000
+
+
+ 
+
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_OFFSET                  0x0000001c
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_LSB                     24
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MSB                     31
+#define RECEIVED_RESPONSE_USER_INFO_QOS_CONTROL_15_8_TID_15_MASK                    0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/received_trigger_info.h b/hw/qcn9224/v2/received_trigger_info.h
similarity index 100%
copy from hw/qcn9224/received_trigger_info.h
copy to hw/qcn9224/v2/received_trigger_info.h
diff --git a/hw/qcn9224/v2/received_trigger_info_details.h b/hw/qcn9224/v2/received_trigger_info_details.h
new file mode 100644
index 0000000..d49739f
--- /dev/null
+++ b/hw/qcn9224/v2/received_trigger_info_details.h
@@ -0,0 +1,212 @@
+
+/* 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 _RECEIVED_TRIGGER_INFO_DETAILS_H_
+#define _RECEIVED_TRIGGER_INFO_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO_DETAILS 5
+
+
+struct received_trigger_info_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t trigger_type                                            :  4,  
+                      ax_trigger_source                                       :  1,  
+                      ax_trigger_type                                         :  4,  
+                      trigger_source_sta_full_aid                             : 13,  
+                      frame_control_valid                                     :  1,  
+                      qos_control_valid                                       :  1,  
+                      he_control_info_valid                                   :  1,  
+                      ranging_trigger_subtype                                 :  4,  
+                      reserved_0b                                             :  3;  
+             uint32_t phy_ppdu_id                                             : 16,  
+                      lsig_response_length                                    : 12,  
+                      reserved_1a                                             :  4;  
+             uint32_t frame_control                                           : 16,  
+                      qos_control                                             : 16;  
+             uint32_t sw_peer_id                                              : 16,  
+                      reserved_3a                                             : 16;  
+             uint32_t he_control                                              : 32;  
+#else
+             uint32_t reserved_0b                                             :  3,  
+                      ranging_trigger_subtype                                 :  4,  
+                      he_control_info_valid                                   :  1,  
+                      qos_control_valid                                       :  1,  
+                      frame_control_valid                                     :  1,  
+                      trigger_source_sta_full_aid                             : 13,  
+                      ax_trigger_type                                         :  4,  
+                      ax_trigger_source                                       :  1,  
+                      trigger_type                                            :  4;  
+             uint32_t reserved_1a                                             :  4,  
+                      lsig_response_length                                    : 12,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t qos_control                                             : 16,  
+                      frame_control                                           : 16;  
+             uint32_t reserved_3a                                             : 16,  
+                      sw_peer_id                                              : 16;  
+             uint32_t he_control                                              : 32;  
+#endif
+};
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_OFFSET                           0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_LSB                              0
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MSB                              3
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_TYPE_MASK                             0x0000000f
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_OFFSET                      0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_LSB                         4
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MSB                         4
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_SOURCE_MASK                        0x00000010
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_OFFSET                        0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_LSB                           5
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MSB                           8
+#define RECEIVED_TRIGGER_INFO_DETAILS_AX_TRIGGER_TYPE_MASK                          0x000001e0
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET            0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB               9
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB               21
+#define RECEIVED_TRIGGER_INFO_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK              0x003ffe00
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_OFFSET                    0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_LSB                       22
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MSB                       22
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_VALID_MASK                      0x00400000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_OFFSET                      0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_LSB                         23
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MSB                         23
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_VALID_MASK                        0x00800000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_OFFSET                  0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_LSB                     24
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MSB                     24
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_INFO_VALID_MASK                    0x01000000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET                0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB                   25
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB                   28
+#define RECEIVED_TRIGGER_INFO_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK                  0x1e000000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_OFFSET                            0x00000000
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_LSB                               29
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_0B_MASK                              0xe0000000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_OFFSET                            0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_LSB                               0
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MSB                               15
+#define RECEIVED_TRIGGER_INFO_DETAILS_PHY_PPDU_ID_MASK                              0x0000ffff
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET                   0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_LSB                      16
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MSB                      27
+#define RECEIVED_TRIGGER_INFO_DETAILS_LSIG_RESPONSE_LENGTH_MASK                     0x0fff0000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_OFFSET                            0x00000004
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_LSB                               28
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_1A_MASK                              0xf0000000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_OFFSET                          0x00000008
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_LSB                             0
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MSB                             15
+#define RECEIVED_TRIGGER_INFO_DETAILS_FRAME_CONTROL_MASK                            0x0000ffff
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_OFFSET                            0x00000008
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_LSB                               16
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_QOS_CONTROL_MASK                              0xffff0000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_OFFSET                             0x0000000c
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_LSB                                0
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MSB                                15
+#define RECEIVED_TRIGGER_INFO_DETAILS_SW_PEER_ID_MASK                               0x0000ffff
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_OFFSET                            0x0000000c
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_LSB                               16
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MSB                               31
+#define RECEIVED_TRIGGER_INFO_DETAILS_RESERVED_3A_MASK                              0xffff0000
+
+
+ 
+
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_OFFSET                             0x00000010
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_LSB                                0
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MSB                                31
+#define RECEIVED_TRIGGER_INFO_DETAILS_HE_CONTROL_MASK                               0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_descriptor_threshold_reached_status.h b/hw/qcn9224/v2/reo_descriptor_threshold_reached_status.h
new file mode 100644
index 0000000..9a4b76e
--- /dev/null
+++ b/hw/qcn9224/v2/reo_descriptor_threshold_reached_status.h
@@ -0,0 +1,390 @@
+
+/* 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 _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
+#define _REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 26
+
+#define NUM_OF_QWORDS_REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS 13
+
+
+struct reo_descriptor_threshold_reached_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t threshold_index                                         :  2,  
+                      reserved_2                                              : 30;  
+             uint32_t link_descriptor_counter0                                : 24,  
+                      reserved_3                                              :  8;  
+             uint32_t link_descriptor_counter1                                : 24,  
+                      reserved_4                                              :  8;  
+             uint32_t link_descriptor_counter2                                : 24,  
+                      reserved_5                                              :  8;  
+             uint32_t link_descriptor_counter_sum                             : 26,  
+                      reserved_6                                              :  6;  
+             uint32_t reserved_7                                              : 32;  
+             uint32_t reserved_8                                              : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2                                              : 30,  
+                      threshold_index                                         :  2;  
+             uint32_t reserved_3                                              :  8,  
+                      link_descriptor_counter0                                : 24;  
+             uint32_t reserved_4                                              :  8,  
+                      link_descriptor_counter1                                : 24;  
+             uint32_t reserved_5                                              :  8,  
+                      link_descriptor_counter2                                : 24;  
+             uint32_t reserved_6                                              :  6,  
+                      link_descriptor_counter_sum                             : 26;  
+             uint32_t reserved_7                                              : 32;  
+             uint32_t reserved_8                                              : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB 15
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x000000000000ffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB 25
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x0000000003ff0000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB 27
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x000000000c000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET    0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_LSB       28
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MSB       31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_RESERVED_0A_MASK      0x00000000f0000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET      0x0000000000000000
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_LSB         32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MSB         63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_STATUS_HEADER_TIMESTAMP_MASK        0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_OFFSET              0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_LSB                 0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MSB                 1
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_THRESHOLD_INDEX_MASK                0x0000000000000003
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_OFFSET                   0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_LSB                      2
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_2_MASK                     0x00000000fffffffc
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_OFFSET     0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_LSB        32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MSB        55
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER0_MASK       0x00ffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_OFFSET                   0x0000000000000008
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_LSB                      56
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_3_MASK                     0xff00000000000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_OFFSET     0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_LSB        0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MSB        23
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER1_MASK       0x0000000000ffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_OFFSET                   0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_LSB                      24
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_4_MASK                     0x00000000ff000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_OFFSET     0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_LSB        32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MSB        55
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER2_MASK       0x00ffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_OFFSET                   0x0000000000000010
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_LSB                      56
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_5_MASK                     0xff00000000000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_OFFSET  0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_LSB     0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MSB     25
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LINK_DESCRIPTOR_COUNTER_SUM_MASK    0x0000000003ffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_OFFSET                   0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_LSB                      26
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_6_MASK                     0x00000000fc000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_OFFSET                   0x0000000000000018
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_LSB                      32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MSB                      63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_7_MASK                     0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_OFFSET                   0x0000000000000020
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_LSB                      0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MSB                      31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_8_MASK                     0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_OFFSET                  0x0000000000000020
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_LSB                     32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MSB                     63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_9A_MASK                    0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_OFFSET                 0x0000000000000028
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_10A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_OFFSET                 0x0000000000000028
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_11A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_OFFSET                 0x0000000000000030
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_12A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_OFFSET                 0x0000000000000030
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_13A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_OFFSET                 0x0000000000000038
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_14A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_OFFSET                 0x0000000000000038
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_15A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_OFFSET                 0x0000000000000040
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_16A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_OFFSET                 0x0000000000000040
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_17A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_OFFSET                 0x0000000000000048
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_18A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_OFFSET                 0x0000000000000048
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_19A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_OFFSET                 0x0000000000000050
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_20A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_OFFSET                 0x0000000000000050
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_21A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_OFFSET                 0x0000000000000058
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_22A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_OFFSET                 0x0000000000000058
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MSB                    63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_23A_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_OFFSET                 0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_LSB                    0
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MSB                    31
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_24A_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_OFFSET                 0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_LSB                    32
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MSB                    59
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_RESERVED_25A_MASK                   0x0fffffff00000000
+
+
+ 
+
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_OFFSET                0x0000000000000060
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_LSB                   60
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MSB                   63
+#define REO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_LOOPING_COUNT_MASK                  0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_destination_ring.h b/hw/qcn9224/v2/reo_destination_ring.h
new file mode 100644
index 0000000..17d02b3
--- /dev/null
+++ b/hw/qcn9224/v2/reo_destination_ring.h
@@ -0,0 +1,434 @@
+
+/* 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 _REO_DESTINATION_RING_H_
+#define _REO_DESTINATION_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_REO_DESTINATION_RING 8
+
+
+struct reo_destination_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_or_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t reo_dest_buffer_type                                    :  1,  
+                      reo_push_reason                                         :  2,  
+                      reo_error_code                                          :  5,  
+                      captured_msdu_data_size                                 :  4,  
+                      sw_exception                                            :  1,  
+                      src_link_id                                             :  3,  
+                      reo_destination_struct_signature                        :  4,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   buffer_addr_info                                          buf_or_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reo_destination_struct_signature                        :  4,  
+                      src_link_id                                             :  3,  
+                      sw_exception                                            :  1,  
+                      captured_msdu_data_size                                 :  4,  
+                      reo_error_code                                          :  5,  
+                      reo_push_reason                                         :  2,  
+                      reo_dest_buffer_type                                    :  1;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET     0x00000000
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB        0
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB        31
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK       0xffffffff
+
+
+ 
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET    0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB       0
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB       7
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK      0x000000ff
+
+
+ 
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB   8
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB   11
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK  0x00000f00
+
+
+ 
+
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET     0x00000004
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB        12
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB        31
+#define REO_DESTINATION_RING_BUF_OR_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK       0xfffff000
+
+
+ 
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET            0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB               0
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB               7
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK              0x000000ff
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET         0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB            8
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB            8
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK           0x00000100
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET        0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB           9
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB           9
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK          0x00000200
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET            0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB               10
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB               10
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK              0x00000400
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET             0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                11
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                11
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK               0x00000800
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET              0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                 13
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                 13
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                0x00002000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET    0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB       14
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB       14
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK      0x00004000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET              0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                 15
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                 26
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                0x07ff8000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB   27
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB   27
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK  0x08000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                   0x00000008
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                      28
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                      31
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                     0xf0000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET        0x0000000c
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB           0
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB           31
+#define REO_DESTINATION_RING_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK          0xffffffff
+
+
+ 
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB  0
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB  0
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK 0x00000001
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB   1
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB   1
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK  0x00000002
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET     0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB        2
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB        2
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK       0x00000004
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB              3
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB              16
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK             0x0001fff8
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET             0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                17
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                17
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK               0x00020000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB              18
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB              18
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK             0x00040000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET           0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB              19
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB              19
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK             0x00080000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET            0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB               20
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB               20
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK              0x00100000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB    21
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB    21
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK   0x00200000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET   0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB      22
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB      22
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK     0x00400000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET        0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB           23
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB           23
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK          0x00800000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                    24
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                    24
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                   0x01000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                 0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                    25
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                    25
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                   0x02000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET             0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                26
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                26
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK               0x04000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET          0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB             27
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB             28
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK            0x18000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET          0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB             29
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB             30
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK            0x60000000
+
+
+ 
+
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET     0x00000010
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB        31
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB        31
+#define REO_DESTINATION_RING_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK       0x80000000
+
+
+ 
+
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_OFFSET                           0x00000014
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_LSB                              0
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_MSB                              31
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_31_0_MASK                             0xffffffff
+
+
+ 
+
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_OFFSET                          0x00000018
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_LSB                             0
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_MSB                             31
+#define REO_DESTINATION_RING_BUFFER_VIRT_ADDR_63_32_MASK                            0xffffffff
+
+
+ 
+
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_OFFSET                            0x0000001c
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_LSB                               0
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_MSB                               0
+#define REO_DESTINATION_RING_REO_DEST_BUFFER_TYPE_MASK                              0x00000001
+
+
+ 
+
+#define REO_DESTINATION_RING_REO_PUSH_REASON_OFFSET                                 0x0000001c
+#define REO_DESTINATION_RING_REO_PUSH_REASON_LSB                                    1
+#define REO_DESTINATION_RING_REO_PUSH_REASON_MSB                                    2
+#define REO_DESTINATION_RING_REO_PUSH_REASON_MASK                                   0x00000006
+
+
+ 
+
+#define REO_DESTINATION_RING_REO_ERROR_CODE_OFFSET                                  0x0000001c
+#define REO_DESTINATION_RING_REO_ERROR_CODE_LSB                                     3
+#define REO_DESTINATION_RING_REO_ERROR_CODE_MSB                                     7
+#define REO_DESTINATION_RING_REO_ERROR_CODE_MASK                                    0x000000f8
+
+
+ 
+
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_OFFSET                         0x0000001c
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_LSB                            8
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_MSB                            11
+#define REO_DESTINATION_RING_CAPTURED_MSDU_DATA_SIZE_MASK                           0x00000f00
+
+
+ 
+
+#define REO_DESTINATION_RING_SW_EXCEPTION_OFFSET                                    0x0000001c
+#define REO_DESTINATION_RING_SW_EXCEPTION_LSB                                       12
+#define REO_DESTINATION_RING_SW_EXCEPTION_MSB                                       12
+#define REO_DESTINATION_RING_SW_EXCEPTION_MASK                                      0x00001000
+
+
+ 
+
+#define REO_DESTINATION_RING_SRC_LINK_ID_OFFSET                                     0x0000001c
+#define REO_DESTINATION_RING_SRC_LINK_ID_LSB                                        13
+#define REO_DESTINATION_RING_SRC_LINK_ID_MSB                                        15
+#define REO_DESTINATION_RING_SRC_LINK_ID_MASK                                       0x0000e000
+
+
+ 
+
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_OFFSET                0x0000001c
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_LSB                   16
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_MSB                   19
+#define REO_DESTINATION_RING_REO_DESTINATION_STRUCT_SIGNATURE_MASK                  0x000f0000
+
+
+ 
+
+#define REO_DESTINATION_RING_RING_ID_OFFSET                                         0x0000001c
+#define REO_DESTINATION_RING_RING_ID_LSB                                            20
+#define REO_DESTINATION_RING_RING_ID_MSB                                            27
+#define REO_DESTINATION_RING_RING_ID_MASK                                           0x0ff00000
+
+
+ 
+
+#define REO_DESTINATION_RING_LOOPING_COUNT_OFFSET                                   0x0000001c
+#define REO_DESTINATION_RING_LOOPING_COUNT_LSB                                      28
+#define REO_DESTINATION_RING_LOOPING_COUNT_MSB                                      31
+#define REO_DESTINATION_RING_LOOPING_COUNT_MASK                                     0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_entrance_ring.h b/hw/qcn9224/v2/reo_entrance_ring.h
new file mode 100644
index 0000000..c3229eb
--- /dev/null
+++ b/hw/qcn9224/v2/reo_entrance_ring.h
@@ -0,0 +1,382 @@
+
+/* 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 _REO_ENTRANCE_RING_H_
+#define _REO_ENTRANCE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_details.h"
+#define NUM_OF_DWORDS_REO_ENTRANCE_RING 8
+
+
+struct reo_entrance_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8,  
+                      rounded_mpdu_byte_count                                 : 14,  
+                      reo_destination_indication                              :  5,  
+                      frameless_bar                                           :  1,  
+                      reserved_5a                                             :  4;  
+             uint32_t rxdma_push_reason                                       :  2,  
+                      rxdma_error_code                                        :  5,  
+                      mpdu_fragment_number                                    :  4,  
+                      sw_exception                                            :  1,  
+                      sw_exception_mpdu_delink                                :  1,  
+                      sw_exception_destination_ring_valid                     :  1,  
+                      sw_exception_destination_ring                           :  5,  
+                      mpdu_sequence_number                                    : 12,  
+                      reserved_6a                                             :  1;  
+             uint32_t phy_ppdu_id                                             : 16,  
+                      src_link_id                                             :  3,  
+                      reserved_7a                                             :  1,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t reserved_5a                                             :  4,  
+                      frameless_bar                                           :  1,  
+                      reo_destination_indication                              :  5,  
+                      rounded_mpdu_byte_count                                 : 14,  
+                      rx_reo_queue_desc_addr_39_32                            :  8;  
+             uint32_t reserved_6a                                             :  1,  
+                      mpdu_sequence_number                                    : 12,  
+                      sw_exception_destination_ring                           :  5,  
+                      sw_exception_destination_ring_valid                     :  1,  
+                      sw_exception_mpdu_delink                                :  1,  
+                      sw_exception                                            :  1,  
+                      mpdu_fragment_number                                    :  4,  
+                      rxdma_error_code                                        :  5,  
+                      rxdma_push_reason                                       :  2;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             :  1,  
+                      src_link_id                                             :  3,  
+                      phy_ppdu_id                                             : 16;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB 7
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK 0x000000ff
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB 8
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK 0x00000100
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB 9
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB 9
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK 0x00000200
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB 10
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB 10
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK 0x00000400
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB 11
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK 0x00000800
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB 13
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB 13
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK 0x00002000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB 14
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB 14
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB 15
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB 26
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK 0x07ff8000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET 0x00000008
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_LSB 28
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MASK 0xf0000000
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET 0x0000000c
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB 0
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB 31
+#define REO_ENTRANCE_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK 0xffffffff
+
+
+ 
+
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                        0x00000010
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                           0
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                           31
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                          0xffffffff
+
+
+ 
+
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                       0x00000014
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                          0
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                          7
+#define REO_ENTRANCE_RING_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                         0x000000ff
+
+
+ 
+
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_OFFSET                            0x00000014
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_LSB                               8
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_MSB                               21
+#define REO_ENTRANCE_RING_ROUNDED_MPDU_BYTE_COUNT_MASK                              0x003fff00
+
+
+ 
+
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_OFFSET                         0x00000014
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_LSB                            22
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_MSB                            26
+#define REO_ENTRANCE_RING_REO_DESTINATION_INDICATION_MASK                           0x07c00000
+
+
+ 
+
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_OFFSET                                      0x00000014
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_LSB                                         27
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_MSB                                         27
+#define REO_ENTRANCE_RING_FRAMELESS_BAR_MASK                                        0x08000000
+
+
+ 
+
+#define REO_ENTRANCE_RING_RESERVED_5A_OFFSET                                        0x00000014
+#define REO_ENTRANCE_RING_RESERVED_5A_LSB                                           28
+#define REO_ENTRANCE_RING_RESERVED_5A_MSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_5A_MASK                                          0xf0000000
+
+
+ 
+
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_OFFSET                                  0x00000018
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_LSB                                     0
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_MSB                                     1
+#define REO_ENTRANCE_RING_RXDMA_PUSH_REASON_MASK                                    0x00000003
+
+
+ 
+
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_OFFSET                                   0x00000018
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_LSB                                      2
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_MSB                                      6
+#define REO_ENTRANCE_RING_RXDMA_ERROR_CODE_MASK                                     0x0000007c
+
+
+ 
+
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_OFFSET                               0x00000018
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_LSB                                  7
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_MSB                                  10
+#define REO_ENTRANCE_RING_MPDU_FRAGMENT_NUMBER_MASK                                 0x00000780
+
+
+ 
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_OFFSET                                       0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_LSB                                          11
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MSB                                          11
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MASK                                         0x00000800
+
+
+ 
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_OFFSET                           0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_LSB                              12
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_MSB                              12
+#define REO_ENTRANCE_RING_SW_EXCEPTION_MPDU_DELINK_MASK                             0x00001000
+
+
+ 
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_OFFSET                0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_LSB                   13
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_MSB                   13
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_VALID_MASK                  0x00002000
+
+
+ 
+
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_OFFSET                      0x00000018
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_LSB                         14
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_MSB                         18
+#define REO_ENTRANCE_RING_SW_EXCEPTION_DESTINATION_RING_MASK                        0x0007c000
+
+
+ 
+
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_OFFSET                               0x00000018
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_LSB                                  19
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_MSB                                  30
+#define REO_ENTRANCE_RING_MPDU_SEQUENCE_NUMBER_MASK                                 0x7ff80000
+
+
+ 
+
+#define REO_ENTRANCE_RING_RESERVED_6A_OFFSET                                        0x00000018
+#define REO_ENTRANCE_RING_RESERVED_6A_LSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_6A_MSB                                           31
+#define REO_ENTRANCE_RING_RESERVED_6A_MASK                                          0x80000000
+
+
+ 
+
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_LSB                                           0
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_MSB                                           15
+#define REO_ENTRANCE_RING_PHY_PPDU_ID_MASK                                          0x0000ffff
+
+
+ 
+
+#define REO_ENTRANCE_RING_SRC_LINK_ID_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_SRC_LINK_ID_LSB                                           16
+#define REO_ENTRANCE_RING_SRC_LINK_ID_MSB                                           18
+#define REO_ENTRANCE_RING_SRC_LINK_ID_MASK                                          0x00070000
+
+
+ 
+
+#define REO_ENTRANCE_RING_RESERVED_7A_OFFSET                                        0x0000001c
+#define REO_ENTRANCE_RING_RESERVED_7A_LSB                                           19
+#define REO_ENTRANCE_RING_RESERVED_7A_MSB                                           19
+#define REO_ENTRANCE_RING_RESERVED_7A_MASK                                          0x00080000
+
+
+ 
+
+#define REO_ENTRANCE_RING_RING_ID_OFFSET                                            0x0000001c
+#define REO_ENTRANCE_RING_RING_ID_LSB                                               20
+#define REO_ENTRANCE_RING_RING_ID_MSB                                               27
+#define REO_ENTRANCE_RING_RING_ID_MASK                                              0x0ff00000
+
+
+ 
+
+#define REO_ENTRANCE_RING_LOOPING_COUNT_OFFSET                                      0x0000001c
+#define REO_ENTRANCE_RING_LOOPING_COUNT_LSB                                         28
+#define REO_ENTRANCE_RING_LOOPING_COUNT_MSB                                         31
+#define REO_ENTRANCE_RING_LOOPING_COUNT_MASK                                        0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_cache.h b/hw/qcn9224/v2/reo_flush_cache.h
new file mode 100644
index 0000000..527aae4
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_cache.h
@@ -0,0 +1,244 @@
+
+/* 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 _REO_FLUSH_CACHE_H_
+#define _REO_FLUSH_CACHE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_CACHE 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_CACHE 5
+
+
+struct reo_flush_cache {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_addr_31_0                                         : 32;  
+             uint32_t flush_addr_39_32                                        :  8,  
+                      forward_all_mpdus_in_queue                              :  1,  
+                      release_cache_block_index                               :  1,  
+                      cache_block_resource_index                              :  2,  
+                      flush_without_invalidate                                :  1,  
+                      block_cache_usage_after_flush                           :  1,  
+                      flush_entire_cache                                      :  1,  
+                      flush_queue_1k_desc                                     :  1,  
+                      reserved_2b                                             : 16;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_addr_31_0                                         : 32;  
+             uint32_t reserved_2b                                             : 16,  
+                      flush_queue_1k_desc                                     :  1,  
+                      flush_entire_cache                                      :  1,  
+                      block_cache_usage_after_flush                           :  1,  
+                      flush_without_invalidate                                :  1,  
+                      cache_block_resource_index                              :  2,  
+                      release_cache_block_index                               :  1,  
+                      forward_all_mpdus_in_queue                              :  1,  
+                      flush_addr_39_32                                        :  8;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                            0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_LSB                               0
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_MSB                               15
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_CMD_NUMBER_MASK                              0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                       0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                          16
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                          16
+#define REO_FLUSH_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                         0x0000000000010000
+
+
+ 
+
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_OFFSET                               0x0000000000000000
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_LSB                                  17
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_MSB                                  31
+#define REO_FLUSH_CACHE_CMD_HEADER_RESERVED_0A_MASK                                 0x00000000fffe0000
+
+
+ 
+
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_OFFSET                                      0x0000000000000000
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_LSB                                         32
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_MSB                                         63
+#define REO_FLUSH_CACHE_FLUSH_ADDR_31_0_MASK                                        0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_OFFSET                                     0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_LSB                                        0
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_MSB                                        7
+#define REO_FLUSH_CACHE_FLUSH_ADDR_39_32_MASK                                       0x00000000000000ff
+
+
+ 
+
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_LSB                              8
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_MSB                              8
+#define REO_FLUSH_CACHE_FORWARD_ALL_MPDUS_IN_QUEUE_MASK                             0x0000000000000100
+
+
+ 
+
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_OFFSET                            0x0000000000000008
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_LSB                               9
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_MSB                               9
+#define REO_FLUSH_CACHE_RELEASE_CACHE_BLOCK_INDEX_MASK                              0x0000000000000200
+
+
+ 
+
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_LSB                              10
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MSB                              11
+#define REO_FLUSH_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MASK                             0x0000000000000c00
+
+
+ 
+
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_OFFSET                             0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_LSB                                12
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_MSB                                12
+#define REO_FLUSH_CACHE_FLUSH_WITHOUT_INVALIDATE_MASK                               0x0000000000001000
+
+
+ 
+
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_OFFSET                        0x0000000000000008
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_LSB                           13
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_MSB                           13
+#define REO_FLUSH_CACHE_BLOCK_CACHE_USAGE_AFTER_FLUSH_MASK                          0x0000000000002000
+
+
+ 
+
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_LSB                                      14
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_MSB                                      14
+#define REO_FLUSH_CACHE_FLUSH_ENTIRE_CACHE_MASK                                     0x0000000000004000
+
+
+ 
+
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_OFFSET                                  0x0000000000000008
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_LSB                                     15
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_MSB                                     15
+#define REO_FLUSH_CACHE_FLUSH_QUEUE_1K_DESC_MASK                                    0x0000000000008000
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_2B_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_CACHE_RESERVED_2B_LSB                                             16
+#define REO_FLUSH_CACHE_RESERVED_2B_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_2B_MASK                                            0x00000000ffff0000
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_3A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_CACHE_RESERVED_3A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_3A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_3A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_4A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_CACHE_RESERVED_4A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_4A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_4A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_5A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_CACHE_RESERVED_5A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_5A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_5A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_6A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_CACHE_RESERVED_6A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_6A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_6A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_7A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_CACHE_RESERVED_7A_LSB                                             32
+#define REO_FLUSH_CACHE_RESERVED_7A_MSB                                             63
+#define REO_FLUSH_CACHE_RESERVED_7A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_RESERVED_8A_OFFSET                                          0x0000000000000020
+#define REO_FLUSH_CACHE_RESERVED_8A_LSB                                             0
+#define REO_FLUSH_CACHE_RESERVED_8A_MSB                                             31
+#define REO_FLUSH_CACHE_RESERVED_8A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_TLV64_PADDING_OFFSET                                        0x0000000000000020
+#define REO_FLUSH_CACHE_TLV64_PADDING_LSB                                           32
+#define REO_FLUSH_CACHE_TLV64_PADDING_MSB                                           63
+#define REO_FLUSH_CACHE_TLV64_PADDING_MASK                                          0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_cache_status.h b/hw/qcn9224/v2/reo_flush_cache_status.h
new file mode 100644
index 0000000..60aa601
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_cache_status.h
@@ -0,0 +1,430 @@
+
+/* 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 _REO_FLUSH_CACHE_STATUS_H_
+#define _REO_FLUSH_CACHE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_CACHE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_CACHE_STATUS 13
+
+
+struct reo_flush_cache_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1,  
+                      block_error_details                                     :  2,  
+                      reserved_2a                                             :  5,  
+                      cache_controller_flush_status_hit                       :  1,  
+                      cache_controller_flush_status_desc_type                 :  3,  
+                      cache_controller_flush_status_client_id                 :  4,  
+                      cache_controller_flush_status_error                     :  2,  
+                      cache_controller_flush_count                            :  8,  
+                      flush_queue_1k_desc                                     :  1,  
+                      reserved_2b                                             :  5;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2b                                             :  5,  
+                      flush_queue_1k_desc                                     :  1,  
+                      cache_controller_flush_count                            :  8,  
+                      cache_controller_flush_status_error                     :  2,  
+                      cache_controller_flush_status_client_id                 :  4,  
+                      cache_controller_flush_status_desc_type                 :  3,  
+                      cache_controller_flush_status_hit                       :  1,  
+                      reserved_2a                                             :  5,  
+                      block_error_details                                     :  2,  
+                      error_detected                                          :  1;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET               0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                  0
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                  15
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK                 0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET              0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                 16
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                 25
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                0x0000000003ff0000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET        0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB           26
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB           27
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK          0x000000000c000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                     0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                        28
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                        31
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                       0x00000000f0000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                       0x0000000000000000
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                          32
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                          63
+#define REO_FLUSH_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                         0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_OFFSET                                0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_LSB                                   0
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_MSB                                   0
+#define REO_FLUSH_CACHE_STATUS_ERROR_DETECTED_MASK                                  0x0000000000000001
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_LSB                              1
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_MSB                              2
+#define REO_FLUSH_CACHE_STATUS_BLOCK_ERROR_DETAILS_MASK                             0x0000000000000006
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_LSB                                      3
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_MSB                                      7
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2A_MASK                                     0x00000000000000f8
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_OFFSET             0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_LSB                8
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_MSB                8
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_HIT_MASK               0x0000000000000100
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_OFFSET       0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_LSB          9
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_MSB          11
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_DESC_TYPE_MASK         0x0000000000000e00
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_OFFSET       0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_LSB          12
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_MSB          15
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_CLIENT_ID_MASK         0x000000000000f000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_OFFSET           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_LSB              16
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_MSB              17
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_STATUS_ERROR_MASK             0x0000000000030000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_OFFSET                  0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_LSB                     18
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_MSB                     25
+#define REO_FLUSH_CACHE_STATUS_CACHE_CONTROLLER_FLUSH_COUNT_MASK                    0x0000000003fc0000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_OFFSET                           0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_LSB                              26
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_MSB                              26
+#define REO_FLUSH_CACHE_STATUS_FLUSH_QUEUE_1K_DESC_MASK                             0x0000000004000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_LSB                                      27
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_2B_MASK                                     0x00000000f8000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_LSB                                      32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_MSB                                      63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_9A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_10A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_11A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_12A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_13A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_14A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_15A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_16A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_17A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_18A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_19A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_20A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_21A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_22A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_MSB                                     63
+#define REO_FLUSH_CACHE_STATUS_RESERVED_23A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_LSB                                     0
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_MSB                                     31
+#define REO_FLUSH_CACHE_STATUS_RESERVED_24A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_LSB                                     32
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_MSB                                     59
+#define REO_FLUSH_CACHE_STATUS_RESERVED_25A_MASK                                    0x0fffffff00000000
+
+
+ 
+
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_OFFSET                                 0x0000000000000060
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_LSB                                    60
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_MSB                                    63
+#define REO_FLUSH_CACHE_STATUS_LOOPING_COUNT_MASK                                   0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_queue.h b/hw/qcn9224/v2/reo_flush_queue.h
new file mode 100644
index 0000000..33ec91d
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_queue.h
@@ -0,0 +1,194 @@
+
+/* 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 _REO_FLUSH_QUEUE_H_
+#define _REO_FLUSH_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_QUEUE 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_QUEUE 5
+
+
+struct reo_flush_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_desc_addr_31_0                                    : 32;  
+             uint32_t flush_desc_addr_39_32                                   :  8,  
+                      block_desc_addr_usage_after_flush                       :  1,  
+                      block_resource_index                                    :  2,  
+                      reserved_2a                                             : 21;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t flush_desc_addr_31_0                                    : 32;  
+             uint32_t reserved_2a                                             : 21,  
+                      block_resource_index                                    :  2,  
+                      block_desc_addr_usage_after_flush                       :  1,  
+                      flush_desc_addr_39_32                                   :  8;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                            0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_LSB                               0
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MSB                               15
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MASK                              0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                       0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                          16
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                          16
+#define REO_FLUSH_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                         0x0000000000010000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_OFFSET                               0x0000000000000000
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_LSB                                  17
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_MSB                                  31
+#define REO_FLUSH_QUEUE_CMD_HEADER_RESERVED_0A_MASK                                 0x00000000fffe0000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_OFFSET                                 0x0000000000000000
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_LSB                                    32
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_MSB                                    63
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_31_0_MASK                                   0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_OFFSET                                0x0000000000000008
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_LSB                                   0
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_MSB                                   7
+#define REO_FLUSH_QUEUE_FLUSH_DESC_ADDR_39_32_MASK                                  0x00000000000000ff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_OFFSET                    0x0000000000000008
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_LSB                       8
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_MSB                       8
+#define REO_FLUSH_QUEUE_BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH_MASK                      0x0000000000000100
+
+
+ 
+
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_OFFSET                                 0x0000000000000008
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_LSB                                    9
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_MSB                                    10
+#define REO_FLUSH_QUEUE_BLOCK_RESOURCE_INDEX_MASK                                   0x0000000000000600
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_2A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_QUEUE_RESERVED_2A_LSB                                             11
+#define REO_FLUSH_QUEUE_RESERVED_2A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_2A_MASK                                            0x00000000fffff800
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_3A_OFFSET                                          0x0000000000000008
+#define REO_FLUSH_QUEUE_RESERVED_3A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_3A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_3A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_4A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_QUEUE_RESERVED_4A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_4A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_4A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_5A_OFFSET                                          0x0000000000000010
+#define REO_FLUSH_QUEUE_RESERVED_5A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_5A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_5A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_6A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_QUEUE_RESERVED_6A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_6A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_6A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_7A_OFFSET                                          0x0000000000000018
+#define REO_FLUSH_QUEUE_RESERVED_7A_LSB                                             32
+#define REO_FLUSH_QUEUE_RESERVED_7A_MSB                                             63
+#define REO_FLUSH_QUEUE_RESERVED_7A_MASK                                            0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_RESERVED_8A_OFFSET                                          0x0000000000000020
+#define REO_FLUSH_QUEUE_RESERVED_8A_LSB                                             0
+#define REO_FLUSH_QUEUE_RESERVED_8A_MSB                                             31
+#define REO_FLUSH_QUEUE_RESERVED_8A_MASK                                            0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_TLV64_PADDING_OFFSET                                        0x0000000000000020
+#define REO_FLUSH_QUEUE_TLV64_PADDING_LSB                                           32
+#define REO_FLUSH_QUEUE_TLV64_PADDING_MSB                                           63
+#define REO_FLUSH_QUEUE_TLV64_PADDING_MASK                                          0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_queue_status.h b/hw/qcn9224/v2/reo_flush_queue_status.h
new file mode 100644
index 0000000..d2174eb
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_queue_status.h
@@ -0,0 +1,350 @@
+
+/* 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 _REO_FLUSH_QUEUE_STATUS_H_
+#define _REO_FLUSH_QUEUE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_QUEUE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_QUEUE_STATUS 13
+
+
+struct reo_flush_queue_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1,  
+                      reserved_2a                                             : 31;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 31,  
+                      error_detected                                          :  1;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET               0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                  0
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                  15
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK                 0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET              0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                 16
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                 25
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                0x0000000003ff0000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET        0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB           26
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB           27
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK          0x000000000c000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                     0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                        28
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                        31
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                       0x00000000f0000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                       0x0000000000000000
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                          32
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                          63
+#define REO_FLUSH_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                         0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_OFFSET                                0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_LSB                                   0
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_MSB                                   0
+#define REO_FLUSH_QUEUE_STATUS_ERROR_DETECTED_MASK                                  0x0000000000000001
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_LSB                                      1
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_2A_MASK                                     0x00000000fffffffe
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_LSB                                      32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_MSB                                      63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_9A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_10A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_OFFSET                                  0x0000000000000028
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_11A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_12A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_OFFSET                                  0x0000000000000030
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_13A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_14A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_OFFSET                                  0x0000000000000038
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_15A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_16A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_OFFSET                                  0x0000000000000040
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_17A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_18A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_OFFSET                                  0x0000000000000048
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_19A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_20A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_OFFSET                                  0x0000000000000050
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_21A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_22A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_MSB                                     63
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_23A_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_LSB                                     0
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_MSB                                     31
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_24A_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_OFFSET                                  0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_LSB                                     32
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_MSB                                     59
+#define REO_FLUSH_QUEUE_STATUS_RESERVED_25A_MASK                                    0x0fffffff00000000
+
+
+ 
+
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_OFFSET                                 0x0000000000000060
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_LSB                                    60
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_MSB                                    63
+#define REO_FLUSH_QUEUE_STATUS_LOOPING_COUNT_MASK                                   0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_timeout_list.h b/hw/qcn9224/v2/reo_flush_timeout_list.h
new file mode 100644
index 0000000..51edce1
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_timeout_list.h
@@ -0,0 +1,184 @@
+
+/* 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 _REO_FLUSH_TIMEOUT_LIST_H_
+#define _REO_FLUSH_TIMEOUT_LIST_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_TIMEOUT_LIST 10
+
+#define NUM_OF_QWORDS_REO_FLUSH_TIMEOUT_LIST 5
+
+
+struct reo_flush_timeout_list {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t ac_timout_list                                          :  2,  
+                      reserved_1                                              : 30;  
+             uint32_t minimum_release_desc_count                              : 16,  
+                      minimum_forward_buf_count                               : 16;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t reserved_1                                              : 30,  
+                      ac_timout_list                                          :  2;  
+             uint32_t minimum_forward_buf_count                               : 16,  
+                      minimum_release_desc_count                              : 16;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_OFFSET                     0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_LSB                        0
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_MSB                        15
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_CMD_NUMBER_MASK                       0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_LSB                   16
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_MSB                   16
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_REO_STATUS_REQUIRED_MASK                  0x0000000000010000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_OFFSET                        0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_LSB                           17
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_MSB                           31
+#define REO_FLUSH_TIMEOUT_LIST_CMD_HEADER_RESERVED_0A_MASK                          0x00000000fffe0000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_OFFSET                                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_LSB                                   32
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_MSB                                   33
+#define REO_FLUSH_TIMEOUT_LIST_AC_TIMOUT_LIST_MASK                                  0x0000000300000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_OFFSET                                    0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_LSB                                       34
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_MSB                                       63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_1_MASK                                      0xfffffffc00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_OFFSET                    0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_LSB                       0
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_MSB                       15
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_RELEASE_DESC_COUNT_MASK                      0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_OFFSET                     0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_LSB                        16
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_MSB                        31
+#define REO_FLUSH_TIMEOUT_LIST_MINIMUM_FORWARD_BUF_COUNT_MASK                       0x00000000ffff0000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_OFFSET                                   0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_3A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_4A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_OFFSET                                   0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_5A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_6A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_OFFSET                                   0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_LSB                                      32
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_MSB                                      63
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_7A_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_OFFSET                                   0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_LSB                                      0
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_MSB                                      31
+#define REO_FLUSH_TIMEOUT_LIST_RESERVED_8A_MASK                                     0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_OFFSET                                 0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_LSB                                    32
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_MSB                                    63
+#define REO_FLUSH_TIMEOUT_LIST_TLV64_PADDING_MASK                                   0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_flush_timeout_list_status.h b/hw/qcn9224/v2/reo_flush_timeout_list_status.h
new file mode 100644
index 0000000..2152da2
--- /dev/null
+++ b/hw/qcn9224/v2/reo_flush_timeout_list_status.h
@@ -0,0 +1,370 @@
+
+/* 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 _REO_FLUSH_TIMEOUT_LIST_STATUS_H_
+#define _REO_FLUSH_TIMEOUT_LIST_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_FLUSH_TIMEOUT_LIST_STATUS 26
+
+#define NUM_OF_QWORDS_REO_FLUSH_TIMEOUT_LIST_STATUS 13
+
+
+struct reo_flush_timeout_list_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1,  
+                      timout_list_empty                                       :  1,  
+                      reserved_2a                                             : 30;  
+             uint32_t release_desc_count                                      : 16,  
+                      forward_buf_count                                       : 16;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 30,  
+                      timout_list_empty                                       :  1,  
+                      error_detected                                          :  1;  
+             uint32_t forward_buf_count                                       : 16,  
+                      release_desc_count                                      : 16;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET        0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB           0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB           15
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK          0x000000000000ffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET       0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB          16
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB          25
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK         0x0000000003ff0000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB    26
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB    27
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK   0x000000000c000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET              0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_LSB                 28
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_MSB                 31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_RESERVED_0A_MASK                0x00000000f0000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                0x0000000000000000
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_LSB                   32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_MSB                   63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_STATUS_HEADER_TIMESTAMP_MASK                  0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_OFFSET                         0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_LSB                            0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_MSB                            0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_ERROR_DETECTED_MASK                           0x0000000000000001
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_OFFSET                      0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_LSB                         1
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_MSB                         1
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_TIMOUT_LIST_EMPTY_MASK                        0x0000000000000002
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_OFFSET                            0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_LSB                               2
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_2A_MASK                              0x00000000fffffffc
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_OFFSET                     0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_LSB                        32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_MSB                        47
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RELEASE_DESC_COUNT_MASK                       0x0000ffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_OFFSET                      0x0000000000000008
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_LSB                         48
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_MSB                         63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_FORWARD_BUF_COUNT_MASK                        0xffff000000000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_OFFSET                            0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_4A_MASK                              0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_OFFSET                            0x0000000000000010
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_5A_MASK                              0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_OFFSET                            0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_6A_MASK                              0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_OFFSET                            0x0000000000000018
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_7A_MASK                              0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_OFFSET                            0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_LSB                               0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_MSB                               31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_8A_MASK                              0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_OFFSET                            0x0000000000000020
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_LSB                               32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_MSB                               63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_9A_MASK                              0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_OFFSET                           0x0000000000000028
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_10A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_OFFSET                           0x0000000000000028
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_11A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_OFFSET                           0x0000000000000030
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_12A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_OFFSET                           0x0000000000000030
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_13A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_OFFSET                           0x0000000000000038
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_14A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_OFFSET                           0x0000000000000038
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_15A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_OFFSET                           0x0000000000000040
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_16A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_OFFSET                           0x0000000000000040
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_17A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_OFFSET                           0x0000000000000048
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_18A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_OFFSET                           0x0000000000000048
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_19A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_OFFSET                           0x0000000000000050
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_20A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_OFFSET                           0x0000000000000050
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_21A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_OFFSET                           0x0000000000000058
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_22A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_OFFSET                           0x0000000000000058
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_MSB                              63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_23A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_OFFSET                           0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_LSB                              0
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_MSB                              31
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_24A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_OFFSET                           0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_LSB                              32
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_MSB                              59
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_RESERVED_25A_MASK                             0x0fffffff00000000
+
+
+ 
+
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_OFFSET                          0x0000000000000060
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_LSB                             60
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_MSB                             63
+#define REO_FLUSH_TIMEOUT_LIST_STATUS_LOOPING_COUNT_MASK                            0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_get_queue_stats.h b/hw/qcn9224/v2/reo_get_queue_stats.h
new file mode 100644
index 0000000..c4feade
--- /dev/null
+++ b/hw/qcn9224/v2/reo_get_queue_stats.h
@@ -0,0 +1,184 @@
+
+/* 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 _REO_GET_QUEUE_STATS_H_
+#define _REO_GET_QUEUE_STATS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_GET_QUEUE_STATS 10
+
+#define NUM_OF_QWORDS_REO_GET_QUEUE_STATS 5
+
+
+struct reo_get_queue_stats {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8,  
+                      clear_stats                                             :  1,  
+                      reserved_2a                                             : 23;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t reserved_2a                                             : 23,  
+                      clear_stats                                             :  1,  
+                      rx_reo_queue_desc_addr_39_32                            :  8;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_OFFSET                        0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_LSB                           0
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_MSB                           15
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_CMD_NUMBER_MASK                          0x000000000000ffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                   0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_LSB                      16
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_MSB                      16
+#define REO_GET_QUEUE_STATS_CMD_HEADER_REO_STATUS_REQUIRED_MASK                     0x0000000000010000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_OFFSET                           0x0000000000000000
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_LSB                              17
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_MSB                              31
+#define REO_GET_QUEUE_STATS_CMD_HEADER_RESERVED_0A_MASK                             0x00000000fffe0000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                      0x0000000000000000
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                         32
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                         63
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                        0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                     0x0000000000000008
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                        0
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                        7
+#define REO_GET_QUEUE_STATS_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                       0x00000000000000ff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_LSB                                         8
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_MSB                                         8
+#define REO_GET_QUEUE_STATS_CLEAR_STATS_MASK                                        0x0000000000000100
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_2A_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_RESERVED_2A_LSB                                         9
+#define REO_GET_QUEUE_STATS_RESERVED_2A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_2A_MASK                                        0x00000000fffffe00
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_3A_OFFSET                                      0x0000000000000008
+#define REO_GET_QUEUE_STATS_RESERVED_3A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_3A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_3A_MASK                                        0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_4A_OFFSET                                      0x0000000000000010
+#define REO_GET_QUEUE_STATS_RESERVED_4A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_4A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_4A_MASK                                        0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_5A_OFFSET                                      0x0000000000000010
+#define REO_GET_QUEUE_STATS_RESERVED_5A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_5A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_5A_MASK                                        0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_6A_OFFSET                                      0x0000000000000018
+#define REO_GET_QUEUE_STATS_RESERVED_6A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_6A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_6A_MASK                                        0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_7A_OFFSET                                      0x0000000000000018
+#define REO_GET_QUEUE_STATS_RESERVED_7A_LSB                                         32
+#define REO_GET_QUEUE_STATS_RESERVED_7A_MSB                                         63
+#define REO_GET_QUEUE_STATS_RESERVED_7A_MASK                                        0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_RESERVED_8A_OFFSET                                      0x0000000000000020
+#define REO_GET_QUEUE_STATS_RESERVED_8A_LSB                                         0
+#define REO_GET_QUEUE_STATS_RESERVED_8A_MSB                                         31
+#define REO_GET_QUEUE_STATS_RESERVED_8A_MASK                                        0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_OFFSET                                    0x0000000000000020
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_LSB                                       32
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_MSB                                       63
+#define REO_GET_QUEUE_STATS_TLV64_PADDING_MASK                                      0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_get_queue_stats_status.h b/hw/qcn9224/v2/reo_get_queue_stats_status.h
new file mode 100644
index 0000000..699c9ba
--- /dev/null
+++ b/hw/qcn9224/v2/reo_get_queue_stats_status.h
@@ -0,0 +1,460 @@
+
+/* 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 _REO_GET_QUEUE_STATS_STATUS_H_
+#define _REO_GET_QUEUE_STATS_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 26
+
+#define NUM_OF_QWORDS_REO_GET_QUEUE_STATS_STATUS 13
+
+
+struct reo_get_queue_stats_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t ssn                                                     : 12,  
+                      current_index                                           : 10,  
+                      reserved_2                                              : 10;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t last_rx_enqueue_timestamp                               : 32;  
+             uint32_t last_rx_dequeue_timestamp                               : 32;  
+             uint32_t rx_bitmap_31_0                                          : 32;  
+             uint32_t rx_bitmap_63_32                                         : 32;  
+             uint32_t rx_bitmap_95_64                                         : 32;  
+             uint32_t rx_bitmap_127_96                                        : 32;  
+             uint32_t rx_bitmap_159_128                                       : 32;  
+             uint32_t rx_bitmap_191_160                                       : 32;  
+             uint32_t rx_bitmap_223_192                                       : 32;  
+             uint32_t rx_bitmap_255_224                                       : 32;  
+             uint32_t rx_bitmap_287_256                                       : 32;  
+             uint32_t current_mpdu_count                                      :  7,  
+                      current_msdu_count                                      : 25;  
+             uint32_t window_jump_2k                                          :  4,  
+                      timeout_count                                           :  6,  
+                      forward_due_to_bar_count                                :  6,  
+                      duplicate_count                                         : 16;  
+             uint32_t frames_in_order_count                                   : 24,  
+                      bar_received_count                                      :  8;  
+             uint32_t mpdu_frames_processed_count                             : 32;  
+             uint32_t msdu_frames_processed_count                             : 32;  
+             uint32_t total_processed_byte_count                              : 32;  
+             uint32_t late_receive_mpdu_count                                 : 12,  
+                      hole_count                                              : 16,  
+                      get_queue_1k_stats_status_to_follow                     :  1,  
+                      reserved_24a                                            :  3;  
+             uint32_t aging_drop_mpdu_count                                   : 16,  
+                      aging_drop_interval                                     :  8,  
+                      reserved_25a                                            :  4,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2                                              : 10,  
+                      current_index                                           : 10,  
+                      ssn                                                     : 12;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t last_rx_enqueue_timestamp                               : 32;  
+             uint32_t last_rx_dequeue_timestamp                               : 32;  
+             uint32_t rx_bitmap_31_0                                          : 32;  
+             uint32_t rx_bitmap_63_32                                         : 32;  
+             uint32_t rx_bitmap_95_64                                         : 32;  
+             uint32_t rx_bitmap_127_96                                        : 32;  
+             uint32_t rx_bitmap_159_128                                       : 32;  
+             uint32_t rx_bitmap_191_160                                       : 32;  
+             uint32_t rx_bitmap_223_192                                       : 32;  
+             uint32_t rx_bitmap_255_224                                       : 32;  
+             uint32_t rx_bitmap_287_256                                       : 32;  
+             uint32_t current_msdu_count                                      : 25,  
+                      current_mpdu_count                                      :  7;  
+             uint32_t duplicate_count                                         : 16,  
+                      forward_due_to_bar_count                                :  6,  
+                      timeout_count                                           :  6,  
+                      window_jump_2k                                          :  4;  
+             uint32_t bar_received_count                                      :  8,  
+                      frames_in_order_count                                   : 24;  
+             uint32_t mpdu_frames_processed_count                             : 32;  
+             uint32_t msdu_frames_processed_count                             : 32;  
+             uint32_t total_processed_byte_count                              : 32;  
+             uint32_t reserved_24a                                            :  3,  
+                      get_queue_1k_stats_status_to_follow                     :  1,  
+                      hole_count                                              : 16,  
+                      late_receive_mpdu_count                                 : 12;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            :  4,  
+                      aging_drop_interval                                     :  8,  
+                      aging_drop_mpdu_count                                   : 16;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET           0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB              0
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB              15
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK             0x000000000000ffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET          0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB             16
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB             25
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK            0x0000000003ff0000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET    0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB       26
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB       27
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK      0x000000000c000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                 0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_LSB                    28
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MSB                    31
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MASK                   0x00000000f0000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                   0x0000000000000000
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_LSB                      32
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MSB                      63
+#define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MASK                     0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_SSN_OFFSET                                       0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_SSN_LSB                                          0
+#define REO_GET_QUEUE_STATS_STATUS_SSN_MSB                                          11
+#define REO_GET_QUEUE_STATS_STATUS_SSN_MASK                                         0x0000000000000fff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_OFFSET                             0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_LSB                                12
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MSB                                21
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MASK                               0x00000000003ff000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_OFFSET                                0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_LSB                                   22
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MSB                                   31
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MASK                                  0x00000000ffc00000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_OFFSET                                   0x0000000000000008
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_LSB                                      32
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MSB                                      63
+#define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_OFFSET                                  0x0000000000000010
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_LSB                                     0
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MSB                                     31
+#define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MASK                                    0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_OFFSET                                  0x0000000000000010
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_LSB                                     32
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MSB                                     63
+#define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MASK                                    0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_OFFSET                                 0x0000000000000018
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_LSB                                    0
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MSB                                    31
+#define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MASK                                   0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET                 0x0000000000000018
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_LSB                    32
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MSB                    63
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MASK                   0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET                 0x0000000000000020
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_LSB                    0
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MSB                    31
+#define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_OFFSET                            0x0000000000000020
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_LSB                               32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MSB                               63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MASK                              0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_OFFSET                           0x0000000000000028
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_LSB                              0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MSB                              31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_OFFSET                           0x0000000000000028
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_LSB                              32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MSB                              63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_OFFSET                          0x0000000000000030
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_LSB                             0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MSB                             31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_OFFSET                         0x0000000000000030
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MASK                           0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_OFFSET                         0x0000000000000038
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_LSB                            0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MSB                            31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MASK                           0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_OFFSET                         0x0000000000000038
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MASK                           0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_OFFSET                         0x0000000000000040
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_LSB                            0
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MSB                            31
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MASK                           0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_OFFSET                         0x0000000000000040
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_LSB                            32
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MSB                            63
+#define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MASK                           0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_OFFSET                        0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_LSB                           0
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MSB                           6
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MASK                          0x000000000000007f
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_OFFSET                        0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_LSB                           7
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MSB                           31
+#define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MASK                          0x00000000ffffff80
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_OFFSET                            0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_LSB                               32
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MSB                               35
+#define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MASK                              0x0000000f00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_OFFSET                             0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_LSB                                36
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MSB                                41
+#define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MASK                               0x000003f000000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_OFFSET                  0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_LSB                     42
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MSB                     47
+#define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MASK                    0x0000fc0000000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_OFFSET                           0x0000000000000048
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_LSB                              48
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MSB                              63
+#define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MASK                             0xffff000000000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_OFFSET                     0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_LSB                        0
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MSB                        23
+#define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MASK                       0x0000000000ffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_OFFSET                        0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_LSB                           24
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MSB                           31
+#define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MASK                          0x00000000ff000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000050
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_LSB                  32
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MSB                  63
+#define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MASK                 0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000058
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_LSB                  0
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MSB                  31
+#define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MASK                 0x00000000ffffffff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_OFFSET                0x0000000000000058
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_LSB                   32
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MSB                   63
+#define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MASK                  0xffffffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_OFFSET                   0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_LSB                      0
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MSB                      11
+#define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MASK                     0x0000000000000fff
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_OFFSET                                0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_LSB                                   12
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MSB                                   27
+#define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MASK                                  0x000000000ffff000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_OFFSET       0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_LSB          28
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MSB          28
+#define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MASK         0x0000000010000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_OFFSET                              0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_LSB                                 29
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MSB                                 31
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MASK                                0x00000000e0000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_OFFSET                     0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_LSB                        32
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MSB                        47
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MASK                       0x0000ffff00000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_OFFSET                       0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_LSB                          48
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MSB                          55
+#define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MASK                         0x00ff000000000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_OFFSET                              0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_LSB                                 56
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MSB                                 59
+#define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MASK                                0x0f00000000000000
+
+
+ 
+
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_OFFSET                             0x0000000000000060
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_LSB                                60
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MSB                                63
+#define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MASK                               0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_unblock_cache.h b/hw/qcn9224/v2/reo_unblock_cache.h
new file mode 100644
index 0000000..8a6d24f
--- /dev/null
+++ b/hw/qcn9224/v2/reo_unblock_cache.h
@@ -0,0 +1,184 @@
+
+/* 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 _REO_UNBLOCK_CACHE_H_
+#define _REO_UNBLOCK_CACHE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_UNBLOCK_CACHE 10
+
+#define NUM_OF_QWORDS_REO_UNBLOCK_CACHE 5
+
+
+struct reo_unblock_cache {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t unblock_type                                            :  1,  
+                      cache_block_resource_index                              :  2,  
+                      reserved_1a                                             : 29;  
+             uint32_t reserved_2a                                             : 32;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t reserved_1a                                             : 29,  
+                      cache_block_resource_index                              :  2,  
+                      unblock_type                                            :  1;  
+             uint32_t reserved_2a                                             : 32;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                          0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_LSB                             0
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_MSB                             15
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_CMD_NUMBER_MASK                            0x000000000000ffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                     0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                        16
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                        16
+#define REO_UNBLOCK_CACHE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                       0x0000000000010000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_OFFSET                             0x0000000000000000
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_LSB                                17
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_MSB                                31
+#define REO_UNBLOCK_CACHE_CMD_HEADER_RESERVED_0A_MASK                               0x00000000fffe0000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_OFFSET                                       0x0000000000000000
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_LSB                                          32
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_MSB                                          32
+#define REO_UNBLOCK_CACHE_UNBLOCK_TYPE_MASK                                         0x0000000100000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_OFFSET                         0x0000000000000000
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_LSB                            33
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MSB                            34
+#define REO_UNBLOCK_CACHE_CACHE_BLOCK_RESOURCE_INDEX_MASK                           0x0000000600000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_1A_OFFSET                                        0x0000000000000000
+#define REO_UNBLOCK_CACHE_RESERVED_1A_LSB                                           35
+#define REO_UNBLOCK_CACHE_RESERVED_1A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_1A_MASK                                          0xfffffff800000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_2A_OFFSET                                        0x0000000000000008
+#define REO_UNBLOCK_CACHE_RESERVED_2A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_2A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_2A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_3A_OFFSET                                        0x0000000000000008
+#define REO_UNBLOCK_CACHE_RESERVED_3A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_3A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_3A_MASK                                          0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_4A_OFFSET                                        0x0000000000000010
+#define REO_UNBLOCK_CACHE_RESERVED_4A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_4A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_4A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_5A_OFFSET                                        0x0000000000000010
+#define REO_UNBLOCK_CACHE_RESERVED_5A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_5A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_5A_MASK                                          0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_6A_OFFSET                                        0x0000000000000018
+#define REO_UNBLOCK_CACHE_RESERVED_6A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_6A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_6A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_7A_OFFSET                                        0x0000000000000018
+#define REO_UNBLOCK_CACHE_RESERVED_7A_LSB                                           32
+#define REO_UNBLOCK_CACHE_RESERVED_7A_MSB                                           63
+#define REO_UNBLOCK_CACHE_RESERVED_7A_MASK                                          0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_RESERVED_8A_OFFSET                                        0x0000000000000020
+#define REO_UNBLOCK_CACHE_RESERVED_8A_LSB                                           0
+#define REO_UNBLOCK_CACHE_RESERVED_8A_MSB                                           31
+#define REO_UNBLOCK_CACHE_RESERVED_8A_MASK                                          0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_OFFSET                                      0x0000000000000020
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_LSB                                         32
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_MSB                                         63
+#define REO_UNBLOCK_CACHE_TLV64_PADDING_MASK                                        0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_unblock_cache_status.h b/hw/qcn9224/v2/reo_unblock_cache_status.h
new file mode 100644
index 0000000..49138eb
--- /dev/null
+++ b/hw/qcn9224/v2/reo_unblock_cache_status.h
@@ -0,0 +1,360 @@
+
+/* 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 _REO_UNBLOCK_CACHE_STATUS_H_
+#define _REO_UNBLOCK_CACHE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_UNBLOCK_CACHE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_UNBLOCK_CACHE_STATUS 13
+
+
+struct reo_unblock_cache_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t error_detected                                          :  1,  
+                      unblock_type                                            :  1,  
+                      reserved_2a                                             : 30;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 30,  
+                      unblock_type                                            :  1,  
+                      error_detected                                          :  1;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET             0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB                0
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB                15
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK               0x000000000000ffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET            0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB               16
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB               25
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK              0x0000000003ff0000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET      0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB         26
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB         27
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK        0x000000000c000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                   0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                      28
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                      31
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_RESERVED_0A_MASK                     0x00000000f0000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                     0x0000000000000000
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                        32
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                        63
+#define REO_UNBLOCK_CACHE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                       0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_OFFSET                              0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_LSB                                 0
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_MSB                                 0
+#define REO_UNBLOCK_CACHE_STATUS_ERROR_DETECTED_MASK                                0x0000000000000001
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_OFFSET                                0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_LSB                                   1
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_MSB                                   1
+#define REO_UNBLOCK_CACHE_STATUS_UNBLOCK_TYPE_MASK                                  0x0000000000000002
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_OFFSET                                 0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_LSB                                    2
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_2A_MASK                                   0x00000000fffffffc
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_OFFSET                                 0x0000000000000008
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_3A_MASK                                   0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_OFFSET                                 0x0000000000000010
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_4A_MASK                                   0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_OFFSET                                 0x0000000000000010
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_5A_MASK                                   0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_OFFSET                                 0x0000000000000018
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_6A_MASK                                   0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_OFFSET                                 0x0000000000000018
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_7A_MASK                                   0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_OFFSET                                 0x0000000000000020
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_LSB                                    0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_MSB                                    31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_8A_MASK                                   0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_OFFSET                                 0x0000000000000020
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_LSB                                    32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_MSB                                    63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_9A_MASK                                   0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_OFFSET                                0x0000000000000028
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_10A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_OFFSET                                0x0000000000000028
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_11A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_OFFSET                                0x0000000000000030
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_12A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_OFFSET                                0x0000000000000030
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_13A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_OFFSET                                0x0000000000000038
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_14A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_OFFSET                                0x0000000000000038
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_15A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_OFFSET                                0x0000000000000040
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_16A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_OFFSET                                0x0000000000000040
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_17A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_OFFSET                                0x0000000000000048
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_18A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_OFFSET                                0x0000000000000048
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_19A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_OFFSET                                0x0000000000000050
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_20A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_OFFSET                                0x0000000000000050
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_21A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_OFFSET                                0x0000000000000058
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_22A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_OFFSET                                0x0000000000000058
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_MSB                                   63
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_23A_MASK                                  0xffffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_OFFSET                                0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_LSB                                   0
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_MSB                                   31
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_24A_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_OFFSET                                0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_LSB                                   32
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_MSB                                   59
+#define REO_UNBLOCK_CACHE_STATUS_RESERVED_25A_MASK                                  0x0fffffff00000000
+
+
+ 
+
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_OFFSET                               0x0000000000000060
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_LSB                                  60
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_MSB                                  63
+#define REO_UNBLOCK_CACHE_STATUS_LOOPING_COUNT_MASK                                 0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_update_rx_reo_queue.h b/hw/qcn9224/v2/reo_update_rx_reo_queue.h
new file mode 100644
index 0000000..c763e91
--- /dev/null
+++ b/hw/qcn9224/v2/reo_update_rx_reo_queue.h
@@ -0,0 +1,624 @@
+
+/* 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 _REO_UPDATE_RX_REO_QUEUE_H_
+#define _REO_UPDATE_RX_REO_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_cmd_header.h"
+#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE 10
+
+#define NUM_OF_QWORDS_REO_UPDATE_RX_REO_QUEUE 5
+
+
+struct reo_update_rx_reo_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8,  
+                      update_receive_queue_number                             :  1,  
+                      update_vld                                              :  1,  
+                      update_associated_link_descriptor_counter               :  1,  
+                      update_disable_duplicate_detection                      :  1,  
+                      update_soft_reorder_enable                              :  1,  
+                      update_ac                                               :  1,  
+                      update_bar                                              :  1,  
+                      update_rty                                              :  1,  
+                      update_chk_2k_mode                                      :  1,  
+                      update_oor_mode                                         :  1,  
+                      update_ba_window_size                                   :  1,  
+                      update_pn_check_needed                                  :  1,  
+                      update_pn_shall_be_even                                 :  1,  
+                      update_pn_shall_be_uneven                               :  1,  
+                      update_pn_handling_enable                               :  1,  
+                      update_pn_size                                          :  1,  
+                      update_ignore_ampdu_flag                                :  1,  
+                      update_svld                                             :  1,  
+                      update_ssn                                              :  1,  
+                      update_seq_2k_error_detected_flag                       :  1,  
+                      update_pn_error_detected_flag                           :  1,  
+                      update_pn_valid                                         :  1,  
+                      update_pn                                               :  1,  
+                      clear_stat_counters                                     :  1;  
+             uint32_t receive_queue_number                                    : 16,  
+                      vld                                                     :  1,  
+                      associated_link_descriptor_counter                      :  2,  
+                      disable_duplicate_detection                             :  1,  
+                      soft_reorder_enable                                     :  1,  
+                      ac                                                      :  2,  
+                      bar                                                     :  1,  
+                      rty                                                     :  1,  
+                      chk_2k_mode                                             :  1,  
+                      oor_mode                                                :  1,  
+                      pn_check_needed                                         :  1,  
+                      pn_shall_be_even                                        :  1,  
+                      pn_shall_be_uneven                                      :  1,  
+                      pn_handling_enable                                      :  1,  
+                      ignore_ampdu_flag                                       :  1;  
+             uint32_t ba_window_size                                          : 10,  
+                      pn_size                                                 :  2,  
+                      svld                                                    :  1,  
+                      ssn                                                     : 12,  
+                      seq_2k_error_detected_flag                              :  1,  
+                      pn_error_detected_flag                                  :  1,  
+                      pn_valid                                                :  1,  
+                      flush_from_cache                                        :  1,  
+                      reserved_4a                                             :  3;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             struct   uniform_reo_cmd_header                                    cmd_header;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t clear_stat_counters                                     :  1,  
+                      update_pn                                               :  1,  
+                      update_pn_valid                                         :  1,  
+                      update_pn_error_detected_flag                           :  1,  
+                      update_seq_2k_error_detected_flag                       :  1,  
+                      update_ssn                                              :  1,  
+                      update_svld                                             :  1,  
+                      update_ignore_ampdu_flag                                :  1,  
+                      update_pn_size                                          :  1,  
+                      update_pn_handling_enable                               :  1,  
+                      update_pn_shall_be_uneven                               :  1,  
+                      update_pn_shall_be_even                                 :  1,  
+                      update_pn_check_needed                                  :  1,  
+                      update_ba_window_size                                   :  1,  
+                      update_oor_mode                                         :  1,  
+                      update_chk_2k_mode                                      :  1,  
+                      update_rty                                              :  1,  
+                      update_bar                                              :  1,  
+                      update_ac                                               :  1,  
+                      update_soft_reorder_enable                              :  1,  
+                      update_disable_duplicate_detection                      :  1,  
+                      update_associated_link_descriptor_counter               :  1,  
+                      update_vld                                              :  1,  
+                      update_receive_queue_number                             :  1,  
+                      rx_reo_queue_desc_addr_39_32                            :  8;  
+             uint32_t ignore_ampdu_flag                                       :  1,  
+                      pn_handling_enable                                      :  1,  
+                      pn_shall_be_uneven                                      :  1,  
+                      pn_shall_be_even                                        :  1,  
+                      pn_check_needed                                         :  1,  
+                      oor_mode                                                :  1,  
+                      chk_2k_mode                                             :  1,  
+                      rty                                                     :  1,  
+                      bar                                                     :  1,  
+                      ac                                                      :  2,  
+                      soft_reorder_enable                                     :  1,  
+                      disable_duplicate_detection                             :  1,  
+                      associated_link_descriptor_counter                      :  2,  
+                      vld                                                     :  1,  
+                      receive_queue_number                                    : 16;  
+             uint32_t reserved_4a                                             :  3,  
+                      flush_from_cache                                        :  1,  
+                      pn_valid                                                :  1,  
+                      pn_error_detected_flag                                  :  1,  
+                      seq_2k_error_detected_flag                              :  1,  
+                      ssn                                                     : 12,  
+                      svld                                                    :  1,  
+                      pn_size                                                 :  2,  
+                      ba_window_size                                          : 10;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_OFFSET                    0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_LSB                       0
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MSB                       15
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_CMD_NUMBER_MASK                      0x000000000000ffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET               0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_LSB                  16
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MSB                  16
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_REO_STATUS_REQUIRED_MASK                 0x0000000000010000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_OFFSET                       0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_LSB                          17
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_MSB                          31
+#define REO_UPDATE_RX_REO_QUEUE_CMD_HEADER_RESERVED_0A_MASK                         0x00000000fffe0000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                  0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                     32
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                     63
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                    0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                 0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                    0
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                    7
+#define REO_UPDATE_RX_REO_QUEUE_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                   0x00000000000000ff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_OFFSET                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_LSB                     8
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_MSB                     8
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RECEIVE_QUEUE_NUMBER_MASK                    0x0000000000000100
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_LSB                                      9
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_MSB                                      9
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_VLD_MASK                                     0x0000000000000200
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB       10
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB       10
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK      0x0000000000000400
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_OFFSET           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_LSB              11
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_MSB              11
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_DISABLE_DUPLICATE_DETECTION_MASK             0x0000000000000800
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_OFFSET                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_LSB                      12
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_MSB                      12
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SOFT_REORDER_ENABLE_MASK                     0x0000000000001000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_OFFSET                                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_LSB                                       13
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_MSB                                       13
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_AC_MASK                                      0x0000000000002000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_LSB                                      14
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_MSB                                      14
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BAR_MASK                                     0x0000000000004000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_LSB                                      15
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_MSB                                      15
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_RTY_MASK                                     0x0000000000008000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_LSB                              16
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_MSB                              16
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_CHK_2K_MODE_MASK                             0x0000000000010000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_LSB                                 17
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_MSB                                 17
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_OOR_MODE_MASK                                0x0000000000020000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_OFFSET                        0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_LSB                           18
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_MSB                           18
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_BA_WINDOW_SIZE_MASK                          0x0000000000040000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_OFFSET                       0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_LSB                          19
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_MSB                          19
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_CHECK_NEEDED_MASK                         0x0000000000080000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_OFFSET                      0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_LSB                         20
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_MSB                         20
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_EVEN_MASK                        0x0000000000100000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_OFFSET                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_LSB                       21
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_MSB                       21
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SHALL_BE_UNEVEN_MASK                      0x0000000000200000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_OFFSET                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_LSB                       22
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_MSB                       22
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_HANDLING_ENABLE_MASK                      0x0000000000400000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_OFFSET                               0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_LSB                                  23
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_MSB                                  23
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_SIZE_MASK                                 0x0000000000800000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_OFFSET                     0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_LSB                        24
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_MSB                        24
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_IGNORE_AMPDU_FLAG_MASK                       0x0000000001000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_OFFSET                                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_LSB                                     25
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_MSB                                     25
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SVLD_MASK                                    0x0000000002000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_OFFSET                                   0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_LSB                                      26
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_MSB                                      26
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SSN_MASK                                     0x0000000004000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET            0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_LSB               27
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MSB               27
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MASK              0x0000000008000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_OFFSET                0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_LSB                   28
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_MSB                   28
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_ERROR_DETECTED_FLAG_MASK                  0x0000000010000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_LSB                                 29
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_MSB                                 29
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_VALID_MASK                                0x0000000020000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_OFFSET                                    0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_LSB                                       30
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_MSB                                       30
+#define REO_UPDATE_RX_REO_QUEUE_UPDATE_PN_MASK                                      0x0000000040000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_OFFSET                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_LSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_CLEAR_STAT_COUNTERS_MASK                            0x0000000080000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_OFFSET                         0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_LSB                            32
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MSB                            47
+#define REO_UPDATE_RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MASK                           0x0000ffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_VLD_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_VLD_LSB                                             48
+#define REO_UPDATE_RX_REO_QUEUE_VLD_MSB                                             48
+#define REO_UPDATE_RX_REO_QUEUE_VLD_MASK                                            0x0001000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB              49
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB              50
+#define REO_UPDATE_RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK             0x0006000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_OFFSET                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_LSB                     51
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MSB                     51
+#define REO_UPDATE_RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MASK                    0x0008000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_OFFSET                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_LSB                             52
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_MSB                             52
+#define REO_UPDATE_RX_REO_QUEUE_SOFT_REORDER_ENABLE_MASK                            0x0010000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_AC_OFFSET                                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_AC_LSB                                              53
+#define REO_UPDATE_RX_REO_QUEUE_AC_MSB                                              54
+#define REO_UPDATE_RX_REO_QUEUE_AC_MASK                                             0x0060000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_BAR_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_BAR_LSB                                             55
+#define REO_UPDATE_RX_REO_QUEUE_BAR_MSB                                             55
+#define REO_UPDATE_RX_REO_QUEUE_BAR_MASK                                            0x0080000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_RTY_OFFSET                                          0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_RTY_LSB                                             56
+#define REO_UPDATE_RX_REO_QUEUE_RTY_MSB                                             56
+#define REO_UPDATE_RX_REO_QUEUE_RTY_MASK                                            0x0100000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_OFFSET                                  0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_LSB                                     57
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_MSB                                     57
+#define REO_UPDATE_RX_REO_QUEUE_CHK_2K_MODE_MASK                                    0x0200000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_OFFSET                                     0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_LSB                                        58
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_MSB                                        58
+#define REO_UPDATE_RX_REO_QUEUE_OOR_MODE_MASK                                       0x0400000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_OFFSET                              0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_LSB                                 59
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_MSB                                 59
+#define REO_UPDATE_RX_REO_QUEUE_PN_CHECK_NEEDED_MASK                                0x0800000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_OFFSET                             0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_LSB                                60
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_MSB                                60
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_EVEN_MASK                               0x1000000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_LSB                              61
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MSB                              61
+#define REO_UPDATE_RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MASK                             0x2000000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_LSB                              62
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_MSB                              62
+#define REO_UPDATE_RX_REO_QUEUE_PN_HANDLING_ENABLE_MASK                             0x4000000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_OFFSET                            0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_LSB                               63
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MSB                               63
+#define REO_UPDATE_RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MASK                              0x8000000000000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_OFFSET                               0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_LSB                                  0
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_MSB                                  9
+#define REO_UPDATE_RX_REO_QUEUE_BA_WINDOW_SIZE_MASK                                 0x00000000000003ff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_OFFSET                                      0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_LSB                                         10
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_MSB                                         11
+#define REO_UPDATE_RX_REO_QUEUE_PN_SIZE_MASK                                        0x0000000000000c00
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_OFFSET                                         0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_LSB                                            12
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_MSB                                            12
+#define REO_UPDATE_RX_REO_QUEUE_SVLD_MASK                                           0x0000000000001000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_SSN_OFFSET                                          0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SSN_LSB                                             13
+#define REO_UPDATE_RX_REO_QUEUE_SSN_MSB                                             24
+#define REO_UPDATE_RX_REO_QUEUE_SSN_MASK                                            0x0000000001ffe000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET                   0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_LSB                      25
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MSB                      25
+#define REO_UPDATE_RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MASK                     0x0000000002000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_OFFSET                       0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_LSB                          26
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MSB                          26
+#define REO_UPDATE_RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MASK                         0x0000000004000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_OFFSET                                     0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_LSB                                        27
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_MSB                                        27
+#define REO_UPDATE_RX_REO_QUEUE_PN_VALID_MASK                                       0x0000000008000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_OFFSET                             0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_LSB                                28
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_MSB                                28
+#define REO_UPDATE_RX_REO_QUEUE_FLUSH_FROM_CACHE_MASK                               0x0000000010000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_OFFSET                                  0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_LSB                                     29
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_MSB                                     31
+#define REO_UPDATE_RX_REO_QUEUE_RESERVED_4A_MASK                                    0x00000000e0000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_OFFSET                                      0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_LSB                                         32
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_MSB                                         63
+#define REO_UPDATE_RX_REO_QUEUE_PN_31_0_MASK                                        0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_OFFSET                                     0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_LSB                                        0
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_MSB                                        31
+#define REO_UPDATE_RX_REO_QUEUE_PN_63_32_MASK                                       0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_OFFSET                                     0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_LSB                                        32
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_MSB                                        63
+#define REO_UPDATE_RX_REO_QUEUE_PN_95_64_MASK                                       0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_OFFSET                                    0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_LSB                                       0
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_MSB                                       31
+#define REO_UPDATE_RX_REO_QUEUE_PN_127_96_MASK                                      0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_OFFSET                                0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_LSB                                   32
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_MSB                                   63
+#define REO_UPDATE_RX_REO_QUEUE_TLV64_PADDING_MASK                                  0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/reo_update_rx_reo_queue_status.h b/hw/qcn9224/v2/reo_update_rx_reo_queue_status.h
new file mode 100644
index 0000000..89f34e6
--- /dev/null
+++ b/hw/qcn9224/v2/reo_update_rx_reo_queue_status.h
@@ -0,0 +1,340 @@
+
+/* 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 _REO_UPDATE_RX_REO_QUEUE_STATUS_H_
+#define _REO_UPDATE_RX_REO_QUEUE_STATUS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_reo_status_header.h"
+#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE_STATUS 26
+
+#define NUM_OF_QWORDS_REO_UPDATE_RX_REO_QUEUE_STATUS 13
+
+
+struct reo_update_rx_reo_queue_status {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 32;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t reserved_25a                                            : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   uniform_reo_status_header                                 status_header;
+             uint32_t reserved_2a                                             : 32;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 32;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+             uint32_t reserved_10a                                            : 32;  
+             uint32_t reserved_11a                                            : 32;  
+             uint32_t reserved_12a                                            : 32;  
+             uint32_t reserved_13a                                            : 32;  
+             uint32_t reserved_14a                                            : 32;  
+             uint32_t reserved_15a                                            : 32;  
+             uint32_t reserved_16a                                            : 32;  
+             uint32_t reserved_17a                                            : 32;  
+             uint32_t reserved_18a                                            : 32;  
+             uint32_t reserved_19a                                            : 32;  
+             uint32_t reserved_20a                                            : 32;  
+             uint32_t reserved_21a                                            : 32;  
+             uint32_t reserved_22a                                            : 32;  
+             uint32_t reserved_23a                                            : 32;  
+             uint32_t reserved_24a                                            : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_25a                                            : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET       0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB          0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB          15
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK         0x000000000000ffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET      0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB         16
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB         25
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK        0x0000000003ff0000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB   26
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB   27
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK  0x000000000c000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET             0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_LSB                28
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MSB                31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_RESERVED_0A_MASK               0x00000000f0000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET               0x0000000000000000
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_LSB                  32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MSB                  63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_STATUS_HEADER_TIMESTAMP_MASK                 0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_2A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_OFFSET                           0x0000000000000008
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_3A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_OFFSET                           0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_4A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_OFFSET                           0x0000000000000010
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_5A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_OFFSET                           0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_6A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_OFFSET                           0x0000000000000018
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_7A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_OFFSET                           0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_LSB                              0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_MSB                              31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_8A_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_OFFSET                           0x0000000000000020
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_LSB                              32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_MSB                              63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_9A_MASK                             0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_OFFSET                          0x0000000000000028
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_10A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_OFFSET                          0x0000000000000028
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_11A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_OFFSET                          0x0000000000000030
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_12A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_OFFSET                          0x0000000000000030
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_13A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_OFFSET                          0x0000000000000038
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_14A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_OFFSET                          0x0000000000000038
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_15A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_OFFSET                          0x0000000000000040
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_16A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_OFFSET                          0x0000000000000040
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_17A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_OFFSET                          0x0000000000000048
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_18A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_OFFSET                          0x0000000000000048
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_19A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_OFFSET                          0x0000000000000050
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_20A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_OFFSET                          0x0000000000000050
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_21A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_OFFSET                          0x0000000000000058
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_22A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_OFFSET                          0x0000000000000058
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_MSB                             63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_23A_MASK                            0xffffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_OFFSET                          0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_LSB                             0
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_MSB                             31
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_24A_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_OFFSET                          0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_LSB                             32
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_MSB                             59
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_RESERVED_25A_MASK                            0x0fffffff00000000
+
+
+ 
+
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_OFFSET                         0x0000000000000060
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_LSB                            60
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_MSB                            63
+#define REO_UPDATE_RX_REO_QUEUE_STATUS_LOOPING_COUNT_MASK                           0xf000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/response_end_status.h b/hw/qcn9224/v2/response_end_status.h
similarity index 100%
copy from hw/qcn9224/response_end_status.h
copy to hw/qcn9224/v2/response_end_status.h
diff --git a/hw/qcn9224/response_start_status.h b/hw/qcn9224/v2/response_start_status.h
similarity index 100%
copy from hw/qcn9224/response_start_status.h
copy to hw/qcn9224/v2/response_start_status.h
diff --git a/hw/qcn9224/v2/ru_allocation_160_info.h b/hw/qcn9224/v2/ru_allocation_160_info.h
new file mode 100644
index 0000000..d310fce
--- /dev/null
+++ b/hw/qcn9224/v2/ru_allocation_160_info.h
@@ -0,0 +1,182 @@
+
+/* 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 _RU_ALLOCATION_160_INFO_H_
+#define _RU_ALLOCATION_160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RU_ALLOCATION_160_INFO 4
+
+
+struct ru_allocation_160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t ru_allocation_band0_0                                   :  9,  
+                      ru_allocation_band0_1                                   :  9,  
+                      reserved_0a                                             :  6,  
+                      ru_allocations_01_subband80_mask                        :  4,  
+                      ru_allocations_23_subband80_mask                        :  4;  
+             uint32_t ru_allocation_band0_2                                   :  9,  
+                      ru_allocation_band0_3                                   :  9,  
+                      reserved_1a                                             : 14;  
+             uint32_t ru_allocation_band1_0                                   :  9,  
+                      ru_allocation_band1_1                                   :  9,  
+                      reserved_2a                                             : 14;  
+             uint32_t ru_allocation_band1_2                                   :  9,  
+                      ru_allocation_band1_3                                   :  9,  
+                      reserved_3a                                             : 14;  
+#else
+             uint32_t ru_allocations_23_subband80_mask                        :  4,  
+                      ru_allocations_01_subband80_mask                        :  4,  
+                      reserved_0a                                             :  6,  
+                      ru_allocation_band0_1                                   :  9,  
+                      ru_allocation_band0_0                                   :  9;  
+             uint32_t reserved_1a                                             : 14,  
+                      ru_allocation_band0_3                                   :  9,  
+                      ru_allocation_band0_2                                   :  9;  
+             uint32_t reserved_2a                                             : 14,  
+                      ru_allocation_band1_1                                   :  9,  
+                      ru_allocation_band1_0                                   :  9;  
+             uint32_t reserved_3a                                             : 14,  
+                      ru_allocation_band1_3                                   :  9,  
+                      ru_allocation_band1_2                                   :  9;  
+#endif
+};
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_OFFSET                         0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_0_MASK                           0x000001ff
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_OFFSET                         0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_1_MASK                           0x0003fe00
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_OFFSET                                   0x00000000
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_MSB                                      23
+#define RU_ALLOCATION_160_INFO_RESERVED_0A_MASK                                     0x00fc0000
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET              0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB                 24
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB                 27
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK                0x0f000000
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET              0x00000000
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB                 28
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB                 31
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK                0xf0000000
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_OFFSET                         0x00000004
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_2_MASK                           0x000001ff
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_OFFSET                         0x00000004
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND0_3_MASK                           0x0003fe00
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_OFFSET                                   0x00000004
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_1A_MASK                                     0xfffc0000
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_OFFSET                         0x00000008
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_0_MASK                           0x000001ff
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_OFFSET                         0x00000008
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_1_MASK                           0x0003fe00
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_OFFSET                                   0x00000008
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_2A_MASK                                     0xfffc0000
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_OFFSET                         0x0000000c
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_LSB                            0
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_MSB                            8
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_2_MASK                           0x000001ff
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_OFFSET                         0x0000000c
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_LSB                            9
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_MSB                            17
+#define RU_ALLOCATION_160_INFO_RU_ALLOCATION_BAND1_3_MASK                           0x0003fe00
+
+
+ 
+
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_OFFSET                                   0x0000000c
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_LSB                                      18
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_MSB                                      31
+#define RU_ALLOCATION_160_INFO_RESERVED_3A_MASK                                     0xfffc0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_attention.h b/hw/qcn9224/v2/rx_attention.h
new file mode 100644
index 0000000..06b1eef
--- /dev/null
+++ b/hw/qcn9224/v2/rx_attention.h
@@ -0,0 +1,554 @@
+
+/* 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 _RX_ATTENTION_H_
+#define _RX_ATTENTION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_ATTENTION 4
+
+#define NUM_OF_QWORDS_RX_ATTENTION 2
+
+
+struct rx_attention {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2,  
+                      sw_frame_group_id                                       :  7,  
+                      reserved_0                                              :  7,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t first_mpdu                                              :  1,  
+                      reserved_1a                                             :  1,  
+                      mcast_bcast                                             :  1,  
+                      ast_index_not_found                                     :  1,  
+                      ast_index_timeout                                       :  1,  
+                      power_mgmt                                              :  1,  
+                      non_qos                                                 :  1,  
+                      null_data                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      more_data                                               :  1,  
+                      eosp                                                    :  1,  
+                      a_msdu_error                                            :  1,  
+                      fragment_flag                                           :  1,  
+                      order                                                   :  1,  
+                      cce_match                                               :  1,  
+                      overflow_err                                            :  1,  
+                      msdu_length_err                                         :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      sa_idx_invalid                                          :  1,  
+                      da_idx_invalid                                          :  1,  
+                      reserved_1b                                             :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      encrypt_required                                        :  1,  
+                      directed                                                :  1,  
+                      buffer_fragment                                         :  1,  
+                      mpdu_length_err                                         :  1,  
+                      tkip_mic_err                                            :  1,  
+                      decrypt_err                                             :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      fcs_err                                                 :  1;  
+             uint32_t flow_idx_timeout                                        :  1,  
+                      flow_idx_invalid                                        :  1,  
+                      wifi_parser_error                                       :  1,  
+                      amsdu_parser_error                                      :  1,  
+                      sa_idx_timeout                                          :  1,  
+                      da_idx_timeout                                          :  1,  
+                      msdu_limit_error                                        :  1,  
+                      da_is_valid                                             :  1,  
+                      da_is_mcbc                                              :  1,  
+                      sa_is_valid                                             :  1,  
+                      decrypt_status_code                                     :  3,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      reserved_2                                              : 17,  
+                      msdu_done                                               :  1;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_0                                              :  7,  
+                      sw_frame_group_id                                       :  7,  
+                      rxpcu_mpdu_filter_in_category                           :  2;  
+             uint32_t fcs_err                                                 :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      decrypt_err                                             :  1,  
+                      tkip_mic_err                                            :  1,  
+                      mpdu_length_err                                         :  1,  
+                      buffer_fragment                                         :  1,  
+                      directed                                                :  1,  
+                      encrypt_required                                        :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      reserved_1b                                             :  1,  
+                      da_idx_invalid                                          :  1,  
+                      sa_idx_invalid                                          :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      msdu_length_err                                         :  1,  
+                      overflow_err                                            :  1,  
+                      cce_match                                               :  1,  
+                      order                                                   :  1,  
+                      fragment_flag                                           :  1,  
+                      a_msdu_error                                            :  1,  
+                      eosp                                                    :  1,  
+                      more_data                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      null_data                                               :  1,  
+                      non_qos                                                 :  1,  
+                      power_mgmt                                              :  1,  
+                      ast_index_timeout                                       :  1,  
+                      ast_index_not_found                                     :  1,  
+                      mcast_bcast                                             :  1,  
+                      reserved_1a                                             :  1,  
+                      first_mpdu                                              :  1;  
+             uint32_t msdu_done                                               :  1,  
+                      reserved_2                                              : 17,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      decrypt_status_code                                     :  3,  
+                      sa_is_valid                                             :  1,  
+                      da_is_mcbc                                              :  1,  
+                      da_is_valid                                             :  1,  
+                      msdu_limit_error                                        :  1,  
+                      da_idx_timeout                                          :  1,  
+                      sa_idx_timeout                                          :  1,  
+                      amsdu_parser_error                                      :  1,  
+                      wifi_parser_error                                       :  1,  
+                      flow_idx_invalid                                        :  1,  
+                      flow_idx_timeout                                        :  1;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                           0x0000000000000000
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                              0
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                              1
+#define RX_ATTENTION_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                             0x0000000000000003
+
+
+ 
+
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_OFFSET                                       0x0000000000000000
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_LSB                                          2
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_MSB                                          8
+#define RX_ATTENTION_SW_FRAME_GROUP_ID_MASK                                         0x00000000000001fc
+
+
+ 
+
+#define RX_ATTENTION_RESERVED_0_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_RESERVED_0_LSB                                                 9
+#define RX_ATTENTION_RESERVED_0_MSB                                                 15
+#define RX_ATTENTION_RESERVED_0_MASK                                                0x000000000000fe00
+
+
+ 
+
+#define RX_ATTENTION_PHY_PPDU_ID_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_PHY_PPDU_ID_LSB                                                16
+#define RX_ATTENTION_PHY_PPDU_ID_MSB                                                31
+#define RX_ATTENTION_PHY_PPDU_ID_MASK                                               0x00000000ffff0000
+
+
+ 
+
+#define RX_ATTENTION_FIRST_MPDU_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_FIRST_MPDU_LSB                                                 32
+#define RX_ATTENTION_FIRST_MPDU_MSB                                                 32
+#define RX_ATTENTION_FIRST_MPDU_MASK                                                0x0000000100000000
+
+
+ 
+
+#define RX_ATTENTION_RESERVED_1A_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_RESERVED_1A_LSB                                                33
+#define RX_ATTENTION_RESERVED_1A_MSB                                                33
+#define RX_ATTENTION_RESERVED_1A_MASK                                               0x0000000200000000
+
+
+ 
+
+#define RX_ATTENTION_MCAST_BCAST_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_MCAST_BCAST_LSB                                                34
+#define RX_ATTENTION_MCAST_BCAST_MSB                                                34
+#define RX_ATTENTION_MCAST_BCAST_MASK                                               0x0000000400000000
+
+
+ 
+
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_OFFSET                                     0x0000000000000000
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_LSB                                        35
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_MSB                                        35
+#define RX_ATTENTION_AST_INDEX_NOT_FOUND_MASK                                       0x0000000800000000
+
+
+ 
+
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_OFFSET                                       0x0000000000000000
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_LSB                                          36
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_MSB                                          36
+#define RX_ATTENTION_AST_INDEX_TIMEOUT_MASK                                         0x0000001000000000
+
+
+ 
+
+#define RX_ATTENTION_POWER_MGMT_OFFSET                                              0x0000000000000000
+#define RX_ATTENTION_POWER_MGMT_LSB                                                 37
+#define RX_ATTENTION_POWER_MGMT_MSB                                                 37
+#define RX_ATTENTION_POWER_MGMT_MASK                                                0x0000002000000000
+
+
+ 
+
+#define RX_ATTENTION_NON_QOS_OFFSET                                                 0x0000000000000000
+#define RX_ATTENTION_NON_QOS_LSB                                                    38
+#define RX_ATTENTION_NON_QOS_MSB                                                    38
+#define RX_ATTENTION_NON_QOS_MASK                                                   0x0000004000000000
+
+
+ 
+
+#define RX_ATTENTION_NULL_DATA_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_NULL_DATA_LSB                                                  39
+#define RX_ATTENTION_NULL_DATA_MSB                                                  39
+#define RX_ATTENTION_NULL_DATA_MASK                                                 0x0000008000000000
+
+
+ 
+
+#define RX_ATTENTION_MGMT_TYPE_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_MGMT_TYPE_LSB                                                  40
+#define RX_ATTENTION_MGMT_TYPE_MSB                                                  40
+#define RX_ATTENTION_MGMT_TYPE_MASK                                                 0x0000010000000000
+
+
+ 
+
+#define RX_ATTENTION_CTRL_TYPE_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_CTRL_TYPE_LSB                                                  41
+#define RX_ATTENTION_CTRL_TYPE_MSB                                                  41
+#define RX_ATTENTION_CTRL_TYPE_MASK                                                 0x0000020000000000
+
+
+ 
+
+#define RX_ATTENTION_MORE_DATA_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_MORE_DATA_LSB                                                  42
+#define RX_ATTENTION_MORE_DATA_MSB                                                  42
+#define RX_ATTENTION_MORE_DATA_MASK                                                 0x0000040000000000
+
+
+ 
+
+#define RX_ATTENTION_EOSP_OFFSET                                                    0x0000000000000000
+#define RX_ATTENTION_EOSP_LSB                                                       43
+#define RX_ATTENTION_EOSP_MSB                                                       43
+#define RX_ATTENTION_EOSP_MASK                                                      0x0000080000000000
+
+
+ 
+
+#define RX_ATTENTION_A_MSDU_ERROR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_A_MSDU_ERROR_LSB                                               44
+#define RX_ATTENTION_A_MSDU_ERROR_MSB                                               44
+#define RX_ATTENTION_A_MSDU_ERROR_MASK                                              0x0000100000000000
+
+
+ 
+
+#define RX_ATTENTION_FRAGMENT_FLAG_OFFSET                                           0x0000000000000000
+#define RX_ATTENTION_FRAGMENT_FLAG_LSB                                              45
+#define RX_ATTENTION_FRAGMENT_FLAG_MSB                                              45
+#define RX_ATTENTION_FRAGMENT_FLAG_MASK                                             0x0000200000000000
+
+
+ 
+
+#define RX_ATTENTION_ORDER_OFFSET                                                   0x0000000000000000
+#define RX_ATTENTION_ORDER_LSB                                                      46
+#define RX_ATTENTION_ORDER_MSB                                                      46
+#define RX_ATTENTION_ORDER_MASK                                                     0x0000400000000000
+
+
+ 
+
+#define RX_ATTENTION_CCE_MATCH_OFFSET                                               0x0000000000000000
+#define RX_ATTENTION_CCE_MATCH_LSB                                                  47
+#define RX_ATTENTION_CCE_MATCH_MSB                                                  47
+#define RX_ATTENTION_CCE_MATCH_MASK                                                 0x0000800000000000
+
+
+ 
+
+#define RX_ATTENTION_OVERFLOW_ERR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_OVERFLOW_ERR_LSB                                               48
+#define RX_ATTENTION_OVERFLOW_ERR_MSB                                               48
+#define RX_ATTENTION_OVERFLOW_ERR_MASK                                              0x0001000000000000
+
+
+ 
+
+#define RX_ATTENTION_MSDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_MSDU_LENGTH_ERR_LSB                                            49
+#define RX_ATTENTION_MSDU_LENGTH_ERR_MSB                                            49
+#define RX_ATTENTION_MSDU_LENGTH_ERR_MASK                                           0x0002000000000000
+
+
+ 
+
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_OFFSET                                     0x0000000000000000
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_LSB                                        50
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MSB                                        50
+#define RX_ATTENTION_TCP_UDP_CHKSUM_FAIL_MASK                                       0x0004000000000000
+
+
+ 
+
+#define RX_ATTENTION_IP_CHKSUM_FAIL_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_IP_CHKSUM_FAIL_LSB                                             51
+#define RX_ATTENTION_IP_CHKSUM_FAIL_MSB                                             51
+#define RX_ATTENTION_IP_CHKSUM_FAIL_MASK                                            0x0008000000000000
+
+
+ 
+
+#define RX_ATTENTION_SA_IDX_INVALID_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_SA_IDX_INVALID_LSB                                             52
+#define RX_ATTENTION_SA_IDX_INVALID_MSB                                             52
+#define RX_ATTENTION_SA_IDX_INVALID_MASK                                            0x0010000000000000
+
+
+ 
+
+#define RX_ATTENTION_DA_IDX_INVALID_OFFSET                                          0x0000000000000000
+#define RX_ATTENTION_DA_IDX_INVALID_LSB                                             53
+#define RX_ATTENTION_DA_IDX_INVALID_MSB                                             53
+#define RX_ATTENTION_DA_IDX_INVALID_MASK                                            0x0020000000000000
+
+
+ 
+
+#define RX_ATTENTION_RESERVED_1B_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_RESERVED_1B_LSB                                                54
+#define RX_ATTENTION_RESERVED_1B_MSB                                                54
+#define RX_ATTENTION_RESERVED_1B_MASK                                               0x0040000000000000
+
+
+ 
+
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_OFFSET                                    0x0000000000000000
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_LSB                                       55
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MSB                                       55
+#define RX_ATTENTION_RX_IN_TX_DECRYPT_BYP_MASK                                      0x0080000000000000
+
+
+ 
+
+#define RX_ATTENTION_ENCRYPT_REQUIRED_OFFSET                                        0x0000000000000000
+#define RX_ATTENTION_ENCRYPT_REQUIRED_LSB                                           56
+#define RX_ATTENTION_ENCRYPT_REQUIRED_MSB                                           56
+#define RX_ATTENTION_ENCRYPT_REQUIRED_MASK                                          0x0100000000000000
+
+
+ 
+
+#define RX_ATTENTION_DIRECTED_OFFSET                                                0x0000000000000000
+#define RX_ATTENTION_DIRECTED_LSB                                                   57
+#define RX_ATTENTION_DIRECTED_MSB                                                   57
+#define RX_ATTENTION_DIRECTED_MASK                                                  0x0200000000000000
+
+
+ 
+
+#define RX_ATTENTION_BUFFER_FRAGMENT_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_BUFFER_FRAGMENT_LSB                                            58
+#define RX_ATTENTION_BUFFER_FRAGMENT_MSB                                            58
+#define RX_ATTENTION_BUFFER_FRAGMENT_MASK                                           0x0400000000000000
+
+
+ 
+
+#define RX_ATTENTION_MPDU_LENGTH_ERR_OFFSET                                         0x0000000000000000
+#define RX_ATTENTION_MPDU_LENGTH_ERR_LSB                                            59
+#define RX_ATTENTION_MPDU_LENGTH_ERR_MSB                                            59
+#define RX_ATTENTION_MPDU_LENGTH_ERR_MASK                                           0x0800000000000000
+
+
+ 
+
+#define RX_ATTENTION_TKIP_MIC_ERR_OFFSET                                            0x0000000000000000
+#define RX_ATTENTION_TKIP_MIC_ERR_LSB                                               60
+#define RX_ATTENTION_TKIP_MIC_ERR_MSB                                               60
+#define RX_ATTENTION_TKIP_MIC_ERR_MASK                                              0x1000000000000000
+
+
+ 
+
+#define RX_ATTENTION_DECRYPT_ERR_OFFSET                                             0x0000000000000000
+#define RX_ATTENTION_DECRYPT_ERR_LSB                                                61
+#define RX_ATTENTION_DECRYPT_ERR_MSB                                                61
+#define RX_ATTENTION_DECRYPT_ERR_MASK                                               0x2000000000000000
+
+
+ 
+
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_OFFSET                                   0x0000000000000000
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_LSB                                      62
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MSB                                      62
+#define RX_ATTENTION_UNENCRYPTED_FRAME_ERR_MASK                                     0x4000000000000000
+
+
+ 
+
+#define RX_ATTENTION_FCS_ERR_OFFSET                                                 0x0000000000000000
+#define RX_ATTENTION_FCS_ERR_LSB                                                    63
+#define RX_ATTENTION_FCS_ERR_MSB                                                    63
+#define RX_ATTENTION_FCS_ERR_MASK                                                   0x8000000000000000
+
+
+ 
+
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_LSB                                           0
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_MSB                                           0
+#define RX_ATTENTION_FLOW_IDX_TIMEOUT_MASK                                          0x0000000000000001
+
+
+ 
+
+#define RX_ATTENTION_FLOW_IDX_INVALID_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_FLOW_IDX_INVALID_LSB                                           1
+#define RX_ATTENTION_FLOW_IDX_INVALID_MSB                                           1
+#define RX_ATTENTION_FLOW_IDX_INVALID_MASK                                          0x0000000000000002
+
+
+ 
+
+#define RX_ATTENTION_WIFI_PARSER_ERROR_OFFSET                                       0x0000000000000008
+#define RX_ATTENTION_WIFI_PARSER_ERROR_LSB                                          2
+#define RX_ATTENTION_WIFI_PARSER_ERROR_MSB                                          2
+#define RX_ATTENTION_WIFI_PARSER_ERROR_MASK                                         0x0000000000000004
+
+
+ 
+
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_OFFSET                                      0x0000000000000008
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_LSB                                         3
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_MSB                                         3
+#define RX_ATTENTION_AMSDU_PARSER_ERROR_MASK                                        0x0000000000000008
+
+
+ 
+
+#define RX_ATTENTION_SA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
+#define RX_ATTENTION_SA_IDX_TIMEOUT_LSB                                             4
+#define RX_ATTENTION_SA_IDX_TIMEOUT_MSB                                             4
+#define RX_ATTENTION_SA_IDX_TIMEOUT_MASK                                            0x0000000000000010
+
+
+ 
+
+#define RX_ATTENTION_DA_IDX_TIMEOUT_OFFSET                                          0x0000000000000008
+#define RX_ATTENTION_DA_IDX_TIMEOUT_LSB                                             5
+#define RX_ATTENTION_DA_IDX_TIMEOUT_MSB                                             5
+#define RX_ATTENTION_DA_IDX_TIMEOUT_MASK                                            0x0000000000000020
+
+
+ 
+
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_OFFSET                                        0x0000000000000008
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_LSB                                           6
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_MSB                                           6
+#define RX_ATTENTION_MSDU_LIMIT_ERROR_MASK                                          0x0000000000000040
+
+
+ 
+
+#define RX_ATTENTION_DA_IS_VALID_OFFSET                                             0x0000000000000008
+#define RX_ATTENTION_DA_IS_VALID_LSB                                                7
+#define RX_ATTENTION_DA_IS_VALID_MSB                                                7
+#define RX_ATTENTION_DA_IS_VALID_MASK                                               0x0000000000000080
+
+
+ 
+
+#define RX_ATTENTION_DA_IS_MCBC_OFFSET                                              0x0000000000000008
+#define RX_ATTENTION_DA_IS_MCBC_LSB                                                 8
+#define RX_ATTENTION_DA_IS_MCBC_MSB                                                 8
+#define RX_ATTENTION_DA_IS_MCBC_MASK                                                0x0000000000000100
+
+
+ 
+
+#define RX_ATTENTION_SA_IS_VALID_OFFSET                                             0x0000000000000008
+#define RX_ATTENTION_SA_IS_VALID_LSB                                                9
+#define RX_ATTENTION_SA_IS_VALID_MSB                                                9
+#define RX_ATTENTION_SA_IS_VALID_MASK                                               0x0000000000000200
+
+
+ 
+
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_OFFSET                                     0x0000000000000008
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_LSB                                        10
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_MSB                                        12
+#define RX_ATTENTION_DECRYPT_STATUS_CODE_MASK                                       0x0000000000001c00
+
+
+ 
+
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_OFFSET                                   0x0000000000000008
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_LSB                                      13
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MSB                                      13
+#define RX_ATTENTION_RX_BITMAP_NOT_UPDATED_MASK                                     0x0000000000002000
+
+
+ 
+
+#define RX_ATTENTION_RESERVED_2_OFFSET                                              0x0000000000000008
+#define RX_ATTENTION_RESERVED_2_LSB                                                 14
+#define RX_ATTENTION_RESERVED_2_MSB                                                 30
+#define RX_ATTENTION_RESERVED_2_MASK                                                0x000000007fffc000
+
+
+ 
+
+#define RX_ATTENTION_MSDU_DONE_OFFSET                                               0x0000000000000008
+#define RX_ATTENTION_MSDU_DONE_LSB                                                  31
+#define RX_ATTENTION_MSDU_DONE_MSB                                                  31
+#define RX_ATTENTION_MSDU_DONE_MASK                                                 0x0000000080000000
+
+
+ 
+
+#define RX_ATTENTION_TLV64_PADDING_OFFSET                                           0x0000000000000008
+#define RX_ATTENTION_TLV64_PADDING_LSB                                              32
+#define RX_ATTENTION_TLV64_PADDING_MSB                                              63
+#define RX_ATTENTION_TLV64_PADDING_MASK                                             0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_flow_search_entry.h b/hw/qcn9224/v2/rx_flow_search_entry.h
new file mode 100644
index 0000000..23b0554
--- /dev/null
+++ b/hw/qcn9224/v2/rx_flow_search_entry.h
@@ -0,0 +1,322 @@
+
+/* 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 _RX_FLOW_SEARCH_ENTRY_H_
+#define _RX_FLOW_SEARCH_ENTRY_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_FLOW_SEARCH_ENTRY 16
+
+
+struct rx_flow_search_entry {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t src_ip_127_96                                           : 32;  
+             uint32_t src_ip_95_64                                            : 32;  
+             uint32_t src_ip_63_32                                            : 32;  
+             uint32_t src_ip_31_0                                             : 32;  
+             uint32_t dest_ip_127_96                                          : 32;  
+             uint32_t dest_ip_95_64                                           : 32;  
+             uint32_t dest_ip_63_32                                           : 32;  
+             uint32_t dest_ip_31_0                                            : 32;  
+             uint32_t src_port                                                : 16,  
+                      dest_port                                               : 16;  
+             uint32_t l4_protocol                                             :  8,  
+                      valid                                                   :  1,  
+                      reserved_9                                              :  4,  
+                      service_code                                            :  9,  
+                      priority_valid                                          :  1,  
+                      use_ppe                                                 :  1,  
+                      reo_destination_indication                              :  5,  
+                      msdu_drop                                               :  1,  
+                      reo_destination_handler                                 :  2;  
+             uint32_t metadata                                                : 32;  
+             uint32_t aggregation_count                                       :  7,  
+                      lro_eligible                                            :  1,  
+                      msdu_count                                              : 24;  
+             uint32_t msdu_byte_count                                         : 32;  
+             uint32_t timestamp                                               : 32;  
+             uint32_t cumulative_ip_length_pmac1                              : 16,  
+                      cumulative_ip_length                                    : 16;  
+             uint32_t tcp_sequence_number                                     : 32;  
+#else
+             uint32_t src_ip_127_96                                           : 32;  
+             uint32_t src_ip_95_64                                            : 32;  
+             uint32_t src_ip_63_32                                            : 32;  
+             uint32_t src_ip_31_0                                             : 32;  
+             uint32_t dest_ip_127_96                                          : 32;  
+             uint32_t dest_ip_95_64                                           : 32;  
+             uint32_t dest_ip_63_32                                           : 32;  
+             uint32_t dest_ip_31_0                                            : 32;  
+             uint32_t dest_port                                               : 16,  
+                      src_port                                                : 16;  
+             uint32_t reo_destination_handler                                 :  2,  
+                      msdu_drop                                               :  1,  
+                      reo_destination_indication                              :  5,  
+                      use_ppe                                                 :  1,  
+                      priority_valid                                          :  1,  
+                      service_code                                            :  9,  
+                      reserved_9                                              :  4,  
+                      valid                                                   :  1,  
+                      l4_protocol                                             :  8;  
+             uint32_t metadata                                                : 32;  
+             uint32_t msdu_count                                              : 24,  
+                      lro_eligible                                            :  1,  
+                      aggregation_count                                       :  7;  
+             uint32_t msdu_byte_count                                         : 32;  
+             uint32_t timestamp                                               : 32;  
+             uint32_t cumulative_ip_length                                    : 16,  
+                      cumulative_ip_length_pmac1                              : 16;  
+             uint32_t tcp_sequence_number                                     : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_OFFSET                                   0x00000000
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_OFFSET                                    0x00000004
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_OFFSET                                    0x00000008
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_OFFSET                                     0x0000000c
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_LSB                                        0
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_MSB                                        31
+#define RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_MASK                                       0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_OFFSET                                  0x00000010
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_LSB                                     0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_MSB                                     31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_MASK                                    0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_OFFSET                                   0x00000014
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_OFFSET                                   0x00000018
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_LSB                                      0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_MSB                                      31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_OFFSET                                    0x0000001c
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_LSB                                       0
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_MSB                                       31
+#define RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_OFFSET                                        0x00000020
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_LSB                                           0
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_MSB                                           15
+#define RX_FLOW_SEARCH_ENTRY_SRC_PORT_MASK                                          0x0000ffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_OFFSET                                       0x00000020
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_LSB                                          16
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_MSB                                          31
+#define RX_FLOW_SEARCH_ENTRY_DEST_PORT_MASK                                         0xffff0000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_OFFSET                                     0x00000024
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_LSB                                        0
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_MSB                                        7
+#define RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_MASK                                       0x000000ff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_VALID_OFFSET                                           0x00000024
+#define RX_FLOW_SEARCH_ENTRY_VALID_LSB                                              8
+#define RX_FLOW_SEARCH_ENTRY_VALID_MSB                                              8
+#define RX_FLOW_SEARCH_ENTRY_VALID_MASK                                             0x00000100
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_OFFSET                                      0x00000024
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_LSB                                         9
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_MSB                                         12
+#define RX_FLOW_SEARCH_ENTRY_RESERVED_9_MASK                                        0x00001e00
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_OFFSET                                    0x00000024
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_LSB                                       13
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_MSB                                       21
+#define RX_FLOW_SEARCH_ENTRY_SERVICE_CODE_MASK                                      0x003fe000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_OFFSET                                  0x00000024
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_LSB                                     22
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_MSB                                     22
+#define RX_FLOW_SEARCH_ENTRY_PRIORITY_VALID_MASK                                    0x00400000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_OFFSET                                         0x00000024
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_LSB                                            23
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_MSB                                            23
+#define RX_FLOW_SEARCH_ENTRY_USE_PPE_MASK                                           0x00800000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_OFFSET                      0x00000024
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_LSB                         24
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_MSB                         28
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_INDICATION_MASK                        0x1f000000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_OFFSET                                       0x00000024
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_LSB                                          29
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_MSB                                          29
+#define RX_FLOW_SEARCH_ENTRY_MSDU_DROP_MASK                                         0x20000000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_OFFSET                         0x00000024
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_LSB                            30
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_MSB                            31
+#define RX_FLOW_SEARCH_ENTRY_REO_DESTINATION_HANDLER_MASK                           0xc0000000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_METADATA_OFFSET                                        0x00000028
+#define RX_FLOW_SEARCH_ENTRY_METADATA_LSB                                           0
+#define RX_FLOW_SEARCH_ENTRY_METADATA_MSB                                           31
+#define RX_FLOW_SEARCH_ENTRY_METADATA_MASK                                          0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_OFFSET                               0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_LSB                                  0
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_MSB                                  6
+#define RX_FLOW_SEARCH_ENTRY_AGGREGATION_COUNT_MASK                                 0x0000007f
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_OFFSET                                    0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_LSB                                       7
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_MSB                                       7
+#define RX_FLOW_SEARCH_ENTRY_LRO_ELIGIBLE_MASK                                      0x00000080
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_OFFSET                                      0x0000002c
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_LSB                                         8
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_MSB                                         31
+#define RX_FLOW_SEARCH_ENTRY_MSDU_COUNT_MASK                                        0xffffff00
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_OFFSET                                 0x00000030
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_LSB                                    0
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_MSB                                    31
+#define RX_FLOW_SEARCH_ENTRY_MSDU_BYTE_COUNT_MASK                                   0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_OFFSET                                       0x00000034
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_LSB                                          0
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_MSB                                          31
+#define RX_FLOW_SEARCH_ENTRY_TIMESTAMP_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_OFFSET                      0x00000038
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_LSB                         0
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_MSB                         15
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_PMAC1_MASK                        0x0000ffff
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_OFFSET                            0x00000038
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_LSB                               16
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_MSB                               31
+#define RX_FLOW_SEARCH_ENTRY_CUMULATIVE_IP_LENGTH_MASK                              0xffff0000
+
+
+ 
+
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_OFFSET                             0x0000003c
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_LSB                                0
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_MSB                                31
+#define RX_FLOW_SEARCH_ENTRY_TCP_SEQUENCE_NUMBER_MASK                               0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_frame_1k_bitmap_ack.h b/hw/qcn9224/v2/rx_frame_1k_bitmap_ack.h
similarity index 100%
copy from hw/qcn9224/rx_frame_1k_bitmap_ack.h
copy to hw/qcn9224/v2/rx_frame_1k_bitmap_ack.h
diff --git a/hw/qcn9224/rx_frame_bitmap_ack.h b/hw/qcn9224/v2/rx_frame_bitmap_ack.h
similarity index 100%
copy from hw/qcn9224/rx_frame_bitmap_ack.h
copy to hw/qcn9224/v2/rx_frame_bitmap_ack.h
diff --git a/hw/qcn9224/rx_frame_bitmap_req.h b/hw/qcn9224/v2/rx_frame_bitmap_req.h
similarity index 100%
copy from hw/qcn9224/rx_frame_bitmap_req.h
copy to hw/qcn9224/v2/rx_frame_bitmap_req.h
diff --git a/hw/qcn9224/v2/rx_location_info.h b/hw/qcn9224/v2/rx_location_info.h
new file mode 100644
index 0000000..160dcfd
--- /dev/null
+++ b/hw/qcn9224/v2/rx_location_info.h
@@ -0,0 +1,672 @@
+
+/* 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 _RX_LOCATION_INFO_H_
+#define _RX_LOCATION_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_LOCATION_INFO 28
+
+
+struct rx_location_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_location_info_valid                                  :  1,  
+                      rtt_hw_ifft_mode                                        :  1,  
+                      rtt_11az_mode                                           :  2,  
+                      reserved_0                                              :  4,  
+                      rtt_num_fac                                             :  8,  
+                      rtt_rx_chain_mask                                       :  8,  
+                      rtt_num_streams                                         :  8;  
+             uint32_t rtt_first_selected_chain                                :  8,  
+                      rtt_second_selected_chain                               :  8,  
+                      rtt_cfr_status                                          :  8,  
+                      rtt_cir_status                                          :  8;  
+             uint32_t rtt_che_buffer_pointer_low32                            : 32;  
+             uint32_t rtt_che_buffer_pointer_high8                            :  8,  
+                      reserved_3                                              :  8,  
+                      rtt_pkt_bw_vht                                          :  4,  
+                      rtt_pkt_bw_leg                                          :  4,  
+                      rtt_mcs_rate                                            :  8;  
+             uint32_t rtt_cfo_measurement                                     : 16,  
+                      rtt_preamble_type                                       :  8,  
+                      rtt_gi_type                                             :  8;  
+             uint32_t rx_start_ts                                             : 32;  
+             uint32_t rx_start_ts_upper                                       : 32;  
+             uint32_t rx_end_ts                                               : 32;  
+             uint32_t gain_chain0                                             : 16,  
+                      gain_chain1                                             : 16;  
+             uint32_t gain_chain2                                             : 16,  
+                      gain_chain3                                             : 16;  
+             uint32_t gain_report_status                                      :  8,  
+                      rtt_timing_backoff_sel                                  :  8,  
+                      rtt_fac_combined                                        : 16;  
+             uint32_t rtt_fac_0                                               : 16,  
+                      rtt_fac_1                                               : 16;  
+             uint32_t rtt_fac_2                                               : 16,  
+                      rtt_fac_3                                               : 16;  
+             uint32_t rtt_fac_4                                               : 16,  
+                      rtt_fac_5                                               : 16;  
+             uint32_t rtt_fac_6                                               : 16,  
+                      rtt_fac_7                                               : 16;  
+             uint32_t rtt_fac_8                                               : 16,  
+                      rtt_fac_9                                               : 16;  
+             uint32_t rtt_fac_10                                              : 16,  
+                      rtt_fac_11                                              : 16;  
+             uint32_t rtt_fac_12                                              : 16,  
+                      rtt_fac_13                                              : 16;  
+             uint32_t rtt_fac_14                                              : 16,  
+                      rtt_fac_15                                              : 16;  
+             uint32_t rtt_fac_16                                              : 16,  
+                      rtt_fac_17                                              : 16;  
+             uint32_t rtt_fac_18                                              : 16,  
+                      rtt_fac_19                                              : 16;  
+             uint32_t rtt_fac_20                                              : 16,  
+                      rtt_fac_21                                              : 16;  
+             uint32_t rtt_fac_22                                              : 16,  
+                      rtt_fac_23                                              : 16;  
+             uint32_t rtt_fac_24                                              : 16,  
+                      rtt_fac_25                                              : 16;  
+             uint32_t rtt_fac_26                                              : 16,  
+                      rtt_fac_27                                              : 16;  
+             uint32_t rtt_fac_28                                              : 16,  
+                      rtt_fac_29                                              : 16;  
+             uint32_t rtt_fac_30                                              : 16,  
+                      rtt_fac_31                                              : 16;  
+             uint32_t reserved_27a                                            : 32;  
+#else
+             uint32_t rtt_num_streams                                         :  8,  
+                      rtt_rx_chain_mask                                       :  8,  
+                      rtt_num_fac                                             :  8,  
+                      reserved_0                                              :  4,  
+                      rtt_11az_mode                                           :  2,  
+                      rtt_hw_ifft_mode                                        :  1,  
+                      rx_location_info_valid                                  :  1;  
+             uint32_t rtt_cir_status                                          :  8,  
+                      rtt_cfr_status                                          :  8,  
+                      rtt_second_selected_chain                               :  8,  
+                      rtt_first_selected_chain                                :  8;  
+             uint32_t rtt_che_buffer_pointer_low32                            : 32;  
+             uint32_t rtt_mcs_rate                                            :  8,  
+                      rtt_pkt_bw_leg                                          :  4,  
+                      rtt_pkt_bw_vht                                          :  4,  
+                      reserved_3                                              :  8,  
+                      rtt_che_buffer_pointer_high8                            :  8;  
+             uint32_t rtt_gi_type                                             :  8,  
+                      rtt_preamble_type                                       :  8,  
+                      rtt_cfo_measurement                                     : 16;  
+             uint32_t rx_start_ts                                             : 32;  
+             uint32_t rx_start_ts_upper                                       : 32;  
+             uint32_t rx_end_ts                                               : 32;  
+             uint32_t gain_chain1                                             : 16,  
+                      gain_chain0                                             : 16;  
+             uint32_t gain_chain3                                             : 16,  
+                      gain_chain2                                             : 16;  
+             uint32_t rtt_fac_combined                                        : 16,  
+                      rtt_timing_backoff_sel                                  :  8,  
+                      gain_report_status                                      :  8;  
+             uint32_t rtt_fac_1                                               : 16,  
+                      rtt_fac_0                                               : 16;  
+             uint32_t rtt_fac_3                                               : 16,  
+                      rtt_fac_2                                               : 16;  
+             uint32_t rtt_fac_5                                               : 16,  
+                      rtt_fac_4                                               : 16;  
+             uint32_t rtt_fac_7                                               : 16,  
+                      rtt_fac_6                                               : 16;  
+             uint32_t rtt_fac_9                                               : 16,  
+                      rtt_fac_8                                               : 16;  
+             uint32_t rtt_fac_11                                              : 16,  
+                      rtt_fac_10                                              : 16;  
+             uint32_t rtt_fac_13                                              : 16,  
+                      rtt_fac_12                                              : 16;  
+             uint32_t rtt_fac_15                                              : 16,  
+                      rtt_fac_14                                              : 16;  
+             uint32_t rtt_fac_17                                              : 16,  
+                      rtt_fac_16                                              : 16;  
+             uint32_t rtt_fac_19                                              : 16,  
+                      rtt_fac_18                                              : 16;  
+             uint32_t rtt_fac_21                                              : 16,  
+                      rtt_fac_20                                              : 16;  
+             uint32_t rtt_fac_23                                              : 16,  
+                      rtt_fac_22                                              : 16;  
+             uint32_t rtt_fac_25                                              : 16,  
+                      rtt_fac_24                                              : 16;  
+             uint32_t rtt_fac_27                                              : 16,  
+                      rtt_fac_26                                              : 16;  
+             uint32_t rtt_fac_29                                              : 16,  
+                      rtt_fac_28                                              : 16;  
+             uint32_t rtt_fac_31                                              : 16,  
+                      rtt_fac_30                                              : 16;  
+             uint32_t reserved_27a                                            : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_OFFSET                              0x00000000
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_LSB                                 0
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_MSB                                 0
+#define RX_LOCATION_INFO_RX_LOCATION_INFO_VALID_MASK                                0x00000001
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_OFFSET                                    0x00000000
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_LSB                                       1
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_MSB                                       1
+#define RX_LOCATION_INFO_RTT_HW_IFFT_MODE_MASK                                      0x00000002
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_OFFSET                                       0x00000000
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_LSB                                          2
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_MSB                                          3
+#define RX_LOCATION_INFO_RTT_11AZ_MODE_MASK                                         0x0000000c
+
+
+ 
+
+#define RX_LOCATION_INFO_RESERVED_0_OFFSET                                          0x00000000
+#define RX_LOCATION_INFO_RESERVED_0_LSB                                             4
+#define RX_LOCATION_INFO_RESERVED_0_MSB                                             7
+#define RX_LOCATION_INFO_RESERVED_0_MASK                                            0x000000f0
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_NUM_FAC_OFFSET                                         0x00000000
+#define RX_LOCATION_INFO_RTT_NUM_FAC_LSB                                            8
+#define RX_LOCATION_INFO_RTT_NUM_FAC_MSB                                            15
+#define RX_LOCATION_INFO_RTT_NUM_FAC_MASK                                           0x0000ff00
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_OFFSET                                   0x00000000
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_LSB                                      16
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_MSB                                      23
+#define RX_LOCATION_INFO_RTT_RX_CHAIN_MASK_MASK                                     0x00ff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_OFFSET                                     0x00000000
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_LSB                                        24
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_MSB                                        31
+#define RX_LOCATION_INFO_RTT_NUM_STREAMS_MASK                                       0xff000000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_OFFSET                            0x00000004
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_LSB                               0
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_MSB                               7
+#define RX_LOCATION_INFO_RTT_FIRST_SELECTED_CHAIN_MASK                              0x000000ff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_OFFSET                           0x00000004
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_LSB                              8
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_MSB                              15
+#define RX_LOCATION_INFO_RTT_SECOND_SELECTED_CHAIN_MASK                             0x0000ff00
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_OFFSET                                      0x00000004
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_LSB                                         16
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_MSB                                         23
+#define RX_LOCATION_INFO_RTT_CFR_STATUS_MASK                                        0x00ff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_OFFSET                                      0x00000004
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_LSB                                         24
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_MSB                                         31
+#define RX_LOCATION_INFO_RTT_CIR_STATUS_MASK                                        0xff000000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET                        0x00000008
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_LSB                           0
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_MSB                           31
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_LOW32_MASK                          0xffffffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET                        0x0000000c
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_LSB                           0
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_MSB                           7
+#define RX_LOCATION_INFO_RTT_CHE_BUFFER_POINTER_HIGH8_MASK                          0x000000ff
+
+
+ 
+
+#define RX_LOCATION_INFO_RESERVED_3_OFFSET                                          0x0000000c
+#define RX_LOCATION_INFO_RESERVED_3_LSB                                             8
+#define RX_LOCATION_INFO_RESERVED_3_MSB                                             15
+#define RX_LOCATION_INFO_RESERVED_3_MASK                                            0x0000ff00
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_OFFSET                                      0x0000000c
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_LSB                                         16
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_MSB                                         19
+#define RX_LOCATION_INFO_RTT_PKT_BW_VHT_MASK                                        0x000f0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_OFFSET                                      0x0000000c
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_LSB                                         20
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_MSB                                         23
+#define RX_LOCATION_INFO_RTT_PKT_BW_LEG_MASK                                        0x00f00000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_MCS_RATE_OFFSET                                        0x0000000c
+#define RX_LOCATION_INFO_RTT_MCS_RATE_LSB                                           24
+#define RX_LOCATION_INFO_RTT_MCS_RATE_MSB                                           31
+#define RX_LOCATION_INFO_RTT_MCS_RATE_MASK                                          0xff000000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_OFFSET                                 0x00000010
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_LSB                                    0
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_MSB                                    15
+#define RX_LOCATION_INFO_RTT_CFO_MEASUREMENT_MASK                                   0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_OFFSET                                   0x00000010
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_LSB                                      16
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_MSB                                      23
+#define RX_LOCATION_INFO_RTT_PREAMBLE_TYPE_MASK                                     0x00ff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_GI_TYPE_OFFSET                                         0x00000010
+#define RX_LOCATION_INFO_RTT_GI_TYPE_LSB                                            24
+#define RX_LOCATION_INFO_RTT_GI_TYPE_MSB                                            31
+#define RX_LOCATION_INFO_RTT_GI_TYPE_MASK                                           0xff000000
+
+
+ 
+
+#define RX_LOCATION_INFO_RX_START_TS_OFFSET                                         0x00000014
+#define RX_LOCATION_INFO_RX_START_TS_LSB                                            0
+#define RX_LOCATION_INFO_RX_START_TS_MSB                                            31
+#define RX_LOCATION_INFO_RX_START_TS_MASK                                           0xffffffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_OFFSET                                   0x00000018
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_LSB                                      0
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_MSB                                      31
+#define RX_LOCATION_INFO_RX_START_TS_UPPER_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RX_END_TS_OFFSET                                           0x0000001c
+#define RX_LOCATION_INFO_RX_END_TS_LSB                                              0
+#define RX_LOCATION_INFO_RX_END_TS_MSB                                              31
+#define RX_LOCATION_INFO_RX_END_TS_MASK                                             0xffffffff
+
+
+ 
+
+#define RX_LOCATION_INFO_GAIN_CHAIN0_OFFSET                                         0x00000020
+#define RX_LOCATION_INFO_GAIN_CHAIN0_LSB                                            0
+#define RX_LOCATION_INFO_GAIN_CHAIN0_MSB                                            15
+#define RX_LOCATION_INFO_GAIN_CHAIN0_MASK                                           0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_GAIN_CHAIN1_OFFSET                                         0x00000020
+#define RX_LOCATION_INFO_GAIN_CHAIN1_LSB                                            16
+#define RX_LOCATION_INFO_GAIN_CHAIN1_MSB                                            31
+#define RX_LOCATION_INFO_GAIN_CHAIN1_MASK                                           0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_GAIN_CHAIN2_OFFSET                                         0x00000024
+#define RX_LOCATION_INFO_GAIN_CHAIN2_LSB                                            0
+#define RX_LOCATION_INFO_GAIN_CHAIN2_MSB                                            15
+#define RX_LOCATION_INFO_GAIN_CHAIN2_MASK                                           0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_GAIN_CHAIN3_OFFSET                                         0x00000024
+#define RX_LOCATION_INFO_GAIN_CHAIN3_LSB                                            16
+#define RX_LOCATION_INFO_GAIN_CHAIN3_MSB                                            31
+#define RX_LOCATION_INFO_GAIN_CHAIN3_MASK                                           0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_OFFSET                                  0x00000028
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_LSB                                     0
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_MSB                                     7
+#define RX_LOCATION_INFO_GAIN_REPORT_STATUS_MASK                                    0x000000ff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_OFFSET                              0x00000028
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_LSB                                 8
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_MSB                                 15
+#define RX_LOCATION_INFO_RTT_TIMING_BACKOFF_SEL_MASK                                0x0000ff00
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_OFFSET                                    0x00000028
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_LSB                                       16
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_MSB                                       31
+#define RX_LOCATION_INFO_RTT_FAC_COMBINED_MASK                                      0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_0_OFFSET                                           0x0000002c
+#define RX_LOCATION_INFO_RTT_FAC_0_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_0_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_0_MASK                                             0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_1_OFFSET                                           0x0000002c
+#define RX_LOCATION_INFO_RTT_FAC_1_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_1_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_1_MASK                                             0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_2_OFFSET                                           0x00000030
+#define RX_LOCATION_INFO_RTT_FAC_2_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_2_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_2_MASK                                             0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_3_OFFSET                                           0x00000030
+#define RX_LOCATION_INFO_RTT_FAC_3_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_3_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_3_MASK                                             0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_4_OFFSET                                           0x00000034
+#define RX_LOCATION_INFO_RTT_FAC_4_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_4_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_4_MASK                                             0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_5_OFFSET                                           0x00000034
+#define RX_LOCATION_INFO_RTT_FAC_5_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_5_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_5_MASK                                             0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_6_OFFSET                                           0x00000038
+#define RX_LOCATION_INFO_RTT_FAC_6_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_6_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_6_MASK                                             0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_7_OFFSET                                           0x00000038
+#define RX_LOCATION_INFO_RTT_FAC_7_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_7_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_7_MASK                                             0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_8_OFFSET                                           0x0000003c
+#define RX_LOCATION_INFO_RTT_FAC_8_LSB                                              0
+#define RX_LOCATION_INFO_RTT_FAC_8_MSB                                              15
+#define RX_LOCATION_INFO_RTT_FAC_8_MASK                                             0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_9_OFFSET                                           0x0000003c
+#define RX_LOCATION_INFO_RTT_FAC_9_LSB                                              16
+#define RX_LOCATION_INFO_RTT_FAC_9_MSB                                              31
+#define RX_LOCATION_INFO_RTT_FAC_9_MASK                                             0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_10_OFFSET                                          0x00000040
+#define RX_LOCATION_INFO_RTT_FAC_10_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_10_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_10_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_11_OFFSET                                          0x00000040
+#define RX_LOCATION_INFO_RTT_FAC_11_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_11_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_11_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_12_OFFSET                                          0x00000044
+#define RX_LOCATION_INFO_RTT_FAC_12_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_12_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_12_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_13_OFFSET                                          0x00000044
+#define RX_LOCATION_INFO_RTT_FAC_13_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_13_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_13_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_14_OFFSET                                          0x00000048
+#define RX_LOCATION_INFO_RTT_FAC_14_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_14_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_14_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_15_OFFSET                                          0x00000048
+#define RX_LOCATION_INFO_RTT_FAC_15_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_15_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_15_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_16_OFFSET                                          0x0000004c
+#define RX_LOCATION_INFO_RTT_FAC_16_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_16_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_16_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_17_OFFSET                                          0x0000004c
+#define RX_LOCATION_INFO_RTT_FAC_17_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_17_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_17_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_18_OFFSET                                          0x00000050
+#define RX_LOCATION_INFO_RTT_FAC_18_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_18_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_18_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_19_OFFSET                                          0x00000050
+#define RX_LOCATION_INFO_RTT_FAC_19_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_19_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_19_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_20_OFFSET                                          0x00000054
+#define RX_LOCATION_INFO_RTT_FAC_20_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_20_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_20_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_21_OFFSET                                          0x00000054
+#define RX_LOCATION_INFO_RTT_FAC_21_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_21_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_21_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_22_OFFSET                                          0x00000058
+#define RX_LOCATION_INFO_RTT_FAC_22_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_22_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_22_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_23_OFFSET                                          0x00000058
+#define RX_LOCATION_INFO_RTT_FAC_23_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_23_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_23_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_24_OFFSET                                          0x0000005c
+#define RX_LOCATION_INFO_RTT_FAC_24_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_24_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_24_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_25_OFFSET                                          0x0000005c
+#define RX_LOCATION_INFO_RTT_FAC_25_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_25_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_25_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_26_OFFSET                                          0x00000060
+#define RX_LOCATION_INFO_RTT_FAC_26_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_26_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_26_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_27_OFFSET                                          0x00000060
+#define RX_LOCATION_INFO_RTT_FAC_27_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_27_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_27_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_28_OFFSET                                          0x00000064
+#define RX_LOCATION_INFO_RTT_FAC_28_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_28_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_28_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_29_OFFSET                                          0x00000064
+#define RX_LOCATION_INFO_RTT_FAC_29_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_29_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_29_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_30_OFFSET                                          0x00000068
+#define RX_LOCATION_INFO_RTT_FAC_30_LSB                                             0
+#define RX_LOCATION_INFO_RTT_FAC_30_MSB                                             15
+#define RX_LOCATION_INFO_RTT_FAC_30_MASK                                            0x0000ffff
+
+
+ 
+
+#define RX_LOCATION_INFO_RTT_FAC_31_OFFSET                                          0x00000068
+#define RX_LOCATION_INFO_RTT_FAC_31_LSB                                             16
+#define RX_LOCATION_INFO_RTT_FAC_31_MSB                                             31
+#define RX_LOCATION_INFO_RTT_FAC_31_MASK                                            0xffff0000
+
+
+ 
+
+#define RX_LOCATION_INFO_RESERVED_27A_OFFSET                                        0x0000006c
+#define RX_LOCATION_INFO_RESERVED_27A_LSB                                           0
+#define RX_LOCATION_INFO_RESERVED_27A_MSB                                           31
+#define RX_LOCATION_INFO_RESERVED_27A_MASK                                          0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_desc_info.h b/hw/qcn9224/v2/rx_mpdu_desc_info.h
new file mode 100644
index 0000000..69764d7
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_desc_info.h
@@ -0,0 +1,162 @@
+
+/* 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 _RX_MPDU_DESC_INFO_H_
+#define _RX_MPDU_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MPDU_DESC_INFO 2
+
+
+struct rx_mpdu_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t msdu_count                                              :  8,  
+                      fragment_flag                                           :  1,  
+                      mpdu_retry_bit                                          :  1,  
+                      ampdu_flag                                              :  1,  
+                      bar_frame                                               :  1,  
+                      pn_fields_contain_valid_info                            :  1,  
+                      raw_mpdu                                                :  1,  
+                      more_fragment_flag                                      :  1,  
+                      src_info                                                : 12,  
+                      mpdu_qos_control_valid                                  :  1,  
+                      tid                                                     :  4;  
+             uint32_t peer_meta_data                                          : 32;  
+#else
+             uint32_t tid                                                     :  4,  
+                      mpdu_qos_control_valid                                  :  1,  
+                      src_info                                                : 12,  
+                      more_fragment_flag                                      :  1,  
+                      raw_mpdu                                                :  1,  
+                      pn_fields_contain_valid_info                            :  1,  
+                      bar_frame                                               :  1,  
+                      ampdu_flag                                              :  1,  
+                      mpdu_retry_bit                                          :  1,  
+                      fragment_flag                                           :  1,  
+                      msdu_count                                              :  8;  
+             uint32_t peer_meta_data                                          : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_OFFSET                                         0x00000000
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_LSB                                            0
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_MSB                                            7
+#define RX_MPDU_DESC_INFO_MSDU_COUNT_MASK                                           0x000000ff
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_OFFSET                                      0x00000000
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_LSB                                         8
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_MSB                                         8
+#define RX_MPDU_DESC_INFO_FRAGMENT_FLAG_MASK                                        0x00000100
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_OFFSET                                     0x00000000
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_LSB                                        9
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_MSB                                        9
+#define RX_MPDU_DESC_INFO_MPDU_RETRY_BIT_MASK                                       0x00000200
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_OFFSET                                         0x00000000
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_LSB                                            10
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_MSB                                            10
+#define RX_MPDU_DESC_INFO_AMPDU_FLAG_MASK                                           0x00000400
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_BAR_FRAME_OFFSET                                          0x00000000
+#define RX_MPDU_DESC_INFO_BAR_FRAME_LSB                                             11
+#define RX_MPDU_DESC_INFO_BAR_FRAME_MSB                                             11
+#define RX_MPDU_DESC_INFO_BAR_FRAME_MASK                                            0x00000800
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET                       0x00000000
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_LSB                          12
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_MSB                          12
+#define RX_MPDU_DESC_INFO_PN_FIELDS_CONTAIN_VALID_INFO_MASK                         0x00001000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_RAW_MPDU_OFFSET                                           0x00000000
+#define RX_MPDU_DESC_INFO_RAW_MPDU_LSB                                              13
+#define RX_MPDU_DESC_INFO_RAW_MPDU_MSB                                              13
+#define RX_MPDU_DESC_INFO_RAW_MPDU_MASK                                             0x00002000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_OFFSET                                 0x00000000
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_LSB                                    14
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_MSB                                    14
+#define RX_MPDU_DESC_INFO_MORE_FRAGMENT_FLAG_MASK                                   0x00004000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_SRC_INFO_OFFSET                                           0x00000000
+#define RX_MPDU_DESC_INFO_SRC_INFO_LSB                                              15
+#define RX_MPDU_DESC_INFO_SRC_INFO_MSB                                              26
+#define RX_MPDU_DESC_INFO_SRC_INFO_MASK                                             0x07ff8000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_OFFSET                             0x00000000
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_LSB                                27
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_MSB                                27
+#define RX_MPDU_DESC_INFO_MPDU_QOS_CONTROL_VALID_MASK                               0x08000000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_TID_OFFSET                                                0x00000000
+#define RX_MPDU_DESC_INFO_TID_LSB                                                   28
+#define RX_MPDU_DESC_INFO_TID_MSB                                                   31
+#define RX_MPDU_DESC_INFO_TID_MASK                                                  0xf0000000
+
+
+ 
+
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_OFFSET                                     0x00000004
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_LSB                                        0
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_MSB                                        31
+#define RX_MPDU_DESC_INFO_PEER_META_DATA_MASK                                       0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_details.h b/hw/qcn9224/v2/rx_mpdu_details.h
new file mode 100644
index 0000000..d2ca030
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_details.h
@@ -0,0 +1,182 @@
+
+/* 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 _RX_MPDU_DETAILS_H_
+#define _RX_MPDU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_DETAILS 4
+
+
+struct rx_mpdu_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          msdu_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+#else
+             struct   buffer_addr_info                                          msdu_link_desc_addr_info;
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET            0x00000000
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB               0
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB               31
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK              0xffffffff
+
+
+ 
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET           0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB              0
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB              7
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK             0x000000ff
+
+
+ 
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET       0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB          8
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB          11
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK         0x00000f00
+
+
+ 
+
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET            0x00000004
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB               12
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB               31
+#define RX_MPDU_DETAILS_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK              0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET                 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB                    0
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB                    7
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK                   0x000000ff
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET              0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB                 8
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB                 8
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK                0x00000100
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET             0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB                9
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB                9
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK               0x00000200
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET                 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB                    10
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB                    10
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK                   0x00000400
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET                  0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                     11
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                     11
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK                    0x00000800
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB  12
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB  12
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET                   0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                      13
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                      13
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                     0x00002000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET         0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB            14
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB            14
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK           0x00004000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET                   0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                      15
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                      26
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                     0x07ff8000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET     0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB        27
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB        27
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK       0x08000000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                        0x00000008
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                           28
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                           31
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                          0xf0000000
+
+
+ 
+
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET             0x0000000c
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB                0
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB                31
+#define RX_MPDU_DETAILS_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK               0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_end.h b/hw/qcn9224/v2/rx_mpdu_end.h
new file mode 100644
index 0000000..2566891
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_end.h
@@ -0,0 +1,284 @@
+
+/* 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 _RX_MPDU_END_H_
+#define _RX_MPDU_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MPDU_END 4
+
+#define NUM_OF_QWORDS_RX_MPDU_END 2
+
+
+struct rx_mpdu_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2,  
+                      sw_frame_group_id                                       :  7,  
+                      reserved_0                                              :  7,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t reserved_1a                                             : 11,  
+                      unsup_ktype_short_frame                                 :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      overflow_err                                            :  1,  
+                      mpdu_length_err                                         :  1,  
+                      tkip_mic_err                                            :  1,  
+                      decrypt_err                                             :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      pn_fields_contain_valid_info                            :  1,  
+                      fcs_err                                                 :  1,  
+                      msdu_length_err                                         :  1,  
+                      rxdma0_destination_ring                                 :  3,  
+                      rxdma1_destination_ring                                 :  3,  
+                      decrypt_status_code                                     :  3,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      reserved_1b                                             :  1;  
+             uint32_t reserved_2a                                             : 15,  
+                      rxpcu_mgmt_sequence_nr_valid                            :  1,  
+                      rxpcu_mgmt_sequence_nr                                  : 16;  
+             uint32_t rxframe_assert_mlo_timestamp                            : 32;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_0                                              :  7,  
+                      sw_frame_group_id                                       :  7,  
+                      rxpcu_mpdu_filter_in_category                           :  2;  
+             uint32_t reserved_1b                                             :  1,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      decrypt_status_code                                     :  3,  
+                      rxdma1_destination_ring                                 :  3,  
+                      rxdma0_destination_ring                                 :  3,  
+                      msdu_length_err                                         :  1,  
+                      fcs_err                                                 :  1,  
+                      pn_fields_contain_valid_info                            :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      decrypt_err                                             :  1,  
+                      tkip_mic_err                                            :  1,  
+                      mpdu_length_err                                         :  1,  
+                      overflow_err                                            :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      unsup_ktype_short_frame                                 :  1,  
+                      reserved_1a                                             : 11;  
+             uint32_t rxpcu_mgmt_sequence_nr                                  : 16,  
+                      rxpcu_mgmt_sequence_nr_valid                            :  1,  
+                      reserved_2a                                             : 15;  
+             uint32_t rxframe_assert_mlo_timestamp                            : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                            0x0000000000000000
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                               0
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                               1
+#define RX_MPDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                              0x0000000000000003
+
+
+ 
+
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_OFFSET                                        0x0000000000000000
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_LSB                                           2
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_MSB                                           8
+#define RX_MPDU_END_SW_FRAME_GROUP_ID_MASK                                          0x00000000000001fc
+
+
+ 
+
+#define RX_MPDU_END_RESERVED_0_OFFSET                                               0x0000000000000000
+#define RX_MPDU_END_RESERVED_0_LSB                                                  9
+#define RX_MPDU_END_RESERVED_0_MSB                                                  15
+#define RX_MPDU_END_RESERVED_0_MASK                                                 0x000000000000fe00
+
+
+ 
+
+#define RX_MPDU_END_PHY_PPDU_ID_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_PHY_PPDU_ID_LSB                                                 16
+#define RX_MPDU_END_PHY_PPDU_ID_MSB                                                 31
+#define RX_MPDU_END_PHY_PPDU_ID_MASK                                                0x00000000ffff0000
+
+
+ 
+
+#define RX_MPDU_END_RESERVED_1A_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_RESERVED_1A_LSB                                                 32
+#define RX_MPDU_END_RESERVED_1A_MSB                                                 42
+#define RX_MPDU_END_RESERVED_1A_MASK                                                0x000007ff00000000
+
+
+ 
+
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_LSB                                     43
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_MSB                                     43
+#define RX_MPDU_END_UNSUP_KTYPE_SHORT_FRAME_MASK                                    0x0000080000000000
+
+
+ 
+
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_OFFSET                                     0x0000000000000000
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_LSB                                        44
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_MSB                                        44
+#define RX_MPDU_END_RX_IN_TX_DECRYPT_BYP_MASK                                       0x0000100000000000
+
+
+ 
+
+#define RX_MPDU_END_OVERFLOW_ERR_OFFSET                                             0x0000000000000000
+#define RX_MPDU_END_OVERFLOW_ERR_LSB                                                45
+#define RX_MPDU_END_OVERFLOW_ERR_MSB                                                45
+#define RX_MPDU_END_OVERFLOW_ERR_MASK                                               0x0000200000000000
+
+
+ 
+
+#define RX_MPDU_END_MPDU_LENGTH_ERR_OFFSET                                          0x0000000000000000
+#define RX_MPDU_END_MPDU_LENGTH_ERR_LSB                                             46
+#define RX_MPDU_END_MPDU_LENGTH_ERR_MSB                                             46
+#define RX_MPDU_END_MPDU_LENGTH_ERR_MASK                                            0x0000400000000000
+
+
+ 
+
+#define RX_MPDU_END_TKIP_MIC_ERR_OFFSET                                             0x0000000000000000
+#define RX_MPDU_END_TKIP_MIC_ERR_LSB                                                47
+#define RX_MPDU_END_TKIP_MIC_ERR_MSB                                                47
+#define RX_MPDU_END_TKIP_MIC_ERR_MASK                                               0x0000800000000000
+
+
+ 
+
+#define RX_MPDU_END_DECRYPT_ERR_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_DECRYPT_ERR_LSB                                                 48
+#define RX_MPDU_END_DECRYPT_ERR_MSB                                                 48
+#define RX_MPDU_END_DECRYPT_ERR_MASK                                                0x0001000000000000
+
+
+ 
+
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_OFFSET                                    0x0000000000000000
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_LSB                                       49
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_MSB                                       49
+#define RX_MPDU_END_UNENCRYPTED_FRAME_ERR_MASK                                      0x0002000000000000
+
+
+ 
+
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET                             0x0000000000000000
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_LSB                                50
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_MSB                                50
+#define RX_MPDU_END_PN_FIELDS_CONTAIN_VALID_INFO_MASK                               0x0004000000000000
+
+
+ 
+
+#define RX_MPDU_END_FCS_ERR_OFFSET                                                  0x0000000000000000
+#define RX_MPDU_END_FCS_ERR_LSB                                                     51
+#define RX_MPDU_END_FCS_ERR_MSB                                                     51
+#define RX_MPDU_END_FCS_ERR_MASK                                                    0x0008000000000000
+
+
+ 
+
+#define RX_MPDU_END_MSDU_LENGTH_ERR_OFFSET                                          0x0000000000000000
+#define RX_MPDU_END_MSDU_LENGTH_ERR_LSB                                             52
+#define RX_MPDU_END_MSDU_LENGTH_ERR_MSB                                             52
+#define RX_MPDU_END_MSDU_LENGTH_ERR_MASK                                            0x0010000000000000
+
+
+ 
+
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_LSB                                     53
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_MSB                                     55
+#define RX_MPDU_END_RXDMA0_DESTINATION_RING_MASK                                    0x00e0000000000000
+
+
+ 
+
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_OFFSET                                  0x0000000000000000
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_LSB                                     56
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_MSB                                     58
+#define RX_MPDU_END_RXDMA1_DESTINATION_RING_MASK                                    0x0700000000000000
+
+
+ 
+
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_OFFSET                                      0x0000000000000000
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_LSB                                         59
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_MSB                                         61
+#define RX_MPDU_END_DECRYPT_STATUS_CODE_MASK                                        0x3800000000000000
+
+
+ 
+
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_OFFSET                                    0x0000000000000000
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_LSB                                       62
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_MSB                                       62
+#define RX_MPDU_END_RX_BITMAP_NOT_UPDATED_MASK                                      0x4000000000000000
+
+
+ 
+
+#define RX_MPDU_END_RESERVED_1B_OFFSET                                              0x0000000000000000
+#define RX_MPDU_END_RESERVED_1B_LSB                                                 63
+#define RX_MPDU_END_RESERVED_1B_MSB                                                 63
+#define RX_MPDU_END_RESERVED_1B_MASK                                                0x8000000000000000
+
+
+ 
+
+#define RX_MPDU_END_RESERVED_2A_OFFSET                                              0x0000000000000008
+#define RX_MPDU_END_RESERVED_2A_LSB                                                 0
+#define RX_MPDU_END_RESERVED_2A_MSB                                                 14
+#define RX_MPDU_END_RESERVED_2A_MASK                                                0x0000000000007fff
+
+
+ 
+
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_OFFSET                             0x0000000000000008
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_LSB                                15
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_MSB                                15
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_VALID_MASK                               0x0000000000008000
+
+
+ 
+
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_OFFSET                                   0x0000000000000008
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_LSB                                      16
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_MSB                                      31
+#define RX_MPDU_END_RXPCU_MGMT_SEQUENCE_NR_MASK                                     0x00000000ffff0000
+
+
+ 
+
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_OFFSET                             0x0000000000000008
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_LSB                                32
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_MSB                                63
+#define RX_MPDU_END_RXFRAME_ASSERT_MLO_TIMESTAMP_MASK                               0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_info.h b/hw/qcn9224/v2/rx_mpdu_info.h
new file mode 100644
index 0000000..24603f6
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_info.h
@@ -0,0 +1,1250 @@
+
+/* 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 _RX_MPDU_INFO_H_
+#define _RX_MPDU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rxpt_classify_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_INFO 30
+
+
+struct rx_mpdu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rxpt_classify_info                                        rxpt_classify_info_details;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8,  
+                      receive_queue_number                                    : 16,  
+                      pre_delim_err_warning                                   :  1,  
+                      first_delim_err                                         :  1,  
+                      reserved_2a                                             :  6;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t epd_en                                                  :  1,  
+                      all_frames_shall_be_encrypted                           :  1,  
+                      encrypt_type                                            :  4,  
+                      wep_key_width_for_variable_key                          :  2,  
+                      mesh_sta                                                :  2,  
+                      bssid_hit                                               :  1,  
+                      bssid_number                                            :  4,  
+                      tid                                                     :  4,  
+                      reserved_7a                                             : 13;  
+             uint32_t peer_meta_data                                          : 32;  
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2,  
+                      sw_frame_group_id                                       :  7,  
+                      ndp_frame                                               :  1,  
+                      phy_err                                                 :  1,  
+                      phy_err_during_mpdu_header                              :  1,  
+                      protocol_version_err                                    :  1,  
+                      ast_based_lookup_valid                                  :  1,  
+                      ranging                                                 :  1,  
+                      reserved_9a                                             :  1,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t ast_index                                               : 16,  
+                      sw_peer_id                                              : 16;  
+             uint32_t mpdu_frame_control_valid                                :  1,  
+                      mpdu_duration_valid                                     :  1,  
+                      mac_addr_ad1_valid                                      :  1,  
+                      mac_addr_ad2_valid                                      :  1,  
+                      mac_addr_ad3_valid                                      :  1,  
+                      mac_addr_ad4_valid                                      :  1,  
+                      mpdu_sequence_control_valid                             :  1,  
+                      mpdu_qos_control_valid                                  :  1,  
+                      mpdu_ht_control_valid                                   :  1,  
+                      frame_encryption_info_valid                             :  1,  
+                      mpdu_fragment_number                                    :  4,  
+                      more_fragment_flag                                      :  1,  
+                      reserved_11a                                            :  1,  
+                      fr_ds                                                   :  1,  
+                      to_ds                                                   :  1,  
+                      encrypted                                               :  1,  
+                      mpdu_retry                                              :  1,  
+                      mpdu_sequence_number                                    : 12;  
+             uint32_t key_id_octet                                            :  8,  
+                      new_peer_entry                                          :  1,  
+                      decrypt_needed                                          :  1,  
+                      decap_type                                              :  2,  
+                      rx_insert_vlan_c_tag_padding                            :  1,  
+                      rx_insert_vlan_s_tag_padding                            :  1,  
+                      strip_vlan_c_tag_decap                                  :  1,  
+                      strip_vlan_s_tag_decap                                  :  1,  
+                      pre_delim_count                                         : 12,  
+                      ampdu_flag                                              :  1,  
+                      bar_frame                                               :  1,  
+                      raw_mpdu                                                :  1,  
+                      reserved_12                                             :  1;  
+             uint32_t mpdu_length                                             : 14,  
+                      first_mpdu                                              :  1,  
+                      mcast_bcast                                             :  1,  
+                      ast_index_not_found                                     :  1,  
+                      ast_index_timeout                                       :  1,  
+                      power_mgmt                                              :  1,  
+                      non_qos                                                 :  1,  
+                      null_data                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      more_data                                               :  1,  
+                      eosp                                                    :  1,  
+                      fragment_flag                                           :  1,  
+                      order                                                   :  1,  
+                      u_apsd_trigger                                          :  1,  
+                      encrypt_required                                        :  1,  
+                      directed                                                :  1,  
+                      amsdu_present                                           :  1,  
+                      reserved_13                                             :  1;  
+             uint32_t mpdu_frame_control_field                                : 16,  
+                      mpdu_duration_field                                     : 16;  
+             uint32_t mac_addr_ad1_31_0                                       : 32;  
+             uint32_t mac_addr_ad1_47_32                                      : 16,  
+                      mac_addr_ad2_15_0                                       : 16;  
+             uint32_t mac_addr_ad2_47_16                                      : 32;  
+             uint32_t mac_addr_ad3_31_0                                       : 32;  
+             uint32_t mac_addr_ad3_47_32                                      : 16,  
+                      mpdu_sequence_control_field                             : 16;  
+             uint32_t mac_addr_ad4_31_0                                       : 32;  
+             uint32_t mac_addr_ad4_47_32                                      : 16,  
+                      mpdu_qos_control_field                                  : 16;  
+             uint32_t mpdu_ht_control_field                                   : 32;  
+             uint32_t vdev_id                                                 :  8,  
+                      service_code                                            :  9,  
+                      priority_valid                                          :  1,  
+                      src_info                                                : 12,  
+                      reserved_23a                                            :  1,  
+                      multi_link_addr_ad1_ad2_valid                           :  1;  
+             uint32_t multi_link_addr_ad1_31_0                                : 32;  
+             uint32_t multi_link_addr_ad1_47_32                               : 16,  
+                      multi_link_addr_ad2_15_0                                : 16;  
+             uint32_t multi_link_addr_ad2_47_16                               : 32;  
+             uint32_t authorized_to_send_wds                                  :  1,  
+                      reserved_27a                                            : 31;  
+             uint32_t reserved_28a                                            : 32;  
+             uint32_t reserved_29a                                            : 32;  
+#else
+             struct   rxpt_classify_info                                        rxpt_classify_info_details;
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t reserved_2a                                             :  6,  
+                      first_delim_err                                         :  1,  
+                      pre_delim_err_warning                                   :  1,  
+                      receive_queue_number                                    : 16,  
+                      rx_reo_queue_desc_addr_39_32                            :  8;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t reserved_7a                                             : 13,  
+                      tid                                                     :  4,  
+                      bssid_number                                            :  4,  
+                      bssid_hit                                               :  1,  
+                      mesh_sta                                                :  2,  
+                      wep_key_width_for_variable_key                          :  2,  
+                      encrypt_type                                            :  4,  
+                      all_frames_shall_be_encrypted                           :  1,  
+                      epd_en                                                  :  1;  
+             uint32_t peer_meta_data                                          : 32;  
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_9a                                             :  1,  
+                      ranging                                                 :  1,  
+                      ast_based_lookup_valid                                  :  1,  
+                      protocol_version_err                                    :  1,  
+                      phy_err_during_mpdu_header                              :  1,  
+                      phy_err                                                 :  1,  
+                      ndp_frame                                               :  1,  
+                      sw_frame_group_id                                       :  7,  
+                      rxpcu_mpdu_filter_in_category                           :  2;  
+             uint32_t sw_peer_id                                              : 16,  
+                      ast_index                                               : 16;  
+             uint32_t mpdu_sequence_number                                    : 12,  
+                      mpdu_retry                                              :  1,  
+                      encrypted                                               :  1,  
+                      to_ds                                                   :  1,  
+                      fr_ds                                                   :  1,  
+                      reserved_11a                                            :  1,  
+                      more_fragment_flag                                      :  1,  
+                      mpdu_fragment_number                                    :  4,  
+                      frame_encryption_info_valid                             :  1,  
+                      mpdu_ht_control_valid                                   :  1,  
+                      mpdu_qos_control_valid                                  :  1,  
+                      mpdu_sequence_control_valid                             :  1,  
+                      mac_addr_ad4_valid                                      :  1,  
+                      mac_addr_ad3_valid                                      :  1,  
+                      mac_addr_ad2_valid                                      :  1,  
+                      mac_addr_ad1_valid                                      :  1,  
+                      mpdu_duration_valid                                     :  1,  
+                      mpdu_frame_control_valid                                :  1;  
+             uint32_t reserved_12                                             :  1,  
+                      raw_mpdu                                                :  1,  
+                      bar_frame                                               :  1,  
+                      ampdu_flag                                              :  1,  
+                      pre_delim_count                                         : 12,  
+                      strip_vlan_s_tag_decap                                  :  1,  
+                      strip_vlan_c_tag_decap                                  :  1,  
+                      rx_insert_vlan_s_tag_padding                            :  1,  
+                      rx_insert_vlan_c_tag_padding                            :  1,  
+                      decap_type                                              :  2,  
+                      decrypt_needed                                          :  1,  
+                      new_peer_entry                                          :  1,  
+                      key_id_octet                                            :  8;  
+             uint32_t reserved_13                                             :  1,  
+                      amsdu_present                                           :  1,  
+                      directed                                                :  1,  
+                      encrypt_required                                        :  1,  
+                      u_apsd_trigger                                          :  1,  
+                      order                                                   :  1,  
+                      fragment_flag                                           :  1,  
+                      eosp                                                    :  1,  
+                      more_data                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      null_data                                               :  1,  
+                      non_qos                                                 :  1,  
+                      power_mgmt                                              :  1,  
+                      ast_index_timeout                                       :  1,  
+                      ast_index_not_found                                     :  1,  
+                      mcast_bcast                                             :  1,  
+                      first_mpdu                                              :  1,  
+                      mpdu_length                                             : 14;  
+             uint32_t mpdu_duration_field                                     : 16,  
+                      mpdu_frame_control_field                                : 16;  
+             uint32_t mac_addr_ad1_31_0                                       : 32;  
+             uint32_t mac_addr_ad2_15_0                                       : 16,  
+                      mac_addr_ad1_47_32                                      : 16;  
+             uint32_t mac_addr_ad2_47_16                                      : 32;  
+             uint32_t mac_addr_ad3_31_0                                       : 32;  
+             uint32_t mpdu_sequence_control_field                             : 16,  
+                      mac_addr_ad3_47_32                                      : 16;  
+             uint32_t mac_addr_ad4_31_0                                       : 32;  
+             uint32_t mpdu_qos_control_field                                  : 16,  
+                      mac_addr_ad4_47_32                                      : 16;  
+             uint32_t mpdu_ht_control_field                                   : 32;  
+             uint32_t multi_link_addr_ad1_ad2_valid                           :  1,  
+                      reserved_23a                                            :  1,  
+                      src_info                                                : 12,  
+                      priority_valid                                          :  1,  
+                      service_code                                            :  9,  
+                      vdev_id                                                 :  8;  
+             uint32_t multi_link_addr_ad1_31_0                                : 32;  
+             uint32_t multi_link_addr_ad2_15_0                                : 16,  
+                      multi_link_addr_ad1_47_32                               : 16;  
+             uint32_t multi_link_addr_ad2_47_16                               : 32;  
+             uint32_t reserved_27a                                            : 31,  
+                      authorized_to_send_wds                                  :  1;  
+             uint32_t reserved_28a                                            : 32;  
+             uint32_t reserved_29a                                            : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET   0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB      0
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB      4
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK     0x0000001f
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_OFFSET             0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_LSB                5
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MSB                6
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MASK               0x00000060
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET    0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_LSB       7
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MSB       7
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MASK      0x00000080
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_OFFSET  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_LSB     8
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MSB     8
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MASK    0x00000100
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_OFFSET  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_LSB     9
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MSB     9
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MASK    0x00000200
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_OFFSET        0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_LSB           10
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MSB           10
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MASK          0x00000400
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_LSB    11
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MSB    13
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MASK   0x00003800
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_LSB 14
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MSB 16
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x0001c000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_OFFSET       0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_LSB          17
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MSB          17
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MASK         0x00020000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_OFFSET       0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_LSB          18
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MSB          18
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MASK         0x00040000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_OFFSET            0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_LSB               19
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MSB               19
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MASK              0x00080000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_OFFSET                      0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_LSB                         20
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MSB                         20
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MASK                        0x00100000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_OFFSET           0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_LSB              21
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MSB              21
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MASK             0x00200000
+
+
+ 
+
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_OFFSET                  0x00000000
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_LSB                     22
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MSB                     31
+#define RX_MPDU_INFO_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MASK                    0xffc00000
+
+
+ 
+
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                             0x00000004
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                                0
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                                31
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                               0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                            0x00000008
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                               0
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                               7
+#define RX_MPDU_INFO_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                              0x000000ff
+
+
+ 
+
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x00000008
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_LSB                                       8
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_MSB                                       23
+#define RX_MPDU_INFO_RECEIVE_QUEUE_NUMBER_MASK                                      0x00ffff00
+
+
+ 
+
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_OFFSET                                   0x00000008
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_LSB                                      24
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_MSB                                      24
+#define RX_MPDU_INFO_PRE_DELIM_ERR_WARNING_MASK                                     0x01000000
+
+
+ 
+
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_OFFSET                                         0x00000008
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_LSB                                            25
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_MSB                                            25
+#define RX_MPDU_INFO_FIRST_DELIM_ERR_MASK                                           0x02000000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_2A_OFFSET                                             0x00000008
+#define RX_MPDU_INFO_RESERVED_2A_LSB                                                26
+#define RX_MPDU_INFO_RESERVED_2A_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_2A_MASK                                               0xfc000000
+
+
+ 
+
+#define RX_MPDU_INFO_PN_31_0_OFFSET                                                 0x0000000c
+#define RX_MPDU_INFO_PN_31_0_LSB                                                    0
+#define RX_MPDU_INFO_PN_31_0_MSB                                                    31
+#define RX_MPDU_INFO_PN_31_0_MASK                                                   0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_PN_63_32_OFFSET                                                0x00000010
+#define RX_MPDU_INFO_PN_63_32_LSB                                                   0
+#define RX_MPDU_INFO_PN_63_32_MSB                                                   31
+#define RX_MPDU_INFO_PN_63_32_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_PN_95_64_OFFSET                                                0x00000014
+#define RX_MPDU_INFO_PN_95_64_LSB                                                   0
+#define RX_MPDU_INFO_PN_95_64_MSB                                                   31
+#define RX_MPDU_INFO_PN_95_64_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_PN_127_96_OFFSET                                               0x00000018
+#define RX_MPDU_INFO_PN_127_96_LSB                                                  0
+#define RX_MPDU_INFO_PN_127_96_MSB                                                  31
+#define RX_MPDU_INFO_PN_127_96_MASK                                                 0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_EPD_EN_OFFSET                                                  0x0000001c
+#define RX_MPDU_INFO_EPD_EN_LSB                                                     0
+#define RX_MPDU_INFO_EPD_EN_MSB                                                     0
+#define RX_MPDU_INFO_EPD_EN_MASK                                                    0x00000001
+
+
+ 
+
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_OFFSET                           0x0000001c
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_LSB                              1
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_MSB                              1
+#define RX_MPDU_INFO_ALL_FRAMES_SHALL_BE_ENCRYPTED_MASK                             0x00000002
+
+
+ 
+
+#define RX_MPDU_INFO_ENCRYPT_TYPE_OFFSET                                            0x0000001c
+#define RX_MPDU_INFO_ENCRYPT_TYPE_LSB                                               2
+#define RX_MPDU_INFO_ENCRYPT_TYPE_MSB                                               5
+#define RX_MPDU_INFO_ENCRYPT_TYPE_MASK                                              0x0000003c
+
+
+ 
+
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_OFFSET                          0x0000001c
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_LSB                             6
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MSB                             7
+#define RX_MPDU_INFO_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MASK                            0x000000c0
+
+
+ 
+
+#define RX_MPDU_INFO_MESH_STA_OFFSET                                                0x0000001c
+#define RX_MPDU_INFO_MESH_STA_LSB                                                   8
+#define RX_MPDU_INFO_MESH_STA_MSB                                                   9
+#define RX_MPDU_INFO_MESH_STA_MASK                                                  0x00000300
+
+
+ 
+
+#define RX_MPDU_INFO_BSSID_HIT_OFFSET                                               0x0000001c
+#define RX_MPDU_INFO_BSSID_HIT_LSB                                                  10
+#define RX_MPDU_INFO_BSSID_HIT_MSB                                                  10
+#define RX_MPDU_INFO_BSSID_HIT_MASK                                                 0x00000400
+
+
+ 
+
+#define RX_MPDU_INFO_BSSID_NUMBER_OFFSET                                            0x0000001c
+#define RX_MPDU_INFO_BSSID_NUMBER_LSB                                               11
+#define RX_MPDU_INFO_BSSID_NUMBER_MSB                                               14
+#define RX_MPDU_INFO_BSSID_NUMBER_MASK                                              0x00007800
+
+
+ 
+
+#define RX_MPDU_INFO_TID_OFFSET                                                     0x0000001c
+#define RX_MPDU_INFO_TID_LSB                                                        15
+#define RX_MPDU_INFO_TID_MSB                                                        18
+#define RX_MPDU_INFO_TID_MASK                                                       0x00078000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_7A_OFFSET                                             0x0000001c
+#define RX_MPDU_INFO_RESERVED_7A_LSB                                                19
+#define RX_MPDU_INFO_RESERVED_7A_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_7A_MASK                                               0xfff80000
+
+
+ 
+
+#define RX_MPDU_INFO_PEER_META_DATA_OFFSET                                          0x00000020
+#define RX_MPDU_INFO_PEER_META_DATA_LSB                                             0
+#define RX_MPDU_INFO_PEER_META_DATA_MSB                                             31
+#define RX_MPDU_INFO_PEER_META_DATA_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                           0x00000024
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                              0
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                              1
+#define RX_MPDU_INFO_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                             0x00000003
+
+
+ 
+
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_OFFSET                                       0x00000024
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_LSB                                          2
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_MSB                                          8
+#define RX_MPDU_INFO_SW_FRAME_GROUP_ID_MASK                                         0x000001fc
+
+
+ 
+
+#define RX_MPDU_INFO_NDP_FRAME_OFFSET                                               0x00000024
+#define RX_MPDU_INFO_NDP_FRAME_LSB                                                  9
+#define RX_MPDU_INFO_NDP_FRAME_MSB                                                  9
+#define RX_MPDU_INFO_NDP_FRAME_MASK                                                 0x00000200
+
+
+ 
+
+#define RX_MPDU_INFO_PHY_ERR_OFFSET                                                 0x00000024
+#define RX_MPDU_INFO_PHY_ERR_LSB                                                    10
+#define RX_MPDU_INFO_PHY_ERR_MSB                                                    10
+#define RX_MPDU_INFO_PHY_ERR_MASK                                                   0x00000400
+
+
+ 
+
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_OFFSET                              0x00000024
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_LSB                                 11
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_MSB                                 11
+#define RX_MPDU_INFO_PHY_ERR_DURING_MPDU_HEADER_MASK                                0x00000800
+
+
+ 
+
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_OFFSET                                    0x00000024
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_LSB                                       12
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_MSB                                       12
+#define RX_MPDU_INFO_PROTOCOL_VERSION_ERR_MASK                                      0x00001000
+
+
+ 
+
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_OFFSET                                  0x00000024
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_LSB                                     13
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_MSB                                     13
+#define RX_MPDU_INFO_AST_BASED_LOOKUP_VALID_MASK                                    0x00002000
+
+
+ 
+
+#define RX_MPDU_INFO_RANGING_OFFSET                                                 0x00000024
+#define RX_MPDU_INFO_RANGING_LSB                                                    14
+#define RX_MPDU_INFO_RANGING_MSB                                                    14
+#define RX_MPDU_INFO_RANGING_MASK                                                   0x00004000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_9A_OFFSET                                             0x00000024
+#define RX_MPDU_INFO_RESERVED_9A_LSB                                                15
+#define RX_MPDU_INFO_RESERVED_9A_MSB                                                15
+#define RX_MPDU_INFO_RESERVED_9A_MASK                                               0x00008000
+
+
+ 
+
+#define RX_MPDU_INFO_PHY_PPDU_ID_OFFSET                                             0x00000024
+#define RX_MPDU_INFO_PHY_PPDU_ID_LSB                                                16
+#define RX_MPDU_INFO_PHY_PPDU_ID_MSB                                                31
+#define RX_MPDU_INFO_PHY_PPDU_ID_MASK                                               0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_AST_INDEX_OFFSET                                               0x00000028
+#define RX_MPDU_INFO_AST_INDEX_LSB                                                  0
+#define RX_MPDU_INFO_AST_INDEX_MSB                                                  15
+#define RX_MPDU_INFO_AST_INDEX_MASK                                                 0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_SW_PEER_ID_OFFSET                                              0x00000028
+#define RX_MPDU_INFO_SW_PEER_ID_LSB                                                 16
+#define RX_MPDU_INFO_SW_PEER_ID_MSB                                                 31
+#define RX_MPDU_INFO_SW_PEER_ID_MASK                                                0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_OFFSET                                0x0000002c
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_LSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_MSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_VALID_MASK                                  0x00000001
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_OFFSET                                     0x0000002c
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_LSB                                        1
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_MSB                                        1
+#define RX_MPDU_INFO_MPDU_DURATION_VALID_MASK                                       0x00000002
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_LSB                                         2
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_MSB                                         2
+#define RX_MPDU_INFO_MAC_ADDR_AD1_VALID_MASK                                        0x00000004
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_LSB                                         3
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_MSB                                         3
+#define RX_MPDU_INFO_MAC_ADDR_AD2_VALID_MASK                                        0x00000008
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_LSB                                         4
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_MSB                                         4
+#define RX_MPDU_INFO_MAC_ADDR_AD3_VALID_MASK                                        0x00000010
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_LSB                                         5
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_MSB                                         5
+#define RX_MPDU_INFO_MAC_ADDR_AD4_VALID_MASK                                        0x00000020
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_OFFSET                             0x0000002c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_LSB                                6
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_MSB                                6
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_VALID_MASK                               0x00000040
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_OFFSET                                  0x0000002c
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_LSB                                     7
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_MSB                                     7
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_VALID_MASK                                    0x00000080
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_OFFSET                                   0x0000002c
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_LSB                                      8
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_MSB                                      8
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_VALID_MASK                                     0x00000100
+
+
+ 
+
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_OFFSET                             0x0000002c
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_LSB                                9
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_MSB                                9
+#define RX_MPDU_INFO_FRAME_ENCRYPTION_INFO_VALID_MASK                               0x00000200
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_OFFSET                                    0x0000002c
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_LSB                                       10
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_MSB                                       13
+#define RX_MPDU_INFO_MPDU_FRAGMENT_NUMBER_MASK                                      0x00003c00
+
+
+ 
+
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_OFFSET                                      0x0000002c
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_LSB                                         14
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_MSB                                         14
+#define RX_MPDU_INFO_MORE_FRAGMENT_FLAG_MASK                                        0x00004000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_11A_OFFSET                                            0x0000002c
+#define RX_MPDU_INFO_RESERVED_11A_LSB                                               15
+#define RX_MPDU_INFO_RESERVED_11A_MSB                                               15
+#define RX_MPDU_INFO_RESERVED_11A_MASK                                              0x00008000
+
+
+ 
+
+#define RX_MPDU_INFO_FR_DS_OFFSET                                                   0x0000002c
+#define RX_MPDU_INFO_FR_DS_LSB                                                      16
+#define RX_MPDU_INFO_FR_DS_MSB                                                      16
+#define RX_MPDU_INFO_FR_DS_MASK                                                     0x00010000
+
+
+ 
+
+#define RX_MPDU_INFO_TO_DS_OFFSET                                                   0x0000002c
+#define RX_MPDU_INFO_TO_DS_LSB                                                      17
+#define RX_MPDU_INFO_TO_DS_MSB                                                      17
+#define RX_MPDU_INFO_TO_DS_MASK                                                     0x00020000
+
+
+ 
+
+#define RX_MPDU_INFO_ENCRYPTED_OFFSET                                               0x0000002c
+#define RX_MPDU_INFO_ENCRYPTED_LSB                                                  18
+#define RX_MPDU_INFO_ENCRYPTED_MSB                                                  18
+#define RX_MPDU_INFO_ENCRYPTED_MASK                                                 0x00040000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_RETRY_OFFSET                                              0x0000002c
+#define RX_MPDU_INFO_MPDU_RETRY_LSB                                                 19
+#define RX_MPDU_INFO_MPDU_RETRY_MSB                                                 19
+#define RX_MPDU_INFO_MPDU_RETRY_MASK                                                0x00080000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_OFFSET                                    0x0000002c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_LSB                                       20
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_MSB                                       31
+#define RX_MPDU_INFO_MPDU_SEQUENCE_NUMBER_MASK                                      0xfff00000
+
+
+ 
+
+#define RX_MPDU_INFO_KEY_ID_OCTET_OFFSET                                            0x00000030
+#define RX_MPDU_INFO_KEY_ID_OCTET_LSB                                               0
+#define RX_MPDU_INFO_KEY_ID_OCTET_MSB                                               7
+#define RX_MPDU_INFO_KEY_ID_OCTET_MASK                                              0x000000ff
+
+
+ 
+
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_OFFSET                                          0x00000030
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_LSB                                             8
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_MSB                                             8
+#define RX_MPDU_INFO_NEW_PEER_ENTRY_MASK                                            0x00000100
+
+
+ 
+
+#define RX_MPDU_INFO_DECRYPT_NEEDED_OFFSET                                          0x00000030
+#define RX_MPDU_INFO_DECRYPT_NEEDED_LSB                                             9
+#define RX_MPDU_INFO_DECRYPT_NEEDED_MSB                                             9
+#define RX_MPDU_INFO_DECRYPT_NEEDED_MASK                                            0x00000200
+
+
+ 
+
+#define RX_MPDU_INFO_DECAP_TYPE_OFFSET                                              0x00000030
+#define RX_MPDU_INFO_DECAP_TYPE_LSB                                                 10
+#define RX_MPDU_INFO_DECAP_TYPE_MSB                                                 11
+#define RX_MPDU_INFO_DECAP_TYPE_MASK                                                0x00000c00
+
+
+ 
+
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_OFFSET                            0x00000030
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_LSB                               12
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_MSB                               12
+#define RX_MPDU_INFO_RX_INSERT_VLAN_C_TAG_PADDING_MASK                              0x00001000
+
+
+ 
+
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_OFFSET                            0x00000030
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_LSB                               13
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_MSB                               13
+#define RX_MPDU_INFO_RX_INSERT_VLAN_S_TAG_PADDING_MASK                              0x00002000
+
+
+ 
+
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_OFFSET                                  0x00000030
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_LSB                                     14
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_MSB                                     14
+#define RX_MPDU_INFO_STRIP_VLAN_C_TAG_DECAP_MASK                                    0x00004000
+
+
+ 
+
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_OFFSET                                  0x00000030
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_LSB                                     15
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_MSB                                     15
+#define RX_MPDU_INFO_STRIP_VLAN_S_TAG_DECAP_MASK                                    0x00008000
+
+
+ 
+
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_OFFSET                                         0x00000030
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_LSB                                            16
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_MSB                                            27
+#define RX_MPDU_INFO_PRE_DELIM_COUNT_MASK                                           0x0fff0000
+
+
+ 
+
+#define RX_MPDU_INFO_AMPDU_FLAG_OFFSET                                              0x00000030
+#define RX_MPDU_INFO_AMPDU_FLAG_LSB                                                 28
+#define RX_MPDU_INFO_AMPDU_FLAG_MSB                                                 28
+#define RX_MPDU_INFO_AMPDU_FLAG_MASK                                                0x10000000
+
+
+ 
+
+#define RX_MPDU_INFO_BAR_FRAME_OFFSET                                               0x00000030
+#define RX_MPDU_INFO_BAR_FRAME_LSB                                                  29
+#define RX_MPDU_INFO_BAR_FRAME_MSB                                                  29
+#define RX_MPDU_INFO_BAR_FRAME_MASK                                                 0x20000000
+
+
+ 
+
+#define RX_MPDU_INFO_RAW_MPDU_OFFSET                                                0x00000030
+#define RX_MPDU_INFO_RAW_MPDU_LSB                                                   30
+#define RX_MPDU_INFO_RAW_MPDU_MSB                                                   30
+#define RX_MPDU_INFO_RAW_MPDU_MASK                                                  0x40000000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_12_OFFSET                                             0x00000030
+#define RX_MPDU_INFO_RESERVED_12_LSB                                                31
+#define RX_MPDU_INFO_RESERVED_12_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_12_MASK                                               0x80000000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_LENGTH_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_MPDU_LENGTH_LSB                                                0
+#define RX_MPDU_INFO_MPDU_LENGTH_MSB                                                13
+#define RX_MPDU_INFO_MPDU_LENGTH_MASK                                               0x00003fff
+
+
+ 
+
+#define RX_MPDU_INFO_FIRST_MPDU_OFFSET                                              0x00000034
+#define RX_MPDU_INFO_FIRST_MPDU_LSB                                                 14
+#define RX_MPDU_INFO_FIRST_MPDU_MSB                                                 14
+#define RX_MPDU_INFO_FIRST_MPDU_MASK                                                0x00004000
+
+
+ 
+
+#define RX_MPDU_INFO_MCAST_BCAST_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_MCAST_BCAST_LSB                                                15
+#define RX_MPDU_INFO_MCAST_BCAST_MSB                                                15
+#define RX_MPDU_INFO_MCAST_BCAST_MASK                                               0x00008000
+
+
+ 
+
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_OFFSET                                     0x00000034
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_LSB                                        16
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_MSB                                        16
+#define RX_MPDU_INFO_AST_INDEX_NOT_FOUND_MASK                                       0x00010000
+
+
+ 
+
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_OFFSET                                       0x00000034
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_LSB                                          17
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_MSB                                          17
+#define RX_MPDU_INFO_AST_INDEX_TIMEOUT_MASK                                         0x00020000
+
+
+ 
+
+#define RX_MPDU_INFO_POWER_MGMT_OFFSET                                              0x00000034
+#define RX_MPDU_INFO_POWER_MGMT_LSB                                                 18
+#define RX_MPDU_INFO_POWER_MGMT_MSB                                                 18
+#define RX_MPDU_INFO_POWER_MGMT_MASK                                                0x00040000
+
+
+ 
+
+#define RX_MPDU_INFO_NON_QOS_OFFSET                                                 0x00000034
+#define RX_MPDU_INFO_NON_QOS_LSB                                                    19
+#define RX_MPDU_INFO_NON_QOS_MSB                                                    19
+#define RX_MPDU_INFO_NON_QOS_MASK                                                   0x00080000
+
+
+ 
+
+#define RX_MPDU_INFO_NULL_DATA_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_NULL_DATA_LSB                                                  20
+#define RX_MPDU_INFO_NULL_DATA_MSB                                                  20
+#define RX_MPDU_INFO_NULL_DATA_MASK                                                 0x00100000
+
+
+ 
+
+#define RX_MPDU_INFO_MGMT_TYPE_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_MGMT_TYPE_LSB                                                  21
+#define RX_MPDU_INFO_MGMT_TYPE_MSB                                                  21
+#define RX_MPDU_INFO_MGMT_TYPE_MASK                                                 0x00200000
+
+
+ 
+
+#define RX_MPDU_INFO_CTRL_TYPE_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_CTRL_TYPE_LSB                                                  22
+#define RX_MPDU_INFO_CTRL_TYPE_MSB                                                  22
+#define RX_MPDU_INFO_CTRL_TYPE_MASK                                                 0x00400000
+
+
+ 
+
+#define RX_MPDU_INFO_MORE_DATA_OFFSET                                               0x00000034
+#define RX_MPDU_INFO_MORE_DATA_LSB                                                  23
+#define RX_MPDU_INFO_MORE_DATA_MSB                                                  23
+#define RX_MPDU_INFO_MORE_DATA_MASK                                                 0x00800000
+
+
+ 
+
+#define RX_MPDU_INFO_EOSP_OFFSET                                                    0x00000034
+#define RX_MPDU_INFO_EOSP_LSB                                                       24
+#define RX_MPDU_INFO_EOSP_MSB                                                       24
+#define RX_MPDU_INFO_EOSP_MASK                                                      0x01000000
+
+
+ 
+
+#define RX_MPDU_INFO_FRAGMENT_FLAG_OFFSET                                           0x00000034
+#define RX_MPDU_INFO_FRAGMENT_FLAG_LSB                                              25
+#define RX_MPDU_INFO_FRAGMENT_FLAG_MSB                                              25
+#define RX_MPDU_INFO_FRAGMENT_FLAG_MASK                                             0x02000000
+
+
+ 
+
+#define RX_MPDU_INFO_ORDER_OFFSET                                                   0x00000034
+#define RX_MPDU_INFO_ORDER_LSB                                                      26
+#define RX_MPDU_INFO_ORDER_MSB                                                      26
+#define RX_MPDU_INFO_ORDER_MASK                                                     0x04000000
+
+
+ 
+
+#define RX_MPDU_INFO_U_APSD_TRIGGER_OFFSET                                          0x00000034
+#define RX_MPDU_INFO_U_APSD_TRIGGER_LSB                                             27
+#define RX_MPDU_INFO_U_APSD_TRIGGER_MSB                                             27
+#define RX_MPDU_INFO_U_APSD_TRIGGER_MASK                                            0x08000000
+
+
+ 
+
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_OFFSET                                        0x00000034
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_LSB                                           28
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_MSB                                           28
+#define RX_MPDU_INFO_ENCRYPT_REQUIRED_MASK                                          0x10000000
+
+
+ 
+
+#define RX_MPDU_INFO_DIRECTED_OFFSET                                                0x00000034
+#define RX_MPDU_INFO_DIRECTED_LSB                                                   29
+#define RX_MPDU_INFO_DIRECTED_MSB                                                   29
+#define RX_MPDU_INFO_DIRECTED_MASK                                                  0x20000000
+
+
+ 
+
+#define RX_MPDU_INFO_AMSDU_PRESENT_OFFSET                                           0x00000034
+#define RX_MPDU_INFO_AMSDU_PRESENT_LSB                                              30
+#define RX_MPDU_INFO_AMSDU_PRESENT_MSB                                              30
+#define RX_MPDU_INFO_AMSDU_PRESENT_MASK                                             0x40000000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_13_OFFSET                                             0x00000034
+#define RX_MPDU_INFO_RESERVED_13_LSB                                                31
+#define RX_MPDU_INFO_RESERVED_13_MSB                                                31
+#define RX_MPDU_INFO_RESERVED_13_MASK                                               0x80000000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_OFFSET                                0x00000038
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_LSB                                   0
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_MSB                                   15
+#define RX_MPDU_INFO_MPDU_FRAME_CONTROL_FIELD_MASK                                  0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_OFFSET                                     0x00000038
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_LSB                                        16
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_MSB                                        31
+#define RX_MPDU_INFO_MPDU_DURATION_FIELD_MASK                                       0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_OFFSET                                       0x0000003c
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD1_31_0_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_OFFSET                                      0x00000040
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD1_47_32_MASK                                        0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_OFFSET                                       0x00000040
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_LSB                                          16
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD2_15_0_MASK                                         0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_OFFSET                                      0x00000044
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_MSB                                         31
+#define RX_MPDU_INFO_MAC_ADDR_AD2_47_16_MASK                                        0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_OFFSET                                       0x00000048
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD3_31_0_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_OFFSET                                      0x0000004c
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD3_47_32_MASK                                        0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_OFFSET                             0x0000004c
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_LSB                                16
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_MSB                                31
+#define RX_MPDU_INFO_MPDU_SEQUENCE_CONTROL_FIELD_MASK                               0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_OFFSET                                       0x00000050
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_LSB                                          0
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_MSB                                          31
+#define RX_MPDU_INFO_MAC_ADDR_AD4_31_0_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_OFFSET                                      0x00000054
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_LSB                                         0
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_MSB                                         15
+#define RX_MPDU_INFO_MAC_ADDR_AD4_47_32_MASK                                        0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_OFFSET                                  0x00000054
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_LSB                                     16
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_MSB                                     31
+#define RX_MPDU_INFO_MPDU_QOS_CONTROL_FIELD_MASK                                    0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_OFFSET                                   0x00000058
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_LSB                                      0
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_MSB                                      31
+#define RX_MPDU_INFO_MPDU_HT_CONTROL_FIELD_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_VDEV_ID_OFFSET                                                 0x0000005c
+#define RX_MPDU_INFO_VDEV_ID_LSB                                                    0
+#define RX_MPDU_INFO_VDEV_ID_MSB                                                    7
+#define RX_MPDU_INFO_VDEV_ID_MASK                                                   0x000000ff
+
+
+ 
+
+#define RX_MPDU_INFO_SERVICE_CODE_OFFSET                                            0x0000005c
+#define RX_MPDU_INFO_SERVICE_CODE_LSB                                               8
+#define RX_MPDU_INFO_SERVICE_CODE_MSB                                               16
+#define RX_MPDU_INFO_SERVICE_CODE_MASK                                              0x0001ff00
+
+
+ 
+
+#define RX_MPDU_INFO_PRIORITY_VALID_OFFSET                                          0x0000005c
+#define RX_MPDU_INFO_PRIORITY_VALID_LSB                                             17
+#define RX_MPDU_INFO_PRIORITY_VALID_MSB                                             17
+#define RX_MPDU_INFO_PRIORITY_VALID_MASK                                            0x00020000
+
+
+ 
+
+#define RX_MPDU_INFO_SRC_INFO_OFFSET                                                0x0000005c
+#define RX_MPDU_INFO_SRC_INFO_LSB                                                   18
+#define RX_MPDU_INFO_SRC_INFO_MSB                                                   29
+#define RX_MPDU_INFO_SRC_INFO_MASK                                                  0x3ffc0000
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_23A_OFFSET                                            0x0000005c
+#define RX_MPDU_INFO_RESERVED_23A_LSB                                               30
+#define RX_MPDU_INFO_RESERVED_23A_MSB                                               30
+#define RX_MPDU_INFO_RESERVED_23A_MASK                                              0x40000000
+
+
+ 
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_OFFSET                           0x0000005c
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_LSB                              31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_MSB                              31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_AD2_VALID_MASK                             0x80000000
+
+
+ 
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_OFFSET                                0x00000060
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_LSB                                   0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_MSB                                   31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_31_0_MASK                                  0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_OFFSET                               0x00000064
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_LSB                                  0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_MSB                                  15
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD1_47_32_MASK                                 0x0000ffff
+
+
+ 
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_OFFSET                                0x00000064
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_LSB                                   16
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_MSB                                   31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_15_0_MASK                                  0xffff0000
+
+
+ 
+
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_OFFSET                               0x00000068
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_LSB                                  0
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_MSB                                  31
+#define RX_MPDU_INFO_MULTI_LINK_ADDR_AD2_47_16_MASK                                 0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_OFFSET                                  0x0000006c
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_LSB                                     0
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_MSB                                     0
+#define RX_MPDU_INFO_AUTHORIZED_TO_SEND_WDS_MASK                                    0x00000001
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_27A_OFFSET                                            0x0000006c
+#define RX_MPDU_INFO_RESERVED_27A_LSB                                               1
+#define RX_MPDU_INFO_RESERVED_27A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_27A_MASK                                              0xfffffffe
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_28A_OFFSET                                            0x00000070
+#define RX_MPDU_INFO_RESERVED_28A_LSB                                               0
+#define RX_MPDU_INFO_RESERVED_28A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_28A_MASK                                              0xffffffff
+
+
+ 
+
+#define RX_MPDU_INFO_RESERVED_29A_OFFSET                                            0x00000074
+#define RX_MPDU_INFO_RESERVED_29A_LSB                                               0
+#define RX_MPDU_INFO_RESERVED_29A_MSB                                               31
+#define RX_MPDU_INFO_RESERVED_29A_MASK                                              0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_link_ptr.h b/hw/qcn9224/v2/rx_mpdu_link_ptr.h
new file mode 100644
index 0000000..6dd9602
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_link_ptr.h
@@ -0,0 +1,80 @@
+
+/* 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 _RX_MPDU_LINK_PTR_H_
+#define _RX_MPDU_LINK_PTR_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_LINK_PTR 2
+
+
+struct rx_mpdu_link_ptr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          mpdu_link_desc_addr_info;
+#else
+             struct   buffer_addr_info                                          mpdu_link_desc_addr_info;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET           0x00000000
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB              0
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB              31
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK             0xffffffff
+
+
+ 
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET          0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB             0
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB             7
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK            0x000000ff
+
+
+ 
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET      0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB         8
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB         11
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK        0x00000f00
+
+
+ 
+
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET           0x00000004
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB              12
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB              31
+#define RX_MPDU_LINK_PTR_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK             0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_mpdu_start.h b/hw/qcn9224/v2/rx_mpdu_start.h
new file mode 100644
index 0000000..3142d0f
--- /dev/null
+++ b/hw/qcn9224/v2/rx_mpdu_start.h
@@ -0,0 +1,1037 @@
+
+/* 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 _RX_MPDU_START_H_
+#define _RX_MPDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_info.h"
+#define NUM_OF_DWORDS_RX_MPDU_START 30
+
+#define NUM_OF_QWORDS_RX_MPDU_START 15
+
+
+struct rx_mpdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_info                                              rx_mpdu_info_details;
+#else
+             struct   rx_mpdu_info                                              rx_mpdu_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x000000000000001f
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_LSB 5
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MSB 6
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_LMAC_PEER_ID_MSB_MASK 0x0000000000000060
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MSB 7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x0000000000000080
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_LSB 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MSB 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_UCAST_DATA_MASK 0x0000000000000100
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_LSB 9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MSB 9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_MCAST_DATA_MASK 0x0000000000000200
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_LSB 10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MSB 10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PKT_SELECTION_FP_1000_MASK 0x0000000000000400
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_LSB 11
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MSB 13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_SOURCE_RING_SELECTION_MASK 0x0000000000003800
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_LSB 14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MSB 16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x000000000001c000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_LSB 17
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MSB 17
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_MCAST_ECHO_DROP_ENABLE_MASK 0x0000000000020000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_LSB 18
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MSB 18
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_WDS_LEARNING_DETECT_EN_MASK 0x0000000000040000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_LSB 19
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MSB 19
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_INTRABSS_CHECK_EN_MASK 0x0000000000080000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_LSB   20
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MSB   20
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_USE_PPE_MASK  0x0000000000100000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_LSB 21
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MSB 21
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_PPE_ROUTING_ENABLE_MASK 0x0000000000200000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_LSB 22
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MSB 31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_RESERVED_0B_MASK 0x00000000ffc00000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET       0x0000000000000000
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_LSB          32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_MSB          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_31_0_MASK         0xffffffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET      0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_LSB         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_MSB         7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_REO_QUEUE_DESC_ADDR_39_32_MASK        0x00000000000000ff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_OFFSET              0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_LSB                 8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_MSB                 23
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RECEIVE_QUEUE_NUMBER_MASK                0x0000000000ffff00
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_OFFSET             0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_LSB                24
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_MSB                24
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_ERR_WARNING_MASK               0x0000000001000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_OFFSET                   0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_LSB                      25
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_MSB                      25
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_DELIM_ERR_MASK                     0x0000000002000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_OFFSET                       0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_LSB                          26
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_MSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_2A_MASK                         0x00000000fc000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_OFFSET                           0x0000000000000008
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_LSB                              32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_MSB                              63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_31_0_MASK                             0xffffffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_OFFSET                          0x0000000000000010
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_LSB                             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_MSB                             31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_63_32_MASK                            0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_OFFSET                          0x0000000000000010
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_LSB                             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_MSB                             63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_95_64_MASK                            0xffffffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_OFFSET                         0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_LSB                            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_MSB                            31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PN_127_96_MASK                           0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_OFFSET                            0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_LSB                               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_MSB                               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EPD_EN_MASK                              0x0000000100000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_OFFSET     0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_LSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_MSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ALL_FRAMES_SHALL_BE_ENCRYPTED_MASK       0x0000000200000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_OFFSET                      0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_LSB                         34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_MSB                         37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_TYPE_MASK                        0x0000003c00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_OFFSET    0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_LSB       38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MSB       39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_WEP_KEY_WIDTH_FOR_VARIABLE_KEY_MASK      0x000000c000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_OFFSET                          0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_LSB                             40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_MSB                             41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MESH_STA_MASK                            0x0000030000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_OFFSET                         0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_LSB                            42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_MSB                            42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_HIT_MASK                           0x0000040000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_OFFSET                      0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_LSB                         43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_MSB                         46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BSSID_NUMBER_MASK                        0x0000780000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_OFFSET                               0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_LSB                                  47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_MSB                                  50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TID_MASK                                 0x0007800000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_OFFSET                       0x0000000000000018
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_LSB                          51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_7A_MASK                         0xfff8000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_OFFSET                    0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_LSB                       0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_MSB                       31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PEER_META_DATA_MASK                      0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET     0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB        32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB        33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK       0x0000000300000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_OFFSET                 0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_LSB                    34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_MSB                    40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_FRAME_GROUP_ID_MASK                   0x000001fc00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_OFFSET                         0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_LSB                            41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_MSB                            41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NDP_FRAME_MASK                           0x0000020000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_OFFSET                           0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_LSB                              42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_MSB                              42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_MASK                             0x0000040000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_OFFSET        0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_LSB           43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_MSB           43
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_ERR_DURING_MPDU_HEADER_MASK          0x0000080000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_OFFSET              0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_LSB                 44
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_MSB                 44
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PROTOCOL_VERSION_ERR_MASK                0x0000100000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_OFFSET            0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_LSB               45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_MSB               45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_BASED_LOOKUP_VALID_MASK              0x0000200000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_OFFSET                           0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_LSB                              46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_MSB                              46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RANGING_MASK                             0x0000400000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_OFFSET                       0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_LSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_MSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_9A_MASK                         0x0000800000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_OFFSET                       0x0000000000000020
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_LSB                          48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PHY_PPDU_ID_MASK                         0xffff000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_OFFSET                         0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_LSB                            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_MSB                            15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_MASK                           0x000000000000ffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_OFFSET                        0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_LSB                           16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_MSB                           31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SW_PEER_ID_MASK                          0x00000000ffff0000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_OFFSET          0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_LSB             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_MSB             32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_VALID_MASK            0x0000000100000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_OFFSET               0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_LSB                  33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_MSB                  33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_VALID_MASK                 0x0000000200000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_LSB                   34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_MSB                   34
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_VALID_MASK                  0x0000000400000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_LSB                   35
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_MSB                   35
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_VALID_MASK                  0x0000000800000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_LSB                   36
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_MSB                   36
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_VALID_MASK                  0x0000001000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_LSB                   37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_MSB                   37
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_VALID_MASK                  0x0000002000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_OFFSET       0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_LSB          38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_MSB          38
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_VALID_MASK         0x0000004000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET            0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB               39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB               39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK              0x0000008000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_OFFSET             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_LSB                40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_MSB                40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_VALID_MASK               0x0000010000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_OFFSET       0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_LSB          41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_MSB          41
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAME_ENCRYPTION_INFO_VALID_MASK         0x0000020000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_OFFSET              0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_LSB                 42
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_MSB                 45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAGMENT_NUMBER_MASK                0x00003c0000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET                0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB                   46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB                   46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK                  0x0000400000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_OFFSET                      0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_LSB                         47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_MSB                         47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_11A_MASK                        0x0000800000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_OFFSET                             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_LSB                                48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_MSB                                48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FR_DS_MASK                               0x0001000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_OFFSET                             0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_LSB                                49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_MSB                                49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_TO_DS_MASK                               0x0002000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_OFFSET                         0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_LSB                            50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_MSB                            50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPTED_MASK                           0x0004000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_OFFSET                        0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_LSB                           51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_MSB                           51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_RETRY_MASK                          0x0008000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_OFFSET              0x0000000000000028
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_LSB                 52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_MSB                 63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_NUMBER_MASK                0xfff0000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_OFFSET                      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_LSB                         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_MSB                         7
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_KEY_ID_OCTET_MASK                        0x00000000000000ff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_LSB                       8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_MSB                       8
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NEW_PEER_ENTRY_MASK                      0x0000000000000100
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_LSB                       9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_MSB                       9
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECRYPT_NEEDED_MASK                      0x0000000000000200
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_LSB                           10
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_MSB                           11
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DECAP_TYPE_MASK                          0x0000000000000c00
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_OFFSET      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_LSB         12
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_MSB         12
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_C_TAG_PADDING_MASK        0x0000000000001000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_OFFSET      0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_LSB         13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_MSB         13
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RX_INSERT_VLAN_S_TAG_PADDING_MASK        0x0000000000002000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_OFFSET            0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_LSB               14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_MSB               14
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_C_TAG_DECAP_MASK              0x0000000000004000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_OFFSET            0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_LSB               15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_MSB               15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_STRIP_VLAN_S_TAG_DECAP_MASK              0x0000000000008000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_OFFSET                   0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_LSB                      16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_MSB                      27
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRE_DELIM_COUNT_MASK                     0x000000000fff0000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_LSB                           28
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_MSB                           28
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMPDU_FLAG_MASK                          0x0000000010000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_LSB                            29
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_MSB                            29
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_BAR_FRAME_MASK                           0x0000000020000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_OFFSET                          0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_LSB                             30
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_MSB                             30
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RAW_MPDU_MASK                            0x0000000040000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_LSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_MSB                          31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_12_MASK                         0x0000000080000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_LSB                          32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_MSB                          45
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_LENGTH_MASK                         0x00003fff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_LSB                           46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_MSB                           46
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FIRST_MPDU_MASK                          0x0000400000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_LSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_MSB                          47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MCAST_BCAST_MASK                         0x0000800000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_OFFSET               0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_LSB                  48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_MSB                  48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_NOT_FOUND_MASK                 0x0001000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_OFFSET                 0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_LSB                    49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_MSB                    49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AST_INDEX_TIMEOUT_MASK                   0x0002000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_OFFSET                        0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_LSB                           50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_MSB                           50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_POWER_MGMT_MASK                          0x0004000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_OFFSET                           0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_LSB                              51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_MSB                              51
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NON_QOS_MASK                             0x0008000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_LSB                            52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_MSB                            52
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_NULL_DATA_MASK                           0x0010000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_LSB                            53
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_MSB                            53
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MGMT_TYPE_MASK                           0x0020000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_LSB                            54
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_MSB                            54
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_CTRL_TYPE_MASK                           0x0040000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_OFFSET                         0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_LSB                            55
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_MSB                            55
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MORE_DATA_MASK                           0x0080000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_OFFSET                              0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_LSB                                 56
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_MSB                                 56
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_EOSP_MASK                                0x0100000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_OFFSET                     0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_LSB                        57
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_MSB                        57
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_FRAGMENT_FLAG_MASK                       0x0200000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_OFFSET                             0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_LSB                                58
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_MSB                                58
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ORDER_MASK                               0x0400000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_OFFSET                    0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_LSB                       59
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_MSB                       59
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_U_APSD_TRIGGER_MASK                      0x0800000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_OFFSET                  0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_LSB                     60
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_MSB                     60
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_ENCRYPT_REQUIRED_MASK                    0x1000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_OFFSET                          0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_LSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_MSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_DIRECTED_MASK                            0x2000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_OFFSET                     0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_LSB                        62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_MSB                        62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AMSDU_PRESENT_MASK                       0x4000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_OFFSET                       0x0000000000000030
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_LSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_MSB                          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_13_MASK                         0x8000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_OFFSET          0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_LSB             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_MSB             15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_FRAME_CONTROL_FIELD_MASK            0x000000000000ffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_OFFSET               0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_LSB                  16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_MSB                  31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_DURATION_FIELD_MASK                 0x00000000ffff0000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_OFFSET                 0x0000000000000038
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_LSB                    32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_MSB                    63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_31_0_MASK                   0xffffffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_OFFSET                0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_LSB                   0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_MSB                   15
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD1_47_32_MASK                  0x000000000000ffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_OFFSET                 0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_LSB                    16
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_15_0_MASK                   0x00000000ffff0000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_OFFSET                0x0000000000000040
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_MSB                   63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD2_47_16_MASK                  0xffffffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_OFFSET                 0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_LSB                    0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_31_0_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_OFFSET                0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_MSB                   47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD3_47_32_MASK                  0x0000ffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_OFFSET       0x0000000000000048
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_LSB          48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_MSB          63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_SEQUENCE_CONTROL_FIELD_MASK         0xffff000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_OFFSET                 0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_LSB                    0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_MSB                    31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_31_0_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_OFFSET                0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_LSB                   32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_MSB                   47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MAC_ADDR_AD4_47_32_MASK                  0x0000ffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_OFFSET            0x0000000000000050
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_LSB               48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_MSB               63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_QOS_CONTROL_FIELD_MASK              0xffff000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_OFFSET             0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_LSB                0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_MSB                31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MPDU_HT_CONTROL_FIELD_MASK               0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_OFFSET                           0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_LSB                              32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_MSB                              39
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_VDEV_ID_MASK                             0x000000ff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_OFFSET                      0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_LSB                         40
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_MSB                         48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SERVICE_CODE_MASK                        0x0001ff0000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_OFFSET                    0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_LSB                       49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_MSB                       49
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_PRIORITY_VALID_MASK                      0x0002000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_OFFSET                          0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_LSB                             50
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_MSB                             61
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_SRC_INFO_MASK                            0x3ffc000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_OFFSET                      0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_LSB                         62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_MSB                         62
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_23A_MASK                        0x4000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_OFFSET     0x0000000000000058
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_LSB        63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_MSB        63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_AD2_VALID_MASK       0x8000000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_OFFSET          0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_LSB             0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_MSB             31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_31_0_MASK            0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_OFFSET         0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_LSB            32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_MSB            47
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD1_47_32_MASK           0x0000ffff00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_OFFSET          0x0000000000000060
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_LSB             48
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_MSB             63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_15_0_MASK            0xffff000000000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_OFFSET         0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_LSB            0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_MSB            31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_MULTI_LINK_ADDR_AD2_47_16_MASK           0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_OFFSET            0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_LSB               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_MSB               32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_AUTHORIZED_TO_SEND_WDS_MASK              0x0000000100000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_OFFSET                      0x0000000000000068
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_LSB                         33
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_MSB                         63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_27A_MASK                        0xfffffffe00000000
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_OFFSET                      0x0000000000000070
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_LSB                         0
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_MSB                         31
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_28A_MASK                        0x00000000ffffffff
+
+
+ 
+
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_OFFSET                      0x0000000000000070
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_LSB                         32
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_MSB                         63
+#define RX_MPDU_START_RX_MPDU_INFO_DETAILS_RESERVED_29A_MASK                        0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_desc_info.h b/hw/qcn9224/v2/rx_msdu_desc_info.h
new file mode 100644
index 0000000..cd268e0
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_desc_info.h
@@ -0,0 +1,212 @@
+
+/* 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 _RX_MSDU_DESC_INFO_H_
+#define _RX_MSDU_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_DESC_INFO 1
+
+
+struct rx_msdu_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t first_msdu_in_mpdu_flag                                 :  1,  
+                      last_msdu_in_mpdu_flag                                  :  1,  
+                      msdu_continuation                                       :  1,  
+                      msdu_length                                             : 14,  
+                      msdu_drop                                               :  1,  
+                      sa_is_valid                                             :  1,  
+                      da_is_valid                                             :  1,  
+                      da_is_mcbc                                              :  1,  
+                      l3_header_padding_msb                                   :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      fr_ds                                                   :  1,  
+                      to_ds                                                   :  1,  
+                      intra_bss                                               :  1,  
+                      dest_chip_id                                            :  2,  
+                      decap_format                                            :  2,  
+                      dest_chip_pmac_id                                       :  1;  
+#else
+             uint32_t dest_chip_pmac_id                                       :  1,  
+                      decap_format                                            :  2,  
+                      dest_chip_id                                            :  2,  
+                      intra_bss                                               :  1,  
+                      to_ds                                                   :  1,  
+                      fr_ds                                                   :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      l3_header_padding_msb                                   :  1,  
+                      da_is_mcbc                                              :  1,  
+                      da_is_valid                                             :  1,  
+                      sa_is_valid                                             :  1,  
+                      msdu_drop                                               :  1,  
+                      msdu_length                                             : 14,  
+                      msdu_continuation                                       :  1,  
+                      last_msdu_in_mpdu_flag                                  :  1,  
+                      first_msdu_in_mpdu_flag                                 :  1;  
+#endif
+};
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_OFFSET                            0x00000000
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_LSB                               0
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_MSB                               0
+#define RX_MSDU_DESC_INFO_FIRST_MSDU_IN_MPDU_FLAG_MASK                              0x00000001
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_OFFSET                             0x00000000
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_LSB                                1
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_MSB                                1
+#define RX_MSDU_DESC_INFO_LAST_MSDU_IN_MPDU_FLAG_MASK                               0x00000002
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_OFFSET                                  0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_LSB                                     2
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_MSB                                     2
+#define RX_MSDU_DESC_INFO_MSDU_CONTINUATION_MASK                                    0x00000004
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_LSB                                           3
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_MSB                                           16
+#define RX_MSDU_DESC_INFO_MSDU_LENGTH_MASK                                          0x0001fff8
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_MSDU_DROP_OFFSET                                          0x00000000
+#define RX_MSDU_DESC_INFO_MSDU_DROP_LSB                                             17
+#define RX_MSDU_DESC_INFO_MSDU_DROP_MSB                                             17
+#define RX_MSDU_DESC_INFO_MSDU_DROP_MASK                                            0x00020000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_LSB                                           18
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_MSB                                           18
+#define RX_MSDU_DESC_INFO_SA_IS_VALID_MASK                                          0x00040000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_OFFSET                                        0x00000000
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_LSB                                           19
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_MSB                                           19
+#define RX_MSDU_DESC_INFO_DA_IS_VALID_MASK                                          0x00080000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_OFFSET                                         0x00000000
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_LSB                                            20
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_MSB                                            20
+#define RX_MSDU_DESC_INFO_DA_IS_MCBC_MASK                                           0x00100000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_OFFSET                              0x00000000
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_LSB                                 21
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_MSB                                 21
+#define RX_MSDU_DESC_INFO_L3_HEADER_PADDING_MSB_MASK                                0x00200000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_OFFSET                                0x00000000
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_LSB                                   22
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_MSB                                   22
+#define RX_MSDU_DESC_INFO_TCP_UDP_CHKSUM_FAIL_MASK                                  0x00400000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_OFFSET                                     0x00000000
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_LSB                                        23
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_MSB                                        23
+#define RX_MSDU_DESC_INFO_IP_CHKSUM_FAIL_MASK                                       0x00800000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_FR_DS_OFFSET                                              0x00000000
+#define RX_MSDU_DESC_INFO_FR_DS_LSB                                                 24
+#define RX_MSDU_DESC_INFO_FR_DS_MSB                                                 24
+#define RX_MSDU_DESC_INFO_FR_DS_MASK                                                0x01000000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_TO_DS_OFFSET                                              0x00000000
+#define RX_MSDU_DESC_INFO_TO_DS_LSB                                                 25
+#define RX_MSDU_DESC_INFO_TO_DS_MSB                                                 25
+#define RX_MSDU_DESC_INFO_TO_DS_MASK                                                0x02000000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_INTRA_BSS_OFFSET                                          0x00000000
+#define RX_MSDU_DESC_INFO_INTRA_BSS_LSB                                             26
+#define RX_MSDU_DESC_INFO_INTRA_BSS_MSB                                             26
+#define RX_MSDU_DESC_INFO_INTRA_BSS_MASK                                            0x04000000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_OFFSET                                       0x00000000
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_LSB                                          27
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_MSB                                          28
+#define RX_MSDU_DESC_INFO_DEST_CHIP_ID_MASK                                         0x18000000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_OFFSET                                       0x00000000
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_LSB                                          29
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_MSB                                          30
+#define RX_MSDU_DESC_INFO_DECAP_FORMAT_MASK                                         0x60000000
+
+
+ 
+
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_OFFSET                                  0x00000000
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_LSB                                     31
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_MSB                                     31
+#define RX_MSDU_DESC_INFO_DEST_CHIP_PMAC_ID_MASK                                    0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_details.h b/hw/qcn9224/v2/rx_msdu_details.h
new file mode 100644
index 0000000..97f6cec
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_details.h
@@ -0,0 +1,276 @@
+
+/* 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 _RX_MSDU_DETAILS_H_
+#define _RX_MSDU_DETAILS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_msdu_ext_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_RX_MSDU_DETAILS 4
+
+
+struct rx_msdu_details {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             struct   rx_msdu_ext_desc_info                                     rx_msdu_ext_desc_info_details;
+#else
+             struct   buffer_addr_info                                          buffer_addr_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             struct   rx_msdu_ext_desc_info                                     rx_msdu_ext_desc_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET            0x00000000
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB               0
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB               31
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK              0xffffffff
+
+
+ 
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET           0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB              0
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB              7
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK             0x000000ff
+
+
+ 
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET       0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB          8
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB          11
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK         0x00000f00
+
+
+ 
+
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET            0x00000004
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB               12
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB               31
+#define RX_MSDU_DETAILS_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK              0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET    0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB       0
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB       0
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK      0x00000001
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET     0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB        1
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB        1
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK       0x00000002
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET          0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB             2
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB             2
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK            0x00000004
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB                   3
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB                   16
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK                  0x0001fff8
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET                  0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                     17
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                     17
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                    0x00020000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB                   18
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB                   18
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK                  0x00040000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET                0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB                   19
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB                   19
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK                  0x00080000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET                 0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                    20
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                    20
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK                   0x00100000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB         21
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB         21
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK        0x00200000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET        0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB           22
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB           22
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK          0x00400000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET             0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB                23
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB                23
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK               0x00800000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                         24
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                         24
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                        0x01000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                      0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                         25
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                         25
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                        0x02000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET                  0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                     26
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                     26
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                    0x04000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET               0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB                  27
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB                  28
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK                 0x18000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET               0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB                  29
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB                  30
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK                 0x60000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET          0x00000008
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB             31
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB             31
+#define RX_MSDU_DETAILS_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK            0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET           0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB              5
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB              13
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK             0x00003fe0
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET         0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB            14
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB            14
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK           0x00004000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB               15
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB               26
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK              0x07ff8000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB               27
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB               29
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK              0x38000000
+
+
+ 
+
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET            0x0000000c
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB               30
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB               31
+#define RX_MSDU_DETAILS_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK              0xc0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_end.h b/hw/qcn9224/v2/rx_msdu_end.h
new file mode 100644
index 0000000..c0fb685
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_end.h
@@ -0,0 +1,1584 @@
+
+/* 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 _RX_MSDU_END_H_
+#define _RX_MSDU_END_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_END 32
+
+#define NUM_OF_QWORDS_RX_MSDU_END 16
+
+
+struct rx_msdu_end {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2,  
+                      sw_frame_group_id                                       :  7,  
+                      reserved_0                                              :  7,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t ip_hdr_chksum                                           : 16,  
+                      reported_mpdu_length                                    : 14,  
+                      reserved_1a                                             :  2;  
+             uint32_t reserved_2a                                             :  8,  
+                      cce_super_rule                                          :  6,  
+                      cce_classify_not_done_truncate                          :  1,  
+                      cce_classify_not_done_cce_dis                           :  1,  
+                      cumulative_l3_checksum                                  : 16;  
+             uint32_t rule_indication_31_0                                    : 32;  
+             uint32_t ipv6_options_crc                                        : 32;  
+             uint32_t da_offset                                               :  6,  
+                      sa_offset                                               :  6,  
+                      da_offset_valid                                         :  1,  
+                      sa_offset_valid                                         :  1,  
+                      reserved_5a                                             :  2,  
+                      l3_type                                                 : 16;  
+             uint32_t rule_indication_63_32                                   : 32;  
+             uint32_t tcp_seq_number                                          : 32;  
+             uint32_t tcp_ack_number                                          : 32;  
+             uint32_t tcp_flag                                                :  9,  
+                      lro_eligible                                            :  1,  
+                      reserved_9a                                             :  6,  
+                      window_size                                             : 16;  
+             uint32_t sa_sw_peer_id                                           : 16,  
+                      sa_idx_timeout                                          :  1,  
+                      da_idx_timeout                                          :  1,  
+                      to_ds                                                   :  1,  
+                      tid                                                     :  4,  
+                      sa_is_valid                                             :  1,  
+                      da_is_valid                                             :  1,  
+                      da_is_mcbc                                              :  1,  
+                      l3_header_padding                                       :  2,  
+                      first_msdu                                              :  1,  
+                      last_msdu                                               :  1,  
+                      fr_ds                                                   :  1,  
+                      ip_chksum_fail_copy                                     :  1;  
+             uint32_t sa_idx                                                  : 16,  
+                      da_idx_or_sw_peer_id                                    : 16;  
+             uint32_t msdu_drop                                               :  1,  
+                      reo_destination_indication                              :  5,  
+                      flow_idx                                                : 20,  
+                      use_ppe                                                 :  1,  
+                      mesh_sta                                                :  2,  
+                      vlan_ctag_stripped                                      :  1,  
+                      vlan_stag_stripped                                      :  1,  
+                      fragment_flag                                           :  1;  
+             uint32_t fse_metadata                                            : 32;  
+             uint32_t cce_metadata                                            : 16,  
+                      tcp_udp_chksum                                          : 16;  
+             uint32_t aggregation_count                                       :  8,  
+                      flow_aggregation_continuation                           :  1,  
+                      fisa_timeout                                            :  1,  
+                      tcp_udp_chksum_fail_copy                                :  1,  
+                      msdu_limit_error                                        :  1,  
+                      flow_idx_timeout                                        :  1,  
+                      flow_idx_invalid                                        :  1,  
+                      cce_match                                               :  1,  
+                      amsdu_parser_error                                      :  1,  
+                      cumulative_ip_length                                    : 16;  
+             uint32_t key_id_octet                                            :  8,  
+                      reserved_16a                                            : 24;  
+             uint32_t reserved_17a                                            :  6,  
+                      service_code                                            :  9,  
+                      priority_valid                                          :  1,  
+                      intra_bss                                               :  1,  
+                      dest_chip_id                                            :  2,  
+                      multicast_echo                                          :  1,  
+                      wds_learning_event                                      :  1,  
+                      wds_roaming_event                                       :  1,  
+                      wds_keep_alive_event                                    :  1,  
+                      dest_chip_pmac_id                                       :  1,  
+                      reserved_17b                                            :  8;  
+             uint32_t msdu_length                                             : 14,  
+                      stbc                                                    :  1,  
+                      ipsec_esp                                               :  1,  
+                      l3_offset                                               :  7,  
+                      ipsec_ah                                                :  1,  
+                      l4_offset                                               :  8;  
+             uint32_t msdu_number                                             :  8,  
+                      decap_format                                            :  2,  
+                      ipv4_proto                                              :  1,  
+                      ipv6_proto                                              :  1,  
+                      tcp_proto                                               :  1,  
+                      udp_proto                                               :  1,  
+                      ip_frag                                                 :  1,  
+                      tcp_only_ack                                            :  1,  
+                      da_is_bcast_mcast                                       :  1,  
+                      toeplitz_hash_sel                                       :  2,  
+                      ip_fixed_header_valid                                   :  1,  
+                      ip_extn_header_valid                                    :  1,  
+                      tcp_udp_header_valid                                    :  1,  
+                      mesh_control_present                                    :  1,  
+                      ldpc                                                    :  1,  
+                      ip4_protocol_ip6_next_header                            :  8;  
+             uint32_t vlan_ctag_ci                                            : 16,  
+                      vlan_stag_ci                                            : 16;  
+             uint32_t peer_meta_data                                          : 32;  
+             uint32_t user_rssi                                               :  8,  
+                      pkt_type                                                :  4,  
+                      sgi                                                     :  2,  
+                      rate_mcs                                                :  4,  
+                      receive_bandwidth                                       :  3,  
+                      reception_type                                          :  3,  
+                      mimo_ss_bitmap                                          :  7,  
+                      msdu_done_copy                                          :  1;  
+             uint32_t flow_id_toeplitz                                        : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t toeplitz_hash_2_or_4                                    : 32;  
+             uint32_t reserved_28a                                            : 16,  
+                      sa_15_0                                                 : 16;  
+             uint32_t sa_47_16                                                : 32;  
+             uint32_t first_mpdu                                              :  1,  
+                      reserved_30a                                            :  1,  
+                      mcast_bcast                                             :  1,  
+                      ast_index_not_found                                     :  1,  
+                      ast_index_timeout                                       :  1,  
+                      power_mgmt                                              :  1,  
+                      non_qos                                                 :  1,  
+                      null_data                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      more_data                                               :  1,  
+                      eosp                                                    :  1,  
+                      a_msdu_error                                            :  1,  
+                      reserved_30b                                            :  1,  
+                      order                                                   :  1,  
+                      wifi_parser_error                                       :  1,  
+                      overflow_err                                            :  1,  
+                      msdu_length_err                                         :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      sa_idx_invalid                                          :  1,  
+                      da_idx_invalid                                          :  1,  
+                      amsdu_addr_mismatch                                     :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      encrypt_required                                        :  1,  
+                      directed                                                :  1,  
+                      buffer_fragment                                         :  1,  
+                      mpdu_length_err                                         :  1,  
+                      tkip_mic_err                                            :  1,  
+                      decrypt_err                                             :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      fcs_err                                                 :  1;  
+             uint32_t reserved_31a                                            : 10,  
+                      decrypt_status_code                                     :  3,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      reserved_31b                                            : 17,  
+                      msdu_done                                               :  1;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_0                                              :  7,  
+                      sw_frame_group_id                                       :  7,  
+                      rxpcu_mpdu_filter_in_category                           :  2;  
+             uint32_t reserved_1a                                             :  2,  
+                      reported_mpdu_length                                    : 14,  
+                      ip_hdr_chksum                                           : 16;  
+             uint32_t cumulative_l3_checksum                                  : 16,  
+                      cce_classify_not_done_cce_dis                           :  1,  
+                      cce_classify_not_done_truncate                          :  1,  
+                      cce_super_rule                                          :  6,  
+                      reserved_2a                                             :  8;  
+             uint32_t rule_indication_31_0                                    : 32;  
+             uint32_t ipv6_options_crc                                        : 32;  
+             uint32_t l3_type                                                 : 16,  
+                      reserved_5a                                             :  2,  
+                      sa_offset_valid                                         :  1,  
+                      da_offset_valid                                         :  1,  
+                      sa_offset                                               :  6,  
+                      da_offset                                               :  6;  
+             uint32_t rule_indication_63_32                                   : 32;  
+             uint32_t tcp_seq_number                                          : 32;  
+             uint32_t tcp_ack_number                                          : 32;  
+             uint32_t window_size                                             : 16,  
+                      reserved_9a                                             :  6,  
+                      lro_eligible                                            :  1,  
+                      tcp_flag                                                :  9;  
+             uint32_t ip_chksum_fail_copy                                     :  1,  
+                      fr_ds                                                   :  1,  
+                      last_msdu                                               :  1,  
+                      first_msdu                                              :  1,  
+                      l3_header_padding                                       :  2,  
+                      da_is_mcbc                                              :  1,  
+                      da_is_valid                                             :  1,  
+                      sa_is_valid                                             :  1,  
+                      tid                                                     :  4,  
+                      to_ds                                                   :  1,  
+                      da_idx_timeout                                          :  1,  
+                      sa_idx_timeout                                          :  1,  
+                      sa_sw_peer_id                                           : 16;  
+             uint32_t da_idx_or_sw_peer_id                                    : 16,  
+                      sa_idx                                                  : 16;  
+             uint32_t fragment_flag                                           :  1,  
+                      vlan_stag_stripped                                      :  1,  
+                      vlan_ctag_stripped                                      :  1,  
+                      mesh_sta                                                :  2,  
+                      use_ppe                                                 :  1,  
+                      flow_idx                                                : 20,  
+                      reo_destination_indication                              :  5,  
+                      msdu_drop                                               :  1;  
+             uint32_t fse_metadata                                            : 32;  
+             uint32_t tcp_udp_chksum                                          : 16,  
+                      cce_metadata                                            : 16;  
+             uint32_t cumulative_ip_length                                    : 16,  
+                      amsdu_parser_error                                      :  1,  
+                      cce_match                                               :  1,  
+                      flow_idx_invalid                                        :  1,  
+                      flow_idx_timeout                                        :  1,  
+                      msdu_limit_error                                        :  1,  
+                      tcp_udp_chksum_fail_copy                                :  1,  
+                      fisa_timeout                                            :  1,  
+                      flow_aggregation_continuation                           :  1,  
+                      aggregation_count                                       :  8;  
+             uint32_t reserved_16a                                            : 24,  
+                      key_id_octet                                            :  8;  
+             uint32_t reserved_17b                                            :  8,  
+                      dest_chip_pmac_id                                       :  1,  
+                      wds_keep_alive_event                                    :  1,  
+                      wds_roaming_event                                       :  1,  
+                      wds_learning_event                                      :  1,  
+                      multicast_echo                                          :  1,  
+                      dest_chip_id                                            :  2,  
+                      intra_bss                                               :  1,  
+                      priority_valid                                          :  1,  
+                      service_code                                            :  9,  
+                      reserved_17a                                            :  6;  
+             uint32_t l4_offset                                               :  8,  
+                      ipsec_ah                                                :  1,  
+                      l3_offset                                               :  7,  
+                      ipsec_esp                                               :  1,  
+                      stbc                                                    :  1,  
+                      msdu_length                                             : 14;  
+             uint32_t ip4_protocol_ip6_next_header                            :  8,  
+                      ldpc                                                    :  1,  
+                      mesh_control_present                                    :  1,  
+                      tcp_udp_header_valid                                    :  1,  
+                      ip_extn_header_valid                                    :  1,  
+                      ip_fixed_header_valid                                   :  1,  
+                      toeplitz_hash_sel                                       :  2,  
+                      da_is_bcast_mcast                                       :  1,  
+                      tcp_only_ack                                            :  1,  
+                      ip_frag                                                 :  1,  
+                      udp_proto                                               :  1,  
+                      tcp_proto                                               :  1,  
+                      ipv6_proto                                              :  1,  
+                      ipv4_proto                                              :  1,  
+                      decap_format                                            :  2,  
+                      msdu_number                                             :  8;  
+             uint32_t vlan_stag_ci                                            : 16,  
+                      vlan_ctag_ci                                            : 16;  
+             uint32_t peer_meta_data                                          : 32;  
+             uint32_t msdu_done_copy                                          :  1,  
+                      mimo_ss_bitmap                                          :  7,  
+                      reception_type                                          :  3,  
+                      receive_bandwidth                                       :  3,  
+                      rate_mcs                                                :  4,  
+                      sgi                                                     :  2,  
+                      pkt_type                                                :  4,  
+                      user_rssi                                               :  8;  
+             uint32_t flow_id_toeplitz                                        : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t toeplitz_hash_2_or_4                                    : 32;  
+             uint32_t sa_15_0                                                 : 16,  
+                      reserved_28a                                            : 16;  
+             uint32_t sa_47_16                                                : 32;  
+             uint32_t fcs_err                                                 :  1,  
+                      unencrypted_frame_err                                   :  1,  
+                      decrypt_err                                             :  1,  
+                      tkip_mic_err                                            :  1,  
+                      mpdu_length_err                                         :  1,  
+                      buffer_fragment                                         :  1,  
+                      directed                                                :  1,  
+                      encrypt_required                                        :  1,  
+                      rx_in_tx_decrypt_byp                                    :  1,  
+                      amsdu_addr_mismatch                                     :  1,  
+                      da_idx_invalid                                          :  1,  
+                      sa_idx_invalid                                          :  1,  
+                      ip_chksum_fail                                          :  1,  
+                      tcp_udp_chksum_fail                                     :  1,  
+                      msdu_length_err                                         :  1,  
+                      overflow_err                                            :  1,  
+                      wifi_parser_error                                       :  1,  
+                      order                                                   :  1,  
+                      reserved_30b                                            :  1,  
+                      a_msdu_error                                            :  1,  
+                      eosp                                                    :  1,  
+                      more_data                                               :  1,  
+                      ctrl_type                                               :  1,  
+                      mgmt_type                                               :  1,  
+                      null_data                                               :  1,  
+                      non_qos                                                 :  1,  
+                      power_mgmt                                              :  1,  
+                      ast_index_timeout                                       :  1,  
+                      ast_index_not_found                                     :  1,  
+                      mcast_bcast                                             :  1,  
+                      reserved_30a                                            :  1,  
+                      first_mpdu                                              :  1;  
+             uint32_t msdu_done                                               :  1,  
+                      reserved_31b                                            : 17,  
+                      rx_bitmap_not_updated                                   :  1,  
+                      decrypt_status_code                                     :  3,  
+                      reserved_31a                                            : 10;  
+#endif
+};
+
+
+ 
+
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                            0x0000000000000000
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                               0
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                               1
+#define RX_MSDU_END_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                              0x0000000000000003
+
+
+ 
+
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_OFFSET                                        0x0000000000000000
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_LSB                                           2
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_MSB                                           8
+#define RX_MSDU_END_SW_FRAME_GROUP_ID_MASK                                          0x00000000000001fc
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_0_OFFSET                                               0x0000000000000000
+#define RX_MSDU_END_RESERVED_0_LSB                                                  9
+#define RX_MSDU_END_RESERVED_0_MSB                                                  15
+#define RX_MSDU_END_RESERVED_0_MASK                                                 0x000000000000fe00
+
+
+ 
+
+#define RX_MSDU_END_PHY_PPDU_ID_OFFSET                                              0x0000000000000000
+#define RX_MSDU_END_PHY_PPDU_ID_LSB                                                 16
+#define RX_MSDU_END_PHY_PPDU_ID_MSB                                                 31
+#define RX_MSDU_END_PHY_PPDU_ID_MASK                                                0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_END_IP_HDR_CHKSUM_OFFSET                                            0x0000000000000000
+#define RX_MSDU_END_IP_HDR_CHKSUM_LSB                                               32
+#define RX_MSDU_END_IP_HDR_CHKSUM_MSB                                               47
+#define RX_MSDU_END_IP_HDR_CHKSUM_MASK                                              0x0000ffff00000000
+
+
+ 
+
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_OFFSET                                     0x0000000000000000
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_LSB                                        48
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_MSB                                        61
+#define RX_MSDU_END_REPORTED_MPDU_LENGTH_MASK                                       0x3fff000000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_1A_OFFSET                                              0x0000000000000000
+#define RX_MSDU_END_RESERVED_1A_LSB                                                 62
+#define RX_MSDU_END_RESERVED_1A_MSB                                                 63
+#define RX_MSDU_END_RESERVED_1A_MASK                                                0xc000000000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_2A_OFFSET                                              0x0000000000000008
+#define RX_MSDU_END_RESERVED_2A_LSB                                                 0
+#define RX_MSDU_END_RESERVED_2A_MSB                                                 7
+#define RX_MSDU_END_RESERVED_2A_MASK                                                0x00000000000000ff
+
+
+ 
+
+#define RX_MSDU_END_CCE_SUPER_RULE_OFFSET                                           0x0000000000000008
+#define RX_MSDU_END_CCE_SUPER_RULE_LSB                                              8
+#define RX_MSDU_END_CCE_SUPER_RULE_MSB                                              13
+#define RX_MSDU_END_CCE_SUPER_RULE_MASK                                             0x0000000000003f00
+
+
+ 
+
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_OFFSET                           0x0000000000000008
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_LSB                              14
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_MSB                              14
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_TRUNCATE_MASK                             0x0000000000004000
+
+
+ 
+
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_OFFSET                            0x0000000000000008
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_LSB                               15
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_MSB                               15
+#define RX_MSDU_END_CCE_CLASSIFY_NOT_DONE_CCE_DIS_MASK                              0x0000000000008000
+
+
+ 
+
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_OFFSET                                   0x0000000000000008
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_LSB                                      16
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_MSB                                      31
+#define RX_MSDU_END_CUMULATIVE_L3_CHECKSUM_MASK                                     0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_END_RULE_INDICATION_31_0_OFFSET                                     0x0000000000000008
+#define RX_MSDU_END_RULE_INDICATION_31_0_LSB                                        32
+#define RX_MSDU_END_RULE_INDICATION_31_0_MSB                                        63
+#define RX_MSDU_END_RULE_INDICATION_31_0_MASK                                       0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_OFFSET                                         0x0000000000000010
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_LSB                                            0
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_MSB                                            31
+#define RX_MSDU_END_IPV6_OPTIONS_CRC_MASK                                           0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_END_DA_OFFSET_OFFSET                                                0x0000000000000010
+#define RX_MSDU_END_DA_OFFSET_LSB                                                   32
+#define RX_MSDU_END_DA_OFFSET_MSB                                                   37
+#define RX_MSDU_END_DA_OFFSET_MASK                                                  0x0000003f00000000
+
+
+ 
+
+#define RX_MSDU_END_SA_OFFSET_OFFSET                                                0x0000000000000010
+#define RX_MSDU_END_SA_OFFSET_LSB                                                   38
+#define RX_MSDU_END_SA_OFFSET_MSB                                                   43
+#define RX_MSDU_END_SA_OFFSET_MASK                                                  0x00000fc000000000
+
+
+ 
+
+#define RX_MSDU_END_DA_OFFSET_VALID_OFFSET                                          0x0000000000000010
+#define RX_MSDU_END_DA_OFFSET_VALID_LSB                                             44
+#define RX_MSDU_END_DA_OFFSET_VALID_MSB                                             44
+#define RX_MSDU_END_DA_OFFSET_VALID_MASK                                            0x0000100000000000
+
+
+ 
+
+#define RX_MSDU_END_SA_OFFSET_VALID_OFFSET                                          0x0000000000000010
+#define RX_MSDU_END_SA_OFFSET_VALID_LSB                                             45
+#define RX_MSDU_END_SA_OFFSET_VALID_MSB                                             45
+#define RX_MSDU_END_SA_OFFSET_VALID_MASK                                            0x0000200000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_5A_OFFSET                                              0x0000000000000010
+#define RX_MSDU_END_RESERVED_5A_LSB                                                 46
+#define RX_MSDU_END_RESERVED_5A_MSB                                                 47
+#define RX_MSDU_END_RESERVED_5A_MASK                                                0x0000c00000000000
+
+
+ 
+
+#define RX_MSDU_END_L3_TYPE_OFFSET                                                  0x0000000000000010
+#define RX_MSDU_END_L3_TYPE_LSB                                                     48
+#define RX_MSDU_END_L3_TYPE_MSB                                                     63
+#define RX_MSDU_END_L3_TYPE_MASK                                                    0xffff000000000000
+
+
+ 
+
+#define RX_MSDU_END_RULE_INDICATION_63_32_OFFSET                                    0x0000000000000018
+#define RX_MSDU_END_RULE_INDICATION_63_32_LSB                                       0
+#define RX_MSDU_END_RULE_INDICATION_63_32_MSB                                       31
+#define RX_MSDU_END_RULE_INDICATION_63_32_MASK                                      0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_END_TCP_SEQ_NUMBER_OFFSET                                           0x0000000000000018
+#define RX_MSDU_END_TCP_SEQ_NUMBER_LSB                                              32
+#define RX_MSDU_END_TCP_SEQ_NUMBER_MSB                                              63
+#define RX_MSDU_END_TCP_SEQ_NUMBER_MASK                                             0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_TCP_ACK_NUMBER_OFFSET                                           0x0000000000000020
+#define RX_MSDU_END_TCP_ACK_NUMBER_LSB                                              0
+#define RX_MSDU_END_TCP_ACK_NUMBER_MSB                                              31
+#define RX_MSDU_END_TCP_ACK_NUMBER_MASK                                             0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_END_TCP_FLAG_OFFSET                                                 0x0000000000000020
+#define RX_MSDU_END_TCP_FLAG_LSB                                                    32
+#define RX_MSDU_END_TCP_FLAG_MSB                                                    40
+#define RX_MSDU_END_TCP_FLAG_MASK                                                   0x000001ff00000000
+
+
+ 
+
+#define RX_MSDU_END_LRO_ELIGIBLE_OFFSET                                             0x0000000000000020
+#define RX_MSDU_END_LRO_ELIGIBLE_LSB                                                41
+#define RX_MSDU_END_LRO_ELIGIBLE_MSB                                                41
+#define RX_MSDU_END_LRO_ELIGIBLE_MASK                                               0x0000020000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_9A_OFFSET                                              0x0000000000000020
+#define RX_MSDU_END_RESERVED_9A_LSB                                                 42
+#define RX_MSDU_END_RESERVED_9A_MSB                                                 47
+#define RX_MSDU_END_RESERVED_9A_MASK                                                0x0000fc0000000000
+
+
+ 
+
+#define RX_MSDU_END_WINDOW_SIZE_OFFSET                                              0x0000000000000020
+#define RX_MSDU_END_WINDOW_SIZE_LSB                                                 48
+#define RX_MSDU_END_WINDOW_SIZE_MSB                                                 63
+#define RX_MSDU_END_WINDOW_SIZE_MASK                                                0xffff000000000000
+
+
+ 
+
+#define RX_MSDU_END_SA_SW_PEER_ID_OFFSET                                            0x0000000000000028
+#define RX_MSDU_END_SA_SW_PEER_ID_LSB                                               0
+#define RX_MSDU_END_SA_SW_PEER_ID_MSB                                               15
+#define RX_MSDU_END_SA_SW_PEER_ID_MASK                                              0x000000000000ffff
+
+
+ 
+
+#define RX_MSDU_END_SA_IDX_TIMEOUT_OFFSET                                           0x0000000000000028
+#define RX_MSDU_END_SA_IDX_TIMEOUT_LSB                                              16
+#define RX_MSDU_END_SA_IDX_TIMEOUT_MSB                                              16
+#define RX_MSDU_END_SA_IDX_TIMEOUT_MASK                                             0x0000000000010000
+
+
+ 
+
+#define RX_MSDU_END_DA_IDX_TIMEOUT_OFFSET                                           0x0000000000000028
+#define RX_MSDU_END_DA_IDX_TIMEOUT_LSB                                              17
+#define RX_MSDU_END_DA_IDX_TIMEOUT_MSB                                              17
+#define RX_MSDU_END_DA_IDX_TIMEOUT_MASK                                             0x0000000000020000
+
+
+ 
+
+#define RX_MSDU_END_TO_DS_OFFSET                                                    0x0000000000000028
+#define RX_MSDU_END_TO_DS_LSB                                                       18
+#define RX_MSDU_END_TO_DS_MSB                                                       18
+#define RX_MSDU_END_TO_DS_MASK                                                      0x0000000000040000
+
+
+ 
+
+#define RX_MSDU_END_TID_OFFSET                                                      0x0000000000000028
+#define RX_MSDU_END_TID_LSB                                                         19
+#define RX_MSDU_END_TID_MSB                                                         22
+#define RX_MSDU_END_TID_MASK                                                        0x0000000000780000
+
+
+ 
+
+#define RX_MSDU_END_SA_IS_VALID_OFFSET                                              0x0000000000000028
+#define RX_MSDU_END_SA_IS_VALID_LSB                                                 23
+#define RX_MSDU_END_SA_IS_VALID_MSB                                                 23
+#define RX_MSDU_END_SA_IS_VALID_MASK                                                0x0000000000800000
+
+
+ 
+
+#define RX_MSDU_END_DA_IS_VALID_OFFSET                                              0x0000000000000028
+#define RX_MSDU_END_DA_IS_VALID_LSB                                                 24
+#define RX_MSDU_END_DA_IS_VALID_MSB                                                 24
+#define RX_MSDU_END_DA_IS_VALID_MASK                                                0x0000000001000000
+
+
+ 
+
+#define RX_MSDU_END_DA_IS_MCBC_OFFSET                                               0x0000000000000028
+#define RX_MSDU_END_DA_IS_MCBC_LSB                                                  25
+#define RX_MSDU_END_DA_IS_MCBC_MSB                                                  25
+#define RX_MSDU_END_DA_IS_MCBC_MASK                                                 0x0000000002000000
+
+
+ 
+
+#define RX_MSDU_END_L3_HEADER_PADDING_OFFSET                                        0x0000000000000028
+#define RX_MSDU_END_L3_HEADER_PADDING_LSB                                           26
+#define RX_MSDU_END_L3_HEADER_PADDING_MSB                                           27
+#define RX_MSDU_END_L3_HEADER_PADDING_MASK                                          0x000000000c000000
+
+
+ 
+
+#define RX_MSDU_END_FIRST_MSDU_OFFSET                                               0x0000000000000028
+#define RX_MSDU_END_FIRST_MSDU_LSB                                                  28
+#define RX_MSDU_END_FIRST_MSDU_MSB                                                  28
+#define RX_MSDU_END_FIRST_MSDU_MASK                                                 0x0000000010000000
+
+
+ 
+
+#define RX_MSDU_END_LAST_MSDU_OFFSET                                                0x0000000000000028
+#define RX_MSDU_END_LAST_MSDU_LSB                                                   29
+#define RX_MSDU_END_LAST_MSDU_MSB                                                   29
+#define RX_MSDU_END_LAST_MSDU_MASK                                                  0x0000000020000000
+
+
+ 
+
+#define RX_MSDU_END_FR_DS_OFFSET                                                    0x0000000000000028
+#define RX_MSDU_END_FR_DS_LSB                                                       30
+#define RX_MSDU_END_FR_DS_MSB                                                       30
+#define RX_MSDU_END_FR_DS_MASK                                                      0x0000000040000000
+
+
+ 
+
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_OFFSET                                      0x0000000000000028
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_LSB                                         31
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_MSB                                         31
+#define RX_MSDU_END_IP_CHKSUM_FAIL_COPY_MASK                                        0x0000000080000000
+
+
+ 
+
+#define RX_MSDU_END_SA_IDX_OFFSET                                                   0x0000000000000028
+#define RX_MSDU_END_SA_IDX_LSB                                                      32
+#define RX_MSDU_END_SA_IDX_MSB                                                      47
+#define RX_MSDU_END_SA_IDX_MASK                                                     0x0000ffff00000000
+
+
+ 
+
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_OFFSET                                     0x0000000000000028
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_LSB                                        48
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_MSB                                        63
+#define RX_MSDU_END_DA_IDX_OR_SW_PEER_ID_MASK                                       0xffff000000000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_DROP_OFFSET                                                0x0000000000000030
+#define RX_MSDU_END_MSDU_DROP_LSB                                                   0
+#define RX_MSDU_END_MSDU_DROP_MSB                                                   0
+#define RX_MSDU_END_MSDU_DROP_MASK                                                  0x0000000000000001
+
+
+ 
+
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_OFFSET                               0x0000000000000030
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_LSB                                  1
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_MSB                                  5
+#define RX_MSDU_END_REO_DESTINATION_INDICATION_MASK                                 0x000000000000003e
+
+
+ 
+
+#define RX_MSDU_END_FLOW_IDX_OFFSET                                                 0x0000000000000030
+#define RX_MSDU_END_FLOW_IDX_LSB                                                    6
+#define RX_MSDU_END_FLOW_IDX_MSB                                                    25
+#define RX_MSDU_END_FLOW_IDX_MASK                                                   0x0000000003ffffc0
+
+
+ 
+
+#define RX_MSDU_END_USE_PPE_OFFSET                                                  0x0000000000000030
+#define RX_MSDU_END_USE_PPE_LSB                                                     26
+#define RX_MSDU_END_USE_PPE_MSB                                                     26
+#define RX_MSDU_END_USE_PPE_MASK                                                    0x0000000004000000
+
+
+ 
+
+#define RX_MSDU_END_MESH_STA_OFFSET                                                 0x0000000000000030
+#define RX_MSDU_END_MESH_STA_LSB                                                    27
+#define RX_MSDU_END_MESH_STA_MSB                                                    28
+#define RX_MSDU_END_MESH_STA_MASK                                                   0x0000000018000000
+
+
+ 
+
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_OFFSET                                       0x0000000000000030
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_LSB                                          29
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_MSB                                          29
+#define RX_MSDU_END_VLAN_CTAG_STRIPPED_MASK                                         0x0000000020000000
+
+
+ 
+
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_OFFSET                                       0x0000000000000030
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_LSB                                          30
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_MSB                                          30
+#define RX_MSDU_END_VLAN_STAG_STRIPPED_MASK                                         0x0000000040000000
+
+
+ 
+
+#define RX_MSDU_END_FRAGMENT_FLAG_OFFSET                                            0x0000000000000030
+#define RX_MSDU_END_FRAGMENT_FLAG_LSB                                               31
+#define RX_MSDU_END_FRAGMENT_FLAG_MSB                                               31
+#define RX_MSDU_END_FRAGMENT_FLAG_MASK                                              0x0000000080000000
+
+
+ 
+
+#define RX_MSDU_END_FSE_METADATA_OFFSET                                             0x0000000000000030
+#define RX_MSDU_END_FSE_METADATA_LSB                                                32
+#define RX_MSDU_END_FSE_METADATA_MSB                                                63
+#define RX_MSDU_END_FSE_METADATA_MASK                                               0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_CCE_METADATA_OFFSET                                             0x0000000000000038
+#define RX_MSDU_END_CCE_METADATA_LSB                                                0
+#define RX_MSDU_END_CCE_METADATA_MSB                                                15
+#define RX_MSDU_END_CCE_METADATA_MASK                                               0x000000000000ffff
+
+
+ 
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_OFFSET                                           0x0000000000000038
+#define RX_MSDU_END_TCP_UDP_CHKSUM_LSB                                              16
+#define RX_MSDU_END_TCP_UDP_CHKSUM_MSB                                              31
+#define RX_MSDU_END_TCP_UDP_CHKSUM_MASK                                             0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_END_AGGREGATION_COUNT_OFFSET                                        0x0000000000000038
+#define RX_MSDU_END_AGGREGATION_COUNT_LSB                                           32
+#define RX_MSDU_END_AGGREGATION_COUNT_MSB                                           39
+#define RX_MSDU_END_AGGREGATION_COUNT_MASK                                          0x000000ff00000000
+
+
+ 
+
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_OFFSET                            0x0000000000000038
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_LSB                               40
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_MSB                               40
+#define RX_MSDU_END_FLOW_AGGREGATION_CONTINUATION_MASK                              0x0000010000000000
+
+
+ 
+
+#define RX_MSDU_END_FISA_TIMEOUT_OFFSET                                             0x0000000000000038
+#define RX_MSDU_END_FISA_TIMEOUT_LSB                                                41
+#define RX_MSDU_END_FISA_TIMEOUT_MSB                                                41
+#define RX_MSDU_END_FISA_TIMEOUT_MASK                                               0x0000020000000000
+
+
+ 
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_OFFSET                                 0x0000000000000038
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_LSB                                    42
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_MSB                                    42
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_COPY_MASK                                   0x0000040000000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_LSB                                            43
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_MSB                                            43
+#define RX_MSDU_END_MSDU_LIMIT_ERROR_MASK                                           0x0000080000000000
+
+
+ 
+
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_LSB                                            44
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_MSB                                            44
+#define RX_MSDU_END_FLOW_IDX_TIMEOUT_MASK                                           0x0000100000000000
+
+
+ 
+
+#define RX_MSDU_END_FLOW_IDX_INVALID_OFFSET                                         0x0000000000000038
+#define RX_MSDU_END_FLOW_IDX_INVALID_LSB                                            45
+#define RX_MSDU_END_FLOW_IDX_INVALID_MSB                                            45
+#define RX_MSDU_END_FLOW_IDX_INVALID_MASK                                           0x0000200000000000
+
+
+ 
+
+#define RX_MSDU_END_CCE_MATCH_OFFSET                                                0x0000000000000038
+#define RX_MSDU_END_CCE_MATCH_LSB                                                   46
+#define RX_MSDU_END_CCE_MATCH_MSB                                                   46
+#define RX_MSDU_END_CCE_MATCH_MASK                                                  0x0000400000000000
+
+
+ 
+
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_OFFSET                                       0x0000000000000038
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_LSB                                          47
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_MSB                                          47
+#define RX_MSDU_END_AMSDU_PARSER_ERROR_MASK                                         0x0000800000000000
+
+
+ 
+
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_OFFSET                                     0x0000000000000038
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_LSB                                        48
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_MSB                                        63
+#define RX_MSDU_END_CUMULATIVE_IP_LENGTH_MASK                                       0xffff000000000000
+
+
+ 
+
+#define RX_MSDU_END_KEY_ID_OCTET_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_KEY_ID_OCTET_LSB                                                0
+#define RX_MSDU_END_KEY_ID_OCTET_MSB                                                7
+#define RX_MSDU_END_KEY_ID_OCTET_MASK                                               0x00000000000000ff
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_16A_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_16A_LSB                                                8
+#define RX_MSDU_END_RESERVED_16A_MSB                                                31
+#define RX_MSDU_END_RESERVED_16A_MASK                                               0x00000000ffffff00
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_17A_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_17A_LSB                                                32
+#define RX_MSDU_END_RESERVED_17A_MSB                                                37
+#define RX_MSDU_END_RESERVED_17A_MASK                                               0x0000003f00000000
+
+
+ 
+
+#define RX_MSDU_END_SERVICE_CODE_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_SERVICE_CODE_LSB                                                38
+#define RX_MSDU_END_SERVICE_CODE_MSB                                                46
+#define RX_MSDU_END_SERVICE_CODE_MASK                                               0x00007fc000000000
+
+
+ 
+
+#define RX_MSDU_END_PRIORITY_VALID_OFFSET                                           0x0000000000000040
+#define RX_MSDU_END_PRIORITY_VALID_LSB                                              47
+#define RX_MSDU_END_PRIORITY_VALID_MSB                                              47
+#define RX_MSDU_END_PRIORITY_VALID_MASK                                             0x0000800000000000
+
+
+ 
+
+#define RX_MSDU_END_INTRA_BSS_OFFSET                                                0x0000000000000040
+#define RX_MSDU_END_INTRA_BSS_LSB                                                   48
+#define RX_MSDU_END_INTRA_BSS_MSB                                                   48
+#define RX_MSDU_END_INTRA_BSS_MASK                                                  0x0001000000000000
+
+
+ 
+
+#define RX_MSDU_END_DEST_CHIP_ID_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_DEST_CHIP_ID_LSB                                                49
+#define RX_MSDU_END_DEST_CHIP_ID_MSB                                                50
+#define RX_MSDU_END_DEST_CHIP_ID_MASK                                               0x0006000000000000
+
+
+ 
+
+#define RX_MSDU_END_MULTICAST_ECHO_OFFSET                                           0x0000000000000040
+#define RX_MSDU_END_MULTICAST_ECHO_LSB                                              51
+#define RX_MSDU_END_MULTICAST_ECHO_MSB                                              51
+#define RX_MSDU_END_MULTICAST_ECHO_MASK                                             0x0008000000000000
+
+
+ 
+
+#define RX_MSDU_END_WDS_LEARNING_EVENT_OFFSET                                       0x0000000000000040
+#define RX_MSDU_END_WDS_LEARNING_EVENT_LSB                                          52
+#define RX_MSDU_END_WDS_LEARNING_EVENT_MSB                                          52
+#define RX_MSDU_END_WDS_LEARNING_EVENT_MASK                                         0x0010000000000000
+
+
+ 
+
+#define RX_MSDU_END_WDS_ROAMING_EVENT_OFFSET                                        0x0000000000000040
+#define RX_MSDU_END_WDS_ROAMING_EVENT_LSB                                           53
+#define RX_MSDU_END_WDS_ROAMING_EVENT_MSB                                           53
+#define RX_MSDU_END_WDS_ROAMING_EVENT_MASK                                          0x0020000000000000
+
+
+ 
+
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_OFFSET                                     0x0000000000000040
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_LSB                                        54
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_MSB                                        54
+#define RX_MSDU_END_WDS_KEEP_ALIVE_EVENT_MASK                                       0x0040000000000000
+
+
+ 
+
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_OFFSET                                        0x0000000000000040
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_LSB                                           55
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_MSB                                           55
+#define RX_MSDU_END_DEST_CHIP_PMAC_ID_MASK                                          0x0080000000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_17B_OFFSET                                             0x0000000000000040
+#define RX_MSDU_END_RESERVED_17B_LSB                                                56
+#define RX_MSDU_END_RESERVED_17B_MSB                                                63
+#define RX_MSDU_END_RESERVED_17B_MASK                                               0xff00000000000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_LENGTH_OFFSET                                              0x0000000000000048
+#define RX_MSDU_END_MSDU_LENGTH_LSB                                                 0
+#define RX_MSDU_END_MSDU_LENGTH_MSB                                                 13
+#define RX_MSDU_END_MSDU_LENGTH_MASK                                                0x0000000000003fff
+
+
+ 
+
+#define RX_MSDU_END_STBC_OFFSET                                                     0x0000000000000048
+#define RX_MSDU_END_STBC_LSB                                                        14
+#define RX_MSDU_END_STBC_MSB                                                        14
+#define RX_MSDU_END_STBC_MASK                                                       0x0000000000004000
+
+
+ 
+
+#define RX_MSDU_END_IPSEC_ESP_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_IPSEC_ESP_LSB                                                   15
+#define RX_MSDU_END_IPSEC_ESP_MSB                                                   15
+#define RX_MSDU_END_IPSEC_ESP_MASK                                                  0x0000000000008000
+
+
+ 
+
+#define RX_MSDU_END_L3_OFFSET_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_L3_OFFSET_LSB                                                   16
+#define RX_MSDU_END_L3_OFFSET_MSB                                                   22
+#define RX_MSDU_END_L3_OFFSET_MASK                                                  0x00000000007f0000
+
+
+ 
+
+#define RX_MSDU_END_IPSEC_AH_OFFSET                                                 0x0000000000000048
+#define RX_MSDU_END_IPSEC_AH_LSB                                                    23
+#define RX_MSDU_END_IPSEC_AH_MSB                                                    23
+#define RX_MSDU_END_IPSEC_AH_MASK                                                   0x0000000000800000
+
+
+ 
+
+#define RX_MSDU_END_L4_OFFSET_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_L4_OFFSET_LSB                                                   24
+#define RX_MSDU_END_L4_OFFSET_MSB                                                   31
+#define RX_MSDU_END_L4_OFFSET_MASK                                                  0x00000000ff000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_NUMBER_OFFSET                                              0x0000000000000048
+#define RX_MSDU_END_MSDU_NUMBER_LSB                                                 32
+#define RX_MSDU_END_MSDU_NUMBER_MSB                                                 39
+#define RX_MSDU_END_MSDU_NUMBER_MASK                                                0x000000ff00000000
+
+
+ 
+
+#define RX_MSDU_END_DECAP_FORMAT_OFFSET                                             0x0000000000000048
+#define RX_MSDU_END_DECAP_FORMAT_LSB                                                40
+#define RX_MSDU_END_DECAP_FORMAT_MSB                                                41
+#define RX_MSDU_END_DECAP_FORMAT_MASK                                               0x0000030000000000
+
+
+ 
+
+#define RX_MSDU_END_IPV4_PROTO_OFFSET                                               0x0000000000000048
+#define RX_MSDU_END_IPV4_PROTO_LSB                                                  42
+#define RX_MSDU_END_IPV4_PROTO_MSB                                                  42
+#define RX_MSDU_END_IPV4_PROTO_MASK                                                 0x0000040000000000
+
+
+ 
+
+#define RX_MSDU_END_IPV6_PROTO_OFFSET                                               0x0000000000000048
+#define RX_MSDU_END_IPV6_PROTO_LSB                                                  43
+#define RX_MSDU_END_IPV6_PROTO_MSB                                                  43
+#define RX_MSDU_END_IPV6_PROTO_MASK                                                 0x0000080000000000
+
+
+ 
+
+#define RX_MSDU_END_TCP_PROTO_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_TCP_PROTO_LSB                                                   44
+#define RX_MSDU_END_TCP_PROTO_MSB                                                   44
+#define RX_MSDU_END_TCP_PROTO_MASK                                                  0x0000100000000000
+
+
+ 
+
+#define RX_MSDU_END_UDP_PROTO_OFFSET                                                0x0000000000000048
+#define RX_MSDU_END_UDP_PROTO_LSB                                                   45
+#define RX_MSDU_END_UDP_PROTO_MSB                                                   45
+#define RX_MSDU_END_UDP_PROTO_MASK                                                  0x0000200000000000
+
+
+ 
+
+#define RX_MSDU_END_IP_FRAG_OFFSET                                                  0x0000000000000048
+#define RX_MSDU_END_IP_FRAG_LSB                                                     46
+#define RX_MSDU_END_IP_FRAG_MSB                                                     46
+#define RX_MSDU_END_IP_FRAG_MASK                                                    0x0000400000000000
+
+
+ 
+
+#define RX_MSDU_END_TCP_ONLY_ACK_OFFSET                                             0x0000000000000048
+#define RX_MSDU_END_TCP_ONLY_ACK_LSB                                                47
+#define RX_MSDU_END_TCP_ONLY_ACK_MSB                                                47
+#define RX_MSDU_END_TCP_ONLY_ACK_MASK                                               0x0000800000000000
+
+
+ 
+
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_OFFSET                                        0x0000000000000048
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_LSB                                           48
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_MSB                                           48
+#define RX_MSDU_END_DA_IS_BCAST_MCAST_MASK                                          0x0001000000000000
+
+
+ 
+
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_OFFSET                                        0x0000000000000048
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_LSB                                           49
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_MSB                                           50
+#define RX_MSDU_END_TOEPLITZ_HASH_SEL_MASK                                          0x0006000000000000
+
+
+ 
+
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_OFFSET                                    0x0000000000000048
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_LSB                                       51
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_MSB                                       51
+#define RX_MSDU_END_IP_FIXED_HEADER_VALID_MASK                                      0x0008000000000000
+
+
+ 
+
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_LSB                                        52
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_MSB                                        52
+#define RX_MSDU_END_IP_EXTN_HEADER_VALID_MASK                                       0x0010000000000000
+
+
+ 
+
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_LSB                                        53
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_MSB                                        53
+#define RX_MSDU_END_TCP_UDP_HEADER_VALID_MASK                                       0x0020000000000000
+
+
+ 
+
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_OFFSET                                     0x0000000000000048
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_LSB                                        54
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_MSB                                        54
+#define RX_MSDU_END_MESH_CONTROL_PRESENT_MASK                                       0x0040000000000000
+
+
+ 
+
+#define RX_MSDU_END_LDPC_OFFSET                                                     0x0000000000000048
+#define RX_MSDU_END_LDPC_LSB                                                        55
+#define RX_MSDU_END_LDPC_MSB                                                        55
+#define RX_MSDU_END_LDPC_MASK                                                       0x0080000000000000
+
+
+ 
+
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_OFFSET                             0x0000000000000048
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_LSB                                56
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_MSB                                63
+#define RX_MSDU_END_IP4_PROTOCOL_IP6_NEXT_HEADER_MASK                               0xff00000000000000
+
+
+ 
+
+#define RX_MSDU_END_VLAN_CTAG_CI_OFFSET                                             0x0000000000000050
+#define RX_MSDU_END_VLAN_CTAG_CI_LSB                                                0
+#define RX_MSDU_END_VLAN_CTAG_CI_MSB                                                15
+#define RX_MSDU_END_VLAN_CTAG_CI_MASK                                               0x000000000000ffff
+
+
+ 
+
+#define RX_MSDU_END_VLAN_STAG_CI_OFFSET                                             0x0000000000000050
+#define RX_MSDU_END_VLAN_STAG_CI_LSB                                                16
+#define RX_MSDU_END_VLAN_STAG_CI_MSB                                                31
+#define RX_MSDU_END_VLAN_STAG_CI_MASK                                               0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_END_PEER_META_DATA_OFFSET                                           0x0000000000000050
+#define RX_MSDU_END_PEER_META_DATA_LSB                                              32
+#define RX_MSDU_END_PEER_META_DATA_MSB                                              63
+#define RX_MSDU_END_PEER_META_DATA_MASK                                             0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_USER_RSSI_OFFSET                                                0x0000000000000058
+#define RX_MSDU_END_USER_RSSI_LSB                                                   0
+#define RX_MSDU_END_USER_RSSI_MSB                                                   7
+#define RX_MSDU_END_USER_RSSI_MASK                                                  0x00000000000000ff
+
+
+ 
+
+#define RX_MSDU_END_PKT_TYPE_OFFSET                                                 0x0000000000000058
+#define RX_MSDU_END_PKT_TYPE_LSB                                                    8
+#define RX_MSDU_END_PKT_TYPE_MSB                                                    11
+#define RX_MSDU_END_PKT_TYPE_MASK                                                   0x0000000000000f00
+
+
+ 
+
+#define RX_MSDU_END_SGI_OFFSET                                                      0x0000000000000058
+#define RX_MSDU_END_SGI_LSB                                                         12
+#define RX_MSDU_END_SGI_MSB                                                         13
+#define RX_MSDU_END_SGI_MASK                                                        0x0000000000003000
+
+
+ 
+
+#define RX_MSDU_END_RATE_MCS_OFFSET                                                 0x0000000000000058
+#define RX_MSDU_END_RATE_MCS_LSB                                                    14
+#define RX_MSDU_END_RATE_MCS_MSB                                                    17
+#define RX_MSDU_END_RATE_MCS_MASK                                                   0x000000000003c000
+
+
+ 
+
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_OFFSET                                        0x0000000000000058
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_LSB                                           18
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_MSB                                           20
+#define RX_MSDU_END_RECEIVE_BANDWIDTH_MASK                                          0x00000000001c0000
+
+
+ 
+
+#define RX_MSDU_END_RECEPTION_TYPE_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_RECEPTION_TYPE_LSB                                              21
+#define RX_MSDU_END_RECEPTION_TYPE_MSB                                              23
+#define RX_MSDU_END_RECEPTION_TYPE_MASK                                             0x0000000000e00000
+
+
+ 
+
+#define RX_MSDU_END_MIMO_SS_BITMAP_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_MIMO_SS_BITMAP_LSB                                              24
+#define RX_MSDU_END_MIMO_SS_BITMAP_MSB                                              30
+#define RX_MSDU_END_MIMO_SS_BITMAP_MASK                                             0x000000007f000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_DONE_COPY_OFFSET                                           0x0000000000000058
+#define RX_MSDU_END_MSDU_DONE_COPY_LSB                                              31
+#define RX_MSDU_END_MSDU_DONE_COPY_MSB                                              31
+#define RX_MSDU_END_MSDU_DONE_COPY_MASK                                             0x0000000080000000
+
+
+ 
+
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_OFFSET                                         0x0000000000000058
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_LSB                                            32
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_MSB                                            63
+#define RX_MSDU_END_FLOW_ID_TOEPLITZ_MASK                                           0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_OFFSET                               0x0000000000000060
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_LSB                                  0
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_MSB                                  31
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_63_32_MASK                                 0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_END_SW_PHY_META_DATA_OFFSET                                         0x0000000000000060
+#define RX_MSDU_END_SW_PHY_META_DATA_LSB                                            32
+#define RX_MSDU_END_SW_PHY_META_DATA_MSB                                            63
+#define RX_MSDU_END_SW_PHY_META_DATA_MASK                                           0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_OFFSET                                0x0000000000000068
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_LSB                                   0
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_MSB                                   31
+#define RX_MSDU_END_PPDU_START_TIMESTAMP_31_0_MASK                                  0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_OFFSET                                     0x0000000000000068
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_LSB                                        32
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_MSB                                        63
+#define RX_MSDU_END_TOEPLITZ_HASH_2_OR_4_MASK                                       0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_28A_OFFSET                                             0x0000000000000070
+#define RX_MSDU_END_RESERVED_28A_LSB                                                0
+#define RX_MSDU_END_RESERVED_28A_MSB                                                15
+#define RX_MSDU_END_RESERVED_28A_MASK                                               0x000000000000ffff
+
+
+ 
+
+#define RX_MSDU_END_SA_15_0_OFFSET                                                  0x0000000000000070
+#define RX_MSDU_END_SA_15_0_LSB                                                     16
+#define RX_MSDU_END_SA_15_0_MSB                                                     31
+#define RX_MSDU_END_SA_15_0_MASK                                                    0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_END_SA_47_16_OFFSET                                                 0x0000000000000070
+#define RX_MSDU_END_SA_47_16_LSB                                                    32
+#define RX_MSDU_END_SA_47_16_MSB                                                    63
+#define RX_MSDU_END_SA_47_16_MASK                                                   0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_END_FIRST_MPDU_OFFSET                                               0x0000000000000078
+#define RX_MSDU_END_FIRST_MPDU_LSB                                                  0
+#define RX_MSDU_END_FIRST_MPDU_MSB                                                  0
+#define RX_MSDU_END_FIRST_MPDU_MASK                                                 0x0000000000000001
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_30A_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_30A_LSB                                                1
+#define RX_MSDU_END_RESERVED_30A_MSB                                                1
+#define RX_MSDU_END_RESERVED_30A_MASK                                               0x0000000000000002
+
+
+ 
+
+#define RX_MSDU_END_MCAST_BCAST_OFFSET                                              0x0000000000000078
+#define RX_MSDU_END_MCAST_BCAST_LSB                                                 2
+#define RX_MSDU_END_MCAST_BCAST_MSB                                                 2
+#define RX_MSDU_END_MCAST_BCAST_MASK                                                0x0000000000000004
+
+
+ 
+
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_LSB                                         3
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_MSB                                         3
+#define RX_MSDU_END_AST_INDEX_NOT_FOUND_MASK                                        0x0000000000000008
+
+
+ 
+
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_OFFSET                                        0x0000000000000078
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_LSB                                           4
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_MSB                                           4
+#define RX_MSDU_END_AST_INDEX_TIMEOUT_MASK                                          0x0000000000000010
+
+
+ 
+
+#define RX_MSDU_END_POWER_MGMT_OFFSET                                               0x0000000000000078
+#define RX_MSDU_END_POWER_MGMT_LSB                                                  5
+#define RX_MSDU_END_POWER_MGMT_MSB                                                  5
+#define RX_MSDU_END_POWER_MGMT_MASK                                                 0x0000000000000020
+
+
+ 
+
+#define RX_MSDU_END_NON_QOS_OFFSET                                                  0x0000000000000078
+#define RX_MSDU_END_NON_QOS_LSB                                                     6
+#define RX_MSDU_END_NON_QOS_MSB                                                     6
+#define RX_MSDU_END_NON_QOS_MASK                                                    0x0000000000000040
+
+
+ 
+
+#define RX_MSDU_END_NULL_DATA_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_NULL_DATA_LSB                                                   7
+#define RX_MSDU_END_NULL_DATA_MSB                                                   7
+#define RX_MSDU_END_NULL_DATA_MASK                                                  0x0000000000000080
+
+
+ 
+
+#define RX_MSDU_END_MGMT_TYPE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MGMT_TYPE_LSB                                                   8
+#define RX_MSDU_END_MGMT_TYPE_MSB                                                   8
+#define RX_MSDU_END_MGMT_TYPE_MASK                                                  0x0000000000000100
+
+
+ 
+
+#define RX_MSDU_END_CTRL_TYPE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_CTRL_TYPE_LSB                                                   9
+#define RX_MSDU_END_CTRL_TYPE_MSB                                                   9
+#define RX_MSDU_END_CTRL_TYPE_MASK                                                  0x0000000000000200
+
+
+ 
+
+#define RX_MSDU_END_MORE_DATA_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MORE_DATA_LSB                                                   10
+#define RX_MSDU_END_MORE_DATA_MSB                                                   10
+#define RX_MSDU_END_MORE_DATA_MASK                                                  0x0000000000000400
+
+
+ 
+
+#define RX_MSDU_END_EOSP_OFFSET                                                     0x0000000000000078
+#define RX_MSDU_END_EOSP_LSB                                                        11
+#define RX_MSDU_END_EOSP_MSB                                                        11
+#define RX_MSDU_END_EOSP_MASK                                                       0x0000000000000800
+
+
+ 
+
+#define RX_MSDU_END_A_MSDU_ERROR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_A_MSDU_ERROR_LSB                                                12
+#define RX_MSDU_END_A_MSDU_ERROR_MSB                                                12
+#define RX_MSDU_END_A_MSDU_ERROR_MASK                                               0x0000000000001000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_30B_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_30B_LSB                                                13
+#define RX_MSDU_END_RESERVED_30B_MSB                                                13
+#define RX_MSDU_END_RESERVED_30B_MASK                                               0x0000000000002000
+
+
+ 
+
+#define RX_MSDU_END_ORDER_OFFSET                                                    0x0000000000000078
+#define RX_MSDU_END_ORDER_LSB                                                       14
+#define RX_MSDU_END_ORDER_MSB                                                       14
+#define RX_MSDU_END_ORDER_MASK                                                      0x0000000000004000
+
+
+ 
+
+#define RX_MSDU_END_WIFI_PARSER_ERROR_OFFSET                                        0x0000000000000078
+#define RX_MSDU_END_WIFI_PARSER_ERROR_LSB                                           15
+#define RX_MSDU_END_WIFI_PARSER_ERROR_MSB                                           15
+#define RX_MSDU_END_WIFI_PARSER_ERROR_MASK                                          0x0000000000008000
+
+
+ 
+
+#define RX_MSDU_END_OVERFLOW_ERR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_OVERFLOW_ERR_LSB                                                16
+#define RX_MSDU_END_OVERFLOW_ERR_MSB                                                16
+#define RX_MSDU_END_OVERFLOW_ERR_MASK                                               0x0000000000010000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_LENGTH_ERR_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_MSDU_LENGTH_ERR_LSB                                             17
+#define RX_MSDU_END_MSDU_LENGTH_ERR_MSB                                             17
+#define RX_MSDU_END_MSDU_LENGTH_ERR_MASK                                            0x0000000000020000
+
+
+ 
+
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_LSB                                         18
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_MSB                                         18
+#define RX_MSDU_END_TCP_UDP_CHKSUM_FAIL_MASK                                        0x0000000000040000
+
+
+ 
+
+#define RX_MSDU_END_IP_CHKSUM_FAIL_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_IP_CHKSUM_FAIL_LSB                                              19
+#define RX_MSDU_END_IP_CHKSUM_FAIL_MSB                                              19
+#define RX_MSDU_END_IP_CHKSUM_FAIL_MASK                                             0x0000000000080000
+
+
+ 
+
+#define RX_MSDU_END_SA_IDX_INVALID_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_SA_IDX_INVALID_LSB                                              20
+#define RX_MSDU_END_SA_IDX_INVALID_MSB                                              20
+#define RX_MSDU_END_SA_IDX_INVALID_MASK                                             0x0000000000100000
+
+
+ 
+
+#define RX_MSDU_END_DA_IDX_INVALID_OFFSET                                           0x0000000000000078
+#define RX_MSDU_END_DA_IDX_INVALID_LSB                                              21
+#define RX_MSDU_END_DA_IDX_INVALID_MSB                                              21
+#define RX_MSDU_END_DA_IDX_INVALID_MASK                                             0x0000000000200000
+
+
+ 
+
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_LSB                                         22
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_MSB                                         22
+#define RX_MSDU_END_AMSDU_ADDR_MISMATCH_MASK                                        0x0000000000400000
+
+
+ 
+
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_OFFSET                                     0x0000000000000078
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_LSB                                        23
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_MSB                                        23
+#define RX_MSDU_END_RX_IN_TX_DECRYPT_BYP_MASK                                       0x0000000000800000
+
+
+ 
+
+#define RX_MSDU_END_ENCRYPT_REQUIRED_OFFSET                                         0x0000000000000078
+#define RX_MSDU_END_ENCRYPT_REQUIRED_LSB                                            24
+#define RX_MSDU_END_ENCRYPT_REQUIRED_MSB                                            24
+#define RX_MSDU_END_ENCRYPT_REQUIRED_MASK                                           0x0000000001000000
+
+
+ 
+
+#define RX_MSDU_END_DIRECTED_OFFSET                                                 0x0000000000000078
+#define RX_MSDU_END_DIRECTED_LSB                                                    25
+#define RX_MSDU_END_DIRECTED_MSB                                                    25
+#define RX_MSDU_END_DIRECTED_MASK                                                   0x0000000002000000
+
+
+ 
+
+#define RX_MSDU_END_BUFFER_FRAGMENT_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_BUFFER_FRAGMENT_LSB                                             26
+#define RX_MSDU_END_BUFFER_FRAGMENT_MSB                                             26
+#define RX_MSDU_END_BUFFER_FRAGMENT_MASK                                            0x0000000004000000
+
+
+ 
+
+#define RX_MSDU_END_MPDU_LENGTH_ERR_OFFSET                                          0x0000000000000078
+#define RX_MSDU_END_MPDU_LENGTH_ERR_LSB                                             27
+#define RX_MSDU_END_MPDU_LENGTH_ERR_MSB                                             27
+#define RX_MSDU_END_MPDU_LENGTH_ERR_MASK                                            0x0000000008000000
+
+
+ 
+
+#define RX_MSDU_END_TKIP_MIC_ERR_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_TKIP_MIC_ERR_LSB                                                28
+#define RX_MSDU_END_TKIP_MIC_ERR_MSB                                                28
+#define RX_MSDU_END_TKIP_MIC_ERR_MASK                                               0x0000000010000000
+
+
+ 
+
+#define RX_MSDU_END_DECRYPT_ERR_OFFSET                                              0x0000000000000078
+#define RX_MSDU_END_DECRYPT_ERR_LSB                                                 29
+#define RX_MSDU_END_DECRYPT_ERR_MSB                                                 29
+#define RX_MSDU_END_DECRYPT_ERR_MASK                                                0x0000000020000000
+
+
+ 
+
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_OFFSET                                    0x0000000000000078
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_LSB                                       30
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_MSB                                       30
+#define RX_MSDU_END_UNENCRYPTED_FRAME_ERR_MASK                                      0x0000000040000000
+
+
+ 
+
+#define RX_MSDU_END_FCS_ERR_OFFSET                                                  0x0000000000000078
+#define RX_MSDU_END_FCS_ERR_LSB                                                     31
+#define RX_MSDU_END_FCS_ERR_MSB                                                     31
+#define RX_MSDU_END_FCS_ERR_MASK                                                    0x0000000080000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_31A_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_31A_LSB                                                32
+#define RX_MSDU_END_RESERVED_31A_MSB                                                41
+#define RX_MSDU_END_RESERVED_31A_MASK                                               0x000003ff00000000
+
+
+ 
+
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_OFFSET                                      0x0000000000000078
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_LSB                                         42
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_MSB                                         44
+#define RX_MSDU_END_DECRYPT_STATUS_CODE_MASK                                        0x00001c0000000000
+
+
+ 
+
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_OFFSET                                    0x0000000000000078
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_LSB                                       45
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_MSB                                       45
+#define RX_MSDU_END_RX_BITMAP_NOT_UPDATED_MASK                                      0x0000200000000000
+
+
+ 
+
+#define RX_MSDU_END_RESERVED_31B_OFFSET                                             0x0000000000000078
+#define RX_MSDU_END_RESERVED_31B_LSB                                                46
+#define RX_MSDU_END_RESERVED_31B_MSB                                                62
+#define RX_MSDU_END_RESERVED_31B_MASK                                               0x7fffc00000000000
+
+
+ 
+
+#define RX_MSDU_END_MSDU_DONE_OFFSET                                                0x0000000000000078
+#define RX_MSDU_END_MSDU_DONE_LSB                                                   63
+#define RX_MSDU_END_MSDU_DONE_MSB                                                   63
+#define RX_MSDU_END_MSDU_DONE_MASK                                                  0x8000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_ext_desc_info.h b/hw/qcn9224/v2/rx_msdu_ext_desc_info.h
new file mode 100644
index 0000000..b97cc54
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_ext_desc_info.h
@@ -0,0 +1,102 @@
+
+/* 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 _RX_MSDU_EXT_DESC_INFO_H_
+#define _RX_MSDU_EXT_DESC_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_EXT_DESC_INFO 1
+
+
+struct rx_msdu_ext_desc_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_destination_indication                              :  5,  
+                      service_code                                            :  9,  
+                      priority_valid                                          :  1,  
+                      data_offset                                             : 12,  
+                      src_link_id                                             :  3,  
+                      reserved_0a                                             :  2;  
+#else
+             uint32_t reserved_0a                                             :  2,  
+                      src_link_id                                             :  3,  
+                      data_offset                                             : 12,  
+                      priority_valid                                          :  1,  
+                      service_code                                            :  9,  
+                      reo_destination_indication                              :  5;  
+#endif
+};
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_OFFSET                     0x00000000
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_LSB                        0
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_MSB                        4
+#define RX_MSDU_EXT_DESC_INFO_REO_DESTINATION_INDICATION_MASK                       0x0000001f
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_OFFSET                                   0x00000000
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_LSB                                      5
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_MSB                                      13
+#define RX_MSDU_EXT_DESC_INFO_SERVICE_CODE_MASK                                     0x00003fe0
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_OFFSET                                 0x00000000
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_LSB                                    14
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_MSB                                    14
+#define RX_MSDU_EXT_DESC_INFO_PRIORITY_VALID_MASK                                   0x00004000
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_LSB                                       15
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_MSB                                       26
+#define RX_MSDU_EXT_DESC_INFO_DATA_OFFSET_MASK                                      0x07ff8000
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_LSB                                       27
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_MSB                                       29
+#define RX_MSDU_EXT_DESC_INFO_SRC_LINK_ID_MASK                                      0x38000000
+
+
+ 
+
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_OFFSET                                    0x00000000
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_LSB                                       30
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_MSB                                       31
+#define RX_MSDU_EXT_DESC_INFO_RESERVED_0A_MASK                                      0xc0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_link.h b/hw/qcn9224/v2/rx_msdu_link.h
new file mode 100644
index 0000000..162e7dc
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_link.h
@@ -0,0 +1,1561 @@
+
+/* 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 _RX_MSDU_LINK_H_
+#define _RX_MSDU_LINK_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#include "buffer_addr_info.h"
+#include "rx_msdu_details.h"
+#define NUM_OF_DWORDS_RX_MSDU_LINK 32
+
+
+struct rx_msdu_link {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             struct   buffer_addr_info                                          next_msdu_link_desc_addr_info;
+             uint32_t receive_queue_number                                    : 16,  
+                      first_rx_msdu_link_struct                               :  1,  
+                      reserved_3a                                             : 15;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             struct   rx_msdu_details                                           msdu_0;
+             struct   rx_msdu_details                                           msdu_1;
+             struct   rx_msdu_details                                           msdu_2;
+             struct   rx_msdu_details                                           msdu_3;
+             struct   rx_msdu_details                                           msdu_4;
+             struct   rx_msdu_details                                           msdu_5;
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             struct   buffer_addr_info                                          next_msdu_link_desc_addr_info;
+             uint32_t reserved_3a                                             : 15,  
+                      first_rx_msdu_link_struct                               :  1,  
+                      receive_queue_number                                    : 16;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             struct   rx_msdu_details                                           msdu_0;
+             struct   rx_msdu_details                                           msdu_1;
+             struct   rx_msdu_details                                           msdu_2;
+             struct   rx_msdu_details                                           msdu_3;
+             struct   rx_msdu_details                                           msdu_4;
+             struct   rx_msdu_details                                           msdu_5;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_OFFSET                                 0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_LSB                                    0
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_MSB                                    3
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_OWNER_MASK                                   0x0000000f
+
+
+ 
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                           0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                              4
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                              7
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                             0x000000f0
+
+
+ 
+
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                           0x00000000
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_LSB                              8
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_MSB                              31
+#define RX_MSDU_LINK_DESCRIPTOR_HEADER_RESERVED_0A_MASK                             0xffffff00
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET          0x00000004
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB             0
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB             31
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK            0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET         0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB            0
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB            7
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK           0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET     0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB        8
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB        11
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK       0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET          0x00000008
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB             12
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB             31
+#define RX_MSDU_LINK_NEXT_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK            0xfffff000
+
+
+ 
+
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x0000000c
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_LSB                                       0
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_MSB                                       15
+#define RX_MSDU_LINK_RECEIVE_QUEUE_NUMBER_MASK                                      0x0000ffff
+
+
+ 
+
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_OFFSET                               0x0000000c
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_LSB                                  16
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_MSB                                  16
+#define RX_MSDU_LINK_FIRST_RX_MSDU_LINK_STRUCT_MASK                                 0x00010000
+
+
+ 
+
+#define RX_MSDU_LINK_RESERVED_3A_OFFSET                                             0x0000000c
+#define RX_MSDU_LINK_RESERVED_3A_LSB                                                17
+#define RX_MSDU_LINK_RESERVED_3A_MSB                                                31
+#define RX_MSDU_LINK_RESERVED_3A_MASK                                               0xfffe0000
+
+
+ 
+
+#define RX_MSDU_LINK_PN_31_0_OFFSET                                                 0x00000010
+#define RX_MSDU_LINK_PN_31_0_LSB                                                    0
+#define RX_MSDU_LINK_PN_31_0_MSB                                                    31
+#define RX_MSDU_LINK_PN_31_0_MASK                                                   0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_PN_63_32_OFFSET                                                0x00000014
+#define RX_MSDU_LINK_PN_63_32_LSB                                                   0
+#define RX_MSDU_LINK_PN_63_32_MSB                                                   31
+#define RX_MSDU_LINK_PN_63_32_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_PN_95_64_OFFSET                                                0x00000018
+#define RX_MSDU_LINK_PN_95_64_LSB                                                   0
+#define RX_MSDU_LINK_PN_95_64_MSB                                                   31
+#define RX_MSDU_LINK_PN_95_64_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_PN_127_96_OFFSET                                               0x0000001c
+#define RX_MSDU_LINK_PN_127_96_LSB                                                  0
+#define RX_MSDU_LINK_PN_127_96_MSB                                                  31
+#define RX_MSDU_LINK_PN_127_96_MASK                                                 0xffffffff
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000020
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000024
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_0_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000028
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000002c
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_0_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000030
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000034
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_1_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000038
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000003c
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_1_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000040
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000044
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_2_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000048
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000004c
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_2_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000050
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000054
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_3_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000058
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000005c
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_3_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000060
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000064
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_4_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000068
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000006c
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_4_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_OFFSET        0x00000070
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_LSB           0
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MSB           31
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_31_0_MASK          0xffffffff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_OFFSET       0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_LSB          0
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MSB          7
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_BUFFER_ADDR_39_32_MASK         0x000000ff
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_OFFSET   0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_LSB      8
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MSB      11
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_RETURN_BUFFER_MANAGER_MASK     0x00000f00
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_OFFSET        0x00000074
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_LSB           12
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MSB           31
+#define RX_MSDU_LINK_MSDU_5_BUFFER_ADDR_INFO_DETAILS_SW_BUFFER_COOKIE_MASK          0xfffff000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000078
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET 0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_LSB 0
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MSB 4
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_REO_DESTINATION_INDICATION_MASK 0x0000001f
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_OFFSET       0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_LSB          5
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MSB          13
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SERVICE_CODE_MASK         0x00003fe0
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_OFFSET     0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_LSB        14
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MSB        14
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_PRIORITY_VALID_MASK       0x00004000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_LSB           15
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MSB           26
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_DATA_OFFSET_MASK          0x07ff8000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_LSB           27
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MSB           29
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_SRC_LINK_ID_MASK          0x38000000
+
+
+ 
+
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_OFFSET        0x0000007c
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_LSB           30
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MSB           31
+#define RX_MSDU_LINK_MSDU_5_RX_MSDU_EXT_DESC_INFO_DETAILS_RESERVED_0A_MASK          0xc0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_msdu_start.h b/hw/qcn9224/v2/rx_msdu_start.h
new file mode 100644
index 0000000..3ec7454
--- /dev/null
+++ b/hw/qcn9224/v2/rx_msdu_start.h
@@ -0,0 +1,444 @@
+
+/* 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 _RX_MSDU_START_H_
+#define _RX_MSDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_MSDU_START 10
+
+#define NUM_OF_QWORDS_RX_MSDU_START 5
+
+
+struct rx_msdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rxpcu_mpdu_filter_in_category                           :  2,  
+                      sw_frame_group_id                                       :  7,  
+                      reserved_0                                              :  7,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t msdu_length                                             : 14,  
+                      stbc                                                    :  1,  
+                      ipsec_esp                                               :  1,  
+                      l3_offset                                               :  7,  
+                      ipsec_ah                                                :  1,  
+                      l4_offset                                               :  8;  
+             uint32_t msdu_number                                             :  8,  
+                      decap_format                                            :  2,  
+                      ipv4_proto                                              :  1,  
+                      ipv6_proto                                              :  1,  
+                      tcp_proto                                               :  1,  
+                      udp_proto                                               :  1,  
+                      ip_frag                                                 :  1,  
+                      tcp_only_ack                                            :  1,  
+                      da_is_bcast_mcast                                       :  1,  
+                      toeplitz_hash_sel                                       :  2,  
+                      ip_fixed_header_valid                                   :  1,  
+                      ip_extn_header_valid                                    :  1,  
+                      tcp_udp_header_valid                                    :  1,  
+                      mesh_control_present                                    :  1,  
+                      ldpc                                                    :  1,  
+                      ip4_protocol_ip6_next_header                            :  8;  
+             uint32_t toeplitz_hash_2_or_4                                    : 32;  
+             uint32_t flow_id_toeplitz                                        : 32;  
+             uint32_t user_rssi                                               :  8,  
+                      pkt_type                                                :  4,  
+                      sgi                                                     :  2,  
+                      rate_mcs                                                :  4,  
+                      receive_bandwidth                                       :  3,  
+                      reception_type                                          :  3,  
+                      mimo_ss_bitmap                                          :  8;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t vlan_ctag_ci                                            : 16,  
+                      vlan_stag_ci                                            : 16;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_0                                              :  7,  
+                      sw_frame_group_id                                       :  7,  
+                      rxpcu_mpdu_filter_in_category                           :  2;  
+             uint32_t l4_offset                                               :  8,  
+                      ipsec_ah                                                :  1,  
+                      l3_offset                                               :  7,  
+                      ipsec_esp                                               :  1,  
+                      stbc                                                    :  1,  
+                      msdu_length                                             : 14;  
+             uint32_t ip4_protocol_ip6_next_header                            :  8,  
+                      ldpc                                                    :  1,  
+                      mesh_control_present                                    :  1,  
+                      tcp_udp_header_valid                                    :  1,  
+                      ip_extn_header_valid                                    :  1,  
+                      ip_fixed_header_valid                                   :  1,  
+                      toeplitz_hash_sel                                       :  2,  
+                      da_is_bcast_mcast                                       :  1,  
+                      tcp_only_ack                                            :  1,  
+                      ip_frag                                                 :  1,  
+                      udp_proto                                               :  1,  
+                      tcp_proto                                               :  1,  
+                      ipv6_proto                                              :  1,  
+                      ipv4_proto                                              :  1,  
+                      decap_format                                            :  2,  
+                      msdu_number                                             :  8;  
+             uint32_t toeplitz_hash_2_or_4                                    : 32;  
+             uint32_t flow_id_toeplitz                                        : 32;  
+             uint32_t mimo_ss_bitmap                                          :  8,  
+                      reception_type                                          :  3,  
+                      receive_bandwidth                                       :  3,  
+                      rate_mcs                                                :  4,  
+                      sgi                                                     :  2,  
+                      pkt_type                                                :  4,  
+                      user_rssi                                               :  8;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t vlan_stag_ci                                            : 16,  
+                      vlan_ctag_ci                                            : 16;  
+#endif
+};
+
+
+ 
+
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET                          0x0000000000000000
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB                             0
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB                             1
+#define RX_MSDU_START_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK                            0x0000000000000003
+
+
+ 
+
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_OFFSET                                      0x0000000000000000
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_LSB                                         2
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_MSB                                         8
+#define RX_MSDU_START_SW_FRAME_GROUP_ID_MASK                                        0x00000000000001fc
+
+
+ 
+
+#define RX_MSDU_START_RESERVED_0_OFFSET                                             0x0000000000000000
+#define RX_MSDU_START_RESERVED_0_LSB                                                9
+#define RX_MSDU_START_RESERVED_0_MSB                                                15
+#define RX_MSDU_START_RESERVED_0_MASK                                               0x000000000000fe00
+
+
+ 
+
+#define RX_MSDU_START_PHY_PPDU_ID_OFFSET                                            0x0000000000000000
+#define RX_MSDU_START_PHY_PPDU_ID_LSB                                               16
+#define RX_MSDU_START_PHY_PPDU_ID_MSB                                               31
+#define RX_MSDU_START_PHY_PPDU_ID_MASK                                              0x00000000ffff0000
+
+
+ 
+
+#define RX_MSDU_START_MSDU_LENGTH_OFFSET                                            0x0000000000000000
+#define RX_MSDU_START_MSDU_LENGTH_LSB                                               32
+#define RX_MSDU_START_MSDU_LENGTH_MSB                                               45
+#define RX_MSDU_START_MSDU_LENGTH_MASK                                              0x00003fff00000000
+
+
+ 
+
+#define RX_MSDU_START_STBC_OFFSET                                                   0x0000000000000000
+#define RX_MSDU_START_STBC_LSB                                                      46
+#define RX_MSDU_START_STBC_MSB                                                      46
+#define RX_MSDU_START_STBC_MASK                                                     0x0000400000000000
+
+
+ 
+
+#define RX_MSDU_START_IPSEC_ESP_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_IPSEC_ESP_LSB                                                 47
+#define RX_MSDU_START_IPSEC_ESP_MSB                                                 47
+#define RX_MSDU_START_IPSEC_ESP_MASK                                                0x0000800000000000
+
+
+ 
+
+#define RX_MSDU_START_L3_OFFSET_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_L3_OFFSET_LSB                                                 48
+#define RX_MSDU_START_L3_OFFSET_MSB                                                 54
+#define RX_MSDU_START_L3_OFFSET_MASK                                                0x007f000000000000
+
+
+ 
+
+#define RX_MSDU_START_IPSEC_AH_OFFSET                                               0x0000000000000000
+#define RX_MSDU_START_IPSEC_AH_LSB                                                  55
+#define RX_MSDU_START_IPSEC_AH_MSB                                                  55
+#define RX_MSDU_START_IPSEC_AH_MASK                                                 0x0080000000000000
+
+
+ 
+
+#define RX_MSDU_START_L4_OFFSET_OFFSET                                              0x0000000000000000
+#define RX_MSDU_START_L4_OFFSET_LSB                                                 56
+#define RX_MSDU_START_L4_OFFSET_MSB                                                 63
+#define RX_MSDU_START_L4_OFFSET_MASK                                                0xff00000000000000
+
+
+ 
+
+#define RX_MSDU_START_MSDU_NUMBER_OFFSET                                            0x0000000000000008
+#define RX_MSDU_START_MSDU_NUMBER_LSB                                               0
+#define RX_MSDU_START_MSDU_NUMBER_MSB                                               7
+#define RX_MSDU_START_MSDU_NUMBER_MASK                                              0x00000000000000ff
+
+
+ 
+
+#define RX_MSDU_START_DECAP_FORMAT_OFFSET                                           0x0000000000000008
+#define RX_MSDU_START_DECAP_FORMAT_LSB                                              8
+#define RX_MSDU_START_DECAP_FORMAT_MSB                                              9
+#define RX_MSDU_START_DECAP_FORMAT_MASK                                             0x0000000000000300
+
+
+ 
+
+#define RX_MSDU_START_IPV4_PROTO_OFFSET                                             0x0000000000000008
+#define RX_MSDU_START_IPV4_PROTO_LSB                                                10
+#define RX_MSDU_START_IPV4_PROTO_MSB                                                10
+#define RX_MSDU_START_IPV4_PROTO_MASK                                               0x0000000000000400
+
+
+ 
+
+#define RX_MSDU_START_IPV6_PROTO_OFFSET                                             0x0000000000000008
+#define RX_MSDU_START_IPV6_PROTO_LSB                                                11
+#define RX_MSDU_START_IPV6_PROTO_MSB                                                11
+#define RX_MSDU_START_IPV6_PROTO_MASK                                               0x0000000000000800
+
+
+ 
+
+#define RX_MSDU_START_TCP_PROTO_OFFSET                                              0x0000000000000008
+#define RX_MSDU_START_TCP_PROTO_LSB                                                 12
+#define RX_MSDU_START_TCP_PROTO_MSB                                                 12
+#define RX_MSDU_START_TCP_PROTO_MASK                                                0x0000000000001000
+
+
+ 
+
+#define RX_MSDU_START_UDP_PROTO_OFFSET                                              0x0000000000000008
+#define RX_MSDU_START_UDP_PROTO_LSB                                                 13
+#define RX_MSDU_START_UDP_PROTO_MSB                                                 13
+#define RX_MSDU_START_UDP_PROTO_MASK                                                0x0000000000002000
+
+
+ 
+
+#define RX_MSDU_START_IP_FRAG_OFFSET                                                0x0000000000000008
+#define RX_MSDU_START_IP_FRAG_LSB                                                   14
+#define RX_MSDU_START_IP_FRAG_MSB                                                   14
+#define RX_MSDU_START_IP_FRAG_MASK                                                  0x0000000000004000
+
+
+ 
+
+#define RX_MSDU_START_TCP_ONLY_ACK_OFFSET                                           0x0000000000000008
+#define RX_MSDU_START_TCP_ONLY_ACK_LSB                                              15
+#define RX_MSDU_START_TCP_ONLY_ACK_MSB                                              15
+#define RX_MSDU_START_TCP_ONLY_ACK_MASK                                             0x0000000000008000
+
+
+ 
+
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_OFFSET                                      0x0000000000000008
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_LSB                                         16
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_MSB                                         16
+#define RX_MSDU_START_DA_IS_BCAST_MCAST_MASK                                        0x0000000000010000
+
+
+ 
+
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_OFFSET                                      0x0000000000000008
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_LSB                                         17
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_MSB                                         18
+#define RX_MSDU_START_TOEPLITZ_HASH_SEL_MASK                                        0x0000000000060000
+
+
+ 
+
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_OFFSET                                  0x0000000000000008
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_LSB                                     19
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_MSB                                     19
+#define RX_MSDU_START_IP_FIXED_HEADER_VALID_MASK                                    0x0000000000080000
+
+
+ 
+
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_LSB                                      20
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_MSB                                      20
+#define RX_MSDU_START_IP_EXTN_HEADER_VALID_MASK                                     0x0000000000100000
+
+
+ 
+
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_LSB                                      21
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_MSB                                      21
+#define RX_MSDU_START_TCP_UDP_HEADER_VALID_MASK                                     0x0000000000200000
+
+
+ 
+
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_LSB                                      22
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_MSB                                      22
+#define RX_MSDU_START_MESH_CONTROL_PRESENT_MASK                                     0x0000000000400000
+
+
+ 
+
+#define RX_MSDU_START_LDPC_OFFSET                                                   0x0000000000000008
+#define RX_MSDU_START_LDPC_LSB                                                      23
+#define RX_MSDU_START_LDPC_MSB                                                      23
+#define RX_MSDU_START_LDPC_MASK                                                     0x0000000000800000
+
+
+ 
+
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_OFFSET                           0x0000000000000008
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_LSB                              24
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_MSB                              31
+#define RX_MSDU_START_IP4_PROTOCOL_IP6_NEXT_HEADER_MASK                             0x00000000ff000000
+
+
+ 
+
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_OFFSET                                   0x0000000000000008
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_LSB                                      32
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_MSB                                      63
+#define RX_MSDU_START_TOEPLITZ_HASH_2_OR_4_MASK                                     0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_OFFSET                                       0x0000000000000010
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_LSB                                          0
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_MSB                                          31
+#define RX_MSDU_START_FLOW_ID_TOEPLITZ_MASK                                         0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_START_USER_RSSI_OFFSET                                              0x0000000000000010
+#define RX_MSDU_START_USER_RSSI_LSB                                                 32
+#define RX_MSDU_START_USER_RSSI_MSB                                                 39
+#define RX_MSDU_START_USER_RSSI_MASK                                                0x000000ff00000000
+
+
+ 
+
+#define RX_MSDU_START_PKT_TYPE_OFFSET                                               0x0000000000000010
+#define RX_MSDU_START_PKT_TYPE_LSB                                                  40
+#define RX_MSDU_START_PKT_TYPE_MSB                                                  43
+#define RX_MSDU_START_PKT_TYPE_MASK                                                 0x00000f0000000000
+
+
+ 
+
+#define RX_MSDU_START_SGI_OFFSET                                                    0x0000000000000010
+#define RX_MSDU_START_SGI_LSB                                                       44
+#define RX_MSDU_START_SGI_MSB                                                       45
+#define RX_MSDU_START_SGI_MASK                                                      0x0000300000000000
+
+
+ 
+
+#define RX_MSDU_START_RATE_MCS_OFFSET                                               0x0000000000000010
+#define RX_MSDU_START_RATE_MCS_LSB                                                  46
+#define RX_MSDU_START_RATE_MCS_MSB                                                  49
+#define RX_MSDU_START_RATE_MCS_MASK                                                 0x0003c00000000000
+
+
+ 
+
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_OFFSET                                      0x0000000000000010
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_LSB                                         50
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_MSB                                         52
+#define RX_MSDU_START_RECEIVE_BANDWIDTH_MASK                                        0x001c000000000000
+
+
+ 
+
+#define RX_MSDU_START_RECEPTION_TYPE_OFFSET                                         0x0000000000000010
+#define RX_MSDU_START_RECEPTION_TYPE_LSB                                            53
+#define RX_MSDU_START_RECEPTION_TYPE_MSB                                            55
+#define RX_MSDU_START_RECEPTION_TYPE_MASK                                           0x00e0000000000000
+
+
+ 
+
+#define RX_MSDU_START_MIMO_SS_BITMAP_OFFSET                                         0x0000000000000010
+#define RX_MSDU_START_MIMO_SS_BITMAP_LSB                                            56
+#define RX_MSDU_START_MIMO_SS_BITMAP_MSB                                            63
+#define RX_MSDU_START_MIMO_SS_BITMAP_MASK                                           0xff00000000000000
+
+
+ 
+
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_OFFSET                              0x0000000000000018
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_LSB                                 0
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_MSB                                 31
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_31_0_MASK                                0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_OFFSET                             0x0000000000000018
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_LSB                                32
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_MSB                                63
+#define RX_MSDU_START_PPDU_START_TIMESTAMP_63_32_MASK                               0xffffffff00000000
+
+
+ 
+
+#define RX_MSDU_START_SW_PHY_META_DATA_OFFSET                                       0x0000000000000020
+#define RX_MSDU_START_SW_PHY_META_DATA_LSB                                          0
+#define RX_MSDU_START_SW_PHY_META_DATA_MSB                                          31
+#define RX_MSDU_START_SW_PHY_META_DATA_MASK                                         0x00000000ffffffff
+
+
+ 
+
+#define RX_MSDU_START_VLAN_CTAG_CI_OFFSET                                           0x0000000000000020
+#define RX_MSDU_START_VLAN_CTAG_CI_LSB                                              32
+#define RX_MSDU_START_VLAN_CTAG_CI_MSB                                              47
+#define RX_MSDU_START_VLAN_CTAG_CI_MASK                                             0x0000ffff00000000
+
+
+ 
+
+#define RX_MSDU_START_VLAN_STAG_CI_OFFSET                                           0x0000000000000020
+#define RX_MSDU_START_VLAN_STAG_CI_LSB                                              48
+#define RX_MSDU_START_VLAN_STAG_CI_MSB                                              63
+#define RX_MSDU_START_VLAN_STAG_CI_MASK                                             0xffff000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_ppdu_ack_report.h b/hw/qcn9224/v2/rx_ppdu_ack_report.h
similarity index 100%
copy from hw/qcn9224/rx_ppdu_ack_report.h
copy to hw/qcn9224/v2/rx_ppdu_ack_report.h
diff --git a/hw/qcn9224/v2/rx_ppdu_end_user_stats.h b/hw/qcn9224/v2/rx_ppdu_end_user_stats.h
new file mode 100644
index 0000000..7463328
--- /dev/null
+++ b/hw/qcn9224/v2/rx_ppdu_end_user_stats.h
@@ -0,0 +1,858 @@
+
+/* 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 _RX_PPDU_END_USER_STATS_H_
+#define _RX_PPDU_END_USER_STATS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_rxpcu_classification_overview.h"
+#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 24
+
+#define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS 12
+
+
+struct rx_ppdu_end_user_stats {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t sta_full_aid                                            : 13,  
+                      mcs                                                     :  4,  
+                      nss                                                     :  3,  
+                      expected_response_ack_or_ba                             :  1,  
+                      reserved_1a                                             : 11;  
+             uint32_t sw_peer_id                                              : 16,  
+                      mpdu_cnt_fcs_err                                        : 11,  
+                      sw2rxdma0_buf_source_used                               :  1,  
+                      fw2rxdma_pmac0_buf_source_used                          :  1,  
+                      sw2rxdma1_buf_source_used                               :  1,  
+                      sw2rxdma_exception_buf_source_used                      :  1,  
+                      fw2rxdma_pmac1_buf_source_used                          :  1;  
+             uint32_t mpdu_cnt_fcs_ok                                         : 11,  
+                      frame_control_info_valid                                :  1,  
+                      qos_control_info_valid                                  :  1,  
+                      ht_control_info_valid                                   :  1,  
+                      data_sequence_control_info_valid                        :  1,  
+                      ht_control_info_null_valid                              :  1,  
+                      rxdma2fw_pmac1_ring_used                                :  1,  
+                      rxdma2reo_ring_used                                     :  1,  
+                      rxdma2fw_pmac0_ring_used                                :  1,  
+                      rxdma2sw_ring_used                                      :  1,  
+                      rxdma_release_ring_used                                 :  1,  
+                      ht_control_field_pkt_type                               :  4,  
+                      rxdma2reo_remote0_ring_used                             :  1,  
+                      rxdma2reo_remote1_ring_used                             :  1,  
+                      reserved_3b                                             :  5;  
+             uint32_t ast_index                                               : 16,  
+                      frame_control_field                                     : 16;  
+             uint32_t first_data_seq_ctrl                                     : 16,  
+                      qos_control_field                                       : 16;  
+             uint32_t ht_control_field                                        : 32;  
+             uint32_t fcs_ok_bitmap_31_0                                      : 32;  
+             uint32_t fcs_ok_bitmap_63_32                                     : 32;  
+             uint32_t udp_msdu_count                                          : 16,  
+                      tcp_msdu_count                                          : 16;  
+             uint32_t other_msdu_count                                        : 16,  
+                      tcp_ack_msdu_count                                      : 16;  
+             uint32_t sw_response_reference_ptr                               : 32;  
+             uint32_t received_qos_data_tid_bitmap                            : 16,  
+                      received_qos_data_tid_eosp_bitmap                       : 16;  
+             uint32_t qosctrl_15_8_tid0                                       :  8,  
+                      qosctrl_15_8_tid1                                       :  8,  
+                      qosctrl_15_8_tid2                                       :  8,  
+                      qosctrl_15_8_tid3                                       :  8;  
+             uint32_t qosctrl_15_8_tid4                                       :  8,  
+                      qosctrl_15_8_tid5                                       :  8,  
+                      qosctrl_15_8_tid6                                       :  8,  
+                      qosctrl_15_8_tid7                                       :  8;  
+             uint32_t qosctrl_15_8_tid8                                       :  8,  
+                      qosctrl_15_8_tid9                                       :  8,  
+                      qosctrl_15_8_tid10                                      :  8,  
+                      qosctrl_15_8_tid11                                      :  8;  
+             uint32_t qosctrl_15_8_tid12                                      :  8,  
+                      qosctrl_15_8_tid13                                      :  8,  
+                      qosctrl_15_8_tid14                                      :  8,  
+                      qosctrl_15_8_tid15                                      :  8;  
+             uint32_t mpdu_ok_byte_count                                      : 25,  
+                      ampdu_delim_ok_count_6_0                                :  7;  
+             uint32_t ampdu_delim_err_count                                   : 25,  
+                      ampdu_delim_ok_count_13_7                               :  7;  
+             uint32_t mpdu_err_byte_count                                     : 25,  
+                      ampdu_delim_ok_count_20_14                              :  7;  
+             uint32_t non_consecutive_delimiter_err                           : 16,  
+                      retried_msdu_count                                      : 16;  
+             uint32_t ht_control_null_field                                   : 32;  
+             uint32_t sw_response_reference_ptr_ext                           : 32;  
+             uint32_t corrupted_due_to_fifo_delay                             :  1,  
+                      frame_control_info_null_valid                           :  1,  
+                      frame_control_field_null                                : 16,  
+                      retried_mpdu_count                                      : 11,  
+                      reserved_23a                                            :  3;  
+#else
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t reserved_1a                                             : 11,  
+                      expected_response_ack_or_ba                             :  1,  
+                      nss                                                     :  3,  
+                      mcs                                                     :  4,  
+                      sta_full_aid                                            : 13;  
+             uint32_t fw2rxdma_pmac1_buf_source_used                          :  1,  
+                      sw2rxdma_exception_buf_source_used                      :  1,  
+                      sw2rxdma1_buf_source_used                               :  1,  
+                      fw2rxdma_pmac0_buf_source_used                          :  1,  
+                      sw2rxdma0_buf_source_used                               :  1,  
+                      mpdu_cnt_fcs_err                                        : 11,  
+                      sw_peer_id                                              : 16;  
+             uint32_t reserved_3b                                             :  5,  
+                      rxdma2reo_remote1_ring_used                             :  1,  
+                      rxdma2reo_remote0_ring_used                             :  1,  
+                      ht_control_field_pkt_type                               :  4,  
+                      rxdma_release_ring_used                                 :  1,  
+                      rxdma2sw_ring_used                                      :  1,  
+                      rxdma2fw_pmac0_ring_used                                :  1,  
+                      rxdma2reo_ring_used                                     :  1,  
+                      rxdma2fw_pmac1_ring_used                                :  1,  
+                      ht_control_info_null_valid                              :  1,  
+                      data_sequence_control_info_valid                        :  1,  
+                      ht_control_info_valid                                   :  1,  
+                      qos_control_info_valid                                  :  1,  
+                      frame_control_info_valid                                :  1,  
+                      mpdu_cnt_fcs_ok                                         : 11;  
+             uint32_t frame_control_field                                     : 16,  
+                      ast_index                                               : 16;  
+             uint32_t qos_control_field                                       : 16,  
+                      first_data_seq_ctrl                                     : 16;  
+             uint32_t ht_control_field                                        : 32;  
+             uint32_t fcs_ok_bitmap_31_0                                      : 32;  
+             uint32_t fcs_ok_bitmap_63_32                                     : 32;  
+             uint32_t tcp_msdu_count                                          : 16,  
+                      udp_msdu_count                                          : 16;  
+             uint32_t tcp_ack_msdu_count                                      : 16,  
+                      other_msdu_count                                        : 16;  
+             uint32_t sw_response_reference_ptr                               : 32;  
+             uint32_t received_qos_data_tid_eosp_bitmap                       : 16,  
+                      received_qos_data_tid_bitmap                            : 16;  
+             uint32_t qosctrl_15_8_tid3                                       :  8,  
+                      qosctrl_15_8_tid2                                       :  8,  
+                      qosctrl_15_8_tid1                                       :  8,  
+                      qosctrl_15_8_tid0                                       :  8;  
+             uint32_t qosctrl_15_8_tid7                                       :  8,  
+                      qosctrl_15_8_tid6                                       :  8,  
+                      qosctrl_15_8_tid5                                       :  8,  
+                      qosctrl_15_8_tid4                                       :  8;  
+             uint32_t qosctrl_15_8_tid11                                      :  8,  
+                      qosctrl_15_8_tid10                                      :  8,  
+                      qosctrl_15_8_tid9                                       :  8,  
+                      qosctrl_15_8_tid8                                       :  8;  
+             uint32_t qosctrl_15_8_tid15                                      :  8,  
+                      qosctrl_15_8_tid14                                      :  8,  
+                      qosctrl_15_8_tid13                                      :  8,  
+                      qosctrl_15_8_tid12                                      :  8;  
+             uint32_t ampdu_delim_ok_count_6_0                                :  7,  
+                      mpdu_ok_byte_count                                      : 25;  
+             uint32_t ampdu_delim_ok_count_13_7                               :  7,  
+                      ampdu_delim_err_count                                   : 25;  
+             uint32_t ampdu_delim_ok_count_20_14                              :  7,  
+                      mpdu_err_byte_count                                     : 25;  
+             uint32_t retried_msdu_count                                      : 16,  
+                      non_consecutive_delimiter_err                           : 16;  
+             uint32_t ht_control_null_field                                   : 32;  
+             uint32_t sw_response_reference_ptr_ext                           : 32;  
+             uint32_t reserved_23a                                            :  3,  
+                      retried_mpdu_count                                      : 11,  
+                      frame_control_field_null                                : 16,  
+                      frame_control_info_null_valid                           :  1,  
+                      corrupted_due_to_fifo_delay                             :  1;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB   0
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB   0
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK  0x0000000000000001
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET       0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB          9
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB          15
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK         0x000000000000fe00
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET      0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB         16
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB         31
+#define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK        0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_OFFSET                                  0x0000000000000000
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_LSB                                     32
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MSB                                     44
+#define RX_PPDU_END_USER_STATS_STA_FULL_AID_MASK                                    0x00001fff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_MCS_OFFSET                                           0x0000000000000000
+#define RX_PPDU_END_USER_STATS_MCS_LSB                                              45
+#define RX_PPDU_END_USER_STATS_MCS_MSB                                              48
+#define RX_PPDU_END_USER_STATS_MCS_MASK                                             0x0001e00000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_NSS_OFFSET                                           0x0000000000000000
+#define RX_PPDU_END_USER_STATS_NSS_LSB                                              49
+#define RX_PPDU_END_USER_STATS_NSS_MSB                                              51
+#define RX_PPDU_END_USER_STATS_NSS_MASK                                             0x000e000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_OFFSET                   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_LSB                      52
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MSB                      52
+#define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MASK                     0x0010000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_OFFSET                                   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_LSB                                      53
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_MSB                                      63
+#define RX_PPDU_END_USER_STATS_RESERVED_1A_MASK                                     0xffe0000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_OFFSET                                    0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_LSB                                       0
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MSB                                       15
+#define RX_PPDU_END_USER_STATS_SW_PEER_ID_MASK                                      0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_OFFSET                              0x0000000000000008
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_LSB                                 16
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MSB                                 26
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MASK                                0x0000000007ff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_LSB                        27
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MSB                        27
+#define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MASK                       0x0000000008000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_OFFSET                0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_LSB                   28
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MSB                   28
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MASK                  0x0000000010000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_LSB                        29
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MSB                        29
+#define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MASK                       0x0000000020000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_OFFSET            0x0000000000000008
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_LSB               30
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MSB               30
+#define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MASK              0x0000000040000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_OFFSET                0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_LSB                   31
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MSB                   31
+#define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MASK                  0x0000000080000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_OFFSET                               0x0000000000000008
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_LSB                                  32
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MSB                                  42
+#define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MASK                                 0x000007ff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_LSB                         43
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MSB                         43
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MASK                        0x0000080000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_OFFSET                        0x0000000000000008
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_LSB                           44
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MSB                           44
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MASK                          0x0000100000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_OFFSET                         0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_LSB                            45
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MSB                            45
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MASK                           0x0000200000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET              0x0000000000000008
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB                 46
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MSB                 46
+#define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK                0x0000400000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_OFFSET                    0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_LSB                       47
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MSB                       47
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MASK                      0x0000800000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_LSB                         48
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MSB                         48
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MASK                        0x0001000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_OFFSET                           0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_LSB                              49
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MSB                              49
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MASK                             0x0002000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_LSB                         50
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MSB                         50
+#define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MASK                        0x0004000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_OFFSET                            0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_LSB                               51
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MSB                               51
+#define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MASK                              0x0008000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_OFFSET                       0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_LSB                          52
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MSB                          52
+#define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MASK                         0x0010000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_LSB                        53
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MSB                        56
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MASK                       0x01e0000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_OFFSET                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_LSB                      57
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MSB                      57
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MASK                     0x0200000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_OFFSET                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_LSB                      58
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MSB                      58
+#define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MASK                     0x0400000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_OFFSET                                   0x0000000000000008
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_LSB                                      59
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_MSB                                      63
+#define RX_PPDU_END_USER_STATS_RESERVED_3B_MASK                                     0xf800000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_AST_INDEX_OFFSET                                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_AST_INDEX_LSB                                        0
+#define RX_PPDU_END_USER_STATS_AST_INDEX_MSB                                        15
+#define RX_PPDU_END_USER_STATS_AST_INDEX_MASK                                       0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_OFFSET                           0x0000000000000010
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_LSB                              16
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MSB                              31
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MASK                             0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_OFFSET                           0x0000000000000010
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_LSB                              32
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MSB                              47
+#define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MASK                             0x0000ffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_OFFSET                             0x0000000000000010
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_LSB                                48
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MSB                                63
+#define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MASK                               0xffff000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_OFFSET                              0x0000000000000018
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_LSB                                 0
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MSB                                 31
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MASK                                0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_OFFSET                            0x0000000000000018
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_LSB                               32
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MSB                               63
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MASK                              0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_OFFSET                           0x0000000000000020
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_LSB                              0
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MSB                              31
+#define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MASK                             0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_OFFSET                                0x0000000000000020
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_LSB                                   32
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MSB                                   47
+#define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MASK                                  0x0000ffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_OFFSET                                0x0000000000000020
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_LSB                                   48
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MSB                                   63
+#define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MASK                                  0xffff000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_OFFSET                              0x0000000000000028
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_LSB                                 0
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MSB                                 15
+#define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MASK                                0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_OFFSET                            0x0000000000000028
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_LSB                               16
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MSB                               31
+#define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MASK                              0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET                     0x0000000000000028
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_LSB                        32
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MSB                        63
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MASK                       0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET                  0x0000000000000030
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_LSB                     0
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MSB                     15
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MASK                    0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB                16
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MSB                31
+#define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK               0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_LSB                                32
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MSB                                39
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MASK                               0x000000ff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_LSB                                40
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MSB                                47
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MASK                               0x0000ff0000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_LSB                                48
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MSB                                55
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MASK                               0x00ff000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_OFFSET                             0x0000000000000030
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_LSB                                56
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MSB                                63
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MASK                               0xff00000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_LSB                                0
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MSB                                7
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MASK                               0x00000000000000ff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_LSB                                8
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MSB                                15
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MASK                               0x000000000000ff00
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_LSB                                16
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MSB                                23
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MASK                               0x0000000000ff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_LSB                                24
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MSB                                31
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MASK                               0x00000000ff000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_LSB                                32
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MSB                                39
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MASK                               0x000000ff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_OFFSET                             0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_LSB                                40
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MSB                                47
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MASK                               0x0000ff0000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_OFFSET                            0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_LSB                               48
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MSB                               55
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MASK                              0x00ff000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_OFFSET                            0x0000000000000038
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_LSB                               56
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MSB                               63
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MASK                              0xff00000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_LSB                               0
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MSB                               7
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MASK                              0x00000000000000ff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_LSB                               8
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MSB                               15
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MASK                              0x000000000000ff00
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_LSB                               16
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MSB                               23
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MASK                              0x0000000000ff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_LSB                               24
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MSB                               31
+#define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MASK                              0x00000000ff000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_OFFSET                            0x0000000000000040
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_LSB                               32
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MSB                               56
+#define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MASK                              0x01ffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_OFFSET                      0x0000000000000040
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_LSB                         57
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MSB                         63
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MASK                        0xfe00000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_OFFSET                         0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_LSB                            0
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MSB                            24
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MASK                           0x0000000001ffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_OFFSET                     0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_LSB                        25
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MSB                        31
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MASK                       0x00000000fe000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_OFFSET                           0x0000000000000048
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_LSB                              32
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MSB                              56
+#define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MASK                             0x01ffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_OFFSET                    0x0000000000000048
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_LSB                       57
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MSB                       63
+#define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MASK                      0xfe00000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET                 0x0000000000000050
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_LSB                    0
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MSB                    15
+#define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MASK                   0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_OFFSET                            0x0000000000000050
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_LSB                               16
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MSB                               31
+#define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MASK                              0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_OFFSET                         0x0000000000000050
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_LSB                            32
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MSB                            63
+#define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MASK                           0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET                 0x0000000000000058
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_LSB                    0
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MSB                    31
+#define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MASK                   0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET                   0x0000000000000058
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                      32
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                      32
+#define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                     0x0000000100000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_OFFSET                 0x0000000000000058
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_LSB                    33
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MSB                    33
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MASK                   0x0000000200000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_OFFSET                      0x0000000000000058
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_LSB                         34
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MSB                         49
+#define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MASK                        0x0003fffc00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_OFFSET                            0x0000000000000058
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_LSB                               50
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MSB                               60
+#define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MASK                              0x1ffc000000000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_OFFSET                                  0x0000000000000058
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_LSB                                     61
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_MSB                                     63
+#define RX_PPDU_END_USER_STATS_RESERVED_23A_MASK                                    0xe000000000000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_ppdu_end_user_stats_ext.h b/hw/qcn9224/v2/rx_ppdu_end_user_stats_ext.h
new file mode 100644
index 0000000..c3953e6
--- /dev/null
+++ b/hw/qcn9224/v2/rx_ppdu_end_user_stats_ext.h
@@ -0,0 +1,218 @@
+
+/* 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 _RX_PPDU_END_USER_STATS_EXT_H_
+#define _RX_PPDU_END_USER_STATS_EXT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_rxpcu_classification_overview.h"
+#define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS_EXT 8
+
+#define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS_EXT 4
+
+
+struct rx_ppdu_end_user_stats_ext {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t fcs_ok_bitmap_95_64                                     : 32;  
+             uint32_t fcs_ok_bitmap_127_96                                    : 32;  
+             uint32_t fcs_ok_bitmap_159_128                                   : 32;  
+             uint32_t fcs_ok_bitmap_191_160                                   : 32;  
+             uint32_t fcs_ok_bitmap_223_192                                   : 32;  
+             uint32_t fcs_ok_bitmap_255_224                                   : 32;  
+             uint32_t corrupted_due_to_fifo_delay                             :  1,  
+                      reserved_7a                                             : 31;  
+#else
+             struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
+             uint32_t fcs_ok_bitmap_95_64                                     : 32;  
+             uint32_t fcs_ok_bitmap_127_96                                    : 32;  
+             uint32_t fcs_ok_bitmap_159_128                                   : 32;  
+             uint32_t fcs_ok_bitmap_191_160                                   : 32;  
+             uint32_t fcs_ok_bitmap_223_192                                   : 32;  
+             uint32_t fcs_ok_bitmap_255_224                                   : 32;  
+             uint32_t reserved_7a                                             : 31,  
+                      corrupted_due_to_fifo_delay                             :  1;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x0000000000000001
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET   0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB      9
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB      15
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK     0x000000000000fe00
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET  0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB     16
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB     31
+#define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK    0x00000000ffff0000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_OFFSET                       0x0000000000000000
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_LSB                          32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MSB                          63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MASK                         0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_OFFSET                      0x0000000000000008
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_LSB                         0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MSB                         31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MASK                        0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_OFFSET                     0x0000000000000008
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_LSB                        32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MSB                        63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MASK                       0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_OFFSET                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_LSB                        0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MSB                        31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MASK                       0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_OFFSET                     0x0000000000000010
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_LSB                        32
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MSB                        63
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MASK                       0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_OFFSET                     0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_LSB                        0
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MSB                        31
+#define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MASK                       0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET               0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                  32
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                  32
+#define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                 0x0000000100000000
+
+
+ 
+
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_OFFSET                               0x0000000000000018
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_LSB                                  33
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MSB                                  63
+#define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MASK                                 0xfffffffe00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_ppdu_no_ack_report.h b/hw/qcn9224/v2/rx_ppdu_no_ack_report.h
similarity index 100%
copy from hw/qcn9224/rx_ppdu_no_ack_report.h
copy to hw/qcn9224/v2/rx_ppdu_no_ack_report.h
diff --git a/hw/qcn9224/v2/rx_ppdu_start.h b/hw/qcn9224/v2/rx_ppdu_start.h
new file mode 100644
index 0000000..aa0ea9e
--- /dev/null
+++ b/hw/qcn9224/v2/rx_ppdu_start.h
@@ -0,0 +1,124 @@
+
+/* 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 _RX_PPDU_START_H_
+#define _RX_PPDU_START_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_PPDU_START 6
+
+#define NUM_OF_QWORDS_RX_PPDU_START 3
+
+
+struct rx_ppdu_start {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_ppdu_id                                             : 16,  
+                      preamble_time_to_rxframe                                :  8,  
+                      reserved_0a                                             :  8;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t rxframe_assert_timestamp                                : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#else
+             uint32_t reserved_0a                                             :  8,  
+                      preamble_time_to_rxframe                                :  8,  
+                      phy_ppdu_id                                             : 16;  
+             uint32_t sw_phy_meta_data                                        : 32;  
+             uint32_t ppdu_start_timestamp_31_0                               : 32;  
+             uint32_t ppdu_start_timestamp_63_32                              : 32;  
+             uint32_t rxframe_assert_timestamp                                : 32;  
+             uint32_t tlv64_padding                                           : 32;  
+#endif
+};
+
+
+ 
+
+#define RX_PPDU_START_PHY_PPDU_ID_OFFSET                                            0x0000000000000000
+#define RX_PPDU_START_PHY_PPDU_ID_LSB                                               0
+#define RX_PPDU_START_PHY_PPDU_ID_MSB                                               15
+#define RX_PPDU_START_PHY_PPDU_ID_MASK                                              0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_OFFSET                               0x0000000000000000
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_LSB                                  16
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_MSB                                  23
+#define RX_PPDU_START_PREAMBLE_TIME_TO_RXFRAME_MASK                                 0x0000000000ff0000
+
+
+ 
+
+#define RX_PPDU_START_RESERVED_0A_OFFSET                                            0x0000000000000000
+#define RX_PPDU_START_RESERVED_0A_LSB                                               24
+#define RX_PPDU_START_RESERVED_0A_MSB                                               31
+#define RX_PPDU_START_RESERVED_0A_MASK                                              0x00000000ff000000
+
+
+ 
+
+#define RX_PPDU_START_SW_PHY_META_DATA_OFFSET                                       0x0000000000000000
+#define RX_PPDU_START_SW_PHY_META_DATA_LSB                                          32
+#define RX_PPDU_START_SW_PHY_META_DATA_MSB                                          63
+#define RX_PPDU_START_SW_PHY_META_DATA_MASK                                         0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_OFFSET                              0x0000000000000008
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_LSB                                 0
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_MSB                                 31
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_31_0_MASK                                0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_OFFSET                             0x0000000000000008
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_LSB                                32
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_MSB                                63
+#define RX_PPDU_START_PPDU_START_TIMESTAMP_63_32_MASK                               0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_OFFSET                               0x0000000000000010
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_LSB                                  0
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_MSB                                  31
+#define RX_PPDU_START_RXFRAME_ASSERT_TIMESTAMP_MASK                                 0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_START_TLV64_PADDING_OFFSET                                          0x0000000000000010
+#define RX_PPDU_START_TLV64_PADDING_LSB                                             32
+#define RX_PPDU_START_TLV64_PADDING_MSB                                             63
+#define RX_PPDU_START_TLV64_PADDING_MASK                                            0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_ppdu_start_user_info.h b/hw/qcn9224/v2/rx_ppdu_start_user_info.h
new file mode 100644
index 0000000..a602d81
--- /dev/null
+++ b/hw/qcn9224/v2/rx_ppdu_start_user_info.h
@@ -0,0 +1,330 @@
+
+/* 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 _RX_PPDU_START_USER_INFO_H_
+#define _RX_PPDU_START_USER_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "receive_user_info.h"
+#define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 8
+
+#define NUM_OF_QWORDS_RX_PPDU_START_USER_INFO 4
+
+
+struct rx_ppdu_start_user_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   receive_user_info                                         receive_user_info_details;
+#else
+             struct   receive_user_info                                         receive_user_info_details;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB           0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MSB           15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK          0x000000000000ffff
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET          0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB             16
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MSB             23
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK            0x0000000000ff0000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET           0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB              24
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MSB              27
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK             0x000000000f000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET               0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_LSB                  28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MSB                  28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MASK                 0x0000000010000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB        29
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MSB        31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK       0x00000000e0000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET           0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB              32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MSB              35
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK             0x0000000f00000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET                0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_LSB                   36
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MSB                   37
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MASK                  0x0000003000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_LSB        38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MSB        38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MASK       0x0000004000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_LSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MASK          0x0000008000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET     0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB        40
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MSB        47
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK       0x0000ff0000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET  0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB     48
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MSB     50
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK    0x0007000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_OFFSET        0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_LSB           51
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MSB           55
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MASK          0x00f8000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_OFFSET 0x0000000000000000
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_LSB   56
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MSB   63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MASK  0xff00000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_LSB 0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MSB 0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MASK 0x0000000000000001
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB           1
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MSB           7
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK          0x00000000000000fe
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_OFFSET                0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_LSB                   8
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MSB                   10
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MASK                  0x0000000000000700
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_OFFSET      0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_LSB         11
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MSB         13
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MASK        0x0000000000003800
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_OFFSET            0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_LSB               14
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MSB               14
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MASK              0x0000000000004000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET               0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_LSB                  15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MSB                  15
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MASK                 0x0000000000008000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_LSB          16
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MSB          19
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MASK         0x00000000000f0000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_LSB          20
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MSB          23
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MASK         0x0000000000f00000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_LSB          24
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MSB          27
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MASK         0x000000000f000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_OFFSET       0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_LSB          28
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MSB          31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MASK         0x00000000f0000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_LSB   32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MSB   37
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MASK  0x0000003f00000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_LSB           38
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MSB           39
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MASK          0x000000c000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_LSB   40
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MSB   45
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MASK  0x00003f0000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_LSB           46
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MSB           47
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MASK          0x0000c00000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_LSB   48
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MSB   53
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MASK  0x003f000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_LSB           54
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MSB           55
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MASK          0x00c0000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_OFFSET 0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_LSB   56
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MSB   61
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MASK  0x3f00000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_OFFSET        0x0000000000000008
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_LSB           62
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MSB           63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MASK          0xc000000000000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_OFFSET  0x0000000000000010
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_LSB     0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MSB     31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MASK    0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_OFFSET  0x0000000000000010
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_LSB     32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MSB     63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MASK    0xffffffff00000000
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_OFFSET  0x0000000000000018
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_LSB     0
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MSB     31
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MASK    0x00000000ffffffff
+
+
+ 
+
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_OFFSET  0x0000000000000018
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_LSB     32
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MSB     63
+#define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MASK    0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_preamble.h b/hw/qcn9224/v2/rx_preamble.h
similarity index 100%
copy from hw/qcn9224/rx_preamble.h
copy to hw/qcn9224/v2/rx_preamble.h
diff --git a/hw/qcn9224/v2/rx_reo_queue.h b/hw/qcn9224/v2/rx_reo_queue.h
new file mode 100644
index 0000000..734fc6a
--- /dev/null
+++ b/hw/qcn9224/v2/rx_reo_queue.h
@@ -0,0 +1,732 @@
+
+/* 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 _RX_REO_QUEUE_H_
+#define _RX_REO_QUEUE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE 32
+
+
+struct rx_reo_queue {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t receive_queue_number                                    : 16,  
+                      reserved_1b                                             : 16;  
+             uint32_t vld                                                     :  1,  
+                      associated_link_descriptor_counter                      :  2,  
+                      disable_duplicate_detection                             :  1,  
+                      soft_reorder_enable                                     :  1,  
+                      ac                                                      :  2,  
+                      bar                                                     :  1,  
+                      rty                                                     :  1,  
+                      chk_2k_mode                                             :  1,  
+                      oor_mode                                                :  1,  
+                      ba_window_size                                          : 10,  
+                      pn_check_needed                                         :  1,  
+                      pn_shall_be_even                                        :  1,  
+                      pn_shall_be_uneven                                      :  1,  
+                      pn_handling_enable                                      :  1,  
+                      pn_size                                                 :  2,  
+                      ignore_ampdu_flag                                       :  1,  
+                      reserved_2b                                             :  4;  
+             uint32_t svld                                                    :  1,  
+                      ssn                                                     : 12,  
+                      current_index                                           : 10,  
+                      seq_2k_error_detected_flag                              :  1,  
+                      pn_error_detected_flag                                  :  1,  
+                      reserved_3a                                             :  6,  
+                      pn_valid                                                :  1;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t last_rx_enqueue_timestamp                               : 32;  
+             uint32_t last_rx_dequeue_timestamp                               : 32;  
+             uint32_t ptr_to_next_aging_queue_31_0                            : 32;  
+             uint32_t ptr_to_next_aging_queue_39_32                           :  8,  
+                      reserved_11a                                            : 24;  
+             uint32_t ptr_to_previous_aging_queue_31_0                        : 32;  
+             uint32_t ptr_to_previous_aging_queue_39_32                       :  8,  
+                      statistics_counter_index                                :  6,  
+                      reserved_13a                                            : 18;  
+             uint32_t rx_bitmap_31_0                                          : 32;  
+             uint32_t rx_bitmap_63_32                                         : 32;  
+             uint32_t rx_bitmap_95_64                                         : 32;  
+             uint32_t rx_bitmap_127_96                                        : 32;  
+             uint32_t rx_bitmap_159_128                                       : 32;  
+             uint32_t rx_bitmap_191_160                                       : 32;  
+             uint32_t rx_bitmap_223_192                                       : 32;  
+             uint32_t rx_bitmap_255_224                                       : 32;  
+             uint32_t rx_bitmap_287_256                                       : 32;  
+             uint32_t current_mpdu_count                                      :  7,  
+                      current_msdu_count                                      : 25;  
+             uint32_t last_sn_reg_index                                       :  4,  
+                      timeout_count                                           :  6,  
+                      forward_due_to_bar_count                                :  6,  
+                      duplicate_count                                         : 16;  
+             uint32_t frames_in_order_count                                   : 24,  
+                      bar_received_count                                      :  8;  
+             uint32_t mpdu_frames_processed_count                             : 32;  
+             uint32_t msdu_frames_processed_count                             : 32;  
+             uint32_t total_processed_byte_count                              : 32;  
+             uint32_t late_receive_mpdu_count                                 : 12,  
+                      window_jump_2k                                          :  4,  
+                      hole_count                                              : 16;  
+             uint32_t aging_drop_mpdu_count                                   : 16,  
+                      aging_drop_interval                                     :  8,  
+                      reserved_30                                             :  8;  
+             uint32_t reserved_31                                             : 32;  
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1b                                             : 16,  
+                      receive_queue_number                                    : 16;  
+             uint32_t reserved_2b                                             :  4,  
+                      ignore_ampdu_flag                                       :  1,  
+                      pn_size                                                 :  2,  
+                      pn_handling_enable                                      :  1,  
+                      pn_shall_be_uneven                                      :  1,  
+                      pn_shall_be_even                                        :  1,  
+                      pn_check_needed                                         :  1,  
+                      ba_window_size                                          : 10,  
+                      oor_mode                                                :  1,  
+                      chk_2k_mode                                             :  1,  
+                      rty                                                     :  1,  
+                      bar                                                     :  1,  
+                      ac                                                      :  2,  
+                      soft_reorder_enable                                     :  1,  
+                      disable_duplicate_detection                             :  1,  
+                      associated_link_descriptor_counter                      :  2,  
+                      vld                                                     :  1;  
+             uint32_t pn_valid                                                :  1,  
+                      reserved_3a                                             :  6,  
+                      pn_error_detected_flag                                  :  1,  
+                      seq_2k_error_detected_flag                              :  1,  
+                      current_index                                           : 10,  
+                      ssn                                                     : 12,  
+                      svld                                                    :  1;  
+             uint32_t pn_31_0                                                 : 32;  
+             uint32_t pn_63_32                                                : 32;  
+             uint32_t pn_95_64                                                : 32;  
+             uint32_t pn_127_96                                               : 32;  
+             uint32_t last_rx_enqueue_timestamp                               : 32;  
+             uint32_t last_rx_dequeue_timestamp                               : 32;  
+             uint32_t ptr_to_next_aging_queue_31_0                            : 32;  
+             uint32_t reserved_11a                                            : 24,  
+                      ptr_to_next_aging_queue_39_32                           :  8;  
+             uint32_t ptr_to_previous_aging_queue_31_0                        : 32;  
+             uint32_t reserved_13a                                            : 18,  
+                      statistics_counter_index                                :  6,  
+                      ptr_to_previous_aging_queue_39_32                       :  8;  
+             uint32_t rx_bitmap_31_0                                          : 32;  
+             uint32_t rx_bitmap_63_32                                         : 32;  
+             uint32_t rx_bitmap_95_64                                         : 32;  
+             uint32_t rx_bitmap_127_96                                        : 32;  
+             uint32_t rx_bitmap_159_128                                       : 32;  
+             uint32_t rx_bitmap_191_160                                       : 32;  
+             uint32_t rx_bitmap_223_192                                       : 32;  
+             uint32_t rx_bitmap_255_224                                       : 32;  
+             uint32_t rx_bitmap_287_256                                       : 32;  
+             uint32_t current_msdu_count                                      : 25,  
+                      current_mpdu_count                                      :  7;  
+             uint32_t duplicate_count                                         : 16,  
+                      forward_due_to_bar_count                                :  6,  
+                      timeout_count                                           :  6,  
+                      last_sn_reg_index                                       :  4;  
+             uint32_t bar_received_count                                      :  8,  
+                      frames_in_order_count                                   : 24;  
+             uint32_t mpdu_frames_processed_count                             : 32;  
+             uint32_t msdu_frames_processed_count                             : 32;  
+             uint32_t total_processed_byte_count                              : 32;  
+             uint32_t hole_count                                              : 16,  
+                      window_jump_2k                                          :  4,  
+                      late_receive_mpdu_count                                 : 12;  
+             uint32_t reserved_30                                             :  8,  
+                      aging_drop_interval                                     :  8,  
+                      aging_drop_mpdu_count                                   : 16;  
+             uint32_t reserved_31                                             : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_OFFSET                                 0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_LSB                                    0
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_MSB                                    3
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_OWNER_MASK                                   0x0000000f
+
+
+ 
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                           0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                              4
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                              7
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                             0x000000f0
+
+
+ 
+
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                           0x00000000
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_LSB                              8
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_MSB                              31
+#define RX_REO_QUEUE_DESCRIPTOR_HEADER_RESERVED_0A_MASK                             0xffffff00
+
+
+ 
+
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_LSB                                       0
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MSB                                       15
+#define RX_REO_QUEUE_RECEIVE_QUEUE_NUMBER_MASK                                      0x0000ffff
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_1B_OFFSET                                             0x00000004
+#define RX_REO_QUEUE_RESERVED_1B_LSB                                                16
+#define RX_REO_QUEUE_RESERVED_1B_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_1B_MASK                                               0xffff0000
+
+
+ 
+
+#define RX_REO_QUEUE_VLD_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_VLD_LSB                                                        0
+#define RX_REO_QUEUE_VLD_MSB                                                        0
+#define RX_REO_QUEUE_VLD_MASK                                                       0x00000001
+
+
+ 
+
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET                      0x00000008
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB                         1
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MSB                         2
+#define RX_REO_QUEUE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK                        0x00000006
+
+
+ 
+
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_OFFSET                             0x00000008
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_LSB                                3
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MSB                                3
+#define RX_REO_QUEUE_DISABLE_DUPLICATE_DETECTION_MASK                               0x00000008
+
+
+ 
+
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_OFFSET                                     0x00000008
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_LSB                                        4
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_MSB                                        4
+#define RX_REO_QUEUE_SOFT_REORDER_ENABLE_MASK                                       0x00000010
+
+
+ 
+
+#define RX_REO_QUEUE_AC_OFFSET                                                      0x00000008
+#define RX_REO_QUEUE_AC_LSB                                                         5
+#define RX_REO_QUEUE_AC_MSB                                                         6
+#define RX_REO_QUEUE_AC_MASK                                                        0x00000060
+
+
+ 
+
+#define RX_REO_QUEUE_BAR_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_BAR_LSB                                                        7
+#define RX_REO_QUEUE_BAR_MSB                                                        7
+#define RX_REO_QUEUE_BAR_MASK                                                       0x00000080
+
+
+ 
+
+#define RX_REO_QUEUE_RTY_OFFSET                                                     0x00000008
+#define RX_REO_QUEUE_RTY_LSB                                                        8
+#define RX_REO_QUEUE_RTY_MSB                                                        8
+#define RX_REO_QUEUE_RTY_MASK                                                       0x00000100
+
+
+ 
+
+#define RX_REO_QUEUE_CHK_2K_MODE_OFFSET                                             0x00000008
+#define RX_REO_QUEUE_CHK_2K_MODE_LSB                                                9
+#define RX_REO_QUEUE_CHK_2K_MODE_MSB                                                9
+#define RX_REO_QUEUE_CHK_2K_MODE_MASK                                               0x00000200
+
+
+ 
+
+#define RX_REO_QUEUE_OOR_MODE_OFFSET                                                0x00000008
+#define RX_REO_QUEUE_OOR_MODE_LSB                                                   10
+#define RX_REO_QUEUE_OOR_MODE_MSB                                                   10
+#define RX_REO_QUEUE_OOR_MODE_MASK                                                  0x00000400
+
+
+ 
+
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_OFFSET                                          0x00000008
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_LSB                                             11
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_MSB                                             20
+#define RX_REO_QUEUE_BA_WINDOW_SIZE_MASK                                            0x001ff800
+
+
+ 
+
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_OFFSET                                         0x00000008
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_LSB                                            21
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_MSB                                            21
+#define RX_REO_QUEUE_PN_CHECK_NEEDED_MASK                                           0x00200000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_OFFSET                                        0x00000008
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_LSB                                           22
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_MSB                                           22
+#define RX_REO_QUEUE_PN_SHALL_BE_EVEN_MASK                                          0x00400000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_OFFSET                                      0x00000008
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_LSB                                         23
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MSB                                         23
+#define RX_REO_QUEUE_PN_SHALL_BE_UNEVEN_MASK                                        0x00800000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_OFFSET                                      0x00000008
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_LSB                                         24
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_MSB                                         24
+#define RX_REO_QUEUE_PN_HANDLING_ENABLE_MASK                                        0x01000000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_SIZE_OFFSET                                                 0x00000008
+#define RX_REO_QUEUE_PN_SIZE_LSB                                                    25
+#define RX_REO_QUEUE_PN_SIZE_MSB                                                    26
+#define RX_REO_QUEUE_PN_SIZE_MASK                                                   0x06000000
+
+
+ 
+
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_OFFSET                                       0x00000008
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_LSB                                          27
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MSB                                          27
+#define RX_REO_QUEUE_IGNORE_AMPDU_FLAG_MASK                                         0x08000000
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_2B_OFFSET                                             0x00000008
+#define RX_REO_QUEUE_RESERVED_2B_LSB                                                28
+#define RX_REO_QUEUE_RESERVED_2B_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_2B_MASK                                               0xf0000000
+
+
+ 
+
+#define RX_REO_QUEUE_SVLD_OFFSET                                                    0x0000000c
+#define RX_REO_QUEUE_SVLD_LSB                                                       0
+#define RX_REO_QUEUE_SVLD_MSB                                                       0
+#define RX_REO_QUEUE_SVLD_MASK                                                      0x00000001
+
+
+ 
+
+#define RX_REO_QUEUE_SSN_OFFSET                                                     0x0000000c
+#define RX_REO_QUEUE_SSN_LSB                                                        1
+#define RX_REO_QUEUE_SSN_MSB                                                        12
+#define RX_REO_QUEUE_SSN_MASK                                                       0x00001ffe
+
+
+ 
+
+#define RX_REO_QUEUE_CURRENT_INDEX_OFFSET                                           0x0000000c
+#define RX_REO_QUEUE_CURRENT_INDEX_LSB                                              13
+#define RX_REO_QUEUE_CURRENT_INDEX_MSB                                              22
+#define RX_REO_QUEUE_CURRENT_INDEX_MASK                                             0x007fe000
+
+
+ 
+
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET                              0x0000000c
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_LSB                                 23
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MSB                                 23
+#define RX_REO_QUEUE_SEQ_2K_ERROR_DETECTED_FLAG_MASK                                0x00800000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_OFFSET                                  0x0000000c
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_LSB                                     24
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MSB                                     24
+#define RX_REO_QUEUE_PN_ERROR_DETECTED_FLAG_MASK                                    0x01000000
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_3A_OFFSET                                             0x0000000c
+#define RX_REO_QUEUE_RESERVED_3A_LSB                                                25
+#define RX_REO_QUEUE_RESERVED_3A_MSB                                                30
+#define RX_REO_QUEUE_RESERVED_3A_MASK                                               0x7e000000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_VALID_OFFSET                                                0x0000000c
+#define RX_REO_QUEUE_PN_VALID_LSB                                                   31
+#define RX_REO_QUEUE_PN_VALID_MSB                                                   31
+#define RX_REO_QUEUE_PN_VALID_MASK                                                  0x80000000
+
+
+ 
+
+#define RX_REO_QUEUE_PN_31_0_OFFSET                                                 0x00000010
+#define RX_REO_QUEUE_PN_31_0_LSB                                                    0
+#define RX_REO_QUEUE_PN_31_0_MSB                                                    31
+#define RX_REO_QUEUE_PN_31_0_MASK                                                   0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PN_63_32_OFFSET                                                0x00000014
+#define RX_REO_QUEUE_PN_63_32_LSB                                                   0
+#define RX_REO_QUEUE_PN_63_32_MSB                                                   31
+#define RX_REO_QUEUE_PN_63_32_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PN_95_64_OFFSET                                                0x00000018
+#define RX_REO_QUEUE_PN_95_64_LSB                                                   0
+#define RX_REO_QUEUE_PN_95_64_MSB                                                   31
+#define RX_REO_QUEUE_PN_95_64_MASK                                                  0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PN_127_96_OFFSET                                               0x0000001c
+#define RX_REO_QUEUE_PN_127_96_LSB                                                  0
+#define RX_REO_QUEUE_PN_127_96_MSB                                                  31
+#define RX_REO_QUEUE_PN_127_96_MASK                                                 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET                               0x00000020
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_LSB                                  0
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_MSB                                  31
+#define RX_REO_QUEUE_LAST_RX_ENQUEUE_TIMESTAMP_MASK                                 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET                               0x00000024
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_LSB                                  0
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_MSB                                  31
+#define RX_REO_QUEUE_LAST_RX_DEQUEUE_TIMESTAMP_MASK                                 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_OFFSET                            0x00000028
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_LSB                               0
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_MSB                               31
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_31_0_MASK                              0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_OFFSET                           0x0000002c
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_LSB                              0
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_MSB                              7
+#define RX_REO_QUEUE_PTR_TO_NEXT_AGING_QUEUE_39_32_MASK                             0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_11A_OFFSET                                            0x0000002c
+#define RX_REO_QUEUE_RESERVED_11A_LSB                                               8
+#define RX_REO_QUEUE_RESERVED_11A_MSB                                               31
+#define RX_REO_QUEUE_RESERVED_11A_MASK                                              0xffffff00
+
+
+ 
+
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_OFFSET                        0x00000030
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_LSB                           0
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_MSB                           31
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_MASK                          0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_OFFSET                       0x00000034
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_LSB                          0
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_MSB                          7
+#define RX_REO_QUEUE_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_MASK                         0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_OFFSET                                0x00000034
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_LSB                                   8
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_MSB                                   13
+#define RX_REO_QUEUE_STATISTICS_COUNTER_INDEX_MASK                                  0x00003f00
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_13A_OFFSET                                            0x00000034
+#define RX_REO_QUEUE_RESERVED_13A_LSB                                               14
+#define RX_REO_QUEUE_RESERVED_13A_MSB                                               31
+#define RX_REO_QUEUE_RESERVED_13A_MASK                                              0xffffc000
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_31_0_OFFSET                                          0x00000038
+#define RX_REO_QUEUE_RX_BITMAP_31_0_LSB                                             0
+#define RX_REO_QUEUE_RX_BITMAP_31_0_MSB                                             31
+#define RX_REO_QUEUE_RX_BITMAP_31_0_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_63_32_OFFSET                                         0x0000003c
+#define RX_REO_QUEUE_RX_BITMAP_63_32_LSB                                            0
+#define RX_REO_QUEUE_RX_BITMAP_63_32_MSB                                            31
+#define RX_REO_QUEUE_RX_BITMAP_63_32_MASK                                           0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_95_64_OFFSET                                         0x00000040
+#define RX_REO_QUEUE_RX_BITMAP_95_64_LSB                                            0
+#define RX_REO_QUEUE_RX_BITMAP_95_64_MSB                                            31
+#define RX_REO_QUEUE_RX_BITMAP_95_64_MASK                                           0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_127_96_OFFSET                                        0x00000044
+#define RX_REO_QUEUE_RX_BITMAP_127_96_LSB                                           0
+#define RX_REO_QUEUE_RX_BITMAP_127_96_MSB                                           31
+#define RX_REO_QUEUE_RX_BITMAP_127_96_MASK                                          0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_159_128_OFFSET                                       0x00000048
+#define RX_REO_QUEUE_RX_BITMAP_159_128_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_159_128_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_159_128_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_191_160_OFFSET                                       0x0000004c
+#define RX_REO_QUEUE_RX_BITMAP_191_160_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_191_160_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_191_160_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_223_192_OFFSET                                       0x00000050
+#define RX_REO_QUEUE_RX_BITMAP_223_192_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_223_192_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_223_192_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_255_224_OFFSET                                       0x00000054
+#define RX_REO_QUEUE_RX_BITMAP_255_224_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_255_224_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_255_224_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_RX_BITMAP_287_256_OFFSET                                       0x00000058
+#define RX_REO_QUEUE_RX_BITMAP_287_256_LSB                                          0
+#define RX_REO_QUEUE_RX_BITMAP_287_256_MSB                                          31
+#define RX_REO_QUEUE_RX_BITMAP_287_256_MASK                                         0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_OFFSET                                      0x0000005c
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_LSB                                         0
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_MSB                                         6
+#define RX_REO_QUEUE_CURRENT_MPDU_COUNT_MASK                                        0x0000007f
+
+
+ 
+
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_OFFSET                                      0x0000005c
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_LSB                                         7
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_MSB                                         31
+#define RX_REO_QUEUE_CURRENT_MSDU_COUNT_MASK                                        0xffffff80
+
+
+ 
+
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_OFFSET                                       0x00000060
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_LSB                                          0
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_MSB                                          3
+#define RX_REO_QUEUE_LAST_SN_REG_INDEX_MASK                                         0x0000000f
+
+
+ 
+
+#define RX_REO_QUEUE_TIMEOUT_COUNT_OFFSET                                           0x00000060
+#define RX_REO_QUEUE_TIMEOUT_COUNT_LSB                                              4
+#define RX_REO_QUEUE_TIMEOUT_COUNT_MSB                                              9
+#define RX_REO_QUEUE_TIMEOUT_COUNT_MASK                                             0x000003f0
+
+
+ 
+
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_OFFSET                                0x00000060
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_LSB                                   10
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_MSB                                   15
+#define RX_REO_QUEUE_FORWARD_DUE_TO_BAR_COUNT_MASK                                  0x0000fc00
+
+
+ 
+
+#define RX_REO_QUEUE_DUPLICATE_COUNT_OFFSET                                         0x00000060
+#define RX_REO_QUEUE_DUPLICATE_COUNT_LSB                                            16
+#define RX_REO_QUEUE_DUPLICATE_COUNT_MSB                                            31
+#define RX_REO_QUEUE_DUPLICATE_COUNT_MASK                                           0xffff0000
+
+
+ 
+
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_OFFSET                                   0x00000064
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_LSB                                      0
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_MSB                                      23
+#define RX_REO_QUEUE_FRAMES_IN_ORDER_COUNT_MASK                                     0x00ffffff
+
+
+ 
+
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_OFFSET                                      0x00000064
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_LSB                                         24
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_MSB                                         31
+#define RX_REO_QUEUE_BAR_RECEIVED_COUNT_MASK                                        0xff000000
+
+
+ 
+
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_OFFSET                             0x00000068
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_LSB                                0
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_MSB                                31
+#define RX_REO_QUEUE_MPDU_FRAMES_PROCESSED_COUNT_MASK                               0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_OFFSET                             0x0000006c
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_LSB                                0
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_MSB                                31
+#define RX_REO_QUEUE_MSDU_FRAMES_PROCESSED_COUNT_MASK                               0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_OFFSET                              0x00000070
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_LSB                                 0
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_MSB                                 31
+#define RX_REO_QUEUE_TOTAL_PROCESSED_BYTE_COUNT_MASK                                0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_OFFSET                                 0x00000074
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_LSB                                    0
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_MSB                                    11
+#define RX_REO_QUEUE_LATE_RECEIVE_MPDU_COUNT_MASK                                   0x00000fff
+
+
+ 
+
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_OFFSET                                          0x00000074
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_LSB                                             12
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_MSB                                             15
+#define RX_REO_QUEUE_WINDOW_JUMP_2K_MASK                                            0x0000f000
+
+
+ 
+
+#define RX_REO_QUEUE_HOLE_COUNT_OFFSET                                              0x00000074
+#define RX_REO_QUEUE_HOLE_COUNT_LSB                                                 16
+#define RX_REO_QUEUE_HOLE_COUNT_MSB                                                 31
+#define RX_REO_QUEUE_HOLE_COUNT_MASK                                                0xffff0000
+
+
+ 
+
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_OFFSET                                   0x00000078
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_LSB                                      0
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_MSB                                      15
+#define RX_REO_QUEUE_AGING_DROP_MPDU_COUNT_MASK                                     0x0000ffff
+
+
+ 
+
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_OFFSET                                     0x00000078
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_LSB                                        16
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_MSB                                        23
+#define RX_REO_QUEUE_AGING_DROP_INTERVAL_MASK                                       0x00ff0000
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_30_OFFSET                                             0x00000078
+#define RX_REO_QUEUE_RESERVED_30_LSB                                                24
+#define RX_REO_QUEUE_RESERVED_30_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_30_MASK                                               0xff000000
+
+
+ 
+
+#define RX_REO_QUEUE_RESERVED_31_OFFSET                                             0x0000007c
+#define RX_REO_QUEUE_RESERVED_31_LSB                                                0
+#define RX_REO_QUEUE_RESERVED_31_MSB                                                31
+#define RX_REO_QUEUE_RESERVED_31_MASK                                               0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_reo_queue_1k.h b/hw/qcn9224/v2/rx_reo_queue_1k.h
new file mode 100644
index 0000000..996d848
--- /dev/null
+++ b/hw/qcn9224/v2/rx_reo_queue_1k.h
@@ -0,0 +1,382 @@
+
+/* 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 _RX_REO_QUEUE_1K_H_
+#define _RX_REO_QUEUE_1K_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE_1K 32
+
+
+struct rx_reo_queue_1k {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t rx_bitmap_319_288                                       : 32;  
+             uint32_t rx_bitmap_351_320                                       : 32;  
+             uint32_t rx_bitmap_383_352                                       : 32;  
+             uint32_t rx_bitmap_415_384                                       : 32;  
+             uint32_t rx_bitmap_447_416                                       : 32;  
+             uint32_t rx_bitmap_479_448                                       : 32;  
+             uint32_t rx_bitmap_511_480                                       : 32;  
+             uint32_t rx_bitmap_543_512                                       : 32;  
+             uint32_t rx_bitmap_575_544                                       : 32;  
+             uint32_t rx_bitmap_607_576                                       : 32;  
+             uint32_t rx_bitmap_639_608                                       : 32;  
+             uint32_t rx_bitmap_671_640                                       : 32;  
+             uint32_t rx_bitmap_703_672                                       : 32;  
+             uint32_t rx_bitmap_735_704                                       : 32;  
+             uint32_t rx_bitmap_767_736                                       : 32;  
+             uint32_t rx_bitmap_799_768                                       : 32;  
+             uint32_t rx_bitmap_831_800                                       : 32;  
+             uint32_t rx_bitmap_863_832                                       : 32;  
+             uint32_t rx_bitmap_895_864                                       : 32;  
+             uint32_t rx_bitmap_927_896                                       : 32;  
+             uint32_t rx_bitmap_959_928                                       : 32;  
+             uint32_t rx_bitmap_991_960                                       : 32;  
+             uint32_t rx_bitmap_1023_992                                      : 32;  
+             uint32_t reserved_24                                             : 32;  
+             uint32_t reserved_25                                             : 32;  
+             uint32_t reserved_26                                             : 32;  
+             uint32_t reserved_27                                             : 32;  
+             uint32_t reserved_28                                             : 32;  
+             uint32_t reserved_29                                             : 32;  
+             uint32_t reserved_30                                             : 32;  
+             uint32_t reserved_31                                             : 32;  
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t rx_bitmap_319_288                                       : 32;  
+             uint32_t rx_bitmap_351_320                                       : 32;  
+             uint32_t rx_bitmap_383_352                                       : 32;  
+             uint32_t rx_bitmap_415_384                                       : 32;  
+             uint32_t rx_bitmap_447_416                                       : 32;  
+             uint32_t rx_bitmap_479_448                                       : 32;  
+             uint32_t rx_bitmap_511_480                                       : 32;  
+             uint32_t rx_bitmap_543_512                                       : 32;  
+             uint32_t rx_bitmap_575_544                                       : 32;  
+             uint32_t rx_bitmap_607_576                                       : 32;  
+             uint32_t rx_bitmap_639_608                                       : 32;  
+             uint32_t rx_bitmap_671_640                                       : 32;  
+             uint32_t rx_bitmap_703_672                                       : 32;  
+             uint32_t rx_bitmap_735_704                                       : 32;  
+             uint32_t rx_bitmap_767_736                                       : 32;  
+             uint32_t rx_bitmap_799_768                                       : 32;  
+             uint32_t rx_bitmap_831_800                                       : 32;  
+             uint32_t rx_bitmap_863_832                                       : 32;  
+             uint32_t rx_bitmap_895_864                                       : 32;  
+             uint32_t rx_bitmap_927_896                                       : 32;  
+             uint32_t rx_bitmap_959_928                                       : 32;  
+             uint32_t rx_bitmap_991_960                                       : 32;  
+             uint32_t rx_bitmap_1023_992                                      : 32;  
+             uint32_t reserved_24                                             : 32;  
+             uint32_t reserved_25                                             : 32;  
+             uint32_t reserved_26                                             : 32;  
+             uint32_t reserved_27                                             : 32;  
+             uint32_t reserved_28                                             : 32;  
+             uint32_t reserved_29                                             : 32;  
+             uint32_t reserved_30                                             : 32;  
+             uint32_t reserved_31                                             : 32;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_OFFSET                              0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_LSB                                 0
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_MSB                                 3
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_OWNER_MASK                                0x0000000f
+
+
+ 
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                        0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                           4
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                           7
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                          0x000000f0
+
+
+ 
+
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                        0x00000000
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_LSB                           8
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_MSB                           31
+#define RX_REO_QUEUE_1K_DESCRIPTOR_HEADER_RESERVED_0A_MASK                          0xffffff00
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_319_288_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_OFFSET                                    0x00000008
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_351_320_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_OFFSET                                    0x0000000c
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_383_352_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_OFFSET                                    0x00000010
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_415_384_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_OFFSET                                    0x00000014
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_447_416_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_OFFSET                                    0x00000018
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_479_448_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_OFFSET                                    0x0000001c
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_511_480_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_OFFSET                                    0x00000020
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_543_512_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_OFFSET                                    0x00000024
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_575_544_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_OFFSET                                    0x00000028
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_607_576_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_OFFSET                                    0x0000002c
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_639_608_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_OFFSET                                    0x00000030
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_671_640_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_OFFSET                                    0x00000034
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_703_672_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_OFFSET                                    0x00000038
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_735_704_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_OFFSET                                    0x0000003c
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_767_736_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_OFFSET                                    0x00000040
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_799_768_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_OFFSET                                    0x00000044
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_831_800_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_OFFSET                                    0x00000048
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_863_832_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_OFFSET                                    0x0000004c
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_895_864_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_OFFSET                                    0x00000050
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_927_896_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_OFFSET                                    0x00000054
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_959_928_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_OFFSET                                    0x00000058
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_LSB                                       0
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_MSB                                       31
+#define RX_REO_QUEUE_1K_RX_BITMAP_991_960_MASK                                      0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_OFFSET                                   0x0000005c
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_LSB                                      0
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_MSB                                      31
+#define RX_REO_QUEUE_1K_RX_BITMAP_1023_992_MASK                                     0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_24_OFFSET                                          0x00000060
+#define RX_REO_QUEUE_1K_RESERVED_24_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_24_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_24_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_25_OFFSET                                          0x00000064
+#define RX_REO_QUEUE_1K_RESERVED_25_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_25_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_25_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_26_OFFSET                                          0x00000068
+#define RX_REO_QUEUE_1K_RESERVED_26_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_26_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_26_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_27_OFFSET                                          0x0000006c
+#define RX_REO_QUEUE_1K_RESERVED_27_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_27_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_27_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_28_OFFSET                                          0x00000070
+#define RX_REO_QUEUE_1K_RESERVED_28_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_28_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_28_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_29_OFFSET                                          0x00000074
+#define RX_REO_QUEUE_1K_RESERVED_29_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_29_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_29_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_30_OFFSET                                          0x00000078
+#define RX_REO_QUEUE_1K_RESERVED_30_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_30_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_30_MASK                                            0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_1K_RESERVED_31_OFFSET                                          0x0000007c
+#define RX_REO_QUEUE_1K_RESERVED_31_LSB                                             0
+#define RX_REO_QUEUE_1K_RESERVED_31_MSB                                             31
+#define RX_REO_QUEUE_1K_RESERVED_31_MASK                                            0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_reo_queue_ext.h b/hw/qcn9224/v2/rx_reo_queue_ext.h
new file mode 100644
index 0000000..f524df4
--- /dev/null
+++ b/hw/qcn9224/v2/rx_reo_queue_ext.h
@@ -0,0 +1,683 @@
+
+/* 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 _RX_REO_QUEUE_EXT_H_
+#define _RX_REO_QUEUE_EXT_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_mpdu_link_ptr.h"
+#include "uniform_descriptor_header.h"
+#define NUM_OF_DWORDS_RX_REO_QUEUE_EXT 32
+
+
+struct rx_reo_queue_ext {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1a                                             : 32;  
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_0;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_1;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_2;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_3;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_4;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_5;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_6;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_7;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_8;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_9;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_10;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_11;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_12;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_13;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_14;
+#else
+             struct   uniform_descriptor_header                                 descriptor_header;
+             uint32_t reserved_1a                                             : 32;  
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_0;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_1;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_2;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_3;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_4;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_5;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_6;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_7;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_8;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_9;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_10;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_11;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_12;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_13;
+             struct   rx_mpdu_link_ptr                                          mpdu_link_pointer_14;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_OFFSET                             0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_LSB                                0
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_MSB                                3
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_OWNER_MASK                               0x0000000f
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                       0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                          4
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                          7
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                         0x000000f0
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                       0x00000000
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_LSB                          8
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_MSB                          31
+#define RX_REO_QUEUE_EXT_DESCRIPTOR_HEADER_RESERVED_0A_MASK                         0xffffff00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_RESERVED_1A_OFFSET                                         0x00000004
+#define RX_REO_QUEUE_EXT_RESERVED_1A_LSB                                            0
+#define RX_REO_QUEUE_EXT_RESERVED_1A_MSB                                            31
+#define RX_REO_QUEUE_EXT_RESERVED_1A_MASK                                           0xffffffff
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000008
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000000c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000010
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000014
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000018
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000001c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000020
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000024
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000028
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000002c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000030
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000034
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000038
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000003c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000040
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000044
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000048
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000004c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000050
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000054
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000058
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000005c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000060
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000064
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000068
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000006c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000070
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000074
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000078
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000007c
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define RX_REO_QUEUE_EXT_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rx_reo_queue_reference.h b/hw/qcn9224/v2/rx_reo_queue_reference.h
new file mode 100644
index 0000000..b5c283f
--- /dev/null
+++ b/hw/qcn9224/v2/rx_reo_queue_reference.h
@@ -0,0 +1,82 @@
+
+/* 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 _RX_REO_QUEUE_REFERENCE_H_
+#define _RX_REO_QUEUE_REFERENCE_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_REO_QUEUE_REFERENCE 2
+
+
+struct rx_reo_queue_reference {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t rx_reo_queue_desc_addr_39_32                            :  8,  
+                      reserved_1                                              :  8,  
+                      receive_queue_number                                    : 16;  
+#else
+             uint32_t rx_reo_queue_desc_addr_31_0                             : 32;  
+             uint32_t receive_queue_number                                    : 16,  
+                      reserved_1                                              :  8,  
+                      rx_reo_queue_desc_addr_39_32                            :  8;  
+#endif
+};
+
+
+ 
+
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET                   0x00000000
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_LSB                      0
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_MSB                      31
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_31_0_MASK                     0xffffffff
+
+
+ 
+
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET                  0x00000004
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_LSB                     0
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_MSB                     7
+#define RX_REO_QUEUE_REFERENCE_RX_REO_QUEUE_DESC_ADDR_39_32_MASK                    0x000000ff
+
+
+ 
+
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_OFFSET                                    0x00000004
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_LSB                                       8
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_MSB                                       15
+#define RX_REO_QUEUE_REFERENCE_RESERVED_1_MASK                                      0x0000ff00
+
+
+ 
+
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_OFFSET                          0x00000004
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_LSB                             16
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_MSB                             31
+#define RX_REO_QUEUE_REFERENCE_RECEIVE_QUEUE_NUMBER_MASK                            0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_response_required_info.h b/hw/qcn9224/v2/rx_response_required_info.h
similarity index 100%
copy from hw/qcn9224/rx_response_required_info.h
copy to hw/qcn9224/v2/rx_response_required_info.h
diff --git a/hw/qcn9224/v2/rx_rxpcu_classification_overview.h b/hw/qcn9224/v2/rx_rxpcu_classification_overview.h
new file mode 100644
index 0000000..1edc754
--- /dev/null
+++ b/hw/qcn9224/v2/rx_rxpcu_classification_overview.h
@@ -0,0 +1,152 @@
+
+/* 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 _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
+#define _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_RXPCU_CLASSIFICATION_OVERVIEW 1
+
+
+struct rx_rxpcu_classification_overview {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t filter_pass_mpdus                                       :  1,  
+                      filter_pass_mpdus_fcs_ok                                :  1,  
+                      monitor_direct_mpdus                                    :  1,  
+                      monitor_direct_mpdus_fcs_ok                             :  1,  
+                      monitor_other_mpdus                                     :  1,  
+                      monitor_other_mpdus_fcs_ok                              :  1,  
+                      phyrx_abort_received                                    :  1,  
+                      filter_pass_monitor_ovrd_mpdus                          :  1,  
+                      filter_pass_monitor_ovrd_mpdus_fcs_ok                   :  1,  
+                      reserved_0                                              :  7,  
+                      phy_ppdu_id                                             : 16;  
+#else
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_0                                              :  7,  
+                      filter_pass_monitor_ovrd_mpdus_fcs_ok                   :  1,  
+                      filter_pass_monitor_ovrd_mpdus                          :  1,  
+                      phyrx_abort_received                                    :  1,  
+                      monitor_other_mpdus_fcs_ok                              :  1,  
+                      monitor_other_mpdus                                     :  1,  
+                      monitor_direct_mpdus_fcs_ok                             :  1,  
+                      monitor_direct_mpdus                                    :  1,  
+                      filter_pass_mpdus_fcs_ok                                :  1,  
+                      filter_pass_mpdus                                       :  1;  
+#endif
+};
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_OFFSET                   0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_LSB                      0
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_MSB                      0
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_MASK                     0x00000001
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_OFFSET            0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_LSB               1
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_MSB               1
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MPDUS_FCS_OK_MASK              0x00000002
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_OFFSET                0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_LSB                   2
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_MSB                   2
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_MASK                  0x00000004
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET         0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_LSB            3
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_MSB            3
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_DIRECT_MPDUS_FCS_OK_MASK           0x00000008
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_OFFSET                 0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_LSB                    4
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_MSB                    4
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_MASK                   0x00000010
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET          0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_LSB             5
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_MSB             5
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_MONITOR_OTHER_MPDUS_FCS_OK_MASK            0x00000020
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_OFFSET                0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_LSB                   6
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_MSB                   6
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHYRX_ABORT_RECEIVED_MASK                  0x00000040
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET      0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB         7
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB         7
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK        0x00000080
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB  8
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB  8
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x00000100
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_OFFSET                          0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_LSB                             9
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_MSB                             15
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_RESERVED_0_MASK                            0x0000fe00
+
+
+ 
+
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_OFFSET                         0x00000000
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_LSB                            16
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_MSB                            31
+#define RX_RXPCU_CLASSIFICATION_OVERVIEW_PHY_PPDU_ID_MASK                           0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_start_param.h b/hw/qcn9224/v2/rx_start_param.h
similarity index 100%
copy from hw/qcn9224/rx_start_param.h
copy to hw/qcn9224/v2/rx_start_param.h
diff --git a/hw/qcn9224/v2/rx_timing_offset_info.h b/hw/qcn9224/v2/rx_timing_offset_info.h
new file mode 100644
index 0000000..c7b12a7
--- /dev/null
+++ b/hw/qcn9224/v2/rx_timing_offset_info.h
@@ -0,0 +1,62 @@
+
+/* 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 _RX_TIMING_OFFSET_INFO_H_
+#define _RX_TIMING_OFFSET_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RX_TIMING_OFFSET_INFO 1
+
+
+struct rx_timing_offset_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t residual_phase_offset                                   : 12,  
+                      reserved                                                : 20;  
+#else
+             uint32_t reserved                                                : 20,  
+                      residual_phase_offset                                   : 12;  
+#endif
+};
+
+
+ 
+
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_OFFSET                          0x00000000
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_LSB                             0
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_MSB                             11
+#define RX_TIMING_OFFSET_INFO_RESIDUAL_PHASE_OFFSET_MASK                            0x00000fff
+
+
+ 
+
+#define RX_TIMING_OFFSET_INFO_RESERVED_OFFSET                                       0x00000000
+#define RX_TIMING_OFFSET_INFO_RESERVED_LSB                                          12
+#define RX_TIMING_OFFSET_INFO_RESERVED_MSB                                          31
+#define RX_TIMING_OFFSET_INFO_RESERVED_MASK                                         0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/rx_trig_info.h b/hw/qcn9224/v2/rx_trig_info.h
similarity index 100%
copy from hw/qcn9224/rx_trig_info.h
copy to hw/qcn9224/v2/rx_trig_info.h
diff --git a/hw/qcn9224/rxpcu_early_rx_indication.h b/hw/qcn9224/v2/rxpcu_early_rx_indication.h
similarity index 100%
copy from hw/qcn9224/rxpcu_early_rx_indication.h
copy to hw/qcn9224/v2/rxpcu_early_rx_indication.h
diff --git a/hw/qcn9224/v2/rxpcu_ppdu_end_info.h b/hw/qcn9224/v2/rxpcu_ppdu_end_info.h
new file mode 100644
index 0000000..b6a774a
--- /dev/null
+++ b/hw/qcn9224/v2/rxpcu_ppdu_end_info.h
@@ -0,0 +1,1180 @@
+
+/* 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 _RXPCU_PPDU_END_INFO_H_
+#define _RXPCU_PPDU_END_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "phyrx_abort_request_info.h"
+#include "macrx_abort_request_info.h"
+#include "rxpcu_ppdu_end_layout_info.h"
+#define NUM_OF_DWORDS_RXPCU_PPDU_END_INFO 28
+
+#define NUM_OF_QWORDS_RXPCU_PPDU_END_INFO 14
+
+
+struct rxpcu_ppdu_end_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t wb_timestamp_lower_32                                   : 32;  
+             uint32_t wb_timestamp_upper_32                                   : 32;  
+             uint32_t rx_antenna                                              : 24,  
+                      tx_ht_vht_ack                                           :  1,  
+                      unsupported_mu_nc                                       :  1,  
+                      otp_txbf_disable                                        :  1,  
+                      previous_tlv_corrupted                                  :  1,  
+                      phyrx_abort_request_info_valid                          :  1,  
+                      macrx_abort_request_info_valid                          :  1,  
+                      reserved                                                :  2;  
+             uint32_t coex_bt_tx_from_start_of_rx                             :  1,  
+                      coex_bt_tx_after_start_of_rx                            :  1,  
+                      coex_wan_tx_from_start_of_rx                            :  1,  
+                      coex_wan_tx_after_start_of_rx                           :  1,  
+                      coex_wlan_tx_from_start_of_rx                           :  1,  
+                      coex_wlan_tx_after_start_of_rx                          :  1,  
+                      mpdu_delimiter_errors_seen                              :  1,  
+                      ftm_tm                                                  :  2,  
+                      dialog_token                                            :  8,  
+                      follow_up_dialog_token                                  :  8,  
+                      bb_captured_channel                                     :  1,  
+                      bb_captured_reason                                      :  3,  
+                      bb_captured_timeout                                     :  1,  
+                      reserved_3                                              :  2;  
+             uint32_t before_mpdu_count_passing_fcs                           : 10,  
+                      before_mpdu_count_failing_fcs                           : 10,  
+                      after_mpdu_count_passing_fcs                            : 10,  
+                      reserved_4                                              :  2;  
+             uint32_t after_mpdu_count_failing_fcs                            : 10,  
+                      reserved_5                                              : 22;  
+             uint32_t phy_timestamp_tx_lower_32                               : 32;  
+             uint32_t phy_timestamp_tx_upper_32                               : 32;  
+             uint32_t bb_length                                               : 16,  
+                      bb_data                                                 :  1,  
+                      reserved_8                                              :  3,  
+                      first_bt_broadcast_status_details                       : 12;  
+             uint32_t rx_ppdu_duration                                        : 24,  
+                      reserved_9                                              :  8;  
+             uint32_t ast_index                                               : 16,  
+                      ast_index_valid                                         :  1,  
+                      reserved_10                                             :  3,  
+                      second_bt_broadcast_status_details                      : 12;  
+             struct   phyrx_abort_request_info                                  phyrx_abort_request_info_details;
+             struct   macrx_abort_request_info                                  macrx_abort_request_info_details;
+             uint16_t pre_bt_broadcast_status_details                         : 12,  
+                      reserved_12a                                            :  4;  
+             uint32_t non_qos_sn_info_valid                                   :  1,  
+                      reserved_13a                                            :  5,  
+                      non_qos_sn_highest                                      : 12,  
+                      non_qos_sn_highest_retry_setting                        :  1,  
+                      non_qos_sn_lowest                                       : 12,  
+                      non_qos_sn_lowest_retry_setting                         :  1;  
+             uint32_t qos_sn_1_info_valid                                     :  1,  
+                      reserved_14a                                            :  1,  
+                      qos_sn_1_tid                                            :  4,  
+                      qos_sn_1_highest                                        : 12,  
+                      qos_sn_1_highest_retry_setting                          :  1,  
+                      qos_sn_1_lowest                                         : 12,  
+                      qos_sn_1_lowest_retry_setting                           :  1;  
+             uint32_t qos_sn_2_info_valid                                     :  1,  
+                      reserved_15a                                            :  1,  
+                      qos_sn_2_tid                                            :  4,  
+                      qos_sn_2_highest                                        : 12,  
+                      qos_sn_2_highest_retry_setting                          :  1,  
+                      qos_sn_2_lowest                                         : 12,  
+                      qos_sn_2_lowest_retry_setting                           :  1;  
+             struct   rxpcu_ppdu_end_layout_info                                rxpcu_ppdu_end_layout_details;
+             uint32_t corrupted_due_to_fifo_delay                             :  1,  
+                      qos_sn_1_more_frag_state                                :  1,  
+                      qos_sn_1_frag_num_state                                 :  4,  
+                      qos_sn_2_more_frag_state                                :  1,  
+                      qos_sn_2_frag_num_state                                 :  4,  
+                      reserved_26a                                            : 21;  
+             uint32_t rx_ppdu_end_marker                                      : 32;  
+#else
+             uint32_t wb_timestamp_lower_32                                   : 32;  
+             uint32_t wb_timestamp_upper_32                                   : 32;  
+             uint32_t reserved                                                :  2,  
+                      macrx_abort_request_info_valid                          :  1,  
+                      phyrx_abort_request_info_valid                          :  1,  
+                      previous_tlv_corrupted                                  :  1,  
+                      otp_txbf_disable                                        :  1,  
+                      unsupported_mu_nc                                       :  1,  
+                      tx_ht_vht_ack                                           :  1,  
+                      rx_antenna                                              : 24;  
+             uint32_t reserved_3                                              :  2,  
+                      bb_captured_timeout                                     :  1,  
+                      bb_captured_reason                                      :  3,  
+                      bb_captured_channel                                     :  1,  
+                      follow_up_dialog_token                                  :  8,  
+                      dialog_token                                            :  8,  
+                      ftm_tm                                                  :  2,  
+                      mpdu_delimiter_errors_seen                              :  1,  
+                      coex_wlan_tx_after_start_of_rx                          :  1,  
+                      coex_wlan_tx_from_start_of_rx                           :  1,  
+                      coex_wan_tx_after_start_of_rx                           :  1,  
+                      coex_wan_tx_from_start_of_rx                            :  1,  
+                      coex_bt_tx_after_start_of_rx                            :  1,  
+                      coex_bt_tx_from_start_of_rx                             :  1;  
+             uint32_t reserved_4                                              :  2,  
+                      after_mpdu_count_passing_fcs                            : 10,  
+                      before_mpdu_count_failing_fcs                           : 10,  
+                      before_mpdu_count_passing_fcs                           : 10;  
+             uint32_t reserved_5                                              : 22,  
+                      after_mpdu_count_failing_fcs                            : 10;  
+             uint32_t phy_timestamp_tx_lower_32                               : 32;  
+             uint32_t phy_timestamp_tx_upper_32                               : 32;  
+             uint32_t first_bt_broadcast_status_details                       : 12,  
+                      reserved_8                                              :  3,  
+                      bb_data                                                 :  1,  
+                      bb_length                                               : 16;  
+             uint32_t reserved_9                                              :  8,  
+                      rx_ppdu_duration                                        : 24;  
+             uint32_t second_bt_broadcast_status_details                      : 12,  
+                      reserved_10                                             :  3,  
+                      ast_index_valid                                         :  1,  
+                      ast_index                                               : 16;  
+             struct   phyrx_abort_request_info                                  phyrx_abort_request_info_details;
+             uint32_t reserved_12a                                            :  4,  
+                      pre_bt_broadcast_status_details                         : 12;  
+             struct   macrx_abort_request_info                                  macrx_abort_request_info_details;
+             uint32_t non_qos_sn_lowest_retry_setting                         :  1,  
+                      non_qos_sn_lowest                                       : 12,  
+                      non_qos_sn_highest_retry_setting                        :  1,  
+                      non_qos_sn_highest                                      : 12,  
+                      reserved_13a                                            :  5,  
+                      non_qos_sn_info_valid                                   :  1;  
+             uint32_t qos_sn_1_lowest_retry_setting                           :  1,  
+                      qos_sn_1_lowest                                         : 12,  
+                      qos_sn_1_highest_retry_setting                          :  1,  
+                      qos_sn_1_highest                                        : 12,  
+                      qos_sn_1_tid                                            :  4,  
+                      reserved_14a                                            :  1,  
+                      qos_sn_1_info_valid                                     :  1;  
+             uint32_t qos_sn_2_lowest_retry_setting                           :  1,  
+                      qos_sn_2_lowest                                         : 12,  
+                      qos_sn_2_highest_retry_setting                          :  1,  
+                      qos_sn_2_highest                                        : 12,  
+                      qos_sn_2_tid                                            :  4,  
+                      reserved_15a                                            :  1,  
+                      qos_sn_2_info_valid                                     :  1;  
+             struct   rxpcu_ppdu_end_layout_info                                rxpcu_ppdu_end_layout_details;
+             uint32_t reserved_26a                                            : 21,  
+                      qos_sn_2_frag_num_state                                 :  4,  
+                      qos_sn_2_more_frag_state                                :  1,  
+                      qos_sn_1_frag_num_state                                 :  4,  
+                      qos_sn_1_more_frag_state                                :  1,  
+                      corrupted_due_to_fifo_delay                             :  1;  
+             uint32_t rx_ppdu_end_marker                                      : 32;  
+#endif
+};
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_OFFSET                            0x0000000000000000
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_LSB                               0
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MSB                               31
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MASK                              0x00000000ffffffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_OFFSET                            0x0000000000000000
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_LSB                               32
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MSB                               63
+#define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MASK                              0xffffffff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_OFFSET                                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_LSB                                          0
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_MSB                                          23
+#define RXPCU_PPDU_END_INFO_RX_ANTENNA_MASK                                         0x0000000000ffffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_OFFSET                                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_LSB                                       24
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MSB                                       24
+#define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MASK                                      0x0000000001000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_OFFSET                                0x0000000000000008
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_LSB                                   25
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MSB                                   25
+#define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MASK                                  0x0000000002000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_OFFSET                                 0x0000000000000008
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_LSB                                    26
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MSB                                    26
+#define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MASK                                   0x0000000004000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_OFFSET                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_LSB                              27
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MSB                              27
+#define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MASK                             0x0000000008000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_LSB                      28
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MSB                      28
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MASK                     0x0000000010000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_LSB                      29
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MSB                      29
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MASK                     0x0000000020000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_OFFSET                                         0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RESERVED_LSB                                            30
+#define RXPCU_PPDU_END_INFO_RESERVED_MSB                                            31
+#define RXPCU_PPDU_END_INFO_RESERVED_MASK                                           0x00000000c0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_OFFSET                      0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_LSB                         32
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MSB                         32
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MASK                        0x0000000100000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_OFFSET                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_LSB                        33
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MSB                        33
+#define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MASK                       0x0000000200000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_OFFSET                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_LSB                        34
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MSB                        34
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MASK                       0x0000000400000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_OFFSET                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_LSB                       35
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MSB                       35
+#define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MASK                      0x0000000800000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_OFFSET                    0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_LSB                       36
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MSB                       36
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MASK                      0x0000001000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_OFFSET                   0x0000000000000008
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_LSB                      37
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MSB                      37
+#define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MASK                     0x0000002000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_OFFSET                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_LSB                          38
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MSB                          38
+#define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MASK                         0x0000004000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_FTM_TM_OFFSET                                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_FTM_TM_LSB                                              39
+#define RXPCU_PPDU_END_INFO_FTM_TM_MSB                                              40
+#define RXPCU_PPDU_END_INFO_FTM_TM_MASK                                             0x0000018000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_OFFSET                                     0x0000000000000008
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_LSB                                        41
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MSB                                        48
+#define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MASK                                       0x0001fe0000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_OFFSET                           0x0000000000000008
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_LSB                              49
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MSB                              56
+#define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MASK                             0x01fe000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_OFFSET                              0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_LSB                                 57
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MSB                                 57
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MASK                                0x0200000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_OFFSET                               0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_LSB                                  58
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MSB                                  60
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MASK                                 0x1c00000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_OFFSET                              0x0000000000000008
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_LSB                                 61
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MSB                                 61
+#define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MASK                                0x2000000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_3_OFFSET                                       0x0000000000000008
+#define RXPCU_PPDU_END_INFO_RESERVED_3_LSB                                          62
+#define RXPCU_PPDU_END_INFO_RESERVED_3_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_3_MASK                                         0xc000000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_OFFSET                    0x0000000000000010
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_LSB                       0
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MSB                       9
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MASK                      0x00000000000003ff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_OFFSET                    0x0000000000000010
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_LSB                       10
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MSB                       19
+#define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MASK                      0x00000000000ffc00
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_OFFSET                     0x0000000000000010
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_LSB                        20
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MSB                        29
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MASK                       0x000000003ff00000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_4_OFFSET                                       0x0000000000000010
+#define RXPCU_PPDU_END_INFO_RESERVED_4_LSB                                          30
+#define RXPCU_PPDU_END_INFO_RESERVED_4_MSB                                          31
+#define RXPCU_PPDU_END_INFO_RESERVED_4_MASK                                         0x00000000c0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_OFFSET                     0x0000000000000010
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_LSB                        32
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MSB                        41
+#define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MASK                       0x000003ff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_5_OFFSET                                       0x0000000000000010
+#define RXPCU_PPDU_END_INFO_RESERVED_5_LSB                                          42
+#define RXPCU_PPDU_END_INFO_RESERVED_5_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_5_MASK                                         0xfffffc0000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_OFFSET                        0x0000000000000018
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_LSB                           0
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MSB                           31
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MASK                          0x00000000ffffffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_OFFSET                        0x0000000000000018
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_LSB                           32
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MSB                           63
+#define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MASK                          0xffffffff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_OFFSET                                        0x0000000000000020
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_LSB                                           0
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_MSB                                           15
+#define RXPCU_PPDU_END_INFO_BB_LENGTH_MASK                                          0x000000000000ffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_BB_DATA_OFFSET                                          0x0000000000000020
+#define RXPCU_PPDU_END_INFO_BB_DATA_LSB                                             16
+#define RXPCU_PPDU_END_INFO_BB_DATA_MSB                                             16
+#define RXPCU_PPDU_END_INFO_BB_DATA_MASK                                            0x0000000000010000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_8_OFFSET                                       0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RESERVED_8_LSB                                          17
+#define RXPCU_PPDU_END_INFO_RESERVED_8_MSB                                          19
+#define RXPCU_PPDU_END_INFO_RESERVED_8_MASK                                         0x00000000000e0000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET                0x0000000000000020
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB                   20
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB                   31
+#define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK                  0x00000000fff00000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_OFFSET                                 0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_LSB                                    32
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MSB                                    55
+#define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MASK                                   0x00ffffff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_9_OFFSET                                       0x0000000000000020
+#define RXPCU_PPDU_END_INFO_RESERVED_9_LSB                                          56
+#define RXPCU_PPDU_END_INFO_RESERVED_9_MSB                                          63
+#define RXPCU_PPDU_END_INFO_RESERVED_9_MASK                                         0xff00000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_AST_INDEX_OFFSET                                        0x0000000000000028
+#define RXPCU_PPDU_END_INFO_AST_INDEX_LSB                                           0
+#define RXPCU_PPDU_END_INFO_AST_INDEX_MSB                                           15
+#define RXPCU_PPDU_END_INFO_AST_INDEX_MASK                                          0x000000000000ffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_OFFSET                                  0x0000000000000028
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_LSB                                     16
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MSB                                     16
+#define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MASK                                    0x0000000000010000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_10_OFFSET                                      0x0000000000000028
+#define RXPCU_PPDU_END_INFO_RESERVED_10_LSB                                         17
+#define RXPCU_PPDU_END_INFO_RESERVED_10_MSB                                         19
+#define RXPCU_PPDU_END_INFO_RESERVED_10_MASK                                        0x00000000000e0000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET               0x0000000000000028
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB                  20
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB                  31
+#define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK                 0x00000000fff00000
+
+
+ 
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_LSB 32
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MSB 39
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MASK 0x000000ff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_LSB 40
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MSB 40
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MASK 0x0000010000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_LSB 41
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MSB 41
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MASK 0x0000020000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET      0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB         42
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB         47
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK        0x0000fc0000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_OFFSET 0x0000000000000028
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_LSB   48
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MSB   63
+#define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MASK  0xffff000000000000
+
+
+ 
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_OFFSET 0x0000000000000030
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_LSB 0
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MSB 7
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MASK 0x00000000000000ff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET      0x0000000000000030
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB         8
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB         15
+#define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK        0x000000000000ff00
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET                  0x0000000000000030
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_LSB                     16
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MSB                     27
+#define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MASK                    0x000000000fff0000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_OFFSET                                     0x0000000000000030
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_LSB                                        28
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_MSB                                        31
+#define RXPCU_PPDU_END_INFO_RESERVED_12A_MASK                                       0x00000000f0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_OFFSET                            0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_LSB                               32
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MSB                               32
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MASK                              0x0000000100000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_OFFSET                                     0x0000000000000030
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_LSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_MSB                                        37
+#define RXPCU_PPDU_END_INFO_RESERVED_13A_MASK                                       0x0000003e00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_OFFSET                               0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_LSB                                  38
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MSB                                  49
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MASK                                 0x0003ffc000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_OFFSET                 0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_LSB                    50
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MSB                    50
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MASK                   0x0004000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_OFFSET                                0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_LSB                                   51
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MSB                                   62
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MASK                                  0x7ff8000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_OFFSET                  0x0000000000000030
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_LSB                     63
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MSB                     63
+#define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MASK                    0x8000000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_OFFSET                              0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_LSB                                 0
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MSB                                 0
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MASK                                0x0000000000000001
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_LSB                                        1
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_MSB                                        1
+#define RXPCU_PPDU_END_INFO_RESERVED_14A_MASK                                       0x0000000000000002
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_LSB                                        2
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MSB                                        5
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MASK                                       0x000000000000003c
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_OFFSET                                 0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_LSB                                    6
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MSB                                    17
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MASK                                   0x000000000003ffc0
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_OFFSET                   0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_LSB                      18
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MSB                      18
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MASK                     0x0000000000040000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_OFFSET                                  0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_LSB                                     19
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MSB                                     30
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MASK                                    0x000000007ff80000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_OFFSET                    0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_LSB                       31
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MSB                       31
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MASK                      0x0000000080000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_OFFSET                              0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_LSB                                 32
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MSB                                 32
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MASK                                0x0000000100000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_LSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_MSB                                        33
+#define RXPCU_PPDU_END_INFO_RESERVED_15A_MASK                                       0x0000000200000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_OFFSET                                     0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_LSB                                        34
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MSB                                        37
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MASK                                       0x0000003c00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_OFFSET                                 0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_LSB                                    38
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MSB                                    49
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MASK                                   0x0003ffc000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_OFFSET                   0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_LSB                      50
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MSB                      50
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MASK                     0x0004000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_OFFSET                                  0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_LSB                                     51
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MSB                                     62
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MASK                                    0x7ff8000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_OFFSET                    0x0000000000000038
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_LSB                       63
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MSB                       63
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MASK                      0x8000000000000000
+
+
+ 
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_LSB    0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MSB    1
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MASK   0x0000000000000003
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_LSB        2
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MSB        7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MASK       0x00000000000000fc
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_LSB        8
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MSB        13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MASK       0x0000000000003f00
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_OFFSET      0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_LSB         14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MSB         19
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MASK        0x00000000000fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_OFFSET   0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_LSB      20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MSB      25
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MASK     0x0000000003f00000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_LSB 26
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MSB 31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MASK 0x00000000fc000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_LSB    32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MSB    37
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MASK   0x0000003f00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_LSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MSB 43
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MASK 0x00000fc000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_LSB 44
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MSB 49
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MASK 0x0003f00000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_OFFSET 0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_LSB  50
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MSB  55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MASK 0x00fc000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_OFFSET     0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_LSB        56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MSB        62
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MASK       0x7f00000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_OFFSET        0x0000000000000040
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_LSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MASK          0x8000000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_LSB 0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MSB 6
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MASK 0x000000000000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_LSB 7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MSB 13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MASK 0x0000000000003f80
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_LSB 14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MSB 20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MASK 0x00000000001fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_LSB 21
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MSB 27
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MASK 0x000000000fe00000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_OFFSET        0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_LSB           28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MASK          0x00000000f0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MASK 0x0000007f00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_LSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MSB 45
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MASK 0x00003f8000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_LSB 46
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MSB 52
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MASK 0x001fc00000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_OFFSET 0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_LSB 53
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MSB 59
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MASK 0x0fe0000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_OFFSET        0x0000000000000048
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_LSB           60
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MASK          0xf000000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_LSB   0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MSB   6
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MASK  0x000000000000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_LSB   7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MSB   13
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MASK  0x0000000000003f80
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_LSB 14
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MSB 20
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MASK 0x00000000001fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_LSB 21
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MSB 27
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MASK 0x000000000fe00000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_LSB 28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MSB 28
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MASK 0x0000000010000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_OFFSET        0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_LSB           29
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MASK          0x00000000e0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MSB 38
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MASK 0x0000007f00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_LSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MSB 46
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MASK 0x00007f8000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_LSB 47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MSB 47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MASK 0x0000800000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_LSB 48
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MSB 55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MASK 0x00ff000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_OFFSET 0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_LSB 56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MSB 56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MASK 0x0100000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_OFFSET        0x0000000000000050
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_LSB           57
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MASK          0xfe00000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_OFFSET   0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_LSB      0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MSB      7
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MASK     0x00000000000000ff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_LSB 8
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MSB 15
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MASK 0x000000000000ff00
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_LSB  16
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MSB  23
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MASK 0x0000000000ff0000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_OFFSET    0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_LSB       24
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MSB       31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MASK      0x00000000ff000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_LSB 32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MSB 39
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MASK 0x000000ff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_OFFSET     0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_LSB        40
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MSB        47
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MASK       0x0000ff0000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_OFFSET 0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_LSB 48
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MSB 55
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MASK 0x00ff000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_OFFSET        0x0000000000000058
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_LSB           56
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MASK          0xff00000000000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_OFFSET        0x0000000000000060
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_LSB           0
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MSB           31
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MASK          0x00000000ffffffff
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_OFFSET        0x0000000000000060
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_LSB           32
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MSB           63
+#define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MASK          0xffffffff00000000
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET                      0x0000000000000068
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                         0
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                         0
+#define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                        0x0000000000000001
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_OFFSET                         0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_LSB                            1
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MSB                            1
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MASK                           0x0000000000000002
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_OFFSET                          0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_LSB                             2
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MSB                             5
+#define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MASK                            0x000000000000003c
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_OFFSET                         0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_LSB                            6
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MSB                            6
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MASK                           0x0000000000000040
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_OFFSET                          0x0000000000000068
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_LSB                             7
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MSB                             10
+#define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MASK                            0x0000000000000780
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_OFFSET                                     0x0000000000000068
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_LSB                                        11
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_MSB                                        31
+#define RXPCU_PPDU_END_INFO_RESERVED_26A_MASK                                       0x00000000fffff800
+
+
+ 
+
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_OFFSET                               0x0000000000000068
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_LSB                                  32
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MSB                                  63
+#define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MASK                                 0xffffffff00000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rxpcu_ppdu_end_layout_info.h b/hw/qcn9224/v2/rxpcu_ppdu_end_layout_info.h
new file mode 100644
index 0000000..7d9aec4
--- /dev/null
+++ b/hw/qcn9224/v2/rxpcu_ppdu_end_layout_info.h
@@ -0,0 +1,482 @@
+
+/* 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 _RXPCU_PPDU_END_LAYOUT_INFO_H_
+#define _RXPCU_PPDU_END_LAYOUT_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RXPCU_PPDU_END_LAYOUT_INFO 10
+
+
+struct rxpcu_ppdu_end_layout_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t rssi_legacy_offset                                      :  2,  
+                      l_sig_a_offset                                          :  6,  
+                      l_sig_b_offset                                          :  6,  
+                      ht_sig_offset                                           :  6,  
+                      vht_sig_a_offset                                        :  6,  
+                      repeat_l_sig_a_offset                                   :  6;  
+             uint32_t he_sig_a_su_offset                                      :  6,  
+                      he_sig_a_mu_dl_offset                                   :  6,  
+                      he_sig_a_mu_ul_offset                                   :  6,  
+                      generic_u_sig_offset                                    :  6,  
+                      rssi_ht_offset                                          :  7,  
+                      reserved_1a                                             :  1;  
+             uint32_t vht_sig_b_su20_offset                                   :  7,  
+                      vht_sig_b_su40_offset                                   :  7,  
+                      vht_sig_b_su80_offset                                   :  7,  
+                      vht_sig_b_su160_offset                                  :  7,  
+                      reserved_2a                                             :  4;  
+             uint32_t vht_sig_b_mu20_offset                                   :  7,  
+                      vht_sig_b_mu40_offset                                   :  7,  
+                      vht_sig_b_mu80_offset                                   :  7,  
+                      vht_sig_b_mu160_offset                                  :  7,  
+                      reserved_3a                                             :  4;  
+             uint32_t he_sig_b1_mu_offset                                     :  7,  
+                      he_sig_b2_mu_offset                                     :  7,  
+                      he_sig_b2_ofdma_offset                                  :  7,  
+                      first_generic_eht_sig_offset                            :  7,  
+                      multiple_generic_eht_sig_included                       :  1,  
+                      reserved_4a                                             :  3;  
+             uint32_t common_user_info_offset                                 :  7,  
+                      first_debug_info_offset                                 :  8,  
+                      multiple_debug_info_included                            :  1,  
+                      first_other_receive_info_offset                         :  8,  
+                      multiple_other_receive_info_included                    :  1,  
+                      reserved_5a                                             :  7;  
+             uint32_t data_done_offset                                        :  8,  
+                      generated_cbf_details_offset                            :  8,  
+                      pkt_end_part1_offset                                    :  8,  
+                      location_offset                                         :  8;  
+             uint32_t az_integrity_data_offset                                :  8,  
+                      pkt_end_offset                                          :  8,  
+                      abort_request_ack_offset                                :  8,  
+                      reserved_7a                                             :  8;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+#else
+             uint32_t repeat_l_sig_a_offset                                   :  6,  
+                      vht_sig_a_offset                                        :  6,  
+                      ht_sig_offset                                           :  6,  
+                      l_sig_b_offset                                          :  6,  
+                      l_sig_a_offset                                          :  6,  
+                      rssi_legacy_offset                                      :  2;  
+             uint32_t reserved_1a                                             :  1,  
+                      rssi_ht_offset                                          :  7,  
+                      generic_u_sig_offset                                    :  6,  
+                      he_sig_a_mu_ul_offset                                   :  6,  
+                      he_sig_a_mu_dl_offset                                   :  6,  
+                      he_sig_a_su_offset                                      :  6;  
+             uint32_t reserved_2a                                             :  4,  
+                      vht_sig_b_su160_offset                                  :  7,  
+                      vht_sig_b_su80_offset                                   :  7,  
+                      vht_sig_b_su40_offset                                   :  7,  
+                      vht_sig_b_su20_offset                                   :  7;  
+             uint32_t reserved_3a                                             :  4,  
+                      vht_sig_b_mu160_offset                                  :  7,  
+                      vht_sig_b_mu80_offset                                   :  7,  
+                      vht_sig_b_mu40_offset                                   :  7,  
+                      vht_sig_b_mu20_offset                                   :  7;  
+             uint32_t reserved_4a                                             :  3,  
+                      multiple_generic_eht_sig_included                       :  1,  
+                      first_generic_eht_sig_offset                            :  7,  
+                      he_sig_b2_ofdma_offset                                  :  7,  
+                      he_sig_b2_mu_offset                                     :  7,  
+                      he_sig_b1_mu_offset                                     :  7;  
+             uint32_t reserved_5a                                             :  7,  
+                      multiple_other_receive_info_included                    :  1,  
+                      first_other_receive_info_offset                         :  8,  
+                      multiple_debug_info_included                            :  1,  
+                      first_debug_info_offset                                 :  8,  
+                      common_user_info_offset                                 :  7;  
+             uint32_t location_offset                                         :  8,  
+                      pkt_end_part1_offset                                    :  8,  
+                      generated_cbf_details_offset                            :  8,  
+                      data_done_offset                                        :  8;  
+             uint32_t reserved_7a                                             :  8,  
+                      abort_request_ack_offset                                :  8,  
+                      pkt_end_offset                                          :  8,  
+                      az_integrity_data_offset                                :  8;  
+             uint32_t reserved_8a                                             : 32;  
+             uint32_t reserved_9a                                             : 32;  
+#endif
+};
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_OFFSET                        0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_LSB                           0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_MSB                           1
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_LEGACY_OFFSET_MASK                          0x00000003
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_OFFSET                            0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_LSB                               2
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_MSB                               7
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_A_OFFSET_MASK                              0x000000fc
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_OFFSET                            0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_LSB                               8
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_MSB                               13
+#define RXPCU_PPDU_END_LAYOUT_INFO_L_SIG_B_OFFSET_MASK                              0x00003f00
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_OFFSET                             0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_LSB                                14
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_MSB                                19
+#define RXPCU_PPDU_END_LAYOUT_INFO_HT_SIG_OFFSET_MASK                               0x000fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_OFFSET                          0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_LSB                             20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_MSB                             25
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_A_OFFSET_MASK                            0x03f00000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_OFFSET                     0x00000000
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_LSB                        26
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_MSB                        31
+#define RXPCU_PPDU_END_LAYOUT_INFO_REPEAT_L_SIG_A_OFFSET_MASK                       0xfc000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_OFFSET                        0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_LSB                           0
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_MSB                           5
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_SU_OFFSET_MASK                          0x0000003f
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_OFFSET                     0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_LSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_MSB                        11
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_DL_OFFSET_MASK                       0x00000fc0
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_OFFSET                     0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_LSB                        12
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_MSB                        17
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_A_MU_UL_OFFSET_MASK                       0x0003f000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_OFFSET                      0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_LSB                         18
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_MSB                         23
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERIC_U_SIG_OFFSET_MASK                        0x00fc0000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_OFFSET                            0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_LSB                               24
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_MSB                               30
+#define RXPCU_PPDU_END_LAYOUT_INFO_RSSI_HT_OFFSET_MASK                              0x7f000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_OFFSET                               0x00000004
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_LSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_1A_MASK                                 0x80000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_LSB                        0
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_MSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU20_OFFSET_MASK                       0x0000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_LSB                        7
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_MSB                        13
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU40_OFFSET_MASK                       0x00003f80
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_OFFSET                     0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_LSB                        14
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_MSB                        20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU80_OFFSET_MASK                       0x001fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_OFFSET                    0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_LSB                       21
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_MSB                       27
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_SU160_OFFSET_MASK                      0x0fe00000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_OFFSET                               0x00000008
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_LSB                                  28
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_2A_MASK                                 0xf0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_LSB                        0
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_MSB                        6
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU20_OFFSET_MASK                       0x0000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_LSB                        7
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_MSB                        13
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU40_OFFSET_MASK                       0x00003f80
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_OFFSET                     0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_LSB                        14
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_MSB                        20
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU80_OFFSET_MASK                       0x001fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_OFFSET                    0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_LSB                       21
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_MSB                       27
+#define RXPCU_PPDU_END_LAYOUT_INFO_VHT_SIG_B_MU160_OFFSET_MASK                      0x0fe00000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_OFFSET                               0x0000000c
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_LSB                                  28
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_3A_MASK                                 0xf0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_OFFSET                       0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_LSB                          0
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_MSB                          6
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B1_MU_OFFSET_MASK                         0x0000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_OFFSET                       0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_LSB                          7
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_MSB                          13
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_MU_OFFSET_MASK                         0x00003f80
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_OFFSET                    0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_LSB                       14
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_MSB                       20
+#define RXPCU_PPDU_END_LAYOUT_INFO_HE_SIG_B2_OFDMA_OFFSET_MASK                      0x001fc000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_OFFSET              0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_LSB                 21
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_MSB                 27
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_GENERIC_EHT_SIG_OFFSET_MASK                0x0fe00000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_OFFSET         0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_LSB            28
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MSB            28
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MASK           0x10000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_OFFSET                               0x00000010
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_LSB                                  29
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_4A_MASK                                 0xe0000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_OFFSET                   0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_LSB                      0
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_MSB                      6
+#define RXPCU_PPDU_END_LAYOUT_INFO_COMMON_USER_INFO_OFFSET_MASK                     0x0000007f
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_OFFSET                   0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_LSB                      7
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_MSB                      14
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_DEBUG_INFO_OFFSET_MASK                     0x00007f80
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_OFFSET              0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_LSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_MSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_DEBUG_INFO_INCLUDED_MASK                0x00008000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_OFFSET           0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_LSB              16
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_MSB              23
+#define RXPCU_PPDU_END_LAYOUT_INFO_FIRST_OTHER_RECEIVE_INFO_OFFSET_MASK             0x00ff0000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_OFFSET      0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_LSB         24
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MSB         24
+#define RXPCU_PPDU_END_LAYOUT_INFO_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MASK        0x01000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_OFFSET                               0x00000014
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_LSB                                  25
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_5A_MASK                                 0xfe000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_OFFSET                          0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_LSB                             0
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_MSB                             7
+#define RXPCU_PPDU_END_LAYOUT_INFO_DATA_DONE_OFFSET_MASK                            0x000000ff
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_OFFSET              0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_LSB                 8
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_MSB                 15
+#define RXPCU_PPDU_END_LAYOUT_INFO_GENERATED_CBF_DETAILS_OFFSET_MASK                0x0000ff00
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_OFFSET                      0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_LSB                         16
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_MSB                         23
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_PART1_OFFSET_MASK                        0x00ff0000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_OFFSET                           0x00000018
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_LSB                              24
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_MSB                              31
+#define RXPCU_PPDU_END_LAYOUT_INFO_LOCATION_OFFSET_MASK                             0xff000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_OFFSET                  0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_LSB                     0
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_MSB                     7
+#define RXPCU_PPDU_END_LAYOUT_INFO_AZ_INTEGRITY_DATA_OFFSET_MASK                    0x000000ff
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_OFFSET                            0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_LSB                               8
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_MSB                               15
+#define RXPCU_PPDU_END_LAYOUT_INFO_PKT_END_OFFSET_MASK                              0x0000ff00
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_OFFSET                  0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_LSB                     16
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_MSB                     23
+#define RXPCU_PPDU_END_LAYOUT_INFO_ABORT_REQUEST_ACK_OFFSET_MASK                    0x00ff0000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_OFFSET                               0x0000001c
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_LSB                                  24
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_7A_MASK                                 0xff000000
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_OFFSET                               0x00000020
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_LSB                                  0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_8A_MASK                                 0xffffffff
+
+
+ 
+
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_OFFSET                               0x00000024
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_LSB                                  0
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_MSB                                  31
+#define RXPCU_PPDU_END_LAYOUT_INFO_RESERVED_9A_MASK                                 0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/rxpt_classify_info.h b/hw/qcn9224/v2/rxpt_classify_info.h
new file mode 100644
index 0000000..0bf67f3
--- /dev/null
+++ b/hw/qcn9224/v2/rxpt_classify_info.h
@@ -0,0 +1,182 @@
+
+/* 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 _RXPT_CLASSIFY_INFO_H_
+#define _RXPT_CLASSIFY_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1
+
+
+struct rxpt_classify_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_destination_indication                              :  5,  
+                      lmac_peer_id_msb                                        :  2,  
+                      use_flow_id_toeplitz_clfy                               :  1,  
+                      pkt_selection_fp_ucast_data                             :  1,  
+                      pkt_selection_fp_mcast_data                             :  1,  
+                      pkt_selection_fp_1000                                   :  1,  
+                      rxdma0_source_ring_selection                            :  3,  
+                      rxdma0_destination_ring_selection                       :  3,  
+                      mcast_echo_drop_enable                                  :  1,  
+                      wds_learning_detect_en                                  :  1,  
+                      intrabss_check_en                                       :  1,  
+                      use_ppe                                                 :  1,  
+                      ppe_routing_enable                                      :  1,  
+                      reserved_0b                                             : 10;  
+#else
+             uint32_t reserved_0b                                             : 10,  
+                      ppe_routing_enable                                      :  1,  
+                      use_ppe                                                 :  1,  
+                      intrabss_check_en                                       :  1,  
+                      wds_learning_detect_en                                  :  1,  
+                      mcast_echo_drop_enable                                  :  1,  
+                      rxdma0_destination_ring_selection                       :  3,  
+                      rxdma0_source_ring_selection                            :  3,  
+                      pkt_selection_fp_1000                                   :  1,  
+                      pkt_selection_fp_mcast_data                             :  1,  
+                      pkt_selection_fp_ucast_data                             :  1,  
+                      use_flow_id_toeplitz_clfy                               :  1,  
+                      lmac_peer_id_msb                                        :  2,  
+                      reo_destination_indication                              :  5;  
+#endif
+};
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_OFFSET                        0x00000000
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_LSB                           0
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MSB                           4
+#define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MASK                          0x0000001f
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_OFFSET                                  0x00000000
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_LSB                                     5
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MSB                                     6
+#define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MASK                                    0x00000060
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET                         0x00000000
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_LSB                            7
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MSB                            7
+#define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MASK                           0x00000080
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_OFFSET                       0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_LSB                          8
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MSB                          8
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MASK                         0x00000100
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_OFFSET                       0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_LSB                          9
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MSB                          9
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MASK                         0x00000200
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_OFFSET                             0x00000000
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_LSB                                10
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MSB                                10
+#define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MASK                               0x00000400
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_OFFSET                      0x00000000
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_LSB                         11
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MSB                         13
+#define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MASK                        0x00003800
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_OFFSET                 0x00000000
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_LSB                    14
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MSB                    16
+#define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MASK                   0x0001c000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_OFFSET                            0x00000000
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_LSB                               17
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MSB                               17
+#define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MASK                              0x00020000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_OFFSET                            0x00000000
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_LSB                               18
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MSB                               18
+#define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MASK                              0x00040000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_OFFSET                                 0x00000000
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_LSB                                    19
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MSB                                    19
+#define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MASK                                   0x00080000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_USE_PPE_OFFSET                                           0x00000000
+#define RXPT_CLASSIFY_INFO_USE_PPE_LSB                                              20
+#define RXPT_CLASSIFY_INFO_USE_PPE_MSB                                              20
+#define RXPT_CLASSIFY_INFO_USE_PPE_MASK                                             0x00100000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_OFFSET                                0x00000000
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_LSB                                   21
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MSB                                   21
+#define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MASK                                  0x00200000
+
+
+ 
+
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_OFFSET                                       0x00000000
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_LSB                                          22
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_MSB                                          31
+#define RXPT_CLASSIFY_INFO_RESERVED_0B_MASK                                         0xffc00000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/seq_hwio.h b/hw/qcn9224/v2/seq_hwio.h
new file mode 100644
index 0000000..bc0f314
--- /dev/null
+++ b/hw/qcn9224/v2/seq_hwio.h
@@ -0,0 +1,90 @@
+
+/* 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 __SEQ_H__
+#define __SEQ_H__
+
+#include "HALhwio.h"
+
+
+
+ 
+#define SEQ_INH(base, regtype, reg) \
+        SEQ_##regtype##_INH(base, reg)
+
+ 
+#define SEQ_INMH(base, regtype, reg, mask) \
+        SEQ_##regtype##_INMH(base, reg, mask)
+
+
+ 
+#define SEQ_INFH(base, regtype, reg, fld) \
+        (SEQ_##regtype##_INMH(base, reg, HWIO_FMSK(regtype, fld)) >> HWIO_SHFT(regtype, fld))
+
+
+ 
+#define SEQ_OUTH(base, regtype, reg, val) \
+        SEQ_##regtype##_OUTH(base, reg, val)
+
+ 
+#define SEQ_OUTMH(base, regtype, reg, mask, val) \
+        SEQ_##regtype##_OUTMH(base, reg, mask, val)
+
+
+ 
+#define SEQ_OUTFH(base, regtype, reg, fld, val) \
+        SEQ_##regtype##_OUTMH(base, reg, HWIO_FMSK(regtype, fld), val << HWIO_SHFT(regtype, fld))
+
+
+ 
+
+ 
+
+typedef enum {
+    SEC,
+    MS,
+    US,
+    NS
+} SEQ_TimeUnit;
+
+extern void seq_wait(uint32 time_value, SEQ_TimeUnit time_unit);
+
+
+ 
+extern uint32 seq_poll(uint32 reg_offset, uint32 expect_value, uint32 value_mask, uint32 value_shift, uint32 max_poll_cnt);
+
+#endif  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hw/qcn9224/v2/service_info.h b/hw/qcn9224/v2/service_info.h
new file mode 100644
index 0000000..14dc011
--- /dev/null
+++ b/hw/qcn9224/v2/service_info.h
@@ -0,0 +1,82 @@
+
+/* 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 _SERVICE_INFO_H_
+#define _SERVICE_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_SERVICE_INFO 1
+
+
+struct service_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t scrambler_seed                                          :  7,  
+                      reserved                                                :  1,  
+                      sig_b_crc_user                                          :  8,  
+                      reserved_1                                              : 16;  
+#else
+             uint32_t reserved_1                                              : 16,  
+                      sig_b_crc_user                                          :  8,  
+                      reserved                                                :  1,  
+                      scrambler_seed                                          :  7;  
+#endif
+};
+
+
+ 
+
+#define SERVICE_INFO_SCRAMBLER_SEED_OFFSET                                          0x00000000
+#define SERVICE_INFO_SCRAMBLER_SEED_LSB                                             0
+#define SERVICE_INFO_SCRAMBLER_SEED_MSB                                             6
+#define SERVICE_INFO_SCRAMBLER_SEED_MASK                                            0x0000007f
+
+
+ 
+
+#define SERVICE_INFO_RESERVED_OFFSET                                                0x00000000
+#define SERVICE_INFO_RESERVED_LSB                                                   7
+#define SERVICE_INFO_RESERVED_MSB                                                   7
+#define SERVICE_INFO_RESERVED_MASK                                                  0x00000080
+
+
+ 
+
+#define SERVICE_INFO_SIG_B_CRC_USER_OFFSET                                          0x00000000
+#define SERVICE_INFO_SIG_B_CRC_USER_LSB                                             8
+#define SERVICE_INFO_SIG_B_CRC_USER_MSB                                             15
+#define SERVICE_INFO_SIG_B_CRC_USER_MASK                                            0x0000ff00
+
+
+ 
+
+#define SERVICE_INFO_RESERVED_1_OFFSET                                              0x00000000
+#define SERVICE_INFO_RESERVED_1_LSB                                                 16
+#define SERVICE_INFO_RESERVED_1_MSB                                                 31
+#define SERVICE_INFO_RESERVED_1_MASK                                                0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/sw_monitor_ring.h b/hw/qcn9224/v2/sw_monitor_ring.h
new file mode 100644
index 0000000..67afc7e
--- /dev/null
+++ b/hw/qcn9224/v2/sw_monitor_ring.h
@@ -0,0 +1,330 @@
+
+/* 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 _SW_MONITOR_RING_H_
+#define _SW_MONITOR_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#include "rx_mpdu_details.h"
+#define NUM_OF_DWORDS_SW_MONITOR_RING 8
+
+
+struct sw_monitor_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             struct   buffer_addr_info                                          status_buff_addr_info;
+             uint32_t rxdma_push_reason                                       :  2,  
+                      rxdma_error_code                                        :  5,  
+                      mpdu_fragment_number                                    :  4,  
+                      frameless_bar                                           :  1,  
+                      status_buf_count                                        :  4,  
+                      end_of_ppdu                                             :  1,  
+                      reserved_6a                                             : 15;  
+             uint32_t phy_ppdu_id                                             : 16,  
+                      reserved_7a                                             :  4,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   rx_mpdu_details                                           reo_level_mpdu_frame_info;
+             struct   buffer_addr_info                                          status_buff_addr_info;
+             uint32_t reserved_6a                                             : 15,  
+                      end_of_ppdu                                             :  1,  
+                      status_buf_count                                        :  4,  
+                      frameless_bar                                           :  1,  
+                      mpdu_fragment_number                                    :  4,  
+                      rxdma_error_code                                        :  5,  
+                      rxdma_push_reason                                       :  2;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             :  4,  
+                      phy_ppdu_id                                             : 16;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB 7
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_MSDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff000
+
+
+ 
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB 7
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK 0x000000ff
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB 8
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK 0x00000100
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB 9
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB 9
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK 0x00000200
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB 10
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB 10
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK 0x00000400
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB 11
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK 0x00000800
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB 13
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB 13
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK 0x00002000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB 14
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB 14
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB 15
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB 26
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK 0x07ff8000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET 0x00000008
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_LSB 28
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_TID_MASK 0xf0000000
+
+
+ 
+
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET 0x0000000c
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB 0
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB 31
+#define SW_MONITOR_RING_REO_LEVEL_MPDU_FRAME_INFO_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK 0xffffffff
+
+
+ 
+
+
+ 
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET               0x00000010
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                  0
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                  31
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                 0xffffffff
+
+
+ 
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET              0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                 0
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                 7
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                0x000000ff
+
+
+ 
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET          0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB             8
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB             11
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK            0x00000f00
+
+
+ 
+
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET               0x00000014
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                  12
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                  31
+#define SW_MONITOR_RING_STATUS_BUFF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                 0xfffff000
+
+
+ 
+
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_OFFSET                                    0x00000018
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_LSB                                       0
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_MSB                                       1
+#define SW_MONITOR_RING_RXDMA_PUSH_REASON_MASK                                      0x00000003
+
+
+ 
+
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_OFFSET                                     0x00000018
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_LSB                                        2
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_MSB                                        6
+#define SW_MONITOR_RING_RXDMA_ERROR_CODE_MASK                                       0x0000007c
+
+
+ 
+
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_OFFSET                                 0x00000018
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_LSB                                    7
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_MSB                                    10
+#define SW_MONITOR_RING_MPDU_FRAGMENT_NUMBER_MASK                                   0x00000780
+
+
+ 
+
+#define SW_MONITOR_RING_FRAMELESS_BAR_OFFSET                                        0x00000018
+#define SW_MONITOR_RING_FRAMELESS_BAR_LSB                                           11
+#define SW_MONITOR_RING_FRAMELESS_BAR_MSB                                           11
+#define SW_MONITOR_RING_FRAMELESS_BAR_MASK                                          0x00000800
+
+
+ 
+
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_OFFSET                                     0x00000018
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_LSB                                        12
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_MSB                                        15
+#define SW_MONITOR_RING_STATUS_BUF_COUNT_MASK                                       0x0000f000
+
+
+ 
+
+#define SW_MONITOR_RING_END_OF_PPDU_OFFSET                                          0x00000018
+#define SW_MONITOR_RING_END_OF_PPDU_LSB                                             16
+#define SW_MONITOR_RING_END_OF_PPDU_MSB                                             16
+#define SW_MONITOR_RING_END_OF_PPDU_MASK                                            0x00010000
+
+
+ 
+
+#define SW_MONITOR_RING_RESERVED_6A_OFFSET                                          0x00000018
+#define SW_MONITOR_RING_RESERVED_6A_LSB                                             17
+#define SW_MONITOR_RING_RESERVED_6A_MSB                                             31
+#define SW_MONITOR_RING_RESERVED_6A_MASK                                            0xfffe0000
+
+
+ 
+
+#define SW_MONITOR_RING_PHY_PPDU_ID_OFFSET                                          0x0000001c
+#define SW_MONITOR_RING_PHY_PPDU_ID_LSB                                             0
+#define SW_MONITOR_RING_PHY_PPDU_ID_MSB                                             15
+#define SW_MONITOR_RING_PHY_PPDU_ID_MASK                                            0x0000ffff
+
+
+ 
+
+#define SW_MONITOR_RING_RESERVED_7A_OFFSET                                          0x0000001c
+#define SW_MONITOR_RING_RESERVED_7A_LSB                                             16
+#define SW_MONITOR_RING_RESERVED_7A_MSB                                             19
+#define SW_MONITOR_RING_RESERVED_7A_MASK                                            0x000f0000
+
+
+ 
+
+#define SW_MONITOR_RING_RING_ID_OFFSET                                              0x0000001c
+#define SW_MONITOR_RING_RING_ID_LSB                                                 20
+#define SW_MONITOR_RING_RING_ID_MSB                                                 27
+#define SW_MONITOR_RING_RING_ID_MASK                                                0x0ff00000
+
+
+ 
+
+#define SW_MONITOR_RING_LOOPING_COUNT_OFFSET                                        0x0000001c
+#define SW_MONITOR_RING_LOOPING_COUNT_LSB                                           28
+#define SW_MONITOR_RING_LOOPING_COUNT_MSB                                           31
+#define SW_MONITOR_RING_LOOPING_COUNT_MASK                                          0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/tcl_data_cmd.h b/hw/qcn9224/v2/tcl_data_cmd.h
new file mode 100644
index 0000000..7e61a3f
--- /dev/null
+++ b/hw/qcn9224/v2/tcl_data_cmd.h
@@ -0,0 +1,420 @@
+
+/* 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 _TCL_DATA_CMD_H_
+#define _TCL_DATA_CMD_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_TCL_DATA_CMD 8
+
+
+struct tcl_data_cmd {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_addr_info;
+             uint32_t tcl_cmd_type                                            :  1,  
+                      buf_or_ext_desc_type                                    :  1,  
+                      bank_id                                                 :  6,  
+                      tx_notify_frame                                         :  3,  
+                      header_length_read_sel                                  :  1,  
+                      buffer_timestamp                                        : 19,  
+                      buffer_timestamp_valid                                  :  1;  
+             uint32_t reserved_3a                                             : 16,  
+                      tcl_cmd_number                                          : 16;  
+             uint32_t data_length                                             : 16,  
+                      ipv4_checksum_en                                        :  1,  
+                      udp_over_ipv4_checksum_en                               :  1,  
+                      udp_over_ipv6_checksum_en                               :  1,  
+                      tcp_over_ipv4_checksum_en                               :  1,  
+                      tcp_over_ipv6_checksum_en                               :  1,  
+                      to_fw                                                   :  1,  
+                      reserved_4a                                             :  1,  
+                      packet_offset                                           :  9;  
+             uint32_t hlos_tid_overwrite                                      :  1,  
+                      flow_override_enable                                    :  1,  
+                      who_classify_info_sel                                   :  2,  
+                      hlos_tid                                                :  4,  
+                      flow_override                                           :  1,  
+                      pmac_id                                                 :  2,  
+                      msdu_color                                              :  2,  
+                      reserved_5a                                             : 11,  
+                      vdev_id                                                 :  8;  
+             uint32_t search_index                                            : 20,  
+                      cache_set_num                                           :  4,  
+                      index_lookup_override                                   :  1,  
+                      reserved_6a                                             :  7;  
+             uint32_t reserved_7a                                             : 20,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   buffer_addr_info                                          buf_addr_info;
+             uint32_t buffer_timestamp_valid                                  :  1,  
+                      buffer_timestamp                                        : 19,  
+                      header_length_read_sel                                  :  1,  
+                      tx_notify_frame                                         :  3,  
+                      bank_id                                                 :  6,  
+                      buf_or_ext_desc_type                                    :  1,  
+                      tcl_cmd_type                                            :  1;  
+             uint32_t tcl_cmd_number                                          : 16,  
+                      reserved_3a                                             : 16;  
+             uint32_t packet_offset                                           :  9,  
+                      reserved_4a                                             :  1,  
+                      to_fw                                                   :  1,  
+                      tcp_over_ipv6_checksum_en                               :  1,  
+                      tcp_over_ipv4_checksum_en                               :  1,  
+                      udp_over_ipv6_checksum_en                               :  1,  
+                      udp_over_ipv4_checksum_en                               :  1,  
+                      ipv4_checksum_en                                        :  1,  
+                      data_length                                             : 16;  
+             uint32_t vdev_id                                                 :  8,  
+                      reserved_5a                                             : 11,  
+                      msdu_color                                              :  2,  
+                      pmac_id                                                 :  2,  
+                      flow_override                                           :  1,  
+                      hlos_tid                                                :  4,  
+                      who_classify_info_sel                                   :  2,  
+                      flow_override_enable                                    :  1,  
+                      hlos_tid_overwrite                                      :  1;  
+             uint32_t reserved_6a                                             :  7,  
+                      index_lookup_override                                   :  1,  
+                      cache_set_num                                           :  4,  
+                      search_index                                            : 20;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             : 20;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                          0x00000000
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                             0
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                             31
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                            0xffffffff
+
+
+ 
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                         0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                            0
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                            7
+#define TCL_DATA_CMD_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                           0x000000ff
+
+
+ 
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                     0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                        8
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                        11
+#define TCL_DATA_CMD_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                       0x00000f00
+
+
+ 
+
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                          0x00000004
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                             12
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                             31
+#define TCL_DATA_CMD_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                            0xfffff000
+
+
+ 
+
+#define TCL_DATA_CMD_TCL_CMD_TYPE_OFFSET                                            0x00000008
+#define TCL_DATA_CMD_TCL_CMD_TYPE_LSB                                               0
+#define TCL_DATA_CMD_TCL_CMD_TYPE_MSB                                               0
+#define TCL_DATA_CMD_TCL_CMD_TYPE_MASK                                              0x00000001
+
+
+ 
+
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_OFFSET                                    0x00000008
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_LSB                                       1
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_MSB                                       1
+#define TCL_DATA_CMD_BUF_OR_EXT_DESC_TYPE_MASK                                      0x00000002
+
+
+ 
+
+#define TCL_DATA_CMD_BANK_ID_OFFSET                                                 0x00000008
+#define TCL_DATA_CMD_BANK_ID_LSB                                                    2
+#define TCL_DATA_CMD_BANK_ID_MSB                                                    7
+#define TCL_DATA_CMD_BANK_ID_MASK                                                   0x000000fc
+
+
+ 
+
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_OFFSET                                         0x00000008
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_LSB                                            8
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_MSB                                            10
+#define TCL_DATA_CMD_TX_NOTIFY_FRAME_MASK                                           0x00000700
+
+
+ 
+
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_OFFSET                                  0x00000008
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_LSB                                     11
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_MSB                                     11
+#define TCL_DATA_CMD_HEADER_LENGTH_READ_SEL_MASK                                    0x00000800
+
+
+ 
+
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_OFFSET                                        0x00000008
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_LSB                                           12
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_MSB                                           30
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_MASK                                          0x7ffff000
+
+
+ 
+
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_OFFSET                                  0x00000008
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_LSB                                     31
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_MSB                                     31
+#define TCL_DATA_CMD_BUFFER_TIMESTAMP_VALID_MASK                                    0x80000000
+
+
+ 
+
+#define TCL_DATA_CMD_RESERVED_3A_OFFSET                                             0x0000000c
+#define TCL_DATA_CMD_RESERVED_3A_LSB                                                0
+#define TCL_DATA_CMD_RESERVED_3A_MSB                                                15
+#define TCL_DATA_CMD_RESERVED_3A_MASK                                               0x0000ffff
+
+
+ 
+
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_OFFSET                                          0x0000000c
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_LSB                                             16
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_MSB                                             31
+#define TCL_DATA_CMD_TCL_CMD_NUMBER_MASK                                            0xffff0000
+
+
+ 
+
+#define TCL_DATA_CMD_DATA_LENGTH_OFFSET                                             0x00000010
+#define TCL_DATA_CMD_DATA_LENGTH_LSB                                                0
+#define TCL_DATA_CMD_DATA_LENGTH_MSB                                                15
+#define TCL_DATA_CMD_DATA_LENGTH_MASK                                               0x0000ffff
+
+
+ 
+
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_OFFSET                                        0x00000010
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_LSB                                           16
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_MSB                                           16
+#define TCL_DATA_CMD_IPV4_CHECKSUM_EN_MASK                                          0x00010000
+
+
+ 
+
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_LSB                                  17
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_MSB                                  17
+#define TCL_DATA_CMD_UDP_OVER_IPV4_CHECKSUM_EN_MASK                                 0x00020000
+
+
+ 
+
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_LSB                                  18
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_MSB                                  18
+#define TCL_DATA_CMD_UDP_OVER_IPV6_CHECKSUM_EN_MASK                                 0x00040000
+
+
+ 
+
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_LSB                                  19
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_MSB                                  19
+#define TCL_DATA_CMD_TCP_OVER_IPV4_CHECKSUM_EN_MASK                                 0x00080000
+
+
+ 
+
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_OFFSET                               0x00000010
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_LSB                                  20
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_MSB                                  20
+#define TCL_DATA_CMD_TCP_OVER_IPV6_CHECKSUM_EN_MASK                                 0x00100000
+
+
+ 
+
+#define TCL_DATA_CMD_TO_FW_OFFSET                                                   0x00000010
+#define TCL_DATA_CMD_TO_FW_LSB                                                      21
+#define TCL_DATA_CMD_TO_FW_MSB                                                      21
+#define TCL_DATA_CMD_TO_FW_MASK                                                     0x00200000
+
+
+ 
+
+#define TCL_DATA_CMD_RESERVED_4A_OFFSET                                             0x00000010
+#define TCL_DATA_CMD_RESERVED_4A_LSB                                                22
+#define TCL_DATA_CMD_RESERVED_4A_MSB                                                22
+#define TCL_DATA_CMD_RESERVED_4A_MASK                                               0x00400000
+
+
+ 
+
+#define TCL_DATA_CMD_PACKET_OFFSET_OFFSET                                           0x00000010
+#define TCL_DATA_CMD_PACKET_OFFSET_LSB                                              23
+#define TCL_DATA_CMD_PACKET_OFFSET_MSB                                              31
+#define TCL_DATA_CMD_PACKET_OFFSET_MASK                                             0xff800000
+
+
+ 
+
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_OFFSET                                      0x00000014
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_LSB                                         0
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_MSB                                         0
+#define TCL_DATA_CMD_HLOS_TID_OVERWRITE_MASK                                        0x00000001
+
+
+ 
+
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_OFFSET                                    0x00000014
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_LSB                                       1
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_MSB                                       1
+#define TCL_DATA_CMD_FLOW_OVERRIDE_ENABLE_MASK                                      0x00000002
+
+
+ 
+
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_OFFSET                                   0x00000014
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_LSB                                      2
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_MSB                                      3
+#define TCL_DATA_CMD_WHO_CLASSIFY_INFO_SEL_MASK                                     0x0000000c
+
+
+ 
+
+#define TCL_DATA_CMD_HLOS_TID_OFFSET                                                0x00000014
+#define TCL_DATA_CMD_HLOS_TID_LSB                                                   4
+#define TCL_DATA_CMD_HLOS_TID_MSB                                                   7
+#define TCL_DATA_CMD_HLOS_TID_MASK                                                  0x000000f0
+
+
+ 
+
+#define TCL_DATA_CMD_FLOW_OVERRIDE_OFFSET                                           0x00000014
+#define TCL_DATA_CMD_FLOW_OVERRIDE_LSB                                              8
+#define TCL_DATA_CMD_FLOW_OVERRIDE_MSB                                              8
+#define TCL_DATA_CMD_FLOW_OVERRIDE_MASK                                             0x00000100
+
+
+ 
+
+#define TCL_DATA_CMD_PMAC_ID_OFFSET                                                 0x00000014
+#define TCL_DATA_CMD_PMAC_ID_LSB                                                    9
+#define TCL_DATA_CMD_PMAC_ID_MSB                                                    10
+#define TCL_DATA_CMD_PMAC_ID_MASK                                                   0x00000600
+
+
+ 
+
+#define TCL_DATA_CMD_MSDU_COLOR_OFFSET                                              0x00000014
+#define TCL_DATA_CMD_MSDU_COLOR_LSB                                                 11
+#define TCL_DATA_CMD_MSDU_COLOR_MSB                                                 12
+#define TCL_DATA_CMD_MSDU_COLOR_MASK                                                0x00001800
+
+
+ 
+
+#define TCL_DATA_CMD_RESERVED_5A_OFFSET                                             0x00000014
+#define TCL_DATA_CMD_RESERVED_5A_LSB                                                13
+#define TCL_DATA_CMD_RESERVED_5A_MSB                                                23
+#define TCL_DATA_CMD_RESERVED_5A_MASK                                               0x00ffe000
+
+
+ 
+
+#define TCL_DATA_CMD_VDEV_ID_OFFSET                                                 0x00000014
+#define TCL_DATA_CMD_VDEV_ID_LSB                                                    24
+#define TCL_DATA_CMD_VDEV_ID_MSB                                                    31
+#define TCL_DATA_CMD_VDEV_ID_MASK                                                   0xff000000
+
+
+ 
+
+#define TCL_DATA_CMD_SEARCH_INDEX_OFFSET                                            0x00000018
+#define TCL_DATA_CMD_SEARCH_INDEX_LSB                                               0
+#define TCL_DATA_CMD_SEARCH_INDEX_MSB                                               19
+#define TCL_DATA_CMD_SEARCH_INDEX_MASK                                              0x000fffff
+
+
+ 
+
+#define TCL_DATA_CMD_CACHE_SET_NUM_OFFSET                                           0x00000018
+#define TCL_DATA_CMD_CACHE_SET_NUM_LSB                                              20
+#define TCL_DATA_CMD_CACHE_SET_NUM_MSB                                              23
+#define TCL_DATA_CMD_CACHE_SET_NUM_MASK                                             0x00f00000
+
+
+ 
+
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_OFFSET                                   0x00000018
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_LSB                                      24
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_MSB                                      24
+#define TCL_DATA_CMD_INDEX_LOOKUP_OVERRIDE_MASK                                     0x01000000
+
+
+ 
+
+#define TCL_DATA_CMD_RESERVED_6A_OFFSET                                             0x00000018
+#define TCL_DATA_CMD_RESERVED_6A_LSB                                                25
+#define TCL_DATA_CMD_RESERVED_6A_MSB                                                31
+#define TCL_DATA_CMD_RESERVED_6A_MASK                                               0xfe000000
+
+
+ 
+
+#define TCL_DATA_CMD_RESERVED_7A_OFFSET                                             0x0000001c
+#define TCL_DATA_CMD_RESERVED_7A_LSB                                                0
+#define TCL_DATA_CMD_RESERVED_7A_MSB                                                19
+#define TCL_DATA_CMD_RESERVED_7A_MASK                                               0x000fffff
+
+
+ 
+
+#define TCL_DATA_CMD_RING_ID_OFFSET                                                 0x0000001c
+#define TCL_DATA_CMD_RING_ID_LSB                                                    20
+#define TCL_DATA_CMD_RING_ID_MSB                                                    27
+#define TCL_DATA_CMD_RING_ID_MASK                                                   0x0ff00000
+
+
+ 
+
+#define TCL_DATA_CMD_LOOPING_COUNT_OFFSET                                           0x0000001c
+#define TCL_DATA_CMD_LOOPING_COUNT_LSB                                              28
+#define TCL_DATA_CMD_LOOPING_COUNT_MSB                                              31
+#define TCL_DATA_CMD_LOOPING_COUNT_MASK                                             0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/tcl_entrance_from_ppe_ring.h b/hw/qcn9224/v2/tcl_entrance_from_ppe_ring.h
new file mode 100644
index 0000000..4d4d7e2
--- /dev/null
+++ b/hw/qcn9224/v2/tcl_entrance_from_ppe_ring.h
@@ -0,0 +1,382 @@
+
+/* 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 _TCL_ENTRANCE_FROM_PPE_RING_H_
+#define _TCL_ENTRANCE_FROM_PPE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_ENTRANCE_FROM_PPE_RING 8
+
+
+struct tcl_entrance_from_ppe_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_addr_lo                                          : 32;  
+             uint32_t buffer_addr_hi                                          :  8,  
+                      drop_prec                                               :  2,  
+                      fake_mac_header                                         :  1,  
+                      known_ind                                               :  1,  
+                      cpu_code_valid                                          :  1,  
+                      tunnel_term_ind                                         :  1,  
+                      tunnel_type                                             :  1,  
+                      wifi_qos_flag                                           :  1,  
+                      service_code                                            :  9,  
+                      reserved_1b                                             :  1,  
+                      int_pri                                                 :  4,  
+                      more                                                    :  1,  
+                      reserved_1a                                             :  1;  
+             uint32_t opaque_lo                                               : 32;  
+             uint32_t opaque_hi                                               : 32;  
+             uint32_t src_info                                                : 16,  
+                      dst_info                                                : 16;  
+             uint32_t data_length                                             : 18,  
+                      pool_id                                                 :  6,  
+                      wifi_qos                                                :  8;  
+             uint32_t data_offset                                             : 12,  
+                      l4_csum_status                                          :  1,  
+                      l3_csum_status                                          :  1,  
+                      hash_flag                                               :  2,  
+                      hash_value                                              : 16;  
+             uint32_t dscp                                                    :  8,  
+                      valid_toggle                                            :  1,  
+                      pppoe_flag                                              :  1,  
+                      svlan_flag                                              :  1,  
+                      cvlan_flag                                              :  1,  
+                      pid                                                     :  4,  
+                      l3_offset                                               :  8,  
+                      l4_offset                                               :  8;  
+#else
+             uint32_t buffer_addr_lo                                          : 32;  
+             uint32_t reserved_1a                                             :  1,  
+                      more                                                    :  1,  
+                      int_pri                                                 :  4,  
+                      reserved_1b                                             :  1,  
+                      service_code                                            :  9,  
+                      wifi_qos_flag                                           :  1,  
+                      tunnel_type                                             :  1,  
+                      tunnel_term_ind                                         :  1,  
+                      cpu_code_valid                                          :  1,  
+                      known_ind                                               :  1,  
+                      fake_mac_header                                         :  1,  
+                      drop_prec                                               :  2,  
+                      buffer_addr_hi                                          :  8;  
+             uint32_t opaque_lo                                               : 32;  
+             uint32_t opaque_hi                                               : 32;  
+             uint32_t dst_info                                                : 16,  
+                      src_info                                                : 16;  
+             uint32_t wifi_qos                                                :  8,  
+                      pool_id                                                 :  6,  
+                      data_length                                             : 18;  
+             uint32_t hash_value                                              : 16,  
+                      hash_flag                                               :  2,  
+                      l3_csum_status                                          :  1,  
+                      l4_csum_status                                          :  1,  
+                      data_offset                                             : 12;  
+             uint32_t l4_offset                                               :  8,  
+                      l3_offset                                               :  8,  
+                      pid                                                     :  4,  
+                      cvlan_flag                                              :  1,  
+                      svlan_flag                                              :  1,  
+                      pppoe_flag                                              :  1,  
+                      valid_toggle                                            :  1,  
+                      dscp                                                    :  8;  
+#endif
+};
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_OFFSET                            0x00000000
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_LSB                               0
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_MSB                               31
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_LO_MASK                              0xffffffff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_OFFSET                            0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_LSB                               0
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_MSB                               7
+#define TCL_ENTRANCE_FROM_PPE_RING_BUFFER_ADDR_HI_MASK                              0x000000ff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_OFFSET                                 0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_LSB                                    8
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_MSB                                    9
+#define TCL_ENTRANCE_FROM_PPE_RING_DROP_PREC_MASK                                   0x00000300
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_OFFSET                           0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_LSB                              10
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_MSB                              10
+#define TCL_ENTRANCE_FROM_PPE_RING_FAKE_MAC_HEADER_MASK                             0x00000400
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_OFFSET                                 0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_LSB                                    11
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_MSB                                    11
+#define TCL_ENTRANCE_FROM_PPE_RING_KNOWN_IND_MASK                                   0x00000800
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_OFFSET                            0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_LSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_MSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_CPU_CODE_VALID_MASK                              0x00001000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_OFFSET                           0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_LSB                              13
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_MSB                              13
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TERM_IND_MASK                             0x00002000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_LSB                                  14
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_MSB                                  14
+#define TCL_ENTRANCE_FROM_PPE_RING_TUNNEL_TYPE_MASK                                 0x00004000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_OFFSET                             0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_LSB                                15
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_MSB                                15
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_FLAG_MASK                               0x00008000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_OFFSET                              0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_LSB                                 16
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_MSB                                 24
+#define TCL_ENTRANCE_FROM_PPE_RING_SERVICE_CODE_MASK                                0x01ff0000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_LSB                                  25
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_MSB                                  25
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1B_MASK                                 0x02000000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_OFFSET                                   0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_LSB                                      26
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_MSB                                      29
+#define TCL_ENTRANCE_FROM_PPE_RING_INT_PRI_MASK                                     0x3c000000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_OFFSET                                      0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_LSB                                         30
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_MSB                                         30
+#define TCL_ENTRANCE_FROM_PPE_RING_MORE_MASK                                        0x40000000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_OFFSET                               0x00000004
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_LSB                                  31
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_MSB                                  31
+#define TCL_ENTRANCE_FROM_PPE_RING_RESERVED_1A_MASK                                 0x80000000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_OFFSET                                 0x00000008
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_LSB                                    0
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_LO_MASK                                   0xffffffff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_OFFSET                                 0x0000000c
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_LSB                                    0
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_OPAQUE_HI_MASK                                   0xffffffff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_OFFSET                                  0x00000010
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_LSB                                     0
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_MSB                                     15
+#define TCL_ENTRANCE_FROM_PPE_RING_SRC_INFO_MASK                                    0x0000ffff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_OFFSET                                  0x00000010
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_LSB                                     16
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_MSB                                     31
+#define TCL_ENTRANCE_FROM_PPE_RING_DST_INFO_MASK                                    0xffff0000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_OFFSET                               0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_LSB                                  0
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_MSB                                  17
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_LENGTH_MASK                                 0x0003ffff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_OFFSET                                   0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_LSB                                      18
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_MSB                                      23
+#define TCL_ENTRANCE_FROM_PPE_RING_POOL_ID_MASK                                     0x00fc0000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_OFFSET                                  0x00000014
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_LSB                                     24
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_MSB                                     31
+#define TCL_ENTRANCE_FROM_PPE_RING_WIFI_QOS_MASK                                    0xff000000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_OFFSET                               0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_LSB                                  0
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_MSB                                  11
+#define TCL_ENTRANCE_FROM_PPE_RING_DATA_OFFSET_MASK                                 0x00000fff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_OFFSET                            0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_LSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_MSB                               12
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_CSUM_STATUS_MASK                              0x00001000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_OFFSET                            0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_LSB                               13
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_MSB                               13
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_CSUM_STATUS_MASK                              0x00002000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_OFFSET                                 0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_LSB                                    14
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_MSB                                    15
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_FLAG_MASK                                   0x0000c000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_OFFSET                                0x00000018
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_LSB                                   16
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_MSB                                   31
+#define TCL_ENTRANCE_FROM_PPE_RING_HASH_VALUE_MASK                                  0xffff0000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_OFFSET                                      0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_LSB                                         0
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_MSB                                         7
+#define TCL_ENTRANCE_FROM_PPE_RING_DSCP_MASK                                        0x000000ff
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_OFFSET                              0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_LSB                                 8
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_MSB                                 8
+#define TCL_ENTRANCE_FROM_PPE_RING_VALID_TOGGLE_MASK                                0x00000100
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_LSB                                   9
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_MSB                                   9
+#define TCL_ENTRANCE_FROM_PPE_RING_PPPOE_FLAG_MASK                                  0x00000200
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_LSB                                   10
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_MSB                                   10
+#define TCL_ENTRANCE_FROM_PPE_RING_SVLAN_FLAG_MASK                                  0x00000400
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_OFFSET                                0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_LSB                                   11
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_MSB                                   11
+#define TCL_ENTRANCE_FROM_PPE_RING_CVLAN_FLAG_MASK                                  0x00000800
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_OFFSET                                       0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_LSB                                          12
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_MSB                                          15
+#define TCL_ENTRANCE_FROM_PPE_RING_PID_MASK                                         0x0000f000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_OFFSET                                 0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_LSB                                    16
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_MSB                                    23
+#define TCL_ENTRANCE_FROM_PPE_RING_L3_OFFSET_MASK                                   0x00ff0000
+
+
+ 
+
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_OFFSET                                 0x0000001c
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_LSB                                    24
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_MSB                                    31
+#define TCL_ENTRANCE_FROM_PPE_RING_L4_OFFSET_MASK                                   0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/tcl_gse_cmd.h b/hw/qcn9224/v2/tcl_gse_cmd.h
new file mode 100644
index 0000000..6ba19f9
--- /dev/null
+++ b/hw/qcn9224/v2/tcl_gse_cmd.h
@@ -0,0 +1,222 @@
+
+/* 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 _TCL_GSE_CMD_H_
+#define _TCL_GSE_CMD_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_GSE_CMD 8
+
+
+struct tcl_gse_cmd {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t control_buffer_addr_31_0                                : 32;  
+             uint32_t control_buffer_addr_39_32                               :  8,  
+                      gse_ctrl                                                :  4,  
+                      gse_sel                                                 :  1,  
+                      status_destination_ring_id                              :  1,  
+                      swap                                                    :  1,  
+                      index_search_en                                         :  1,  
+                      cache_set_num                                           :  4,  
+                      reserved_1a                                             : 12;  
+             uint32_t tcl_cmd_type                                            :  1,  
+                      reserved_2a                                             : 31;  
+             uint32_t cmd_meta_data_31_0                                      : 32;  
+             uint32_t cmd_meta_data_63_32                                     : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 20,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t control_buffer_addr_31_0                                : 32;  
+             uint32_t reserved_1a                                             : 12,  
+                      cache_set_num                                           :  4,  
+                      index_search_en                                         :  1,  
+                      swap                                                    :  1,  
+                      status_destination_ring_id                              :  1,  
+                      gse_sel                                                 :  1,  
+                      gse_ctrl                                                :  4,  
+                      control_buffer_addr_39_32                               :  8;  
+             uint32_t reserved_2a                                             : 31,  
+                      tcl_cmd_type                                            :  1;  
+             uint32_t cmd_meta_data_31_0                                      : 32;  
+             uint32_t cmd_meta_data_63_32                                     : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             : 20;  
+#endif
+};
+
+
+ 
+
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_OFFSET                                 0x00000000
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_LSB                                    0
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_MSB                                    31
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_31_0_MASK                                   0xffffffff
+
+
+ 
+
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_OFFSET                                0x00000004
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_LSB                                   0
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_MSB                                   7
+#define TCL_GSE_CMD_CONTROL_BUFFER_ADDR_39_32_MASK                                  0x000000ff
+
+
+ 
+
+#define TCL_GSE_CMD_GSE_CTRL_OFFSET                                                 0x00000004
+#define TCL_GSE_CMD_GSE_CTRL_LSB                                                    8
+#define TCL_GSE_CMD_GSE_CTRL_MSB                                                    11
+#define TCL_GSE_CMD_GSE_CTRL_MASK                                                   0x00000f00
+
+
+ 
+
+#define TCL_GSE_CMD_GSE_SEL_OFFSET                                                  0x00000004
+#define TCL_GSE_CMD_GSE_SEL_LSB                                                     12
+#define TCL_GSE_CMD_GSE_SEL_MSB                                                     12
+#define TCL_GSE_CMD_GSE_SEL_MASK                                                    0x00001000
+
+
+ 
+
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_OFFSET                               0x00000004
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_LSB                                  13
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_MSB                                  13
+#define TCL_GSE_CMD_STATUS_DESTINATION_RING_ID_MASK                                 0x00002000
+
+
+ 
+
+#define TCL_GSE_CMD_SWAP_OFFSET                                                     0x00000004
+#define TCL_GSE_CMD_SWAP_LSB                                                        14
+#define TCL_GSE_CMD_SWAP_MSB                                                        14
+#define TCL_GSE_CMD_SWAP_MASK                                                       0x00004000
+
+
+ 
+
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_OFFSET                                          0x00000004
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_LSB                                             15
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_MSB                                             15
+#define TCL_GSE_CMD_INDEX_SEARCH_EN_MASK                                            0x00008000
+
+
+ 
+
+#define TCL_GSE_CMD_CACHE_SET_NUM_OFFSET                                            0x00000004
+#define TCL_GSE_CMD_CACHE_SET_NUM_LSB                                               16
+#define TCL_GSE_CMD_CACHE_SET_NUM_MSB                                               19
+#define TCL_GSE_CMD_CACHE_SET_NUM_MASK                                              0x000f0000
+
+
+ 
+
+#define TCL_GSE_CMD_RESERVED_1A_OFFSET                                              0x00000004
+#define TCL_GSE_CMD_RESERVED_1A_LSB                                                 20
+#define TCL_GSE_CMD_RESERVED_1A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_1A_MASK                                                0xfff00000
+
+
+ 
+
+#define TCL_GSE_CMD_TCL_CMD_TYPE_OFFSET                                             0x00000008
+#define TCL_GSE_CMD_TCL_CMD_TYPE_LSB                                                0
+#define TCL_GSE_CMD_TCL_CMD_TYPE_MSB                                                0
+#define TCL_GSE_CMD_TCL_CMD_TYPE_MASK                                               0x00000001
+
+
+ 
+
+#define TCL_GSE_CMD_RESERVED_2A_OFFSET                                              0x00000008
+#define TCL_GSE_CMD_RESERVED_2A_LSB                                                 1
+#define TCL_GSE_CMD_RESERVED_2A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_2A_MASK                                                0xfffffffe
+
+
+ 
+
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_OFFSET                                       0x0000000c
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_LSB                                          0
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_MSB                                          31
+#define TCL_GSE_CMD_CMD_META_DATA_31_0_MASK                                         0xffffffff
+
+
+ 
+
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_OFFSET                                      0x00000010
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_LSB                                         0
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_MSB                                         31
+#define TCL_GSE_CMD_CMD_META_DATA_63_32_MASK                                        0xffffffff
+
+
+ 
+
+#define TCL_GSE_CMD_RESERVED_5A_OFFSET                                              0x00000014
+#define TCL_GSE_CMD_RESERVED_5A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_5A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_5A_MASK                                                0xffffffff
+
+
+ 
+
+#define TCL_GSE_CMD_RESERVED_6A_OFFSET                                              0x00000018
+#define TCL_GSE_CMD_RESERVED_6A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_6A_MSB                                                 31
+#define TCL_GSE_CMD_RESERVED_6A_MASK                                                0xffffffff
+
+
+ 
+
+#define TCL_GSE_CMD_RESERVED_7A_OFFSET                                              0x0000001c
+#define TCL_GSE_CMD_RESERVED_7A_LSB                                                 0
+#define TCL_GSE_CMD_RESERVED_7A_MSB                                                 19
+#define TCL_GSE_CMD_RESERVED_7A_MASK                                                0x000fffff
+
+
+ 
+
+#define TCL_GSE_CMD_RING_ID_OFFSET                                                  0x0000001c
+#define TCL_GSE_CMD_RING_ID_LSB                                                     20
+#define TCL_GSE_CMD_RING_ID_MSB                                                     27
+#define TCL_GSE_CMD_RING_ID_MASK                                                    0x0ff00000
+
+
+ 
+
+#define TCL_GSE_CMD_LOOPING_COUNT_OFFSET                                            0x0000001c
+#define TCL_GSE_CMD_LOOPING_COUNT_LSB                                               28
+#define TCL_GSE_CMD_LOOPING_COUNT_MSB                                               31
+#define TCL_GSE_CMD_LOOPING_COUNT_MASK                                              0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/tcl_status_ring.h b/hw/qcn9224/v2/tcl_status_ring.h
new file mode 100644
index 0000000..28b55f6
--- /dev/null
+++ b/hw/qcn9224/v2/tcl_status_ring.h
@@ -0,0 +1,202 @@
+
+/* 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 _TCL_STATUS_RING_H_
+#define _TCL_STATUS_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TCL_STATUS_RING 8
+
+
+struct tcl_status_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t gse_ctrl                                                :  4,  
+                      ase_fse_sel                                             :  1,  
+                      cache_op_res                                            :  2,  
+                      index_search_en                                         :  1,  
+                      msdu_cnt_n                                              : 24;  
+             uint32_t msdu_byte_cnt_n                                         : 32;  
+             uint32_t msdu_timestmp_n                                         : 32;  
+             uint32_t cmd_meta_data_31_0                                      : 32;  
+             uint32_t cmd_meta_data_63_32                                     : 32;  
+             uint32_t hash_indx_val                                           : 20,  
+                      cache_set_num                                           :  4,  
+                      reserved_5a                                             :  8;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 20,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t msdu_cnt_n                                              : 24,  
+                      index_search_en                                         :  1,  
+                      cache_op_res                                            :  2,  
+                      ase_fse_sel                                             :  1,  
+                      gse_ctrl                                                :  4;  
+             uint32_t msdu_byte_cnt_n                                         : 32;  
+             uint32_t msdu_timestmp_n                                         : 32;  
+             uint32_t cmd_meta_data_31_0                                      : 32;  
+             uint32_t cmd_meta_data_63_32                                     : 32;  
+             uint32_t reserved_5a                                             :  8,  
+                      cache_set_num                                           :  4,  
+                      hash_indx_val                                           : 20;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             : 20;  
+#endif
+};
+
+
+ 
+
+#define TCL_STATUS_RING_GSE_CTRL_OFFSET                                             0x00000000
+#define TCL_STATUS_RING_GSE_CTRL_LSB                                                0
+#define TCL_STATUS_RING_GSE_CTRL_MSB                                                3
+#define TCL_STATUS_RING_GSE_CTRL_MASK                                               0x0000000f
+
+
+ 
+
+#define TCL_STATUS_RING_ASE_FSE_SEL_OFFSET                                          0x00000000
+#define TCL_STATUS_RING_ASE_FSE_SEL_LSB                                             4
+#define TCL_STATUS_RING_ASE_FSE_SEL_MSB                                             4
+#define TCL_STATUS_RING_ASE_FSE_SEL_MASK                                            0x00000010
+
+
+ 
+
+#define TCL_STATUS_RING_CACHE_OP_RES_OFFSET                                         0x00000000
+#define TCL_STATUS_RING_CACHE_OP_RES_LSB                                            5
+#define TCL_STATUS_RING_CACHE_OP_RES_MSB                                            6
+#define TCL_STATUS_RING_CACHE_OP_RES_MASK                                           0x00000060
+
+
+ 
+
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_OFFSET                                      0x00000000
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_LSB                                         7
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_MSB                                         7
+#define TCL_STATUS_RING_INDEX_SEARCH_EN_MASK                                        0x00000080
+
+
+ 
+
+#define TCL_STATUS_RING_MSDU_CNT_N_OFFSET                                           0x00000000
+#define TCL_STATUS_RING_MSDU_CNT_N_LSB                                              8
+#define TCL_STATUS_RING_MSDU_CNT_N_MSB                                              31
+#define TCL_STATUS_RING_MSDU_CNT_N_MASK                                             0xffffff00
+
+
+ 
+
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_OFFSET                                      0x00000004
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_LSB                                         0
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_MSB                                         31
+#define TCL_STATUS_RING_MSDU_BYTE_CNT_N_MASK                                        0xffffffff
+
+
+ 
+
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_OFFSET                                      0x00000008
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_LSB                                         0
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_MSB                                         31
+#define TCL_STATUS_RING_MSDU_TIMESTMP_N_MASK                                        0xffffffff
+
+
+ 
+
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_OFFSET                                   0x0000000c
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_LSB                                      0
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_MSB                                      31
+#define TCL_STATUS_RING_CMD_META_DATA_31_0_MASK                                     0xffffffff
+
+
+ 
+
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_OFFSET                                  0x00000010
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_LSB                                     0
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_MSB                                     31
+#define TCL_STATUS_RING_CMD_META_DATA_63_32_MASK                                    0xffffffff
+
+
+ 
+
+#define TCL_STATUS_RING_HASH_INDX_VAL_OFFSET                                        0x00000014
+#define TCL_STATUS_RING_HASH_INDX_VAL_LSB                                           0
+#define TCL_STATUS_RING_HASH_INDX_VAL_MSB                                           19
+#define TCL_STATUS_RING_HASH_INDX_VAL_MASK                                          0x000fffff
+
+
+ 
+
+#define TCL_STATUS_RING_CACHE_SET_NUM_OFFSET                                        0x00000014
+#define TCL_STATUS_RING_CACHE_SET_NUM_LSB                                           20
+#define TCL_STATUS_RING_CACHE_SET_NUM_MSB                                           23
+#define TCL_STATUS_RING_CACHE_SET_NUM_MASK                                          0x00f00000
+
+
+ 
+
+#define TCL_STATUS_RING_RESERVED_5A_OFFSET                                          0x00000014
+#define TCL_STATUS_RING_RESERVED_5A_LSB                                             24
+#define TCL_STATUS_RING_RESERVED_5A_MSB                                             31
+#define TCL_STATUS_RING_RESERVED_5A_MASK                                            0xff000000
+
+
+ 
+
+#define TCL_STATUS_RING_RESERVED_6A_OFFSET                                          0x00000018
+#define TCL_STATUS_RING_RESERVED_6A_LSB                                             0
+#define TCL_STATUS_RING_RESERVED_6A_MSB                                             31
+#define TCL_STATUS_RING_RESERVED_6A_MASK                                            0xffffffff
+
+
+ 
+
+#define TCL_STATUS_RING_RESERVED_7A_OFFSET                                          0x0000001c
+#define TCL_STATUS_RING_RESERVED_7A_LSB                                             0
+#define TCL_STATUS_RING_RESERVED_7A_MSB                                             19
+#define TCL_STATUS_RING_RESERVED_7A_MASK                                            0x000fffff
+
+
+ 
+
+#define TCL_STATUS_RING_RING_ID_OFFSET                                              0x0000001c
+#define TCL_STATUS_RING_RING_ID_LSB                                                 20
+#define TCL_STATUS_RING_RING_ID_MSB                                                 27
+#define TCL_STATUS_RING_RING_ID_MASK                                                0x0ff00000
+
+
+ 
+
+#define TCL_STATUS_RING_LOOPING_COUNT_OFFSET                                        0x0000001c
+#define TCL_STATUS_RING_LOOPING_COUNT_LSB                                           28
+#define TCL_STATUS_RING_LOOPING_COUNT_MSB                                           31
+#define TCL_STATUS_RING_LOOPING_COUNT_MASK                                          0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/tlv_hdr.h b/hw/qcn9224/v2/tlv_hdr.h
new file mode 100644
index 0000000..e3ae976
--- /dev/null
+++ b/hw/qcn9224/v2/tlv_hdr.h
@@ -0,0 +1,632 @@
+
+/* 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 _TLV_HDR_H_
+#define _TLV_HDR_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define _TLV_USERID_WIDTH_      6
+#define _TLV_DATA_WIDTH_        32
+#define _TLV_TAG_WIDTH_         9
+
+#define _TLV_MRV_EN_LEN_WIDTH_  9
+#define _TLV_MRV_DIS_LEN_WIDTH_ 12
+
+#define _TLV_16_DATA_WIDTH_     16
+#define _TLV_16_TAG_WIDTH_      5
+#define _TLV_16_LEN_WIDTH_      4
+#define _TLV_CTAG_WIDTH_        5
+#define _TLV_44_DATA_WIDTH_     44
+#define _TLV_64_DATA_WIDTH_     64
+#define _TLV_76_DATA_WIDTH_     64
+#define _TLV_CDATA_WIDTH_       32
+#define _TLV_CDATA_76_WIDTH_    64
+
+struct tlv_usr_16_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint16_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint16_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_16_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint16_t             tlv_cflg_reserved   :   1,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_reserved        :   6;
+#else
+           uint16_t             tlv_reserved        :   6,
+                                tlv_tag             :   _TLV_16_TAG_WIDTH_,
+                                tlv_len             :   _TLV_16_LEN_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+ 
+ 
+ 
+ 
+ 
+
+struct tlv_mlo_usr_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mlo_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   6;
+#else
+           uint32_t             tlv_reserved        :   6,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mlo_usr_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_mlo_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+
+struct tlv_mlo_usr_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_reserved        :   10,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mlo_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   16,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mlo_usr_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+#endif
+                                tlv_reserved        :   32;
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+struct tlv_mlo_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_reserved        :   32;
+#endif
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+
+
+
+
+
+struct tlv_mac_usr_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mac_32_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   6;
+#else
+           uint32_t             tlv_reserved        :   6,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+};
+
+struct tlv_mac_usr_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_mac_64_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+
+struct tlv_mac_usr_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_reserved        :   10,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mac_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   16,
+                                pad_44to64_bit      :   22;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   22,
+                                tlv_reserved        :   10;
+#endif
+};
+
+struct tlv_mac_usr_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint64_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+#endif
+                                tlv_reserved        :   32;
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+struct tlv_mac_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_reserved        :   32;
+#endif
+           uint64_t             pad_64to128_bit     :   64;
+};
+
+ 
+ 
+ 
+
+struct tlv_usr_c_44_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata           :   _TLV_CDATA_WIDTH_,
+                                pad_44to64_bit      :   20;
+#else
+           uint64_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1,
+                                pad_44to64_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+#endif
+};
+
+struct tlv_usr_c_76_tlword_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_52  :   52; 
+           uint64_t             tlv_cdata_upper_12  :   12,
+                                pad_76to128_bit     :   52;
+#else
+           uint64_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1,
+                                tlv_cdata_middle_32 :   32;
+           uint64_t             pad_76to96_bit      :   20,
+                                tlv_cdata_upper_12  :   12,
+                                pad_96to128_bit     :   32;
+#endif
+};
+
+
+ 
+ 
+ 
+ 
+ 
+struct tlv_usr_32_hdr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+#endif
+                                tlv_reserved        :   32;
+};
+
+struct tlv_32_hdr {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint64_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   38;
+#else
+           uint64_t             tlv_usrid_reserved  :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1,
+                                tlv_reserved        :   32;
+#endif
+};
+ 
+
+ 
+ 
+ 
+ 
+ 
+
+struct tlv_mlo_usr_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mlo_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_dst_linkid      :   3,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_reserved        :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_dst_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_EN_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mac_usr_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+struct tlv_mac_64_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_cflg_reserved   :   1,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_src_linkid      :   3,
+                                tlv_mrv             :   1,
+                                tlv_reserved        :   _TLV_USERID_WIDTH_;
+#else
+           uint32_t             tlv_reserved        :   _TLV_USERID_WIDTH_,
+                                tlv_mrv             :   1,
+                                tlv_src_linkid      :   3,
+                                tlv_len             :   _TLV_MRV_DIS_LEN_WIDTH_,
+                                tlv_tag             :   _TLV_TAG_WIDTH_,
+                                tlv_cflg_reserved   :   1;
+#endif
+           uint32_t             pad_32to64_bit      :   32;
+};
+
+ 
+ 
+ 
+
+struct tlv_usr_c_44_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_20  :   20;
+           uint32_t             tlv_cdata_upper_12  :   12,
+                                pad_44to64_bit      :   20;
+#else
+           uint32_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1;
+           uint32_t             pad_44to64_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+#endif
+};
+
+struct tlv_usr_c_76_tlw32_t {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+           uint32_t             tlv_compression     :   1,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_cdata_lower_20  :   20;
+           uint32_t             tlv_cdata_middle_32 :   32;
+           uint32_t             tlv_cdata_upper_12  :   12,
+                                pad_76to96_bit      :   20;
+           uint32_t             pad_96to128_bit     :   32;
+#else
+           uint32_t             tlv_cdata_lower_20  :   20,
+                                tlv_usrid           :   _TLV_USERID_WIDTH_,
+                                tlv_ctag            :   _TLV_CTAG_WIDTH_,
+                                tlv_compression     :   1;
+           uint32_t             tlv_cdata_middle_32 :   32;
+           uint32_t             pad_76to96_bit      :   20,
+                                tlv_cdata_upper_12  :   12;
+           uint32_t             pad_96to128_bit     :   32;
+#endif
+};
+ 
+
+
+#endif  
diff --git a/hw/qcn9224/v2/tlv_tag_def.h b/hw/qcn9224/v2/tlv_tag_def.h
new file mode 100644
index 0000000..a86031d
--- /dev/null
+++ b/hw/qcn9224/v2/tlv_tag_def.h
@@ -0,0 +1,515 @@
+
+/* 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 _TLV_TAG_DEF_
+#define _TLV_TAG_DEF_
+
+typedef enum tlv_tag_def {
+  WIFIMACTX_CBF_START_E                                    = 0  ,
+  WIFIPHYRX_DATA_E                                         = 1  ,
+  WIFIPHYRX_CBF_DATA_RESP_E                                = 2  ,
+  WIFIPHYRX_ABORT_REQUEST_E                                = 3  ,
+  WIFIPHYRX_USER_ABORT_NOTIFICATION_E                      = 4  ,
+  WIFIMACTX_DATA_RESP_E                                    = 5  ,
+  WIFIMACTX_CBF_DATA_E                                     = 6  ,
+  WIFIMACTX_CBF_DONE_E                                     = 7  ,
+  WIFIPHYRX_LMR_DATA_RESP_E                                = 8  ,
+  WIFIRXPCU_TO_UCODE_START_E                               = 9  ,
+  WIFIRXPCU_TO_UCODE_DELIMITER_FOR_FULL_MPDU_E             = 10  ,
+  WIFIRXPCU_TO_UCODE_FULL_MPDU_DATA_E                      = 11  ,
+  WIFIRXPCU_TO_UCODE_FCS_STATUS_E                          = 12  ,
+  WIFIRXPCU_TO_UCODE_MPDU_DELIMITER_E                      = 13  ,
+  WIFIRXPCU_TO_UCODE_DELIMITER_FOR_MPDU_HEADER_E           = 14  ,
+  WIFIRXPCU_TO_UCODE_MPDU_HEADER_DATA_E                    = 15  ,
+  WIFIRXPCU_TO_UCODE_END_E                                 = 16  ,
+  WIFIMACRX_CBF_READ_REQUEST_E                             = 32  ,
+  WIFIMACRX_CBF_DATA_REQUEST_E                             = 33  ,
+  WIFIMACRX_EXPECT_NDP_RECEPTION_E                         = 34  ,
+  WIFIMACRX_FREEZE_CAPTURE_CHANNEL_E                       = 35  ,
+  WIFIMACRX_NDP_TIMEOUT_E                                  = 36  ,
+  WIFIMACRX_ABORT_ACK_E                                    = 37  ,
+  WIFIMACRX_REQ_IMPLICIT_FB_E                              = 38  ,
+  WIFIMACRX_CHAIN_MASK_E                                   = 39  ,
+  WIFIMACRX_NAP_USER_E                                     = 40  ,
+  WIFIMACRX_ABORT_REQUEST_E                                = 41  ,
+  WIFIPHYTX_OTHER_TRANSMIT_INFO16_E                        = 42  ,
+  WIFIPHYTX_ABORT_ACK_E                                    = 43  ,
+  WIFIPHYTX_ABORT_REQUEST_E                                = 44  ,
+  WIFIPHYTX_PKT_END_E                                      = 45  ,
+  WIFIPHYTX_PPDU_HEADER_INFO_REQUEST_E                     = 46  ,
+  WIFIPHYTX_REQUEST_CTRL_INFO_E                            = 47  ,
+  WIFIPHYTX_DATA_REQUEST_E                                 = 48  ,
+  WIFIPHYTX_BF_CV_LOADING_DONE_E                           = 49  ,
+  WIFIPHYTX_NAP_ACK_E                                      = 50  ,
+  WIFIPHYTX_NAP_DONE_E                                     = 51  ,
+  WIFIPHYTX_OFF_ACK_E                                      = 52  ,
+  WIFIPHYTX_ON_ACK_E                                       = 53  ,
+  WIFIPHYTX_SYNTH_OFF_ACK_E                                = 54  ,
+  WIFIPHYTX_DEBUG16_E                                      = 55  ,
+  WIFIMACTX_ABORT_REQUEST_E                                = 56  ,
+  WIFIMACTX_ABORT_ACK_E                                    = 57  ,
+  WIFIMACTX_PKT_END_E                                      = 58  ,
+  WIFIMACTX_PRE_PHY_DESC_E                                 = 59  ,
+  WIFIMACTX_BF_PARAMS_COMMON_E                             = 60  ,
+  WIFIMACTX_BF_PARAMS_PER_USER_E                           = 61  ,
+  WIFIMACTX_PREFETCH_CV_E                                  = 62  ,
+  WIFIMACTX_USER_DESC_COMMON_E                             = 63  ,
+  WIFIMACTX_USER_DESC_PER_USER_E                           = 64  ,
+  WIFIEXAMPLE_USER_TLV_16_E                                = 65  ,
+  WIFIEXAMPLE_TLV_16_E                                     = 66  ,
+  WIFIMACTX_PHY_OFF_E                                      = 67  ,
+  WIFIMACTX_PHY_ON_E                                       = 68  ,
+  WIFIMACTX_SYNTH_OFF_E                                    = 69  ,
+  WIFIMACTX_EXPECT_CBF_COMMON_E                            = 70  ,
+  WIFIMACTX_EXPECT_CBF_PER_USER_E                          = 71  ,
+  WIFIMACTX_PHY_DESC_E                                     = 72  ,
+  WIFIMACTX_L_SIG_A_E                                      = 73  ,
+  WIFIMACTX_L_SIG_B_E                                      = 74  ,
+  WIFIMACTX_HT_SIG_E                                       = 75  ,
+  WIFIMACTX_VHT_SIG_A_E                                    = 76  ,
+  WIFIMACTX_VHT_SIG_B_SU20_E                               = 77  ,
+  WIFIMACTX_VHT_SIG_B_SU40_E                               = 78  ,
+  WIFIMACTX_VHT_SIG_B_SU80_E                               = 79  ,
+  WIFIMACTX_VHT_SIG_B_SU160_E                              = 80  ,
+  WIFIMACTX_VHT_SIG_B_MU20_E                               = 81  ,
+  WIFIMACTX_VHT_SIG_B_MU40_E                               = 82  ,
+  WIFIMACTX_VHT_SIG_B_MU80_E                               = 83  ,
+  WIFIMACTX_VHT_SIG_B_MU160_E                              = 84  ,
+  WIFIMACTX_SERVICE_E                                      = 85  ,
+  WIFIMACTX_HE_SIG_A_SU_E                                  = 86  ,
+  WIFIMACTX_HE_SIG_A_MU_DL_E                               = 87  ,
+  WIFIMACTX_HE_SIG_A_MU_UL_E                               = 88  ,
+  WIFIMACTX_HE_SIG_B1_MU_E                                 = 89  ,
+  WIFIMACTX_HE_SIG_B2_MU_E                                 = 90  ,
+  WIFIMACTX_HE_SIG_B2_OFDMA_E                              = 91  ,
+  WIFIMACTX_DELETE_CV_E                                    = 92  ,
+  WIFIMACTX_MU_UPLINK_COMMON_E                             = 93  ,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_E                         = 94  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_E                          = 95  ,
+  WIFIMACTX_PHY_NAP_E                                      = 96  ,
+  WIFIMACTX_DEBUG_E                                        = 97  ,
+  WIFIPHYRX_ABORT_ACK_E                                    = 98  ,
+  WIFIPHYRX_GENERATED_CBF_DETAILS_E                        = 99  ,
+  WIFIPHYRX_RSSI_LEGACY_E                                  = 100  ,
+  WIFIPHYRX_RSSI_HT_E                                      = 101  ,
+  WIFIPHYRX_USER_INFO_E                                    = 102  ,
+  WIFIPHYRX_PKT_END_E                                      = 103  ,
+  WIFIPHYRX_DEBUG_E                                        = 104  ,
+  WIFIPHYRX_CBF_TRANSFER_DONE_E                            = 105  ,
+  WIFIPHYRX_CBF_TRANSFER_ABORT_E                           = 106  ,
+  WIFIPHYRX_L_SIG_A_E                                      = 107  ,
+  WIFIPHYRX_L_SIG_B_E                                      = 108  ,
+  WIFIPHYRX_HT_SIG_E                                       = 109  ,
+  WIFIPHYRX_VHT_SIG_A_E                                    = 110  ,
+  WIFIPHYRX_VHT_SIG_B_SU20_E                               = 111  ,
+  WIFIPHYRX_VHT_SIG_B_SU40_E                               = 112  ,
+  WIFIPHYRX_VHT_SIG_B_SU80_E                               = 113  ,
+  WIFIPHYRX_VHT_SIG_B_SU160_E                              = 114  ,
+  WIFIPHYRX_VHT_SIG_B_MU20_E                               = 115  ,
+  WIFIPHYRX_VHT_SIG_B_MU40_E                               = 116  ,
+  WIFIPHYRX_VHT_SIG_B_MU80_E                               = 117  ,
+  WIFIPHYRX_VHT_SIG_B_MU160_E                              = 118  ,
+  WIFIPHYRX_HE_SIG_A_SU_E                                  = 119  ,
+  WIFIPHYRX_HE_SIG_A_MU_DL_E                               = 120  ,
+  WIFIPHYRX_HE_SIG_A_MU_UL_E                               = 121  ,
+  WIFIPHYRX_HE_SIG_B1_MU_E                                 = 122  ,
+  WIFIPHYRX_HE_SIG_B2_MU_E                                 = 123  ,
+  WIFIPHYRX_HE_SIG_B2_OFDMA_E                              = 124  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_E                           = 125  ,
+  WIFIPHYRX_COMMON_USER_INFO_E                             = 126  ,
+  WIFIPHYRX_DATA_DONE_E                                    = 127  ,
+  WIFICOEX_TX_REQ_E                                        = 128  ,
+  WIFIDUMMY_E                                              = 129  ,
+  WIFIEXAMPLE_TLV_32_NAME_E                                = 130  ,
+  WIFIMPDU_LIMIT_E                                         = 131  ,
+  WIFINA_LENGTH_END_E                                      = 132  ,
+  WIFIOLE_BUF_STATUS_E                                     = 133  ,
+  WIFIPCU_PPDU_SETUP_DONE_E                                = 134  ,
+  WIFIPCU_PPDU_SETUP_END_E                                 = 135  ,
+  WIFIPCU_PPDU_SETUP_INIT_E                                = 136  ,
+  WIFIPCU_PPDU_SETUP_START_E                               = 137  ,
+  WIFIPDG_FES_SETUP_E                                      = 138  ,
+  WIFIPDG_RESPONSE_E                                       = 139  ,
+  WIFIPDG_TX_REQ_E                                         = 140  ,
+  WIFISCH_WAIT_INSTR_E                                     = 141  ,
+  WIFITQM_FLOW_EMPTY_STATUS_E                              = 143  ,
+  WIFITQM_FLOW_NOT_EMPTY_STATUS_E                          = 144  ,
+  WIFITQM_GEN_MPDU_LENGTH_LIST_E                           = 145  ,
+  WIFITQM_GEN_MPDU_LENGTH_LIST_STATUS_E                    = 146  ,
+  WIFITQM_GEN_MPDUS_E                                      = 147  ,
+  WIFITQM_GEN_MPDUS_STATUS_E                               = 148  ,
+  WIFITQM_REMOVE_MPDU_E                                    = 149  ,
+  WIFITQM_REMOVE_MPDU_STATUS_E                             = 150  ,
+  WIFITQM_REMOVE_MSDU_E                                    = 151  ,
+  WIFITQM_REMOVE_MSDU_STATUS_E                             = 152  ,
+  WIFITQM_UPDATE_TX_MPDU_COUNT_E                           = 153  ,
+  WIFITQM_WRITE_CMD_E                                      = 154  ,
+  WIFIOFDMA_TRIGGER_DETAILS_E                              = 155  ,
+  WIFITX_DATA_E                                            = 156  ,
+  WIFITX_FES_SETUP_E                                       = 157  ,
+  WIFIRX_PACKET_E                                          = 158  ,
+  WIFIEXPECTED_RESPONSE_E                                  = 159  ,
+  WIFITX_MPDU_END_E                                        = 160  ,
+  WIFITX_MPDU_START_E                                      = 161  ,
+  WIFITX_MSDU_END_E                                        = 162  ,
+  WIFITX_MSDU_START_E                                      = 163  ,
+  WIFITX_SW_MODE_SETUP_E                                   = 164  ,
+  WIFITXPCU_BUFFER_STATUS_E                                = 165  ,
+  WIFITXPCU_USER_BUFFER_STATUS_E                           = 166  ,
+  WIFIDATA_TO_TIME_CONFIG_E                                = 167  ,
+  WIFIEXAMPLE_USER_TLV_32_E                                = 168  ,
+  WIFIMPDU_INFO_E                                          = 169  ,
+  WIFIPDG_USER_SETUP_E                                     = 170  ,
+  WIFITX_11AH_SETUP_E                                      = 171  ,
+  WIFIREO_UPDATE_RX_REO_QUEUE_STATUS_E                     = 172  ,
+  WIFITX_PEER_ENTRY_E                                      = 173  ,
+  WIFITX_RAW_OR_NATIVE_FRAME_SETUP_E                       = 174  ,
+  WIFIEXAMPLE_USER_TLV_44_E                                = 175  ,
+  WIFITX_FLUSH_E                                           = 176  ,
+  WIFITX_FLUSH_REQ_E                                       = 177  ,
+  WIFITQM_WRITE_CMD_STATUS_E                               = 178  ,
+  WIFITQM_GET_MPDU_QUEUE_STATS_E                           = 179  ,
+  WIFITQM_GET_MSDU_FLOW_STATS_E                            = 180  ,
+  WIFIEXAMPLE_USER_CTLV_44_E                               = 181  ,
+  WIFITX_FES_STATUS_START_E                                = 182  ,
+  WIFITX_FES_STATUS_USER_PPDU_E                            = 183  ,
+  WIFITX_FES_STATUS_USER_RESPONSE_E                        = 184  ,
+  WIFITX_FES_STATUS_END_E                                  = 185  ,
+  WIFIRX_TRIG_INFO_E                                       = 186  ,
+  WIFIRXPCU_TX_SETUP_CLEAR_E                               = 187  ,
+  WIFIRX_FRAME_BITMAP_REQ_E                                = 188  ,
+  WIFIRX_FRAME_BITMAP_ACK_E                                = 189  ,
+  WIFICOEX_RX_STATUS_E                                     = 190  ,
+  WIFIRX_START_PARAM_E                                     = 191  ,
+  WIFIRX_PPDU_START_E                                      = 192  ,
+  WIFIRX_PPDU_END_E                                        = 193  ,
+  WIFIRX_MPDU_START_E                                      = 194  ,
+  WIFIRX_MPDU_END_E                                        = 195  ,
+  WIFIRX_MSDU_START_E                                      = 196  ,
+  WIFIRX_MSDU_END_E                                        = 197  ,
+  WIFIRX_ATTENTION_E                                       = 198  ,
+  WIFIRECEIVED_RESPONSE_INFO_E                             = 199  ,
+  WIFIRX_PHY_SLEEP_E                                       = 200  ,
+  WIFIRX_HEADER_E                                          = 201  ,
+  WIFIRX_PEER_ENTRY_E                                      = 202  ,
+  WIFIRX_FLUSH_E                                           = 203  ,
+  WIFIRX_RESPONSE_REQUIRED_INFO_E                          = 204  ,
+  WIFIRX_FRAMELESS_BAR_DETAILS_E                           = 205  ,
+  WIFITQM_GET_MPDU_QUEUE_STATS_STATUS_E                    = 206  ,
+  WIFITQM_GET_MSDU_FLOW_STATS_STATUS_E                     = 207  ,
+  WIFITX_CBF_INFO_E                                        = 208  ,
+  WIFIPCU_PPDU_SETUP_USER_E                                = 209  ,
+  WIFIRX_MPDU_PCU_START_E                                  = 210  ,
+  WIFIRX_PM_INFO_E                                         = 211  ,
+  WIFIRX_USER_PPDU_END_E                                   = 212  ,
+  WIFIRX_PRE_PPDU_START_E                                  = 213  ,
+  WIFIRX_PREAMBLE_E                                        = 214  ,
+  WIFITX_FES_SETUP_COMPLETE_E                              = 215  ,
+  WIFITX_LAST_MPDU_FETCHED_E                               = 216  ,
+  WIFITXDMA_STOP_REQUEST_E                                 = 217  ,
+  WIFIRXPCU_SETUP_E                                        = 218  ,
+  WIFIRXPCU_USER_SETUP_E                                   = 219  ,
+  WIFITX_FES_STATUS_ACK_OR_BA_E                            = 220  ,
+  WIFITQM_ACKED_MPDU_E                                     = 221  ,
+  WIFICOEX_TX_RESP_E                                       = 222  ,
+  WIFICOEX_TX_STATUS_E                                     = 223  ,
+  WIFIMACTX_COEX_PHY_CTRL_E                                = 224  ,
+  WIFICOEX_STATUS_BROADCAST_E                              = 225  ,
+  WIFIRESPONSE_START_STATUS_E                              = 226  ,
+  WIFIRESPONSE_END_STATUS_E                                = 227  ,
+  WIFICRYPTO_STATUS_E                                      = 228  ,
+  WIFIRECEIVED_TRIGGER_INFO_E                              = 229  ,
+  WIFICOEX_TX_STOP_CTRL_E                                  = 230  ,
+  WIFIRX_PPDU_ACK_REPORT_E                                 = 231  ,
+  WIFIRX_PPDU_NO_ACK_REPORT_E                              = 232  ,
+  WIFISCH_COEX_STATUS_E                                    = 233  ,
+  WIFISCHEDULER_COMMAND_STATUS_E                           = 234  ,
+  WIFISCHEDULER_RX_PPDU_NO_RESPONSE_STATUS_E               = 235  ,
+  WIFITX_FES_STATUS_PROT_E                                 = 236  ,
+  WIFITX_FES_STATUS_START_PPDU_E                           = 237  ,
+  WIFITX_FES_STATUS_START_PROT_E                           = 238  ,
+  WIFITXPCU_PHYTX_DEBUG32_E                                = 239  ,
+  WIFITXPCU_PHYTX_OTHER_TRANSMIT_INFO32_E                  = 240  ,
+  WIFITX_MPDU_COUNT_TRANSFER_END_E                         = 241  ,
+  WIFIWHO_ANCHOR_OFFSET_E                                  = 242  ,
+  WIFIWHO_ANCHOR_VALUE_E                                   = 243  ,
+  WIFIWHO_CCE_INFO_E                                       = 244  ,
+  WIFIWHO_COMMIT_E                                         = 245  ,
+  WIFIWHO_COMMIT_DONE_E                                    = 246  ,
+  WIFIWHO_FLUSH_E                                          = 247  ,
+  WIFIWHO_L2_LLC_E                                         = 248  ,
+  WIFIWHO_L2_PAYLOAD_E                                     = 249  ,
+  WIFIWHO_L3_CHECKSUM_E                                    = 250  ,
+  WIFIWHO_L3_INFO_E                                        = 251  ,
+  WIFIWHO_L4_CHECKSUM_E                                    = 252  ,
+  WIFIWHO_L4_INFO_E                                        = 253  ,
+  WIFIWHO_MSDU_E                                           = 254  ,
+  WIFIWHO_MSDU_MISC_E                                      = 255  ,
+  WIFIWHO_PACKET_DATA_E                                    = 256  ,
+  WIFIWHO_PACKET_HDR_E                                     = 257  ,
+  WIFIWHO_PPDU_END_E                                       = 258  ,
+  WIFIWHO_PPDU_START_E                                     = 259  ,
+  WIFIWHO_TSO_E                                            = 260  ,
+  WIFIWHO_WMAC_HEADER_PV0_E                                = 261  ,
+  WIFIWHO_WMAC_HEADER_PV1_E                                = 262  ,
+  WIFIWHO_WMAC_IV_E                                        = 263  ,
+  WIFIMPDU_INFO_END_E                                      = 264  ,
+  WIFIMPDU_INFO_BITMAP_E                                   = 265  ,
+  WIFITX_QUEUE_EXTENSION_E                                 = 266  ,
+  WIFISCHEDULER_SELFGEN_RESPONSE_STATUS_E                  = 267  ,
+  WIFITQM_UPDATE_TX_MPDU_COUNT_STATUS_E                    = 268  ,
+  WIFITQM_ACKED_MPDU_STATUS_E                              = 269  ,
+  WIFITQM_ADD_MSDU_STATUS_E                                = 270  ,
+  WIFITQM_LIST_GEN_DONE_E                                  = 271  ,
+  WIFIWHO_TERMINATE_E                                      = 272  ,
+  WIFITX_LAST_MPDU_END_E                                   = 273  ,
+  WIFITX_CV_DATA_E                                         = 274  ,
+  WIFIPPDU_TX_END_E                                        = 275  ,
+  WIFIPROT_TX_END_E                                        = 276  ,
+  WIFIMPDU_INFO_GLOBAL_END_E                               = 277  ,
+  WIFITQM_SCH_INSTR_GLOBAL_END_E                           = 278  ,
+  WIFIRX_PPDU_END_USER_STATS_E                             = 279  ,
+  WIFIRX_PPDU_END_USER_STATS_EXT_E                         = 280  ,
+  WIFIREO_GET_QUEUE_STATS_E                                = 281  ,
+  WIFIREO_FLUSH_QUEUE_E                                    = 282  ,
+  WIFIREO_FLUSH_CACHE_E                                    = 283  ,
+  WIFIREO_UNBLOCK_CACHE_E                                  = 284  ,
+  WIFIREO_GET_QUEUE_STATS_STATUS_E                         = 285  ,
+  WIFIREO_FLUSH_QUEUE_STATUS_E                             = 286  ,
+  WIFIREO_FLUSH_CACHE_STATUS_E                             = 287  ,
+  WIFIREO_UNBLOCK_CACHE_STATUS_E                           = 288  ,
+  WIFITQM_FLUSH_CACHE_E                                    = 289  ,
+  WIFITQM_UNBLOCK_CACHE_E                                  = 290  ,
+  WIFITQM_FLUSH_CACHE_STATUS_E                             = 291  ,
+  WIFITQM_UNBLOCK_CACHE_STATUS_E                           = 292  ,
+  WIFIRX_PPDU_END_STATUS_DONE_E                            = 293  ,
+  WIFIRX_STATUS_BUFFER_DONE_E                              = 294  ,
+  WIFISCHEDULER_MLO_SW_MSG_STATUS_E                        = 295  ,
+  WIFISCHEDULER_TXOP_DURATION_TRIGGER_E                    = 296  ,
+  WIFITX_DATA_SYNC_E                                       = 297  ,
+  WIFIPHYRX_CBF_READ_REQUEST_ACK_E                         = 298  ,
+  WIFITQM_GET_MPDU_HEAD_INFO_E                             = 299  ,
+  WIFITQM_SYNC_CMD_E                                       = 300  ,
+  WIFITQM_GET_MPDU_HEAD_INFO_STATUS_E                      = 301  ,
+  WIFITQM_SYNC_CMD_STATUS_E                                = 302  ,
+  WIFITQM_THRESHOLD_DROP_NOTIFICATION_STATUS_E             = 303  ,
+  WIFITQM_DESCRIPTOR_THRESHOLD_REACHED_STATUS_E            = 304  ,
+  WIFIREO_FLUSH_TIMEOUT_LIST_E                             = 305  ,
+  WIFIREO_FLUSH_TIMEOUT_LIST_STATUS_E                      = 306  ,
+  WIFIREO_DESCRIPTOR_THRESHOLD_REACHED_STATUS_E            = 307  ,
+  WIFISCHEDULER_RX_SIFS_RESPONSE_TRIGGER_STATUS_E          = 308  ,
+  WIFIEXAMPLE_USER_TLV_32_NAME_E                           = 309  ,
+  WIFIRX_PPDU_START_USER_INFO_E                            = 310  ,
+  WIFIRX_RING_MASK_E                                       = 311  ,
+  WIFICOEX_MAC_NAP_E                                       = 312  ,
+  WIFIRXPCU_PPDU_END_INFO_E                                = 313  ,
+  WIFIWHO_MESH_CONTROL_E                                   = 314  ,
+  WIFIPDG_SW_MODE_BW_START_E                               = 315  ,
+  WIFIPDG_SW_MODE_BW_END_E                                 = 316  ,
+  WIFIPDG_WAIT_FOR_MAC_REQUEST_E                           = 317  ,
+  WIFIPDG_WAIT_FOR_PHY_REQUEST_E                           = 318  ,
+  WIFISCHEDULER_END_E                                      = 319  ,
+  WIFIRX_PPDU_START_DROPPED_E                              = 320  ,
+  WIFIRX_PPDU_END_DROPPED_E                                = 321  ,
+  WIFIRX_PPDU_END_STATUS_DONE_DROPPED_E                    = 322  ,
+  WIFIRX_MPDU_START_DROPPED_E                              = 323  ,
+  WIFIRX_MSDU_START_DROPPED_E                              = 324  ,
+  WIFIRX_MSDU_END_DROPPED_E                                = 325  ,
+  WIFIRX_MPDU_END_DROPPED_E                                = 326  ,
+  WIFIRX_ATTENTION_DROPPED_E                               = 327  ,
+  WIFITXPCU_USER_SETUP_E                                   = 328  ,
+  WIFIRXPCU_USER_SETUP_EXT_E                               = 329  ,
+  WIFICMD_PART_0_END_E                                     = 330  ,
+  WIFIMACTX_SYNTH_ON_E                                     = 331  ,
+  WIFISCH_CRITICAL_TLV_REFERENCE_E                         = 332  ,
+  WIFITQM_MPDU_GLOBAL_START_E                              = 333  ,
+  WIFIEXAMPLE_TLV_32_E                                     = 334  ,
+  WIFITQM_UPDATE_TX_MSDU_FLOW_E                            = 335  ,
+  WIFITQM_UPDATE_TX_MPDU_QUEUE_HEAD_E                      = 336  ,
+  WIFITQM_UPDATE_TX_MSDU_FLOW_STATUS_E                     = 337  ,
+  WIFITQM_UPDATE_TX_MPDU_QUEUE_HEAD_STATUS_E               = 338  ,
+  WIFIREO_UPDATE_RX_REO_QUEUE_E                            = 339  ,
+  WIFITQM_MPDU_QUEUE_EMPTY_STATUS_E                        = 340  ,
+  WIFITQM_2_SCH_MPDU_AVAILABLE_E                           = 341  ,
+  WIFIPDG_TRIG_RESPONSE_E                                  = 342  ,
+  WIFITRIGGER_RESPONSE_TX_DONE_E                           = 343  ,
+  WIFIABORT_FROM_PHYRX_DETAILS_E                           = 344  ,
+  WIFISCH_TQM_CMD_WRAPPER_E                                = 345  ,
+  WIFIMPDUS_AVAILABLE_E                                    = 346  ,
+  WIFIRECEIVED_RESPONSE_INFO_PART2_E                       = 347  ,
+  WIFIPHYRX_TX_START_TIMING_E                              = 348  ,
+  WIFITXPCU_PREAMBLE_DONE_E                                = 349  ,
+  WIFINDP_PREAMBLE_DONE_E                                  = 350  ,
+  WIFISCH_TQM_CMD_WRAPPER_RBO_DROP_E                       = 351  ,
+  WIFISCH_TQM_CMD_WRAPPER_CONT_DROP_E                      = 352  ,
+  WIFIMACTX_CLEAR_PREV_TX_INFO_E                           = 353  ,
+  WIFITX_PUNCTURE_SETUP_E                                  = 354  ,
+  WIFIR2R_STATUS_END_E                                     = 355  ,
+  WIFIMACTX_PREFETCH_CV_COMMON_E                           = 356  ,
+  WIFIEND_OF_FLUSH_MARKER_E                                = 357  ,
+  WIFIMACTX_MU_UPLINK_COMMON_PUNC_E                        = 358  ,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_PUNC_E                    = 359  ,
+  WIFIRECEIVED_RESPONSE_USER_7_0_E                         = 360  ,
+  WIFIRECEIVED_RESPONSE_USER_15_8_E                        = 361  ,
+  WIFIRECEIVED_RESPONSE_USER_23_16_E                       = 362  ,
+  WIFIRECEIVED_RESPONSE_USER_31_24_E                       = 363  ,
+  WIFIRECEIVED_RESPONSE_USER_36_32_E                       = 364  ,
+  WIFITX_LOOPBACK_SETUP_E                                  = 365  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_E                = 366  ,
+  WIFISCH_WAIT_INSTR_TX_PATH_E                             = 367  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_TX2TX_E                    = 368  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_EMUPHY_SETUP_E             = 369  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_EVM_DETAILS_E               = 370  ,
+  WIFITX_WUR_DATA_E                                        = 371  ,
+  WIFIRX_PPDU_END_START_E                                  = 372  ,
+  WIFIRX_PPDU_END_MIDDLE_E                                 = 373  ,
+  WIFIRX_PPDU_END_LAST_E                                   = 374  ,
+  WIFIMACTX_BACKOFF_BASED_TRANSMISSION_E                   = 375  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_DL_OFDMA_TX_E              = 376  ,
+  WIFISRP_INFO_E                                           = 377  ,
+  WIFIOBSS_SR_INFO_E                                       = 378  ,
+  WIFISCHEDULER_SW_MSG_STATUS_E                            = 379  ,
+  WIFIHWSCH_RXPCU_MAC_INFO_ANNOUNCEMENT_E                  = 380  ,
+  WIFIRXPCU_SETUP_COMPLETE_E                               = 381  ,
+  WIFISNOOP_PPDU_START_E                                   = 382  ,
+  WIFISNOOP_MPDU_USR_DBG_INFO_E                            = 383  ,
+  WIFISNOOP_MSDU_USR_DBG_INFO_E                            = 384  ,
+  WIFISNOOP_MSDU_USR_DATA_E                                = 385  ,
+  WIFISNOOP_MPDU_USR_STAT_INFO_E                           = 386  ,
+  WIFISNOOP_PPDU_END_E                                     = 387  ,
+  WIFISNOOP_SPARE_E                                        = 388  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_MU_RSSI_COMMON_E            = 390  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_MU_RSSI_USER_E              = 391  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_SCH_DETAILS_E              = 392  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_108P_EVM_DETAILS_E          = 393  ,
+  WIFISCH_TLV_WRAPPER_E                                    = 394  ,
+  WIFISCHEDULER_STATUS_WRAPPER_E                           = 395  ,
+  WIFIMPDU_INFO_6X_E                                       = 396  ,
+  WIFIMACTX_11AZ_USER_DESC_PER_USER_E                      = 397  ,
+  WIFIMACTX_U_SIG_EHT_SU_MU_E                              = 398  ,
+  WIFIMACTX_U_SIG_EHT_TB_E                                 = 399  ,
+  WIFICOEX_TLV_ACC_TLV_TAG0_CFG_E                          = 400  ,
+  WIFICOEX_TLV_ACC_TLV_TAG1_CFG_E                          = 401  ,
+  WIFICOEX_TLV_ACC_TLV_TAG2_CFG_E                          = 402  ,
+  WIFIPHYRX_U_SIG_EHT_SU_MU_E                              = 403  ,
+  WIFIPHYRX_U_SIG_EHT_TB_E                                 = 404  ,
+  WIFICOEX_TLV_ACC_TLV_TAG3_CFG_E                          = 405  ,
+  WIFICOEX_TLV_ACC_TLV_TAG_CGIM_CFG_E                      = 406  ,
+  WIFIMACRX_LMR_READ_REQUEST_E                             = 408  ,
+  WIFIMACRX_LMR_DATA_REQUEST_E                             = 409  ,
+  WIFIPHYRX_LMR_TRANSFER_DONE_E                            = 410  ,
+  WIFIPHYRX_LMR_TRANSFER_ABORT_E                           = 411  ,
+  WIFIPHYRX_LMR_READ_REQUEST_ACK_E                         = 412  ,
+  WIFIMACRX_SECURE_LTF_SEQ_PTR_E                           = 413  ,
+  WIFIPHYRX_USER_INFO_MU_UL_E                              = 414  ,
+  WIFIMPDU_QUEUE_OVERVIEW_E                                = 415  ,
+  WIFISCHEDULER_NAV_INFO_E                                 = 416  ,
+  WIFILMR_PEER_ENTRY_E                                     = 418  ,
+  WIFILMR_MPDU_START_E                                     = 419  ,
+  WIFILMR_DATA_E                                           = 420  ,
+  WIFILMR_MPDU_END_E                                       = 421  ,
+  WIFIREO_GET_QUEUE_1K_STATS_STATUS_E                      = 422  ,
+  WIFIRX_FRAME_1K_BITMAP_ACK_E                             = 423  ,
+  WIFITX_FES_STATUS_1K_BA_E                                = 424  ,
+  WIFITQM_ACKED_1K_MPDU_E                                  = 425  ,
+  WIFIMACRX_INBSS_OBSS_IND_E                               = 426  ,
+  WIFIPHYRX_LOCATION_E                                     = 427  ,
+  WIFIMLO_TX_NOTIFICATION_SU_E                             = 428  ,
+  WIFIMLO_TX_NOTIFICATION_MU_E                             = 429  ,
+  WIFIMLO_TX_REQ_SU_E                                      = 430  ,
+  WIFIMLO_TX_REQ_MU_E                                      = 431  ,
+  WIFIMLO_TX_RESP_E                                        = 432  ,
+  WIFIMLO_RX_NOTIFICATION_E                                = 433  ,
+  WIFIMLO_BKOFF_TRUNC_REQ_E                                = 434  ,
+  WIFIMLO_TBTT_NOTIFICATION_E                              = 435  ,
+  WIFIMLO_MESSAGE_E                                        = 436  ,
+  WIFIMLO_TS_SYNC_MSG_E                                    = 437  ,
+  WIFIMLO_FES_SETUP_E                                      = 438  ,
+  WIFIMLO_PDG_FES_SETUP_SU_E                               = 439  ,
+  WIFIMLO_PDG_FES_SETUP_MU_E                               = 440  ,
+  WIFIMPDU_INFO_1K_BITMAP_E                                = 441  ,
+  WIFIMON_BUFFER_ADDR_E                                    = 442  ,
+  WIFITX_FRAG_STATE_E                                      = 443  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_PHY_CV_RESET_E             = 444  ,
+  WIFIMACTX_OTHER_TRANSMIT_INFO_SW_PEER_IDS_E              = 445  ,
+  WIFIMACTX_EHT_SIG_USR_OFDMA_E                            = 446  ,
+  WIFIPHYRX_EHT_SIG_CMN_PUNC_E                             = 448  ,
+  WIFIPHYRX_EHT_SIG_CMN_OFDMA_E                            = 450  ,
+  WIFIPHYRX_EHT_SIG_USR_OFDMA_E                            = 454  ,
+  WIFIPHYRX_PKT_END_PART1_E                                = 456  ,
+  WIFIMACTX_EXPECT_NDP_RECEPTION_E                         = 457  ,
+  WIFIMACTX_SECURE_LTF_SEQ_PTR_E                           = 458  ,
+  WIFIMLO_PDG_BKOFF_TRUNC_NOTIFY_E                         = 460  ,
+  WIFIPHYRX_11AZ_INTEGRITY_DATA_E                          = 461  ,
+  WIFIPHYTX_LOCATION_E                                     = 462  ,
+  WIFIPHYTX_11AZ_INTEGRITY_DATA_E                          = 463  ,
+  WIFIMACTX_EHT_SIG_USR_SU_E                               = 466  ,
+  WIFIMACTX_EHT_SIG_USR_MU_MIMO_E                          = 467  ,
+  WIFIPHYRX_EHT_SIG_USR_SU_E                               = 468  ,
+  WIFIPHYRX_EHT_SIG_USR_MU_MIMO_E                          = 469  ,
+  WIFIPHYRX_GENERIC_U_SIG_E                                = 470  ,
+  WIFIPHYRX_GENERIC_EHT_SIG_E                              = 471  ,
+  WIFIOVERWRITE_RESP_START_E                               = 472  ,
+  WIFIOVERWRITE_RESP_PREAMBLE_INFO_E                       = 473  ,
+  WIFIOVERWRITE_RESP_FRAME_INFO_E                          = 474  ,
+  WIFIOVERWRITE_RESP_END_E                                 = 475  ,
+  WIFIRXPCU_EARLY_RX_INDICATION_E                          = 476  ,
+  WIFIMON_DROP_E                                           = 477  ,
+  WIFIMACRX_MU_UPLINK_COMMON_SNIFF_E                       = 478  ,
+  WIFIMACRX_MU_UPLINK_USER_SETUP_SNIFF_E                   = 479  ,
+  WIFIMACRX_MU_UPLINK_USER_SEL_SNIFF_E                     = 480  ,
+  WIFIMACRX_MU_UPLINK_FCS_STATUS_SNIFF_E                   = 481  ,
+  WIFIMACTX_PREFETCH_CV_DMA_E                              = 482  ,
+  WIFIMACTX_PREFETCH_CV_PER_USER_E                         = 483  ,
+  WIFIPHYRX_OTHER_RECEIVE_INFO_ALL_SIGB_DETAILS_E          = 484  ,
+  WIFIMACTX_BF_PARAMS_UPDATE_COMMON_E                      = 485  ,
+  WIFIMACTX_BF_PARAMS_UPDATE_PER_USER_E                    = 486  ,
+  WIFIRANGING_USER_DETAILS_E                               = 487  ,
+  WIFIPHYTX_CV_CORR_STATUS_E                               = 488  ,
+  WIFIPHYTX_CV_CORR_COMMON_E                               = 489  ,
+  WIFIPHYTX_CV_CORR_USER_E                                 = 490  ,
+  WIFIMACTX_CV_CORR_COMMON_E                               = 491  ,
+  WIFIMACTX_CV_CORR_MAC_INFO_GROUP_E                       = 492  ,
+  WIFIBW_PUNCTURE_EVAL_WRAPPER_E                           = 493  ,
+  WIFIMACTX_RX_NOTIFICATION_FOR_PHY_E                      = 494  ,
+  WIFIMACTX_TX_NOTIFICATION_FOR_PHY_E                      = 495  ,
+  WIFIMACTX_MU_UPLINK_COMMON_PER_BW_E                      = 496  ,
+  WIFIMACTX_MU_UPLINK_USER_SETUP_PER_BW_E                  = 497  ,
+  WIFIRX_PPDU_END_USER_STATS_EXT2_E                        = 498  ,
+  WIFIFW2SW_MON_E                                          = 499  ,
+  WIFIWSI_DIRECT_MESSAGE_E                                 = 500  ,
+  WIFIMACTX_EMLSR_PRE_SWITCH_E                             = 501  ,
+  WIFIMACTX_EMLSR_SWITCH_E                                 = 502  ,
+  WIFIMACTX_EMLSR_SWITCH_BACK_E                            = 503  ,
+  WIFIPHYTX_EMLSR_SWITCH_ACK_E                             = 504  ,
+  WIFIPHYTX_EMLSR_SWITCH_BACK_ACK_E                        = 505  ,
+  WIFISPARE_REUSE_TAG_0_E                                  = 506  ,
+  WIFISPARE_REUSE_TAG_1_E                                  = 507  ,
+  WIFISPARE_REUSE_TAG_2_E                                  = 508  ,
+  WIFISPARE_REUSE_TAG_3_E                                  = 509  
+} tlv_tag_def__e;
+
+
+#endif
diff --git a/hw/qcn9224/tx_cbf_info.h b/hw/qcn9224/v2/tx_cbf_info.h
similarity index 100%
copy from hw/qcn9224/tx_cbf_info.h
copy to hw/qcn9224/v2/tx_cbf_info.h
diff --git a/hw/qcn9224/tx_fes_setup.h b/hw/qcn9224/v2/tx_fes_setup.h
similarity index 100%
copy from hw/qcn9224/tx_fes_setup.h
copy to hw/qcn9224/v2/tx_fes_setup.h
diff --git a/hw/qcn9224/tx_fes_status_1k_ba.h b/hw/qcn9224/v2/tx_fes_status_1k_ba.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_1k_ba.h
copy to hw/qcn9224/v2/tx_fes_status_1k_ba.h
diff --git a/hw/qcn9224/tx_fes_status_ack_or_ba.h b/hw/qcn9224/v2/tx_fes_status_ack_or_ba.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_ack_or_ba.h
copy to hw/qcn9224/v2/tx_fes_status_ack_or_ba.h
diff --git a/hw/qcn9224/tx_fes_status_end.h b/hw/qcn9224/v2/tx_fes_status_end.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_end.h
copy to hw/qcn9224/v2/tx_fes_status_end.h
diff --git a/hw/qcn9224/tx_fes_status_prot.h b/hw/qcn9224/v2/tx_fes_status_prot.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_prot.h
copy to hw/qcn9224/v2/tx_fes_status_prot.h
diff --git a/hw/qcn9224/tx_fes_status_start.h b/hw/qcn9224/v2/tx_fes_status_start.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_start.h
copy to hw/qcn9224/v2/tx_fes_status_start.h
diff --git a/hw/qcn9224/tx_fes_status_start_ppdu.h b/hw/qcn9224/v2/tx_fes_status_start_ppdu.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_start_ppdu.h
copy to hw/qcn9224/v2/tx_fes_status_start_ppdu.h
diff --git a/hw/qcn9224/tx_fes_status_start_prot.h b/hw/qcn9224/v2/tx_fes_status_start_prot.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_start_prot.h
copy to hw/qcn9224/v2/tx_fes_status_start_prot.h
diff --git a/hw/qcn9224/tx_fes_status_user_ppdu.h b/hw/qcn9224/v2/tx_fes_status_user_ppdu.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_user_ppdu.h
copy to hw/qcn9224/v2/tx_fes_status_user_ppdu.h
diff --git a/hw/qcn9224/tx_fes_status_user_response.h b/hw/qcn9224/v2/tx_fes_status_user_response.h
similarity index 100%
copy from hw/qcn9224/tx_fes_status_user_response.h
copy to hw/qcn9224/v2/tx_fes_status_user_response.h
diff --git a/hw/qcn9224/tx_flush_req.h b/hw/qcn9224/v2/tx_flush_req.h
similarity index 100%
copy from hw/qcn9224/tx_flush_req.h
copy to hw/qcn9224/v2/tx_flush_req.h
diff --git a/hw/qcn9224/tx_mpdu_start.h b/hw/qcn9224/v2/tx_mpdu_start.h
similarity index 100%
copy from hw/qcn9224/tx_mpdu_start.h
copy to hw/qcn9224/v2/tx_mpdu_start.h
diff --git a/hw/qcn9224/v2/tx_msdu_extension.h b/hw/qcn9224/v2/tx_msdu_extension.h
new file mode 100644
index 0000000..cb5decf
--- /dev/null
+++ b/hw/qcn9224/v2/tx_msdu_extension.h
@@ -0,0 +1,532 @@
+
+/* 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_MSDU_EXTENSION_H_
+#define _TX_MSDU_EXTENSION_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18
+
+
+struct tx_msdu_extension {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tso_enable                                              :  1,  
+                      reserved_0a                                             :  6,  
+                      tcp_flag                                                :  9,  
+                      tcp_flag_mask                                           :  9,  
+                      reserved_0b                                             :  7;  
+             uint32_t l2_length                                               : 16,  
+                      ip_length                                               : 16;  
+             uint32_t tcp_seq_number                                          : 32;  
+             uint32_t ip_identification                                       : 16,  
+                      udp_length                                              : 16;  
+             uint32_t checksum_offset                                         : 14,  
+                      partial_checksum_en                                     :  1,  
+                      reserved_4a                                             :  1,  
+                      payload_start_offset                                    : 14,  
+                      reserved_4b                                             :  2;  
+             uint32_t payload_end_offset                                      : 14,  
+                      reserved_5a                                             :  2,  
+                      wds                                                     :  1,  
+                      reserved_5b                                             : 15;  
+             uint32_t buf0_ptr_31_0                                           : 32;  
+             uint32_t buf0_ptr_39_32                                          :  8,  
+                      extn_override                                           :  1,  
+                      encap_type                                              :  2,  
+                      encrypt_type                                            :  4,  
+                      tqm_no_drop                                             :  1,  
+                      buf0_len                                                : 16;  
+             uint32_t buf1_ptr_31_0                                           : 32;  
+             uint32_t buf1_ptr_39_32                                          :  8,  
+                      epd                                                     :  1,  
+                      mesh_enable                                             :  2,  
+                      reserved_9a                                             :  5,  
+                      buf1_len                                                : 16;  
+             uint32_t buf2_ptr_31_0                                           : 32;  
+             uint32_t buf2_ptr_39_32                                          :  8,  
+                      dscp_tid_table_num                                      :  6,  
+                      reserved_11a                                            :  2,  
+                      buf2_len                                                : 16;  
+             uint32_t buf3_ptr_31_0                                           : 32;  
+             uint32_t buf3_ptr_39_32                                          :  8,  
+                      reserved_13a                                            :  8,  
+                      buf3_len                                                : 16;  
+             uint32_t buf4_ptr_31_0                                           : 32;  
+             uint32_t buf4_ptr_39_32                                          :  8,  
+                      reserved_15a                                            :  8,  
+                      buf4_len                                                : 16;  
+             uint32_t buf5_ptr_31_0                                           : 32;  
+             uint32_t buf5_ptr_39_32                                          :  8,  
+                      reserved_17a                                            :  8,  
+                      buf5_len                                                : 16;  
+#else
+             uint32_t reserved_0b                                             :  7,  
+                      tcp_flag_mask                                           :  9,  
+                      tcp_flag                                                :  9,  
+                      reserved_0a                                             :  6,  
+                      tso_enable                                              :  1;  
+             uint32_t ip_length                                               : 16,  
+                      l2_length                                               : 16;  
+             uint32_t tcp_seq_number                                          : 32;  
+             uint32_t udp_length                                              : 16,  
+                      ip_identification                                       : 16;  
+             uint32_t reserved_4b                                             :  2,  
+                      payload_start_offset                                    : 14,  
+                      reserved_4a                                             :  1,  
+                      partial_checksum_en                                     :  1,  
+                      checksum_offset                                         : 14;  
+             uint32_t reserved_5b                                             : 15,  
+                      wds                                                     :  1,  
+                      reserved_5a                                             :  2,  
+                      payload_end_offset                                      : 14;  
+             uint32_t buf0_ptr_31_0                                           : 32;  
+             uint32_t buf0_len                                                : 16,  
+                      tqm_no_drop                                             :  1,  
+                      encrypt_type                                            :  4,  
+                      encap_type                                              :  2,  
+                      extn_override                                           :  1,  
+                      buf0_ptr_39_32                                          :  8;  
+             uint32_t buf1_ptr_31_0                                           : 32;  
+             uint32_t buf1_len                                                : 16,  
+                      reserved_9a                                             :  5,  
+                      mesh_enable                                             :  2,  
+                      epd                                                     :  1,  
+                      buf1_ptr_39_32                                          :  8;  
+             uint32_t buf2_ptr_31_0                                           : 32;  
+             uint32_t buf2_len                                                : 16,  
+                      reserved_11a                                            :  2,  
+                      dscp_tid_table_num                                      :  6,  
+                      buf2_ptr_39_32                                          :  8;  
+             uint32_t buf3_ptr_31_0                                           : 32;  
+             uint32_t buf3_len                                                : 16,  
+                      reserved_13a                                            :  8,  
+                      buf3_ptr_39_32                                          :  8;  
+             uint32_t buf4_ptr_31_0                                           : 32;  
+             uint32_t buf4_len                                                : 16,  
+                      reserved_15a                                            :  8,  
+                      buf4_ptr_39_32                                          :  8;  
+             uint32_t buf5_ptr_31_0                                           : 32;  
+             uint32_t buf5_len                                                : 16,  
+                      reserved_17a                                            :  8,  
+                      buf5_ptr_39_32                                          :  8;  
+#endif
+};
+
+
+ 
+
+#define TX_MSDU_EXTENSION_TSO_ENABLE_OFFSET                                         0x00000000
+#define TX_MSDU_EXTENSION_TSO_ENABLE_LSB                                            0
+#define TX_MSDU_EXTENSION_TSO_ENABLE_MSB                                            0
+#define TX_MSDU_EXTENSION_TSO_ENABLE_MASK                                           0x00000001
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_0A_OFFSET                                        0x00000000
+#define TX_MSDU_EXTENSION_RESERVED_0A_LSB                                           1
+#define TX_MSDU_EXTENSION_RESERVED_0A_MSB                                           6
+#define TX_MSDU_EXTENSION_RESERVED_0A_MASK                                          0x0000007e
+
+
+ 
+
+#define TX_MSDU_EXTENSION_TCP_FLAG_OFFSET                                           0x00000000
+#define TX_MSDU_EXTENSION_TCP_FLAG_LSB                                              7
+#define TX_MSDU_EXTENSION_TCP_FLAG_MSB                                              15
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK                                             0x0000ff80
+
+
+ 
+
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_OFFSET                                      0x00000000
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_LSB                                         16
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MSB                                         24
+#define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MASK                                        0x01ff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_0B_OFFSET                                        0x00000000
+#define TX_MSDU_EXTENSION_RESERVED_0B_LSB                                           25
+#define TX_MSDU_EXTENSION_RESERVED_0B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_0B_MASK                                          0xfe000000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_L2_LENGTH_OFFSET                                          0x00000004
+#define TX_MSDU_EXTENSION_L2_LENGTH_LSB                                             0
+#define TX_MSDU_EXTENSION_L2_LENGTH_MSB                                             15
+#define TX_MSDU_EXTENSION_L2_LENGTH_MASK                                            0x0000ffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_IP_LENGTH_OFFSET                                          0x00000004
+#define TX_MSDU_EXTENSION_IP_LENGTH_LSB                                             16
+#define TX_MSDU_EXTENSION_IP_LENGTH_MSB                                             31
+#define TX_MSDU_EXTENSION_IP_LENGTH_MASK                                            0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_OFFSET                                     0x00000008
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_LSB                                        0
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MSB                                        31
+#define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MASK                                       0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_OFFSET                                  0x0000000c
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_LSB                                     0
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MSB                                     15
+#define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MASK                                    0x0000ffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_UDP_LENGTH_OFFSET                                         0x0000000c
+#define TX_MSDU_EXTENSION_UDP_LENGTH_LSB                                            16
+#define TX_MSDU_EXTENSION_UDP_LENGTH_MSB                                            31
+#define TX_MSDU_EXTENSION_UDP_LENGTH_MASK                                           0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_OFFSET                                    0x00000010
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_LSB                                       0
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MSB                                       13
+#define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MASK                                      0x00003fff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_OFFSET                                0x00000010
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_LSB                                   14
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MSB                                   14
+#define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MASK                                  0x00004000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_4A_OFFSET                                        0x00000010
+#define TX_MSDU_EXTENSION_RESERVED_4A_LSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_4A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_4A_MASK                                          0x00008000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_OFFSET                               0x00000010
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_LSB                                  16
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MSB                                  29
+#define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MASK                                 0x3fff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_4B_OFFSET                                        0x00000010
+#define TX_MSDU_EXTENSION_RESERVED_4B_LSB                                           30
+#define TX_MSDU_EXTENSION_RESERVED_4B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_4B_MASK                                          0xc0000000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_OFFSET                                 0x00000014
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_LSB                                    0
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MSB                                    13
+#define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MASK                                   0x00003fff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_5A_OFFSET                                        0x00000014
+#define TX_MSDU_EXTENSION_RESERVED_5A_LSB                                           14
+#define TX_MSDU_EXTENSION_RESERVED_5A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_5A_MASK                                          0x0000c000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_WDS_OFFSET                                                0x00000014
+#define TX_MSDU_EXTENSION_WDS_LSB                                                   16
+#define TX_MSDU_EXTENSION_WDS_MSB                                                   16
+#define TX_MSDU_EXTENSION_WDS_MASK                                                  0x00010000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_5B_OFFSET                                        0x00000014
+#define TX_MSDU_EXTENSION_RESERVED_5B_LSB                                           17
+#define TX_MSDU_EXTENSION_RESERVED_5B_MSB                                           31
+#define TX_MSDU_EXTENSION_RESERVED_5B_MASK                                          0xfffe0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_OFFSET                                      0x00000018
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_OFFSET                                     0x0000001c
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_OFFSET                                      0x0000001c
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_LSB                                         8
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MSB                                         8
+#define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MASK                                        0x00000100
+
+
+ 
+
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_OFFSET                                         0x0000001c
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_LSB                                            9
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_MSB                                            10
+#define TX_MSDU_EXTENSION_ENCAP_TYPE_MASK                                           0x00000600
+
+
+ 
+
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_OFFSET                                       0x0000001c
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_LSB                                          11
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MSB                                          14
+#define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MASK                                         0x00007800
+
+
+ 
+
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_OFFSET                                        0x0000001c
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_LSB                                           15
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_MSB                                           15
+#define TX_MSDU_EXTENSION_TQM_NO_DROP_MASK                                          0x00008000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF0_LEN_OFFSET                                           0x0000001c
+#define TX_MSDU_EXTENSION_BUF0_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF0_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF0_LEN_MASK                                             0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_OFFSET                                      0x00000020
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_OFFSET                                     0x00000024
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_EPD_OFFSET                                                0x00000024
+#define TX_MSDU_EXTENSION_EPD_LSB                                                   8
+#define TX_MSDU_EXTENSION_EPD_MSB                                                   8
+#define TX_MSDU_EXTENSION_EPD_MASK                                                  0x00000100
+
+
+ 
+
+#define TX_MSDU_EXTENSION_MESH_ENABLE_OFFSET                                        0x00000024
+#define TX_MSDU_EXTENSION_MESH_ENABLE_LSB                                           9
+#define TX_MSDU_EXTENSION_MESH_ENABLE_MSB                                           10
+#define TX_MSDU_EXTENSION_MESH_ENABLE_MASK                                          0x00000600
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_9A_OFFSET                                        0x00000024
+#define TX_MSDU_EXTENSION_RESERVED_9A_LSB                                           11
+#define TX_MSDU_EXTENSION_RESERVED_9A_MSB                                           15
+#define TX_MSDU_EXTENSION_RESERVED_9A_MASK                                          0x0000f800
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF1_LEN_OFFSET                                           0x00000024
+#define TX_MSDU_EXTENSION_BUF1_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF1_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF1_LEN_MASK                                             0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_OFFSET                                      0x00000028
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_OFFSET                                     0x0000002c
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_OFFSET                                 0x0000002c
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_LSB                                    8
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MSB                                    13
+#define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MASK                                   0x00003f00
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_11A_OFFSET                                       0x0000002c
+#define TX_MSDU_EXTENSION_RESERVED_11A_LSB                                          14
+#define TX_MSDU_EXTENSION_RESERVED_11A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_11A_MASK                                         0x0000c000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF2_LEN_OFFSET                                           0x0000002c
+#define TX_MSDU_EXTENSION_BUF2_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF2_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF2_LEN_MASK                                             0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_OFFSET                                      0x00000030
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_OFFSET                                     0x00000034
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_13A_OFFSET                                       0x00000034
+#define TX_MSDU_EXTENSION_RESERVED_13A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_13A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_13A_MASK                                         0x0000ff00
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF3_LEN_OFFSET                                           0x00000034
+#define TX_MSDU_EXTENSION_BUF3_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF3_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF3_LEN_MASK                                             0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_OFFSET                                      0x00000038
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_OFFSET                                     0x0000003c
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_15A_OFFSET                                       0x0000003c
+#define TX_MSDU_EXTENSION_RESERVED_15A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_15A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_15A_MASK                                         0x0000ff00
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF4_LEN_OFFSET                                           0x0000003c
+#define TX_MSDU_EXTENSION_BUF4_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF4_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF4_LEN_MASK                                             0xffff0000
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_OFFSET                                      0x00000040
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_LSB                                         0
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MSB                                         31
+#define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MASK                                        0xffffffff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_OFFSET                                     0x00000044
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_LSB                                        0
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MSB                                        7
+#define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MASK                                       0x000000ff
+
+
+ 
+
+#define TX_MSDU_EXTENSION_RESERVED_17A_OFFSET                                       0x00000044
+#define TX_MSDU_EXTENSION_RESERVED_17A_LSB                                          8
+#define TX_MSDU_EXTENSION_RESERVED_17A_MSB                                          15
+#define TX_MSDU_EXTENSION_RESERVED_17A_MASK                                         0x0000ff00
+
+
+ 
+
+#define TX_MSDU_EXTENSION_BUF5_LEN_OFFSET                                           0x00000044
+#define TX_MSDU_EXTENSION_BUF5_LEN_LSB                                              16
+#define TX_MSDU_EXTENSION_BUF5_LEN_MSB                                              31
+#define TX_MSDU_EXTENSION_BUF5_LEN_MASK                                             0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/tx_msdu_start.h b/hw/qcn9224/v2/tx_msdu_start.h
similarity index 100%
copy from hw/qcn9224/tx_msdu_start.h
copy to hw/qcn9224/v2/tx_msdu_start.h
diff --git a/hw/qcn9224/tx_peer_entry.h b/hw/qcn9224/v2/tx_peer_entry.h
similarity index 100%
copy from hw/qcn9224/tx_peer_entry.h
copy to hw/qcn9224/v2/tx_peer_entry.h
diff --git a/hw/qcn9224/tx_queue_extension.h b/hw/qcn9224/v2/tx_queue_extension.h
similarity index 100%
copy from hw/qcn9224/tx_queue_extension.h
copy to hw/qcn9224/v2/tx_queue_extension.h
diff --git a/hw/qcn9224/v2/tx_rate_stats_info.h b/hw/qcn9224/v2/tx_rate_stats_info.h
new file mode 100644
index 0000000..a280ddb
--- /dev/null
+++ b/hw/qcn9224/v2/tx_rate_stats_info.h
@@ -0,0 +1,152 @@
+
+/* 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_RATE_STATS_INFO_H_
+#define _TX_RATE_STATS_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2
+
+
+struct tx_rate_stats_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t tx_rate_stats_info_valid                                :  1,  
+                      transmit_bw                                             :  3,  
+                      transmit_pkt_type                                       :  4,  
+                      transmit_stbc                                           :  1,  
+                      transmit_ldpc                                           :  1,  
+                      transmit_sgi                                            :  2,  
+                      transmit_mcs                                            :  4,  
+                      ofdma_transmission                                      :  1,  
+                      tones_in_ru                                             : 12,  
+                      reserved_0a                                             :  3;  
+             uint32_t ppdu_transmission_tsf                                   : 32;  
+#else
+             uint32_t reserved_0a                                             :  3,  
+                      tones_in_ru                                             : 12,  
+                      ofdma_transmission                                      :  1,  
+                      transmit_mcs                                            :  4,  
+                      transmit_sgi                                            :  2,  
+                      transmit_ldpc                                           :  1,  
+                      transmit_stbc                                           :  1,  
+                      transmit_pkt_type                                       :  4,  
+                      transmit_bw                                             :  3,  
+                      tx_rate_stats_info_valid                                :  1;  
+             uint32_t ppdu_transmission_tsf                                   : 32;  
+#endif
+};
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_OFFSET                          0x00000000
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_LSB                             0
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_MSB                             0
+#define TX_RATE_STATS_INFO_TX_RATE_STATS_INFO_VALID_MASK                            0x00000001
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_LSB                                          1
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_MSB                                          3
+#define TX_RATE_STATS_INFO_TRANSMIT_BW_MASK                                         0x0000000e
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_OFFSET                                 0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_LSB                                    4
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_MSB                                    7
+#define TX_RATE_STATS_INFO_TRANSMIT_PKT_TYPE_MASK                                   0x000000f0
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_OFFSET                                     0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_LSB                                        8
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_MSB                                        8
+#define TX_RATE_STATS_INFO_TRANSMIT_STBC_MASK                                       0x00000100
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_OFFSET                                     0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_LSB                                        9
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_MSB                                        9
+#define TX_RATE_STATS_INFO_TRANSMIT_LDPC_MASK                                       0x00000200
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_OFFSET                                      0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_LSB                                         10
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_MSB                                         11
+#define TX_RATE_STATS_INFO_TRANSMIT_SGI_MASK                                        0x00000c00
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_OFFSET                                      0x00000000
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_LSB                                         12
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_MSB                                         15
+#define TX_RATE_STATS_INFO_TRANSMIT_MCS_MASK                                        0x0000f000
+
+
+ 
+
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_OFFSET                                0x00000000
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_LSB                                   16
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_MSB                                   16
+#define TX_RATE_STATS_INFO_OFDMA_TRANSMISSION_MASK                                  0x00010000
+
+
+ 
+
+#define TX_RATE_STATS_INFO_TONES_IN_RU_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_TONES_IN_RU_LSB                                          17
+#define TX_RATE_STATS_INFO_TONES_IN_RU_MSB                                          28
+#define TX_RATE_STATS_INFO_TONES_IN_RU_MASK                                         0x1ffe0000
+
+
+ 
+
+#define TX_RATE_STATS_INFO_RESERVED_0A_OFFSET                                       0x00000000
+#define TX_RATE_STATS_INFO_RESERVED_0A_LSB                                          29
+#define TX_RATE_STATS_INFO_RESERVED_0A_MSB                                          31
+#define TX_RATE_STATS_INFO_RESERVED_0A_MASK                                         0xe0000000
+
+
+ 
+
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_OFFSET                             0x00000004
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_LSB                                0
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_MSB                                31
+#define TX_RATE_STATS_INFO_PPDU_TRANSMISSION_TSF_MASK                               0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/tx_raw_or_native_frame_setup.h b/hw/qcn9224/v2/tx_raw_or_native_frame_setup.h
similarity index 100%
copy from hw/qcn9224/tx_raw_or_native_frame_setup.h
copy to hw/qcn9224/v2/tx_raw_or_native_frame_setup.h
diff --git a/hw/qcn9224/v2/txpcu_buffer_basics.h b/hw/qcn9224/v2/txpcu_buffer_basics.h
new file mode 100644
index 0000000..9d42111
--- /dev/null
+++ b/hw/qcn9224/v2/txpcu_buffer_basics.h
@@ -0,0 +1,72 @@
+
+/* 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 _TXPCU_BUFFER_BASICS_H_
+#define _TXPCU_BUFFER_BASICS_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_TXPCU_BUFFER_BASICS 1
+
+
+struct txpcu_buffer_basics {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t available_memory                                        :  8,  
+                      partial_tx_data_tlv_count                               :  8,  
+                      tx_data_tlv_count                                       : 16;  
+#else
+             uint32_t tx_data_tlv_count                                       : 16,  
+                      partial_tx_data_tlv_count                               :  8,  
+                      available_memory                                        :  8;  
+#endif
+};
+
+
+ 
+
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_OFFSET                                 0x00000000
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_LSB                                    0
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_MSB                                    7
+#define TXPCU_BUFFER_BASICS_AVAILABLE_MEMORY_MASK                                   0x000000ff
+
+
+ 
+
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_OFFSET                        0x00000000
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_LSB                           8
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_MSB                           15
+#define TXPCU_BUFFER_BASICS_PARTIAL_TX_DATA_TLV_COUNT_MASK                          0x0000ff00
+
+
+ 
+
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_OFFSET                                0x00000000
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_LSB                                   16
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_MSB                                   31
+#define TXPCU_BUFFER_BASICS_TX_DATA_TLV_COUNT_MASK                                  0xffff0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/txpcu_buffer_status.h b/hw/qcn9224/v2/txpcu_buffer_status.h
similarity index 100%
copy from hw/qcn9224/txpcu_buffer_status.h
copy to hw/qcn9224/v2/txpcu_buffer_status.h
diff --git a/hw/qcn9224/txpcu_user_buffer_status.h b/hw/qcn9224/v2/txpcu_user_buffer_status.h
similarity index 100%
copy from hw/qcn9224/txpcu_user_buffer_status.h
copy to hw/qcn9224/v2/txpcu_user_buffer_status.h
diff --git a/hw/qcn9224/v2/u_sig_eht_su_mu_info.h b/hw/qcn9224/v2/u_sig_eht_su_mu_info.h
new file mode 100644
index 0000000..694b51c
--- /dev/null
+++ b/hw/qcn9224/v2/u_sig_eht_su_mu_info.h
@@ -0,0 +1,242 @@
+
+/* 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 _U_SIG_EHT_SU_MU_INFO_H_
+#define _U_SIG_EHT_SU_MU_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_U_SIG_EHT_SU_MU_INFO 2
+
+
+struct u_sig_eht_su_mu_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_version                                             :  3,  
+                      transmit_bw                                             :  3,  
+                      dl_ul_flag                                              :  1,  
+                      bss_color_id                                            :  6,  
+                      txop_duration                                           :  7,  
+                      disregard_0a                                            :  5,  
+                      validate_0b                                             :  1,  
+                      reserved_0c                                             :  6;  
+             uint32_t eht_ppdu_sig_cmn_type                                   :  2,  
+                      validate_1a                                             :  1,  
+                      punctured_channel_information                           :  5,  
+                      validate_1b                                             :  1,  
+                      mcs_of_eht_sig                                          :  2,  
+                      num_eht_sig_symbols                                     :  5,  
+                      crc                                                     :  4,  
+                      tail                                                    :  6,  
+                      dot11ax_su_extended                                     :  1,  
+                      reserved_1d                                             :  3,  
+                      rx_ndp                                                  :  1,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0c                                             :  6,  
+                      validate_0b                                             :  1,  
+                      disregard_0a                                            :  5,  
+                      txop_duration                                           :  7,  
+                      bss_color_id                                            :  6,  
+                      dl_ul_flag                                              :  1,  
+                      transmit_bw                                             :  3,  
+                      phy_version                                             :  3;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      rx_ndp                                                  :  1,  
+                      reserved_1d                                             :  3,  
+                      dot11ax_su_extended                                     :  1,  
+                      tail                                                    :  6,  
+                      crc                                                     :  4,  
+                      num_eht_sig_symbols                                     :  5,  
+                      mcs_of_eht_sig                                          :  2,  
+                      validate_1b                                             :  1,  
+                      punctured_channel_information                           :  5,  
+                      validate_1a                                             :  1,  
+                      eht_ppdu_sig_cmn_type                                   :  2;  
+#endif
+};
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_LSB                                        0
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_MSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_PHY_VERSION_MASK                                       0x00000007
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_LSB                                        3
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_MSB                                        5
+#define U_SIG_EHT_SU_MU_INFO_TRANSMIT_BW_MASK                                       0x00000038
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_OFFSET                                      0x00000000
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_LSB                                         6
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_MSB                                         6
+#define U_SIG_EHT_SU_MU_INFO_DL_UL_FLAG_MASK                                        0x00000040
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_OFFSET                                    0x00000000
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_LSB                                       7
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_MSB                                       12
+#define U_SIG_EHT_SU_MU_INFO_BSS_COLOR_ID_MASK                                      0x00001f80
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_OFFSET                                   0x00000000
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_LSB                                      13
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_MSB                                      19
+#define U_SIG_EHT_SU_MU_INFO_TXOP_DURATION_MASK                                     0x000fe000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_OFFSET                                    0x00000000
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_LSB                                       20
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_MSB                                       24
+#define U_SIG_EHT_SU_MU_INFO_DISREGARD_0A_MASK                                      0x01f00000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_LSB                                        25
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_MSB                                        25
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_0B_MASK                                       0x02000000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_OFFSET                                     0x00000000
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_LSB                                        26
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_MSB                                        31
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_0C_MASK                                       0xfc000000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_OFFSET                           0x00000004
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_LSB                              0
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_MSB                              1
+#define U_SIG_EHT_SU_MU_INFO_EHT_PPDU_SIG_CMN_TYPE_MASK                             0x00000003
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_LSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_MSB                                        2
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1A_MASK                                       0x00000004
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_OFFSET                   0x00000004
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_LSB                      3
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_MSB                      7
+#define U_SIG_EHT_SU_MU_INFO_PUNCTURED_CHANNEL_INFORMATION_MASK                     0x000000f8
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_LSB                                        8
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_MSB                                        8
+#define U_SIG_EHT_SU_MU_INFO_VALIDATE_1B_MASK                                       0x00000100
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_OFFSET                                  0x00000004
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_LSB                                     9
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_MSB                                     10
+#define U_SIG_EHT_SU_MU_INFO_MCS_OF_EHT_SIG_MASK                                    0x00000600
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_OFFSET                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_LSB                                11
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_MSB                                15
+#define U_SIG_EHT_SU_MU_INFO_NUM_EHT_SIG_SYMBOLS_MASK                               0x0000f800
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_CRC_OFFSET                                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_CRC_LSB                                                16
+#define U_SIG_EHT_SU_MU_INFO_CRC_MSB                                                19
+#define U_SIG_EHT_SU_MU_INFO_CRC_MASK                                               0x000f0000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_TAIL_OFFSET                                            0x00000004
+#define U_SIG_EHT_SU_MU_INFO_TAIL_LSB                                               20
+#define U_SIG_EHT_SU_MU_INFO_TAIL_MSB                                               25
+#define U_SIG_EHT_SU_MU_INFO_TAIL_MASK                                              0x03f00000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_OFFSET                             0x00000004
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_LSB                                26
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_MSB                                26
+#define U_SIG_EHT_SU_MU_INFO_DOT11AX_SU_EXTENDED_MASK                               0x04000000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_OFFSET                                     0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_LSB                                        27
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_MSB                                        29
+#define U_SIG_EHT_SU_MU_INFO_RESERVED_1D_MASK                                       0x38000000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_OFFSET                                          0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_LSB                                             30
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_MSB                                             30
+#define U_SIG_EHT_SU_MU_INFO_RX_NDP_MASK                                            0x40000000
+
+
+ 
+
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                       0x00000004
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                          31
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                          31
+#define U_SIG_EHT_SU_MU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                         0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/u_sig_eht_tb_info.h b/hw/qcn9224/v2/u_sig_eht_tb_info.h
new file mode 100644
index 0000000..c03d08b
--- /dev/null
+++ b/hw/qcn9224/v2/u_sig_eht_tb_info.h
@@ -0,0 +1,192 @@
+
+/* 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 _U_SIG_EHT_TB_INFO_H_
+#define _U_SIG_EHT_TB_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_U_SIG_EHT_TB_INFO 2
+
+
+struct u_sig_eht_tb_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t phy_version                                             :  3,  
+                      transmit_bw                                             :  3,  
+                      dl_ul_flag                                              :  1,  
+                      bss_color_id                                            :  6,  
+                      txop_duration                                           :  7,  
+                      disregard_0a                                            :  6,  
+                      reserved_0c                                             :  6;  
+             uint32_t eht_ppdu_sig_cmn_type                                   :  2,  
+                      validate_1a                                             :  1,  
+                      spatial_reuse                                           :  8,  
+                      disregard_1b                                            :  5,  
+                      crc                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_1c                                             :  5,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0c                                             :  6,  
+                      disregard_0a                                            :  6,  
+                      txop_duration                                           :  7,  
+                      bss_color_id                                            :  6,  
+                      dl_ul_flag                                              :  1,  
+                      transmit_bw                                             :  3,  
+                      phy_version                                             :  3;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_1c                                             :  5,  
+                      tail                                                    :  6,  
+                      crc                                                     :  4,  
+                      disregard_1b                                            :  5,  
+                      spatial_reuse                                           :  8,  
+                      validate_1a                                             :  1,  
+                      eht_ppdu_sig_cmn_type                                   :  2;  
+#endif
+};
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_LSB                                           0
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_MSB                                           2
+#define U_SIG_EHT_TB_INFO_PHY_VERSION_MASK                                          0x00000007
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_LSB                                           3
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MSB                                           5
+#define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MASK                                          0x00000038
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_OFFSET                                         0x00000000
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_LSB                                            6
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MSB                                            6
+#define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MASK                                           0x00000040
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_OFFSET                                       0x00000000
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_LSB                                          7
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MSB                                          12
+#define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MASK                                         0x00001f80
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_OFFSET                                      0x00000000
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_LSB                                         13
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_MSB                                         19
+#define U_SIG_EHT_TB_INFO_TXOP_DURATION_MASK                                        0x000fe000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_OFFSET                                       0x00000000
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_LSB                                          20
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_MSB                                          25
+#define U_SIG_EHT_TB_INFO_DISREGARD_0A_MASK                                         0x03f00000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_OFFSET                                        0x00000000
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_LSB                                           26
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_MSB                                           31
+#define U_SIG_EHT_TB_INFO_RESERVED_0C_MASK                                          0xfc000000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_OFFSET                              0x00000004
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_LSB                                 0
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MSB                                 1
+#define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MASK                                0x00000003
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_OFFSET                                        0x00000004
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_LSB                                           2
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_MSB                                           2
+#define U_SIG_EHT_TB_INFO_VALIDATE_1A_MASK                                          0x00000004
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_OFFSET                                      0x00000004
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_LSB                                         3
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MSB                                         10
+#define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MASK                                        0x000007f8
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_OFFSET                                       0x00000004
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_LSB                                          11
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_MSB                                          15
+#define U_SIG_EHT_TB_INFO_DISREGARD_1B_MASK                                         0x0000f800
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_CRC_OFFSET                                                0x00000004
+#define U_SIG_EHT_TB_INFO_CRC_LSB                                                   16
+#define U_SIG_EHT_TB_INFO_CRC_MSB                                                   19
+#define U_SIG_EHT_TB_INFO_CRC_MASK                                                  0x000f0000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_TAIL_OFFSET                                               0x00000004
+#define U_SIG_EHT_TB_INFO_TAIL_LSB                                                  20
+#define U_SIG_EHT_TB_INFO_TAIL_MSB                                                  25
+#define U_SIG_EHT_TB_INFO_TAIL_MASK                                                 0x03f00000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_OFFSET                                        0x00000004
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_LSB                                           26
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_MSB                                           30
+#define U_SIG_EHT_TB_INFO_RESERVED_1C_MASK                                          0x7c000000
+
+
+ 
+
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                          0x00000004
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                             31
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                             31
+#define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                            0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/unallocated_ru_160_info.h b/hw/qcn9224/v2/unallocated_ru_160_info.h
new file mode 100644
index 0000000..971b8f7
--- /dev/null
+++ b/hw/qcn9224/v2/unallocated_ru_160_info.h
@@ -0,0 +1,82 @@
+
+/* 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 _UNALLOCATED_RU_160_INFO_H_
+#define _UNALLOCATED_RU_160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNALLOCATED_RU_160_INFO 1
+
+
+struct unallocated_ru_160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t subband80_0_cc0                                         :  8,  
+                      subband80_0_cc1                                         :  8,  
+                      subband80_1_cc0                                         :  8,  
+                      subband80_1_cc1                                         :  8;  
+#else
+             uint32_t subband80_1_cc1                                         :  8,  
+                      subband80_1_cc0                                         :  8,  
+                      subband80_0_cc1                                         :  8,  
+                      subband80_0_cc0                                         :  8;  
+#endif
+};
+
+
+ 
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_LSB                                 0
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_MSB                                 7
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC0_MASK                                0x000000ff
+
+
+ 
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_LSB                                 8
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_MSB                                 15
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_0_CC1_MASK                                0x0000ff00
+
+
+ 
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_LSB                                 16
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_MSB                                 23
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC0_MASK                                0x00ff0000
+
+
+ 
+
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_OFFSET                              0x00000000
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_LSB                                 24
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_MSB                                 31
+#define UNALLOCATED_RU_160_INFO_SUBBAND80_1_CC1_MASK                                0xff000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/uniform_descriptor_header.h b/hw/qcn9224/v2/uniform_descriptor_header.h
new file mode 100644
index 0000000..d2b2429
--- /dev/null
+++ b/hw/qcn9224/v2/uniform_descriptor_header.h
@@ -0,0 +1,72 @@
+
+/* 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 _UNIFORM_DESCRIPTOR_HEADER_H_
+#define _UNIFORM_DESCRIPTOR_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_DESCRIPTOR_HEADER 1
+
+
+struct uniform_descriptor_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t owner                                                   :  4,  
+                      buffer_type                                             :  4,  
+                      reserved_0a                                             : 24;  
+#else
+             uint32_t reserved_0a                                             : 24,  
+                      buffer_type                                             :  4,  
+                      owner                                                   :  4;  
+#endif
+};
+
+
+ 
+
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_OFFSET                                      0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_LSB                                         0
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_MSB                                         3
+#define UNIFORM_DESCRIPTOR_HEADER_OWNER_MASK                                        0x0000000f
+
+
+ 
+
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET                                0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB                                   4
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_MSB                                   7
+#define UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK                                  0x000000f0
+
+
+ 
+
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET                                0x00000000
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_LSB                                   8
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_MSB                                   31
+#define UNIFORM_DESCRIPTOR_HEADER_RESERVED_0A_MASK                                  0xffffff00
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/uniform_reo_cmd_header.h b/hw/qcn9224/v2/uniform_reo_cmd_header.h
new file mode 100644
index 0000000..7e80d43
--- /dev/null
+++ b/hw/qcn9224/v2/uniform_reo_cmd_header.h
@@ -0,0 +1,72 @@
+
+/* 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 _UNIFORM_REO_CMD_HEADER_H_
+#define _UNIFORM_REO_CMD_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER 1
+
+
+struct uniform_reo_cmd_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_cmd_number                                          : 16,  
+                      reo_status_required                                     :  1,  
+                      reserved_0a                                             : 15;  
+#else
+             uint32_t reserved_0a                                             : 15,  
+                      reo_status_required                                     :  1,  
+                      reo_cmd_number                                          : 16;  
+#endif
+};
+
+
+ 
+
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_OFFSET                                0x00000000
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_LSB                                   0
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_MSB                                   15
+#define UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_MASK                                  0x0000ffff
+
+
+ 
+
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET                           0x00000000
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_LSB                              16
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_MSB                              16
+#define UNIFORM_REO_CMD_HEADER_REO_STATUS_REQUIRED_MASK                             0x00010000
+
+
+ 
+
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_OFFSET                                   0x00000000
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_LSB                                      17
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_MSB                                      31
+#define UNIFORM_REO_CMD_HEADER_RESERVED_0A_MASK                                     0xfffe0000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/uniform_reo_status_header.h b/hw/qcn9224/v2/uniform_reo_status_header.h
new file mode 100644
index 0000000..0dd75a1
--- /dev/null
+++ b/hw/qcn9224/v2/uniform_reo_status_header.h
@@ -0,0 +1,92 @@
+
+/* 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 _UNIFORM_REO_STATUS_HEADER_H_
+#define _UNIFORM_REO_STATUS_HEADER_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_UNIFORM_REO_STATUS_HEADER 2
+
+
+struct uniform_reo_status_header {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t reo_status_number                                       : 16,  
+                      cmd_execution_time                                      : 10,  
+                      reo_cmd_execution_status                                :  2,  
+                      reserved_0a                                             :  4;  
+             uint32_t timestamp                                               : 32;  
+#else
+             uint32_t reserved_0a                                             :  4,  
+                      reo_cmd_execution_status                                :  2,  
+                      cmd_execution_time                                      : 10,  
+                      reo_status_number                                       : 16;  
+             uint32_t timestamp                                               : 32;  
+#endif
+};
+
+
+ 
+
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET                          0x00000000
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_LSB                             0
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_MSB                             15
+#define UNIFORM_REO_STATUS_HEADER_REO_STATUS_NUMBER_MASK                            0x0000ffff
+
+
+ 
+
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET                         0x00000000
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_LSB                            16
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_MSB                            25
+#define UNIFORM_REO_STATUS_HEADER_CMD_EXECUTION_TIME_MASK                           0x03ff0000
+
+
+ 
+
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET                   0x00000000
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB                      26
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB                      27
+#define UNIFORM_REO_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK                     0x0c000000
+
+
+ 
+
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_OFFSET                                0x00000000
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_LSB                                   28
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_MSB                                   31
+#define UNIFORM_REO_STATUS_HEADER_RESERVED_0A_MASK                                  0xf0000000
+
+
+ 
+
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_OFFSET                                  0x00000004
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_LSB                                     0
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_MSB                                     31
+#define UNIFORM_REO_STATUS_HEADER_TIMESTAMP_MASK                                    0xffffffff
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_a_info.h b/hw/qcn9224/v2/vht_sig_a_info.h
new file mode 100644
index 0000000..05c6ea9
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_a_info.h
@@ -0,0 +1,222 @@
+
+/* 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 _VHT_SIG_A_INFO_H_
+#define _VHT_SIG_A_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_A_INFO 2
+
+
+struct vht_sig_a_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t bandwidth                                               :  2,  
+                      vhta_reserved_0                                         :  1,  
+                      stbc                                                    :  1,  
+                      group_id                                                :  6,  
+                      n_sts                                                   : 12,  
+                      txop_ps_not_allowed                                     :  1,  
+                      vhta_reserved_0b                                        :  1,  
+                      reserved_0                                              :  8;  
+             uint32_t gi_setting                                              :  2,  
+                      su_mu_coding                                            :  1,  
+                      ldpc_extra_symbol                                       :  1,  
+                      mcs                                                     :  4,  
+                      beamformed                                              :  1,  
+                      vhta_reserved_1                                         :  1,  
+                      crc                                                     :  8,  
+                      tail                                                    :  6,  
+                      reserved_1                                              :  7,  
+                      rx_integrity_check_passed                               :  1;  
+#else
+             uint32_t reserved_0                                              :  8,  
+                      vhta_reserved_0b                                        :  1,  
+                      txop_ps_not_allowed                                     :  1,  
+                      n_sts                                                   : 12,  
+                      group_id                                                :  6,  
+                      stbc                                                    :  1,  
+                      vhta_reserved_0                                         :  1,  
+                      bandwidth                                               :  2;  
+             uint32_t rx_integrity_check_passed                               :  1,  
+                      reserved_1                                              :  7,  
+                      tail                                                    :  6,  
+                      crc                                                     :  8,  
+                      vhta_reserved_1                                         :  1,  
+                      beamformed                                              :  1,  
+                      mcs                                                     :  4,  
+                      ldpc_extra_symbol                                       :  1,  
+                      su_mu_coding                                            :  1,  
+                      gi_setting                                              :  2;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_A_INFO_BANDWIDTH_OFFSET                                             0x00000000
+#define VHT_SIG_A_INFO_BANDWIDTH_LSB                                                0
+#define VHT_SIG_A_INFO_BANDWIDTH_MSB                                                1
+#define VHT_SIG_A_INFO_BANDWIDTH_MASK                                               0x00000003
+
+
+ 
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_LSB                                          2
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_MSB                                          2
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0_MASK                                         0x00000004
+
+
+ 
+
+#define VHT_SIG_A_INFO_STBC_OFFSET                                                  0x00000000
+#define VHT_SIG_A_INFO_STBC_LSB                                                     3
+#define VHT_SIG_A_INFO_STBC_MSB                                                     3
+#define VHT_SIG_A_INFO_STBC_MASK                                                    0x00000008
+
+
+ 
+
+#define VHT_SIG_A_INFO_GROUP_ID_OFFSET                                              0x00000000
+#define VHT_SIG_A_INFO_GROUP_ID_LSB                                                 4
+#define VHT_SIG_A_INFO_GROUP_ID_MSB                                                 9
+#define VHT_SIG_A_INFO_GROUP_ID_MASK                                                0x000003f0
+
+
+ 
+
+#define VHT_SIG_A_INFO_N_STS_OFFSET                                                 0x00000000
+#define VHT_SIG_A_INFO_N_STS_LSB                                                    10
+#define VHT_SIG_A_INFO_N_STS_MSB                                                    21
+#define VHT_SIG_A_INFO_N_STS_MASK                                                   0x003ffc00
+
+
+ 
+
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_OFFSET                                   0x00000000
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_LSB                                      22
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MSB                                      22
+#define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MASK                                     0x00400000
+
+
+ 
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_OFFSET                                      0x00000000
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_LSB                                         23
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MSB                                         23
+#define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MASK                                        0x00800000
+
+
+ 
+
+#define VHT_SIG_A_INFO_RESERVED_0_OFFSET                                            0x00000000
+#define VHT_SIG_A_INFO_RESERVED_0_LSB                                               24
+#define VHT_SIG_A_INFO_RESERVED_0_MSB                                               31
+#define VHT_SIG_A_INFO_RESERVED_0_MASK                                              0xff000000
+
+
+ 
+
+#define VHT_SIG_A_INFO_GI_SETTING_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_GI_SETTING_LSB                                               0
+#define VHT_SIG_A_INFO_GI_SETTING_MSB                                               1
+#define VHT_SIG_A_INFO_GI_SETTING_MASK                                              0x00000003
+
+
+ 
+
+#define VHT_SIG_A_INFO_SU_MU_CODING_OFFSET                                          0x00000004
+#define VHT_SIG_A_INFO_SU_MU_CODING_LSB                                             2
+#define VHT_SIG_A_INFO_SU_MU_CODING_MSB                                             2
+#define VHT_SIG_A_INFO_SU_MU_CODING_MASK                                            0x00000004
+
+
+ 
+
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                     0x00000004
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_LSB                                        3
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MSB                                        3
+#define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MASK                                       0x00000008
+
+
+ 
+
+#define VHT_SIG_A_INFO_MCS_OFFSET                                                   0x00000004
+#define VHT_SIG_A_INFO_MCS_LSB                                                      4
+#define VHT_SIG_A_INFO_MCS_MSB                                                      7
+#define VHT_SIG_A_INFO_MCS_MASK                                                     0x000000f0
+
+
+ 
+
+#define VHT_SIG_A_INFO_BEAMFORMED_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_BEAMFORMED_LSB                                               8
+#define VHT_SIG_A_INFO_BEAMFORMED_MSB                                               8
+#define VHT_SIG_A_INFO_BEAMFORMED_MASK                                              0x00000100
+
+
+ 
+
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_LSB                                          9
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_MSB                                          9
+#define VHT_SIG_A_INFO_VHTA_RESERVED_1_MASK                                         0x00000200
+
+
+ 
+
+#define VHT_SIG_A_INFO_CRC_OFFSET                                                   0x00000004
+#define VHT_SIG_A_INFO_CRC_LSB                                                      10
+#define VHT_SIG_A_INFO_CRC_MSB                                                      17
+#define VHT_SIG_A_INFO_CRC_MASK                                                     0x0003fc00
+
+
+ 
+
+#define VHT_SIG_A_INFO_TAIL_OFFSET                                                  0x00000004
+#define VHT_SIG_A_INFO_TAIL_LSB                                                     18
+#define VHT_SIG_A_INFO_TAIL_MSB                                                     23
+#define VHT_SIG_A_INFO_TAIL_MASK                                                    0x00fc0000
+
+
+ 
+
+#define VHT_SIG_A_INFO_RESERVED_1_OFFSET                                            0x00000004
+#define VHT_SIG_A_INFO_RESERVED_1_LSB                                               24
+#define VHT_SIG_A_INFO_RESERVED_1_MSB                                               30
+#define VHT_SIG_A_INFO_RESERVED_1_MASK                                              0x7f000000
+
+
+ 
+
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                             0x00000004
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                31
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                31
+#define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                               0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_mu160_info.h b/hw/qcn9224/v2/vht_sig_b_mu160_info.h
new file mode 100644
index 0000000..00e617f
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_mu160_info.h
@@ -0,0 +1,362 @@
+
+/* 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 _VHT_SIG_B_MU160_INFO_H_
+#define _VHT_SIG_B_MU160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU160_INFO 8
+
+
+struct vht_sig_b_mu160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19,  
+                      mcs                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_0                                              :  3;  
+             uint32_t length_copy_a                                           : 19,  
+                      mcs_copy_a                                              :  4,  
+                      tail_copy_a                                             :  6,  
+                      reserved_1                                              :  3;  
+             uint32_t length_copy_b                                           : 19,  
+                      mcs_copy_b                                              :  4,  
+                      tail_copy_b                                             :  6,  
+                      reserved_2                                              :  3;  
+             uint32_t length_copy_c                                           : 19,  
+                      mcs_copy_c                                              :  4,  
+                      tail_copy_c                                             :  6,  
+                      reserved_3                                              :  3;  
+             uint32_t length_copy_d                                           : 19,  
+                      mcs_copy_d                                              :  4,  
+                      tail_copy_d                                             :  6,  
+                      reserved_4                                              :  3;  
+             uint32_t length_copy_e                                           : 19,  
+                      mcs_copy_e                                              :  4,  
+                      tail_copy_e                                             :  6,  
+                      reserved_5                                              :  3;  
+             uint32_t length_copy_f                                           : 19,  
+                      mcs_copy_f                                              :  4,  
+                      tail_copy_f                                             :  6,  
+                      mu_user_number                                          :  3;  
+             uint32_t length_copy_g                                           : 19,  
+                      mcs_copy_g                                              :  4,  
+                      tail_copy_g                                             :  6,  
+                      reserved_7                                              :  3;  
+#else
+             uint32_t reserved_0                                              :  3,  
+                      tail                                                    :  6,  
+                      mcs                                                     :  4,  
+                      length                                                  : 19;  
+             uint32_t reserved_1                                              :  3,  
+                      tail_copy_a                                             :  6,  
+                      mcs_copy_a                                              :  4,  
+                      length_copy_a                                           : 19;  
+             uint32_t reserved_2                                              :  3,  
+                      tail_copy_b                                             :  6,  
+                      mcs_copy_b                                              :  4,  
+                      length_copy_b                                           : 19;  
+             uint32_t reserved_3                                              :  3,  
+                      tail_copy_c                                             :  6,  
+                      mcs_copy_c                                              :  4,  
+                      length_copy_c                                           : 19;  
+             uint32_t reserved_4                                              :  3,  
+                      tail_copy_d                                             :  6,  
+                      mcs_copy_d                                              :  4,  
+                      length_copy_d                                           : 19;  
+             uint32_t reserved_5                                              :  3,  
+                      tail_copy_e                                             :  6,  
+                      mcs_copy_e                                              :  4,  
+                      length_copy_e                                           : 19;  
+             uint32_t mu_user_number                                          :  3,  
+                      tail_copy_f                                             :  6,  
+                      mcs_copy_f                                              :  4,  
+                      length_copy_f                                           : 19;  
+             uint32_t reserved_7                                              :  3,  
+                      tail_copy_g                                             :  6,  
+                      mcs_copy_g                                              :  4,  
+                      length_copy_g                                           : 19;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_OFFSET                                          0x00000000
+#define VHT_SIG_B_MU160_INFO_LENGTH_LSB                                             0
+#define VHT_SIG_B_MU160_INFO_LENGTH_MSB                                             18
+#define VHT_SIG_B_MU160_INFO_LENGTH_MASK                                            0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU160_INFO_MCS_LSB                                                19
+#define VHT_SIG_B_MU160_INFO_MCS_MSB                                                22
+#define VHT_SIG_B_MU160_INFO_MCS_MASK                                               0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_OFFSET                                            0x00000000
+#define VHT_SIG_B_MU160_INFO_TAIL_LSB                                               23
+#define VHT_SIG_B_MU160_INFO_TAIL_MSB                                               28
+#define VHT_SIG_B_MU160_INFO_TAIL_MASK                                              0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_0_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_A_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_A_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_OFFSET                                     0x00000004
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_A_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_1_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_B_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_B_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_OFFSET                                     0x00000008
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_B_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_2_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_C_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_C_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_OFFSET                                     0x0000000c
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_C_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_3_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_D_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_OFFSET                                      0x00000010
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_D_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_OFFSET                                     0x00000010
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_D_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_OFFSET                                      0x00000010
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_4_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_E_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_OFFSET                                      0x00000014
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_E_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_OFFSET                                     0x00000014
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_E_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_OFFSET                                      0x00000014
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_5_MASK                                        0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_F_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_OFFSET                                      0x00000018
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_F_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_OFFSET                                     0x00000018
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_F_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_OFFSET                                  0x00000018
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_LSB                                     29
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_MSB                                     31
+#define VHT_SIG_B_MU160_INFO_MU_USER_NUMBER_MASK                                    0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_LSB                                      0
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_MSB                                      18
+#define VHT_SIG_B_MU160_INFO_LENGTH_COPY_G_MASK                                     0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_OFFSET                                      0x0000001c
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_LSB                                         19
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_MSB                                         22
+#define VHT_SIG_B_MU160_INFO_MCS_COPY_G_MASK                                        0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_OFFSET                                     0x0000001c
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_LSB                                        23
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_MSB                                        28
+#define VHT_SIG_B_MU160_INFO_TAIL_COPY_G_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_OFFSET                                      0x0000001c
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_LSB                                         29
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_MSB                                         31
+#define VHT_SIG_B_MU160_INFO_RESERVED_7_MASK                                        0xe0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_mu20_info.h b/hw/qcn9224/v2/vht_sig_b_mu20_info.h
new file mode 100644
index 0000000..760ca7e
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_mu20_info.h
@@ -0,0 +1,92 @@
+
+/* 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 _VHT_SIG_B_MU20_INFO_H_
+#define _VHT_SIG_B_MU20_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU20_INFO 1
+
+
+struct vht_sig_b_mu20_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 16,  
+                      mcs                                                     :  4,  
+                      tail                                                    :  6,  
+                      mu_user_number                                          :  3,  
+                      reserved_0                                              :  3;  
+#else
+             uint32_t reserved_0                                              :  3,  
+                      mu_user_number                                          :  3,  
+                      tail                                                    :  6,  
+                      mcs                                                     :  4,  
+                      length                                                  : 16;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_MU20_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU20_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU20_INFO_LENGTH_MSB                                              15
+#define VHT_SIG_B_MU20_INFO_LENGTH_MASK                                             0x0000ffff
+
+
+ 
+
+#define VHT_SIG_B_MU20_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU20_INFO_MCS_LSB                                                 16
+#define VHT_SIG_B_MU20_INFO_MCS_MSB                                                 19
+#define VHT_SIG_B_MU20_INFO_MCS_MASK                                                0x000f0000
+
+
+ 
+
+#define VHT_SIG_B_MU20_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU20_INFO_TAIL_LSB                                                20
+#define VHT_SIG_B_MU20_INFO_TAIL_MSB                                                25
+#define VHT_SIG_B_MU20_INFO_TAIL_MASK                                               0x03f00000
+
+
+ 
+
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_OFFSET                                   0x00000000
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_LSB                                      26
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_MSB                                      28
+#define VHT_SIG_B_MU20_INFO_MU_USER_NUMBER_MASK                                     0x1c000000
+
+
+ 
+
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_MSB                                          31
+#define VHT_SIG_B_MU20_INFO_RESERVED_0_MASK                                         0xe0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_mu40_info.h b/hw/qcn9224/v2/vht_sig_b_mu40_info.h
new file mode 100644
index 0000000..9d0324c
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_mu40_info.h
@@ -0,0 +1,132 @@
+
+/* 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 _VHT_SIG_B_MU40_INFO_H_
+#define _VHT_SIG_B_MU40_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU40_INFO 2
+
+
+struct vht_sig_b_mu40_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 17,  
+                      mcs                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_0                                              :  2,  
+                      mu_user_number                                          :  3;  
+             uint32_t length_copy                                             : 17,  
+                      mcs_copy                                                :  4,  
+                      tail_copy                                               :  6,  
+                      reserved_1                                              :  5;  
+#else
+             uint32_t mu_user_number                                          :  3,  
+                      reserved_0                                              :  2,  
+                      tail                                                    :  6,  
+                      mcs                                                     :  4,  
+                      length                                                  : 17;  
+             uint32_t reserved_1                                              :  5,  
+                      tail_copy                                               :  6,  
+                      mcs_copy                                                :  4,  
+                      length_copy                                             : 17;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU40_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU40_INFO_LENGTH_MSB                                              16
+#define VHT_SIG_B_MU40_INFO_LENGTH_MASK                                             0x0001ffff
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU40_INFO_MCS_LSB                                                 17
+#define VHT_SIG_B_MU40_INFO_MCS_MSB                                                 20
+#define VHT_SIG_B_MU40_INFO_MCS_MASK                                                0x001e0000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU40_INFO_TAIL_LSB                                                21
+#define VHT_SIG_B_MU40_INFO_TAIL_MSB                                                26
+#define VHT_SIG_B_MU40_INFO_TAIL_MASK                                               0x07e00000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_LSB                                          27
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_MSB                                          28
+#define VHT_SIG_B_MU40_INFO_RESERVED_0_MASK                                         0x18000000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_OFFSET                                   0x00000000
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_LSB                                      29
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MSB                                      31
+#define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MASK                                     0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_LSB                                         0
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MSB                                         16
+#define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MASK                                        0x0001ffff
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_OFFSET                                         0x00000004
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_LSB                                            17
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_MSB                                            20
+#define VHT_SIG_B_MU40_INFO_MCS_COPY_MASK                                           0x001e0000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_OFFSET                                        0x00000004
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_LSB                                           21
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_MSB                                           26
+#define VHT_SIG_B_MU40_INFO_TAIL_COPY_MASK                                          0x07e00000
+
+
+ 
+
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_LSB                                          27
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_MSB                                          31
+#define VHT_SIG_B_MU40_INFO_RESERVED_1_MASK                                         0xf8000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_mu80_info.h b/hw/qcn9224/v2/vht_sig_b_mu80_info.h
new file mode 100644
index 0000000..904ef7b
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_mu80_info.h
@@ -0,0 +1,202 @@
+
+/* 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 _VHT_SIG_B_MU80_INFO_H_
+#define _VHT_SIG_B_MU80_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_MU80_INFO 4
+
+
+struct vht_sig_b_mu80_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19,  
+                      mcs                                                     :  4,  
+                      tail                                                    :  6,  
+                      reserved_0                                              :  3;  
+             uint32_t length_copy_a                                           : 19,  
+                      mcs_copy_a                                              :  4,  
+                      tail_copy_a                                             :  6,  
+                      reserved_1                                              :  3;  
+             uint32_t length_copy_b                                           : 19,  
+                      mcs_copy_b                                              :  4,  
+                      tail_copy_b                                             :  6,  
+                      mu_user_number                                          :  3;  
+             uint32_t length_copy_c                                           : 19,  
+                      mcs_copy_c                                              :  4,  
+                      tail_copy_c                                             :  6,  
+                      reserved_3                                              :  3;  
+#else
+             uint32_t reserved_0                                              :  3,  
+                      tail                                                    :  6,  
+                      mcs                                                     :  4,  
+                      length                                                  : 19;  
+             uint32_t reserved_1                                              :  3,  
+                      tail_copy_a                                             :  6,  
+                      mcs_copy_a                                              :  4,  
+                      length_copy_a                                           : 19;  
+             uint32_t mu_user_number                                          :  3,  
+                      tail_copy_b                                             :  6,  
+                      mcs_copy_b                                              :  4,  
+                      length_copy_b                                           : 19;  
+             uint32_t reserved_3                                              :  3,  
+                      tail_copy_c                                             :  6,  
+                      mcs_copy_c                                              :  4,  
+                      length_copy_c                                           : 19;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_MU80_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_MU80_INFO_LENGTH_MSB                                              18
+#define VHT_SIG_B_MU80_INFO_LENGTH_MASK                                             0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_MCS_OFFSET                                              0x00000000
+#define VHT_SIG_B_MU80_INFO_MCS_LSB                                                 19
+#define VHT_SIG_B_MU80_INFO_MCS_MSB                                                 22
+#define VHT_SIG_B_MU80_INFO_MCS_MASK                                                0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_MU80_INFO_TAIL_LSB                                                23
+#define VHT_SIG_B_MU80_INFO_TAIL_MSB                                                28
+#define VHT_SIG_B_MU80_INFO_TAIL_MASK                                               0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_0_MASK                                         0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_A_MASK                                      0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_A_MASK                                         0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_A_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_1_MASK                                         0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_B_MASK                                      0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_OFFSET                                       0x00000008
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_B_MASK                                         0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_B_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_OFFSET                                   0x00000008
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_LSB                                      29
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_MSB                                      31
+#define VHT_SIG_B_MU80_INFO_MU_USER_NUMBER_MASK                                     0xe0000000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_LSB                                       0
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_MSB                                       18
+#define VHT_SIG_B_MU80_INFO_LENGTH_COPY_C_MASK                                      0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_OFFSET                                       0x0000000c
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_LSB                                          19
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_MSB                                          22
+#define VHT_SIG_B_MU80_INFO_MCS_COPY_C_MASK                                         0x00780000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_LSB                                         23
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_MSB                                         28
+#define VHT_SIG_B_MU80_INFO_TAIL_COPY_C_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_OFFSET                                       0x0000000c
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_LSB                                          29
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_MSB                                          31
+#define VHT_SIG_B_MU80_INFO_RESERVED_3_MASK                                         0xe0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_su160_info.h b/hw/qcn9224/v2/vht_sig_b_su160_info.h
new file mode 100644
index 0000000..7aab6e9
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_su160_info.h
@@ -0,0 +1,442 @@
+
+/* 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 _VHT_SIG_B_SU160_INFO_H_
+#define _VHT_SIG_B_SU160_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU160_INFO 8
+
+
+struct vht_sig_b_su160_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 21,  
+                      vhtb_reserved                                           :  2,  
+                      tail                                                    :  6,  
+                      reserved_0                                              :  2,  
+                      rx_ndp                                                  :  1;  
+             uint32_t length_copy_a                                           : 21,  
+                      vhtb_reserved_copy_a                                    :  2,  
+                      tail_copy_a                                             :  6,  
+                      reserved_1                                              :  2,  
+                      rx_ndp_copy_a                                           :  1;  
+             uint32_t length_copy_b                                           : 21,  
+                      vhtb_reserved_copy_b                                    :  2,  
+                      tail_copy_b                                             :  6,  
+                      reserved_2                                              :  2,  
+                      rx_ndp_copy_b                                           :  1;  
+             uint32_t length_copy_c                                           : 21,  
+                      vhtb_reserved_copy_c                                    :  2,  
+                      tail_copy_c                                             :  6,  
+                      reserved_3                                              :  2,  
+                      rx_ndp_copy_c                                           :  1;  
+             uint32_t length_copy_d                                           : 21,  
+                      vhtb_reserved_copy_d                                    :  2,  
+                      tail_copy_d                                             :  6,  
+                      reserved_4                                              :  2,  
+                      rx_ndp_copy_d                                           :  1;  
+             uint32_t length_copy_e                                           : 21,  
+                      vhtb_reserved_copy_e                                    :  2,  
+                      tail_copy_e                                             :  6,  
+                      reserved_5                                              :  2,  
+                      rx_ndp_copy_e                                           :  1;  
+             uint32_t length_copy_f                                           : 21,  
+                      vhtb_reserved_copy_f                                    :  2,  
+                      tail_copy_f                                             :  6,  
+                      reserved_6                                              :  2,  
+                      rx_ndp_copy_f                                           :  1;  
+             uint32_t length_copy_g                                           : 21,  
+                      vhtb_reserved_copy_g                                    :  2,  
+                      tail_copy_g                                             :  6,  
+                      reserved_7                                              :  2,  
+                      rx_ndp_copy_g                                           :  1;  
+#else
+             uint32_t rx_ndp                                                  :  1,  
+                      reserved_0                                              :  2,  
+                      tail                                                    :  6,  
+                      vhtb_reserved                                           :  2,  
+                      length                                                  : 21;  
+             uint32_t rx_ndp_copy_a                                           :  1,  
+                      reserved_1                                              :  2,  
+                      tail_copy_a                                             :  6,  
+                      vhtb_reserved_copy_a                                    :  2,  
+                      length_copy_a                                           : 21;  
+             uint32_t rx_ndp_copy_b                                           :  1,  
+                      reserved_2                                              :  2,  
+                      tail_copy_b                                             :  6,  
+                      vhtb_reserved_copy_b                                    :  2,  
+                      length_copy_b                                           : 21;  
+             uint32_t rx_ndp_copy_c                                           :  1,  
+                      reserved_3                                              :  2,  
+                      tail_copy_c                                             :  6,  
+                      vhtb_reserved_copy_c                                    :  2,  
+                      length_copy_c                                           : 21;  
+             uint32_t rx_ndp_copy_d                                           :  1,  
+                      reserved_4                                              :  2,  
+                      tail_copy_d                                             :  6,  
+                      vhtb_reserved_copy_d                                    :  2,  
+                      length_copy_d                                           : 21;  
+             uint32_t rx_ndp_copy_e                                           :  1,  
+                      reserved_5                                              :  2,  
+                      tail_copy_e                                             :  6,  
+                      vhtb_reserved_copy_e                                    :  2,  
+                      length_copy_e                                           : 21;  
+             uint32_t rx_ndp_copy_f                                           :  1,  
+                      reserved_6                                              :  2,  
+                      tail_copy_f                                             :  6,  
+                      vhtb_reserved_copy_f                                    :  2,  
+                      length_copy_f                                           : 21;  
+             uint32_t rx_ndp_copy_g                                           :  1,  
+                      reserved_7                                              :  2,  
+                      tail_copy_g                                             :  6,  
+                      vhtb_reserved_copy_g                                    :  2,  
+                      length_copy_g                                           : 21;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_OFFSET                                          0x00000000
+#define VHT_SIG_B_SU160_INFO_LENGTH_LSB                                             0
+#define VHT_SIG_B_SU160_INFO_LENGTH_MSB                                             20
+#define VHT_SIG_B_SU160_INFO_LENGTH_MASK                                            0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_OFFSET                                   0x00000000
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_LSB                                      21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MSB                                      22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MASK                                     0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_OFFSET                                            0x00000000
+#define VHT_SIG_B_SU160_INFO_TAIL_LSB                                               23
+#define VHT_SIG_B_SU160_INFO_TAIL_MSB                                               28
+#define VHT_SIG_B_SU160_INFO_TAIL_MASK                                              0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_OFFSET                                      0x00000000
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_0_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_OFFSET                                          0x00000000
+#define VHT_SIG_B_SU160_INFO_RX_NDP_LSB                                             31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_MSB                                             31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_MASK                                            0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_OFFSET                            0x00000004
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_OFFSET                                     0x00000004
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_1_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_OFFSET                                   0x00000004
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_OFFSET                            0x00000008
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_OFFSET                                     0x00000008
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_OFFSET                                      0x00000008
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_2_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_OFFSET                                   0x00000008
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_OFFSET                            0x0000000c
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_OFFSET                                     0x0000000c
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_OFFSET                                      0x0000000c
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_3_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_OFFSET                                   0x0000000c
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_OFFSET                            0x00000010
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_OFFSET                                     0x00000010
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_OFFSET                                      0x00000010
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_4_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_OFFSET                                   0x00000010
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_OFFSET                            0x00000014
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_OFFSET                                     0x00000014
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_OFFSET                                      0x00000014
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_5_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_OFFSET                                   0x00000014
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_OFFSET                            0x00000018
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_OFFSET                                     0x00000018
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_OFFSET                                      0x00000018
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_6_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_OFFSET                                   0x00000018
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MASK                                     0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_LSB                                      0
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MSB                                      20
+#define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MASK                                     0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_OFFSET                            0x0000001c
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_LSB                               21
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MSB                               22
+#define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MASK                              0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_OFFSET                                     0x0000001c
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_LSB                                        23
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MSB                                        28
+#define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MASK                                       0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_OFFSET                                      0x0000001c
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_LSB                                         29
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_MSB                                         30
+#define VHT_SIG_B_SU160_INFO_RESERVED_7_MASK                                        0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_OFFSET                                   0x0000001c
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_LSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MSB                                      31
+#define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MASK                                     0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_su20_info.h b/hw/qcn9224/v2/vht_sig_b_su20_info.h
new file mode 100644
index 0000000..6fd7928
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_su20_info.h
@@ -0,0 +1,92 @@
+
+/* 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 _VHT_SIG_B_SU20_INFO_H_
+#define _VHT_SIG_B_SU20_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU20_INFO 1
+
+
+struct vht_sig_b_su20_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 17,  
+                      vhtb_reserved                                           :  3,  
+                      tail                                                    :  6,  
+                      reserved                                                :  5,  
+                      rx_ndp                                                  :  1;  
+#else
+             uint32_t rx_ndp                                                  :  1,  
+                      reserved                                                :  5,  
+                      tail                                                    :  6,  
+                      vhtb_reserved                                           :  3,  
+                      length                                                  : 17;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_SU20_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU20_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU20_INFO_LENGTH_MSB                                              16
+#define VHT_SIG_B_SU20_INFO_LENGTH_MASK                                             0x0001ffff
+
+
+ 
+
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_LSB                                       17
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_MSB                                       19
+#define VHT_SIG_B_SU20_INFO_VHTB_RESERVED_MASK                                      0x000e0000
+
+
+ 
+
+#define VHT_SIG_B_SU20_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU20_INFO_TAIL_LSB                                                20
+#define VHT_SIG_B_SU20_INFO_TAIL_MSB                                                25
+#define VHT_SIG_B_SU20_INFO_TAIL_MASK                                               0x03f00000
+
+
+ 
+
+#define VHT_SIG_B_SU20_INFO_RESERVED_OFFSET                                         0x00000000
+#define VHT_SIG_B_SU20_INFO_RESERVED_LSB                                            26
+#define VHT_SIG_B_SU20_INFO_RESERVED_MSB                                            30
+#define VHT_SIG_B_SU20_INFO_RESERVED_MASK                                           0x7c000000
+
+
+ 
+
+#define VHT_SIG_B_SU20_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU20_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU20_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU20_INFO_RX_NDP_MASK                                             0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_su40_info.h b/hw/qcn9224/v2/vht_sig_b_su40_info.h
new file mode 100644
index 0000000..659fd72
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_su40_info.h
@@ -0,0 +1,142 @@
+
+/* 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 _VHT_SIG_B_SU40_INFO_H_
+#define _VHT_SIG_B_SU40_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU40_INFO 2
+
+
+struct vht_sig_b_su40_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 19,  
+                      vhtb_reserved                                           :  2,  
+                      tail                                                    :  6,  
+                      reserved                                                :  4,  
+                      rx_ndp                                                  :  1;  
+             uint32_t length_copy                                             : 19,  
+                      vhtb_reserved_copy                                      :  2,  
+                      tail_copy                                               :  6,  
+                      reserved_copy                                           :  4,  
+                      rx_ndp_copy                                             :  1;  
+#else
+             uint32_t rx_ndp                                                  :  1,  
+                      reserved                                                :  4,  
+                      tail                                                    :  6,  
+                      vhtb_reserved                                           :  2,  
+                      length                                                  : 19;  
+             uint32_t rx_ndp_copy                                             :  1,  
+                      reserved_copy                                           :  4,  
+                      tail_copy                                               :  6,  
+                      vhtb_reserved_copy                                      :  2,  
+                      length_copy                                             : 19;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU40_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU40_INFO_LENGTH_MSB                                              18
+#define VHT_SIG_B_SU40_INFO_LENGTH_MASK                                             0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_LSB                                       19
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_MSB                                       20
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_MASK                                      0x00180000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU40_INFO_TAIL_LSB                                                21
+#define VHT_SIG_B_SU40_INFO_TAIL_MSB                                                26
+#define VHT_SIG_B_SU40_INFO_TAIL_MASK                                               0x07e00000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_RESERVED_OFFSET                                         0x00000000
+#define VHT_SIG_B_SU40_INFO_RESERVED_LSB                                            27
+#define VHT_SIG_B_SU40_INFO_RESERVED_MSB                                            30
+#define VHT_SIG_B_SU40_INFO_RESERVED_MASK                                           0x78000000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU40_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_MASK                                             0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_LSB                                         0
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_MSB                                         18
+#define VHT_SIG_B_SU40_INFO_LENGTH_COPY_MASK                                        0x0007ffff
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_OFFSET                               0x00000004
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_LSB                                  19
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_MSB                                  20
+#define VHT_SIG_B_SU40_INFO_VHTB_RESERVED_COPY_MASK                                 0x00180000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_OFFSET                                        0x00000004
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_LSB                                           21
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_MSB                                           26
+#define VHT_SIG_B_SU40_INFO_TAIL_COPY_MASK                                          0x07e00000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_LSB                                       27
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_MSB                                       30
+#define VHT_SIG_B_SU40_INFO_RESERVED_COPY_MASK                                      0x78000000
+
+
+ 
+
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_LSB                                         31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_MSB                                         31
+#define VHT_SIG_B_SU40_INFO_RX_NDP_COPY_MASK                                        0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/vht_sig_b_su80_info.h b/hw/qcn9224/v2/vht_sig_b_su80_info.h
new file mode 100644
index 0000000..0882664
--- /dev/null
+++ b/hw/qcn9224/v2/vht_sig_b_su80_info.h
@@ -0,0 +1,242 @@
+
+/* 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 _VHT_SIG_B_SU80_INFO_H_
+#define _VHT_SIG_B_SU80_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#define NUM_OF_DWORDS_VHT_SIG_B_SU80_INFO 4
+
+
+struct vht_sig_b_su80_info {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t length                                                  : 21,  
+                      vhtb_reserved                                           :  2,  
+                      tail                                                    :  6,  
+                      reserved_0                                              :  2,  
+                      rx_ndp                                                  :  1;  
+             uint32_t length_copy_a                                           : 21,  
+                      vhtb_reserved_copy_a                                    :  2,  
+                      tail_copy_a                                             :  6,  
+                      reserved_1                                              :  2,  
+                      rx_ndp_copy_a                                           :  1;  
+             uint32_t length_copy_b                                           : 21,  
+                      vhtb_reserved_copy_b                                    :  2,  
+                      tail_copy_b                                             :  6,  
+                      reserved_2                                              :  2,  
+                      rx_ndp_copy_b                                           :  1;  
+             uint32_t length_copy_c                                           : 21,  
+                      vhtb_reserved_copy_c                                    :  2,  
+                      tail_copy_c                                             :  6,  
+                      reserved_3                                              :  2,  
+                      rx_ndp_copy_c                                           :  1;  
+#else
+             uint32_t rx_ndp                                                  :  1,  
+                      reserved_0                                              :  2,  
+                      tail                                                    :  6,  
+                      vhtb_reserved                                           :  2,  
+                      length                                                  : 21;  
+             uint32_t rx_ndp_copy_a                                           :  1,  
+                      reserved_1                                              :  2,  
+                      tail_copy_a                                             :  6,  
+                      vhtb_reserved_copy_a                                    :  2,  
+                      length_copy_a                                           : 21;  
+             uint32_t rx_ndp_copy_b                                           :  1,  
+                      reserved_2                                              :  2,  
+                      tail_copy_b                                             :  6,  
+                      vhtb_reserved_copy_b                                    :  2,  
+                      length_copy_b                                           : 21;  
+             uint32_t rx_ndp_copy_c                                           :  1,  
+                      reserved_3                                              :  2,  
+                      tail_copy_c                                             :  6,  
+                      vhtb_reserved_copy_c                                    :  2,  
+                      length_copy_c                                           : 21;  
+#endif
+};
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU80_INFO_LENGTH_LSB                                              0
+#define VHT_SIG_B_SU80_INFO_LENGTH_MSB                                              20
+#define VHT_SIG_B_SU80_INFO_LENGTH_MASK                                             0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_OFFSET                                    0x00000000
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_LSB                                       21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MSB                                       22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MASK                                      0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_TAIL_OFFSET                                             0x00000000
+#define VHT_SIG_B_SU80_INFO_TAIL_LSB                                                23
+#define VHT_SIG_B_SU80_INFO_TAIL_MSB                                                28
+#define VHT_SIG_B_SU80_INFO_TAIL_MASK                                               0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_OFFSET                                       0x00000000
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_0_MASK                                         0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_OFFSET                                           0x00000000
+#define VHT_SIG_B_SU80_INFO_RX_NDP_LSB                                              31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_MSB                                              31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_MASK                                             0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MASK                                      0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_OFFSET                             0x00000004
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MASK                               0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_OFFSET                                      0x00000004
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_OFFSET                                       0x00000004
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_1_MASK                                         0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_OFFSET                                    0x00000004
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MASK                                      0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MASK                                      0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_OFFSET                             0x00000008
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MASK                               0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_OFFSET                                      0x00000008
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_OFFSET                                       0x00000008
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_2_MASK                                         0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_OFFSET                                    0x00000008
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MASK                                      0x80000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_LSB                                       0
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MSB                                       20
+#define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MASK                                      0x001fffff
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_OFFSET                             0x0000000c
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_LSB                                21
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MSB                                22
+#define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MASK                               0x00600000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_OFFSET                                      0x0000000c
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_LSB                                         23
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MSB                                         28
+#define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MASK                                        0x1f800000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_OFFSET                                       0x0000000c
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_LSB                                          29
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_MSB                                          30
+#define VHT_SIG_B_SU80_INFO_RESERVED_3_MASK                                         0x60000000
+
+
+ 
+
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_OFFSET                                    0x0000000c
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_LSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MSB                                       31
+#define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MASK                                      0x80000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm2sw_completion_ring_rx.h b/hw/qcn9224/v2/wbm2sw_completion_ring_rx.h
new file mode 100644
index 0000000..e9ac713
--- /dev/null
+++ b/hw/qcn9224/v2/wbm2sw_completion_ring_rx.h
@@ -0,0 +1,466 @@
+
+/* 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 _WBM2SW_COMPLETION_RING_RX_H_
+#define _WBM2SW_COMPLETION_RING_RX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#define NUM_OF_DWORDS_WBM2SW_COMPLETION_RING_RX 8
+
+
+struct wbm2sw_completion_ring_rx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t release_source_module                                   :  3,  
+                      bm_action                                               :  3,  
+                      buffer_or_desc_type                                     :  3,  
+                      return_buffer_manager                                   :  4,  
+                      reserved_2a                                             :  2,  
+                      cache_id                                                :  1,  
+                      cookie_conversion_status                                :  1,  
+                      rxdma_push_reason                                       :  2,  
+                      rxdma_error_code                                        :  5,  
+                      reo_push_reason                                         :  2,  
+                      reo_error_code                                          :  5,  
+                      wbm_internal_error                                      :  1;  
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_phys_addr_31_0                                   : 32;  
+             uint32_t buffer_phys_addr_39_32                                  :  8,  
+                      sw_buffer_cookie                                        : 20,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t wbm_internal_error                                      :  1,  
+                      reo_error_code                                          :  5,  
+                      reo_push_reason                                         :  2,  
+                      rxdma_error_code                                        :  5,  
+                      rxdma_push_reason                                       :  2,  
+                      cookie_conversion_status                                :  1,  
+                      cache_id                                                :  1,  
+                      reserved_2a                                             :  2,  
+                      return_buffer_manager                                   :  4,  
+                      buffer_or_desc_type                                     :  3,  
+                      bm_action                                               :  3,  
+                      release_source_module                                   :  3;  
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t buffer_phys_addr_31_0                                   : 32;  
+             uint32_t looping_count                                           :  4,  
+                      sw_buffer_cookie                                        : 20,  
+                      buffer_phys_addr_39_32                                  :  8;  
+#endif
+};
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_OFFSET                      0x00000000
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_31_0_MASK                        0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_OFFSET                     0x00000004
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_MSB                        31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_VIRT_ADDR_63_32_MASK                       0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_MSB                         2
+#define WBM2SW_COMPLETION_RING_RX_RELEASE_SOURCE_MODULE_MASK                        0x00000007
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_OFFSET                                  0x00000008
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_LSB                                     3
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_MSB                                     5
+#define WBM2SW_COMPLETION_RING_RX_BM_ACTION_MASK                                    0x00000038
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_OFFSET                        0x00000008
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_LSB                           6
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_MSB                           8
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_OR_DESC_TYPE_MASK                          0x000001c0
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_LSB                         9
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_MSB                         12
+#define WBM2SW_COMPLETION_RING_RX_RETURN_BUFFER_MANAGER_MASK                        0x00001e00
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_OFFSET                                0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_LSB                                   13
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_MSB                                   14
+#define WBM2SW_COMPLETION_RING_RX_RESERVED_2A_MASK                                  0x00006000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_OFFSET                                   0x00000008
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_LSB                                      15
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_MSB                                      15
+#define WBM2SW_COMPLETION_RING_RX_CACHE_ID_MASK                                     0x00008000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_OFFSET                   0x00000008
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_LSB                      16
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_MSB                      16
+#define WBM2SW_COMPLETION_RING_RX_COOKIE_CONVERSION_STATUS_MASK                     0x00010000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_OFFSET                          0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_LSB                             17
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_MSB                             18
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_PUSH_REASON_MASK                            0x00060000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_OFFSET                           0x00000008
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_LSB                              19
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_MSB                              23
+#define WBM2SW_COMPLETION_RING_RX_RXDMA_ERROR_CODE_MASK                             0x00f80000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_OFFSET                            0x00000008
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_LSB                               24
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_MSB                               25
+#define WBM2SW_COMPLETION_RING_RX_REO_PUSH_REASON_MASK                              0x03000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_OFFSET                             0x00000008
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_LSB                                26
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_MSB                                30
+#define WBM2SW_COMPLETION_RING_RX_REO_ERROR_CODE_MASK                               0x7c000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_LSB                            31
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_MSB                            31
+#define WBM2SW_COMPLETION_RING_RX_WBM_INTERNAL_ERROR_MASK                           0x80000000
+
+
+ 
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET       0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB          0
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB          7
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK         0x000000ff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET    0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB       8
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB       8
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK      0x00000100
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET   0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB      9
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB      9
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK     0x00000200
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET       0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB          10
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB          10
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK         0x00000400
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET        0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB           11
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB           11
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK          0x00000800
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET         0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB            13
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB            13
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK           0x00002000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB  14
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB  14
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK 0x00004000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET         0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB            15
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB            26
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK           0x07ff8000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB 27
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB 27
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK 0x08000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET              0x0000000c
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                 28
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                 31
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                0xf0000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET   0x00000010
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB      0
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB      31
+#define WBM2SW_COMPLETION_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK     0xffffffff
+
+
+ 
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB 0
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB 0
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK 0x00000001
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB 1
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB 1
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK 0x00000002
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB   2
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB   2
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK  0x00000004
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB         3
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB         16
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK        0x0001fff8
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET        0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB           17
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB           17
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK          0x00020000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB         18
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB         18
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK        0x00040000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET      0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB         19
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB         19
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK        0x00080000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET       0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB          20
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB          20
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK         0x00100000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB 21
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB 21
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK 0x00200000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB 22
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB 22
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK 0x00400000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET   0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB      23
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB      23
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK     0x00800000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB               24
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB               24
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK              0x01000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB               25
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB               25
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK              0x02000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET        0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB           26
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB           26
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK          0x04000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB        27
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB        28
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK       0x18000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB        29
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB        30
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK       0x60000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET 0x00000014
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB   31
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB   31
+#define WBM2SW_COMPLETION_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK  0x80000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_OFFSET                      0x00000018
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_31_0_MASK                        0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_OFFSET                     0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_MSB                        7
+#define WBM2SW_COMPLETION_RING_RX_BUFFER_PHYS_ADDR_39_32_MASK                       0x000000ff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_OFFSET                           0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_LSB                              8
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_MSB                              27
+#define WBM2SW_COMPLETION_RING_RX_SW_BUFFER_COOKIE_MASK                             0x0fffff00
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_OFFSET                              0x0000001c
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_LSB                                 28
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_MSB                                 31
+#define WBM2SW_COMPLETION_RING_RX_LOOPING_COUNT_MASK                                0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm2sw_completion_ring_tx.h b/hw/qcn9224/v2/wbm2sw_completion_ring_tx.h
new file mode 100644
index 0000000..3620a01
--- /dev/null
+++ b/hw/qcn9224/v2/wbm2sw_completion_ring_tx.h
@@ -0,0 +1,376 @@
+
+/* 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 _WBM2SW_COMPLETION_RING_TX_H_
+#define _WBM2SW_COMPLETION_RING_TX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "tx_rate_stats_info.h"
+#define NUM_OF_DWORDS_WBM2SW_COMPLETION_RING_TX 8
+
+
+struct wbm2sw_completion_ring_tx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t release_source_module                                   :  3,  
+                      cache_id                                                :  1,  
+                      reserved_2a                                             :  2,  
+                      buffer_or_desc_type                                     :  3,  
+                      return_buffer_manager                                   :  4,  
+                      tqm_release_reason                                      :  4,  
+                      rbm_override_valid                                      :  1,  
+                      sw_buffer_cookie_11_0                                   : 12,  
+                      cookie_conversion_status                                :  1,  
+                      wbm_internal_error                                      :  1;  
+             uint32_t tqm_status_number                                       : 24,  
+                      transmit_count                                          :  7,  
+                      sw_release_details_valid                                :  1;  
+             uint32_t ack_frame_rssi                                          :  8,  
+                      first_msdu                                              :  1,  
+                      last_msdu                                               :  1,  
+                      fw_tx_notify_frame                                      :  3,  
+                      buffer_timestamp                                        : 19;  
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t sw_peer_id                                              : 16,  
+                      tid                                                     :  4,  
+                      sw_buffer_cookie_19_12                                  :  8,  
+                      looping_count                                           :  4;  
+#else
+             uint32_t buffer_virt_addr_31_0                                   : 32;  
+             uint32_t buffer_virt_addr_63_32                                  : 32;  
+             uint32_t wbm_internal_error                                      :  1,  
+                      cookie_conversion_status                                :  1,  
+                      sw_buffer_cookie_11_0                                   : 12,  
+                      rbm_override_valid                                      :  1,  
+                      tqm_release_reason                                      :  4,  
+                      return_buffer_manager                                   :  4,  
+                      buffer_or_desc_type                                     :  3,  
+                      reserved_2a                                             :  2,  
+                      cache_id                                                :  1,  
+                      release_source_module                                   :  3;  
+             uint32_t sw_release_details_valid                                :  1,  
+                      transmit_count                                          :  7,  
+                      tqm_status_number                                       : 24;  
+             uint32_t buffer_timestamp                                        : 19,  
+                      fw_tx_notify_frame                                      :  3,  
+                      last_msdu                                               :  1,  
+                      first_msdu                                              :  1,  
+                      ack_frame_rssi                                          :  8;  
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t looping_count                                           :  4,  
+                      sw_buffer_cookie_19_12                                  :  8,  
+                      tid                                                     :  4,  
+                      sw_peer_id                                              : 16;  
+#endif
+};
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_OFFSET                      0x00000000
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_LSB                         0
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_MSB                         31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_31_0_MASK                        0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_OFFSET                     0x00000004
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_LSB                        0
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_MSB                        31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_VIRT_ADDR_63_32_MASK                       0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_LSB                         0
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_MSB                         2
+#define WBM2SW_COMPLETION_RING_TX_RELEASE_SOURCE_MODULE_MASK                        0x00000007
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_OFFSET                                   0x00000008
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_LSB                                      3
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_MSB                                      3
+#define WBM2SW_COMPLETION_RING_TX_CACHE_ID_MASK                                     0x00000008
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_OFFSET                                0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_LSB                                   4
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_MSB                                   5
+#define WBM2SW_COMPLETION_RING_TX_RESERVED_2A_MASK                                  0x00000030
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_OFFSET                        0x00000008
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_LSB                           6
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_MSB                           8
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_OR_DESC_TYPE_MASK                          0x000001c0
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_LSB                         9
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_MSB                         12
+#define WBM2SW_COMPLETION_RING_TX_RETURN_BUFFER_MANAGER_MASK                        0x00001e00
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_LSB                            13
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_MSB                            16
+#define WBM2SW_COMPLETION_RING_TX_TQM_RELEASE_REASON_MASK                           0x0001e000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_LSB                            17
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_MSB                            17
+#define WBM2SW_COMPLETION_RING_TX_RBM_OVERRIDE_VALID_MASK                           0x00020000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_OFFSET                      0x00000008
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_LSB                         18
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_MSB                         29
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_11_0_MASK                        0x3ffc0000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_OFFSET                   0x00000008
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_LSB                      30
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_MSB                      30
+#define WBM2SW_COMPLETION_RING_TX_COOKIE_CONVERSION_STATUS_MASK                     0x40000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_OFFSET                         0x00000008
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_LSB                            31
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_MSB                            31
+#define WBM2SW_COMPLETION_RING_TX_WBM_INTERNAL_ERROR_MASK                           0x80000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_OFFSET                          0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_LSB                             0
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_MSB                             23
+#define WBM2SW_COMPLETION_RING_TX_TQM_STATUS_NUMBER_MASK                            0x00ffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_OFFSET                             0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_LSB                                24
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_MSB                                30
+#define WBM2SW_COMPLETION_RING_TX_TRANSMIT_COUNT_MASK                               0x7f000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_OFFSET                   0x0000000c
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_LSB                      31
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_MSB                      31
+#define WBM2SW_COMPLETION_RING_TX_SW_RELEASE_DETAILS_VALID_MASK                     0x80000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_OFFSET                             0x00000010
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_LSB                                0
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_MSB                                7
+#define WBM2SW_COMPLETION_RING_TX_ACK_FRAME_RSSI_MASK                               0x000000ff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_OFFSET                                 0x00000010
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_LSB                                    8
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_MSB                                    8
+#define WBM2SW_COMPLETION_RING_TX_FIRST_MSDU_MASK                                   0x00000100
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_OFFSET                                  0x00000010
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_LSB                                     9
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_MSB                                     9
+#define WBM2SW_COMPLETION_RING_TX_LAST_MSDU_MASK                                    0x00000200
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_OFFSET                         0x00000010
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_LSB                            10
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_MSB                            12
+#define WBM2SW_COMPLETION_RING_TX_FW_TX_NOTIFY_FRAME_MASK                           0x00001c00
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_OFFSET                           0x00000010
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_LSB                              13
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_MSB                              31
+#define WBM2SW_COMPLETION_RING_TX_BUFFER_TIMESTAMP_MASK                             0xffffe000
+
+
+ 
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_OFFSET     0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_LSB        0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MSB        0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MASK       0x00000001
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_LSB                     1
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MSB                     3
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MASK                    0x0000000e
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_OFFSET            0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_LSB               4
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MSB               7
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MASK              0x000000f0
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_OFFSET                0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_LSB                   8
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MSB                   8
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MASK                  0x00000100
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_OFFSET                0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_LSB                   9
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MSB                   9
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MASK                  0x00000200
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_OFFSET                 0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_LSB                    10
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MSB                    11
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MASK                   0x00000c00
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_OFFSET                 0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_LSB                    12
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MSB                    15
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MASK                   0x0000f000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_OFFSET           0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_LSB              16
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MSB              16
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MASK             0x00010000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_LSB                     17
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_MSB                     28
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_TONES_IN_RU_MASK                    0x1ffe0000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_OFFSET                  0x00000014
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_LSB                     29
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_MSB                     31
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_RESERVED_0A_MASK                    0xe0000000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_OFFSET        0x00000018
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_LSB           0
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MSB           31
+#define WBM2SW_COMPLETION_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MASK          0xffffffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_OFFSET                                 0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_LSB                                    0
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_MSB                                    15
+#define WBM2SW_COMPLETION_RING_TX_SW_PEER_ID_MASK                                   0x0000ffff
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_TID_OFFSET                                        0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_TID_LSB                                           16
+#define WBM2SW_COMPLETION_RING_TX_TID_MSB                                           19
+#define WBM2SW_COMPLETION_RING_TX_TID_MASK                                          0x000f0000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_OFFSET                     0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_LSB                        20
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_MSB                        27
+#define WBM2SW_COMPLETION_RING_TX_SW_BUFFER_COOKIE_19_12_MASK                       0x0ff00000
+
+
+ 
+
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_OFFSET                              0x0000001c
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_LSB                                 28
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_MSB                                 31
+#define WBM2SW_COMPLETION_RING_TX_LOOPING_COUNT_MASK                                0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm_buffer_ring.h b/hw/qcn9224/v2/wbm_buffer_ring.h
new file mode 100644
index 0000000..ba0eec1
--- /dev/null
+++ b/hw/qcn9224/v2/wbm_buffer_ring.h
@@ -0,0 +1,80 @@
+
+/* 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 _WBM_BUFFER_RING_H_
+#define _WBM_BUFFER_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_BUFFER_RING 2
+
+
+struct wbm_buffer_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          buf_addr_info;
+#else
+             struct   buffer_addr_info                                          buf_addr_info;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET                       0x00000000
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_LSB                          0
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MSB                          31
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MASK                         0xffffffff
+
+
+ 
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET                      0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_LSB                         0
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MSB                         7
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MASK                        0x000000ff
+
+
+ 
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET                  0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB                     8
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB                     11
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK                    0x00000f00
+
+
+ 
+
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET                       0x00000004
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_LSB                          12
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MSB                          31
+#define WBM_BUFFER_RING_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MASK                         0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm_link_descriptor_ring.h b/hw/qcn9224/v2/wbm_link_descriptor_ring.h
new file mode 100644
index 0000000..098d1d9
--- /dev/null
+++ b/hw/qcn9224/v2/wbm_link_descriptor_ring.h
@@ -0,0 +1,80 @@
+
+/* 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 _WBM_LINK_DESCRIPTOR_RING_H_
+#define _WBM_LINK_DESCRIPTOR_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_LINK_DESCRIPTOR_RING 2
+
+
+struct wbm_link_descriptor_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          desc_addr_info;
+#else
+             struct   buffer_addr_info                                          desc_addr_info;
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET             0x00000000
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB                0
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB                31
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK               0xffffffff
+
+
+ 
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET            0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB               0
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB               7
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK              0x000000ff
+
+
+ 
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET        0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB           8
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB           11
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK          0x00000f00
+
+
+ 
+
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET             0x00000004
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB                12
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB                31
+#define WBM_LINK_DESCRIPTOR_RING_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK               0xfffff000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm_release_ring.h b/hw/qcn9224/v2/wbm_release_ring.h
new file mode 100644
index 0000000..dac9304
--- /dev/null
+++ b/hw/qcn9224/v2/wbm_release_ring.h
@@ -0,0 +1,190 @@
+
+/* 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 _WBM_RELEASE_RING_H_
+#define _WBM_RELEASE_RING_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING 8
+
+
+struct wbm_release_ring {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3,  
+                      reserved_2a                                             :  3,  
+                      buffer_or_desc_type                                     :  3,  
+                      reserved_2b                                             : 22,  
+                      wbm_internal_error                                      :  1;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 28,  
+                      looping_count                                           :  4;  
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1,  
+                      reserved_2b                                             : 22,  
+                      buffer_or_desc_type                                     :  3,  
+                      reserved_2a                                             :  3,  
+                      release_source_module                                   :  3;  
+             uint32_t reserved_3a                                             : 32;  
+             uint32_t reserved_4a                                             : 32;  
+             uint32_t reserved_5a                                             : 32;  
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t looping_count                                           :  4,  
+                      reserved_7a                                             : 28;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET    0x00000000
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB       0
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB       31
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK      0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET   0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB      0
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB      7
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK     0x000000ff
+
+
+ 
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB  8
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB  11
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET    0x00000004
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB       12
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB       31
+#define WBM_RELEASE_RING_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK      0xfffff000
+
+
+ 
+
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_LSB                                  0
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_MSB                                  2
+#define WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_MASK                                 0x00000007
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_2A_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RESERVED_2A_LSB                                            3
+#define WBM_RELEASE_RING_RESERVED_2A_MSB                                            5
+#define WBM_RELEASE_RING_RESERVED_2A_MASK                                           0x00000038
+
+
+ 
+
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_LSB                                    6
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_MSB                                    8
+#define WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_MASK                                   0x000001c0
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_2B_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RESERVED_2B_LSB                                            9
+#define WBM_RELEASE_RING_RESERVED_2B_MSB                                            30
+#define WBM_RELEASE_RING_RESERVED_2B_MASK                                           0x7ffffe00
+
+
+ 
+
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_OFFSET                                  0x00000008
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_LSB                                     31
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_MSB                                     31
+#define WBM_RELEASE_RING_WBM_INTERNAL_ERROR_MASK                                    0x80000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_3A_OFFSET                                         0x0000000c
+#define WBM_RELEASE_RING_RESERVED_3A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_3A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_3A_MASK                                           0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_4A_OFFSET                                         0x00000010
+#define WBM_RELEASE_RING_RESERVED_4A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_4A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_4A_MASK                                           0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_5A_OFFSET                                         0x00000014
+#define WBM_RELEASE_RING_RESERVED_5A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_5A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_5A_MASK                                           0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_6A_OFFSET                                         0x00000018
+#define WBM_RELEASE_RING_RESERVED_6A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_6A_MSB                                            31
+#define WBM_RELEASE_RING_RESERVED_6A_MASK                                           0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RESERVED_7A_OFFSET                                         0x0000001c
+#define WBM_RELEASE_RING_RESERVED_7A_LSB                                            0
+#define WBM_RELEASE_RING_RESERVED_7A_MSB                                            27
+#define WBM_RELEASE_RING_RESERVED_7A_MASK                                           0x0fffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_LOOPING_COUNT_OFFSET                                       0x0000001c
+#define WBM_RELEASE_RING_LOOPING_COUNT_LSB                                          28
+#define WBM_RELEASE_RING_LOOPING_COUNT_MSB                                          31
+#define WBM_RELEASE_RING_LOOPING_COUNT_MASK                                         0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm_release_ring_rx.h b/hw/qcn9224/v2/wbm_release_ring_rx.h
new file mode 100644
index 0000000..2024936
--- /dev/null
+++ b/hw/qcn9224/v2/wbm_release_ring_rx.h
@@ -0,0 +1,484 @@
+
+/* 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 _WBM_RELEASE_RING_RX_H_
+#define _WBM_RELEASE_RING_RX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "rx_msdu_desc_info.h"
+#include "rx_mpdu_desc_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING_RX 8
+
+
+struct wbm_release_ring_rx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3,  
+                      bm_action                                               :  3,  
+                      buffer_or_desc_type                                     :  3,  
+                      first_msdu_index                                        :  4,  
+                      reserved_2a                                             :  2,  
+                      cache_id                                                :  1,  
+                      cookie_conversion_status                                :  1,  
+                      rxdma_push_reason                                       :  2,  
+                      rxdma_error_code                                        :  5,  
+                      reo_push_reason                                         :  2,  
+                      reo_error_code                                          :  5,  
+                      wbm_internal_error                                      :  1;  
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t reserved_7a                                             : 20,  
+                      ring_id                                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1,  
+                      reo_error_code                                          :  5,  
+                      reo_push_reason                                         :  2,  
+                      rxdma_error_code                                        :  5,  
+                      rxdma_push_reason                                       :  2,  
+                      cookie_conversion_status                                :  1,  
+                      cache_id                                                :  1,  
+                      reserved_2a                                             :  2,  
+                      first_msdu_index                                        :  4,  
+                      buffer_or_desc_type                                     :  3,  
+                      bm_action                                               :  3,  
+                      release_source_module                                   :  3;  
+             struct   rx_mpdu_desc_info                                         rx_mpdu_desc_info_details;
+             struct   rx_msdu_desc_info                                         rx_msdu_desc_info_details;
+             uint32_t reserved_6a                                             : 32;  
+             uint32_t looping_count                                           :  4,  
+                      ring_id                                                 :  8,  
+                      reserved_7a                                             : 20;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB    0
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB    31
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK   0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB   0
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB   7
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK  0x000000ff
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB    12
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB    31
+#define WBM_RELEASE_RING_RX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK   0xfffff000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_OFFSET                            0x00000008
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_LSB                               0
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_MSB                               2
+#define WBM_RELEASE_RING_RX_RELEASE_SOURCE_MODULE_MASK                              0x00000007
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_BM_ACTION_OFFSET                                        0x00000008
+#define WBM_RELEASE_RING_RX_BM_ACTION_LSB                                           3
+#define WBM_RELEASE_RING_RX_BM_ACTION_MSB                                           5
+#define WBM_RELEASE_RING_RX_BM_ACTION_MASK                                          0x00000038
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_OFFSET                              0x00000008
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_LSB                                 6
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_MSB                                 8
+#define WBM_RELEASE_RING_RX_BUFFER_OR_DESC_TYPE_MASK                                0x000001c0
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_LSB                                    9
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_MSB                                    12
+#define WBM_RELEASE_RING_RX_FIRST_MSDU_INDEX_MASK                                   0x00001e00
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RESERVED_2A_OFFSET                                      0x00000008
+#define WBM_RELEASE_RING_RX_RESERVED_2A_LSB                                         13
+#define WBM_RELEASE_RING_RX_RESERVED_2A_MSB                                         14
+#define WBM_RELEASE_RING_RX_RESERVED_2A_MASK                                        0x00006000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_CACHE_ID_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_RX_CACHE_ID_LSB                                            15
+#define WBM_RELEASE_RING_RX_CACHE_ID_MSB                                            15
+#define WBM_RELEASE_RING_RX_CACHE_ID_MASK                                           0x00008000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_OFFSET                         0x00000008
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_LSB                            16
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_MSB                            16
+#define WBM_RELEASE_RING_RX_COOKIE_CONVERSION_STATUS_MASK                           0x00010000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_OFFSET                                0x00000008
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_LSB                                   17
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_MSB                                   18
+#define WBM_RELEASE_RING_RX_RXDMA_PUSH_REASON_MASK                                  0x00060000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_LSB                                    19
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_MSB                                    23
+#define WBM_RELEASE_RING_RX_RXDMA_ERROR_CODE_MASK                                   0x00f80000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_OFFSET                                  0x00000008
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_LSB                                     24
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_MSB                                     25
+#define WBM_RELEASE_RING_RX_REO_PUSH_REASON_MASK                                    0x03000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_OFFSET                                   0x00000008
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_LSB                                      26
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_MSB                                      30
+#define WBM_RELEASE_RING_RX_REO_ERROR_CODE_MASK                                     0x7c000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_LSB                                  31
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_MSB                                  31
+#define WBM_RELEASE_RING_RX_WBM_INTERNAL_ERROR_MASK                                 0x80000000
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_OFFSET             0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_LSB                0
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MSB                7
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MSDU_COUNT_MASK               0x000000ff
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_OFFSET          0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_LSB             8
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MSB             8
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_FRAGMENT_FLAG_MASK            0x00000100
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_OFFSET         0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_LSB            9
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MSB            9
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_RETRY_BIT_MASK           0x00000200
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_OFFSET             0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_LSB                10
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MSB                10
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_AMPDU_FLAG_MASK               0x00000400
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_OFFSET              0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_LSB                 11
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MSB                 11
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_BAR_FRAME_MASK                0x00000800
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_LSB 12
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MSB 12
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00001000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_OFFSET               0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_LSB                  13
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MSB                  13
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_RAW_MPDU_MASK                 0x00002000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_OFFSET     0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_LSB        14
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MSB        14
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MORE_FRAGMENT_FLAG_MASK       0x00004000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_OFFSET               0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_LSB                  15
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MSB                  26
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_SRC_INFO_MASK                 0x07ff8000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_OFFSET 0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_LSB    27
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MSB    27
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_MPDU_QOS_CONTROL_VALID_MASK   0x08000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_OFFSET                    0x0000000c
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_LSB                       28
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MSB                       31
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_TID_MASK                      0xf0000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_OFFSET         0x00000010
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_LSB            0
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MSB            31
+#define WBM_RELEASE_RING_RX_RX_MPDU_DESC_INFO_DETAILS_PEER_META_DATA_MASK           0xffffffff
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_LSB   0
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MSB   0
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FIRST_MSDU_IN_MPDU_FLAG_MASK  0x00000001
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_OFFSET 0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_LSB    1
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MSB    1
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_LAST_MSDU_IN_MPDU_FLAG_MASK   0x00000002
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_OFFSET      0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_LSB         2
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MSB         2
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_CONTINUATION_MASK        0x00000004
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_LSB               3
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MSB               16
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_LENGTH_MASK              0x0001fff8
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_OFFSET              0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_LSB                 17
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MSB                 17
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_MSDU_DROP_MASK                0x00020000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_LSB               18
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MSB               18
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_SA_IS_VALID_MASK              0x00040000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_OFFSET            0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_LSB               19
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MSB               19
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_VALID_MASK              0x00080000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_OFFSET             0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_LSB                20
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MSB                20
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DA_IS_MCBC_MASK               0x00100000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_OFFSET  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_LSB     21
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MSB     21
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_L3_HEADER_PADDING_MSB_MASK    0x00200000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_OFFSET    0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_LSB       22
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MSB       22
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TCP_UDP_CHKSUM_FAIL_MASK      0x00400000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_OFFSET         0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_LSB            23
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MSB            23
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_IP_CHKSUM_FAIL_MASK           0x00800000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_LSB                     24
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MSB                     24
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_FR_DS_MASK                    0x01000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_LSB                     25
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MSB                     25
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_TO_DS_MASK                    0x02000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_OFFSET              0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_LSB                 26
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MSB                 26
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_INTRA_BSS_MASK                0x04000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_OFFSET           0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_LSB              27
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MSB              28
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_ID_MASK             0x18000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_OFFSET           0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_LSB              29
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MSB              30
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DECAP_FORMAT_MASK             0x60000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_OFFSET      0x00000014
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_LSB         31
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MSB         31
+#define WBM_RELEASE_RING_RX_RX_MSDU_DESC_INFO_DETAILS_DEST_CHIP_PMAC_ID_MASK        0x80000000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RESERVED_6A_OFFSET                                      0x00000018
+#define WBM_RELEASE_RING_RX_RESERVED_6A_LSB                                         0
+#define WBM_RELEASE_RING_RX_RESERVED_6A_MSB                                         31
+#define WBM_RELEASE_RING_RX_RESERVED_6A_MASK                                        0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RESERVED_7A_OFFSET                                      0x0000001c
+#define WBM_RELEASE_RING_RX_RESERVED_7A_LSB                                         0
+#define WBM_RELEASE_RING_RX_RESERVED_7A_MSB                                         19
+#define WBM_RELEASE_RING_RX_RESERVED_7A_MASK                                        0x000fffff
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_RING_ID_OFFSET                                          0x0000001c
+#define WBM_RELEASE_RING_RX_RING_ID_LSB                                             20
+#define WBM_RELEASE_RING_RX_RING_ID_MSB                                             27
+#define WBM_RELEASE_RING_RX_RING_ID_MASK                                            0x0ff00000
+
+
+ 
+
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_OFFSET                                    0x0000001c
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_LSB                                       28
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_MSB                                       31
+#define WBM_RELEASE_RING_RX_LOOPING_COUNT_MASK                                      0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wbm_release_ring_tx.h b/hw/qcn9224/v2/wbm_release_ring_tx.h
new file mode 100644
index 0000000..abb5cfb
--- /dev/null
+++ b/hw/qcn9224/v2/wbm_release_ring_tx.h
@@ -0,0 +1,404 @@
+
+/* 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 _WBM_RELEASE_RING_TX_H_
+#define _WBM_RELEASE_RING_TX_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+#include "tx_rate_stats_info.h"
+#include "buffer_addr_info.h"
+#define NUM_OF_DWORDS_WBM_RELEASE_RING_TX 8
+
+
+struct wbm_release_ring_tx {
+#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t release_source_module                                   :  3,  
+                      bm_action                                               :  3,  
+                      buffer_or_desc_type                                     :  3,  
+                      first_msdu_index                                        :  4,  
+                      tqm_release_reason                                      :  4,  
+                      rbm_override_valid                                      :  1,  
+                      rbm_override                                            :  4,  
+                      reserved_2a                                             :  7,  
+                      cache_id                                                :  1,  
+                      cookie_conversion_status                                :  1,  
+                      wbm_internal_error                                      :  1;  
+             uint32_t tqm_status_number                                       : 24,  
+                      transmit_count                                          :  7,  
+                      sw_release_details_valid                                :  1;  
+             uint32_t ack_frame_rssi                                          :  8,  
+                      first_msdu                                              :  1,  
+                      last_msdu                                               :  1,  
+                      fw_tx_notify_frame                                      :  3,  
+                      buffer_timestamp                                        : 19;  
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t sw_peer_id                                              : 16,  
+                      tid                                                     :  4,  
+                      tqm_status_number_31_24                                 :  8,  
+                      looping_count                                           :  4;  
+#else
+             struct   buffer_addr_info                                          released_buff_or_desc_addr_info;
+             uint32_t wbm_internal_error                                      :  1,  
+                      cookie_conversion_status                                :  1,  
+                      cache_id                                                :  1,  
+                      reserved_2a                                             :  7,  
+                      rbm_override                                            :  4,  
+                      rbm_override_valid                                      :  1,  
+                      tqm_release_reason                                      :  4,  
+                      first_msdu_index                                        :  4,  
+                      buffer_or_desc_type                                     :  3,  
+                      bm_action                                               :  3,  
+                      release_source_module                                   :  3;  
+             uint32_t sw_release_details_valid                                :  1,  
+                      transmit_count                                          :  7,  
+                      tqm_status_number                                       : 24;  
+             uint32_t buffer_timestamp                                        : 19,  
+                      fw_tx_notify_frame                                      :  3,  
+                      last_msdu                                               :  1,  
+                      first_msdu                                              :  1,  
+                      ack_frame_rssi                                          :  8;  
+             struct   tx_rate_stats_info                                        tx_rate_stats;
+             uint32_t looping_count                                           :  4,  
+                      tqm_status_number_31_24                                 :  8,  
+                      tid                                                     :  4,  
+                      sw_peer_id                                              : 16;  
+#endif
+};
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000000
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB    0
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MSB    31
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK   0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB   0
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MSB   7
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK  0x000000ff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MSB 11
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000f00
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000004
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB    12
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MSB    31
+#define WBM_RELEASE_RING_TX_RELEASED_BUFF_OR_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK   0xfffff000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_OFFSET                            0x00000008
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_LSB                               0
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_MSB                               2
+#define WBM_RELEASE_RING_TX_RELEASE_SOURCE_MODULE_MASK                              0x00000007
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_BM_ACTION_OFFSET                                        0x00000008
+#define WBM_RELEASE_RING_TX_BM_ACTION_LSB                                           3
+#define WBM_RELEASE_RING_TX_BM_ACTION_MSB                                           5
+#define WBM_RELEASE_RING_TX_BM_ACTION_MASK                                          0x00000038
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_OFFSET                              0x00000008
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_LSB                                 6
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_MSB                                 8
+#define WBM_RELEASE_RING_TX_BUFFER_OR_DESC_TYPE_MASK                                0x000001c0
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_OFFSET                                 0x00000008
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_LSB                                    9
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_MSB                                    12
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_INDEX_MASK                                   0x00001e00
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_LSB                                  13
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_MSB                                  16
+#define WBM_RELEASE_RING_TX_TQM_RELEASE_REASON_MASK                                 0x0001e000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_LSB                                  17
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_MSB                                  17
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_VALID_MASK                                 0x00020000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_OFFSET                                     0x00000008
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_LSB                                        18
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_MSB                                        21
+#define WBM_RELEASE_RING_TX_RBM_OVERRIDE_MASK                                       0x003c0000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_RESERVED_2A_OFFSET                                      0x00000008
+#define WBM_RELEASE_RING_TX_RESERVED_2A_LSB                                         22
+#define WBM_RELEASE_RING_TX_RESERVED_2A_MSB                                         28
+#define WBM_RELEASE_RING_TX_RESERVED_2A_MASK                                        0x1fc00000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_CACHE_ID_OFFSET                                         0x00000008
+#define WBM_RELEASE_RING_TX_CACHE_ID_LSB                                            29
+#define WBM_RELEASE_RING_TX_CACHE_ID_MSB                                            29
+#define WBM_RELEASE_RING_TX_CACHE_ID_MASK                                           0x20000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_OFFSET                         0x00000008
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_LSB                            30
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_MSB                            30
+#define WBM_RELEASE_RING_TX_COOKIE_CONVERSION_STATUS_MASK                           0x40000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_OFFSET                               0x00000008
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_LSB                                  31
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_MSB                                  31
+#define WBM_RELEASE_RING_TX_WBM_INTERNAL_ERROR_MASK                                 0x80000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_OFFSET                                0x0000000c
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_LSB                                   0
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_MSB                                   23
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_MASK                                  0x00ffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_OFFSET                                   0x0000000c
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_LSB                                      24
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_MSB                                      30
+#define WBM_RELEASE_RING_TX_TRANSMIT_COUNT_MASK                                     0x7f000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_OFFSET                         0x0000000c
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_LSB                            31
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_MSB                            31
+#define WBM_RELEASE_RING_TX_SW_RELEASE_DETAILS_VALID_MASK                           0x80000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_OFFSET                                   0x00000010
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_LSB                                      0
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_MSB                                      7
+#define WBM_RELEASE_RING_TX_ACK_FRAME_RSSI_MASK                                     0x000000ff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_OFFSET                                       0x00000010
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_LSB                                          8
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_MSB                                          8
+#define WBM_RELEASE_RING_TX_FIRST_MSDU_MASK                                         0x00000100
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_LAST_MSDU_OFFSET                                        0x00000010
+#define WBM_RELEASE_RING_TX_LAST_MSDU_LSB                                           9
+#define WBM_RELEASE_RING_TX_LAST_MSDU_MSB                                           9
+#define WBM_RELEASE_RING_TX_LAST_MSDU_MASK                                          0x00000200
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_OFFSET                               0x00000010
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_LSB                                  10
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_MSB                                  12
+#define WBM_RELEASE_RING_TX_FW_TX_NOTIFY_FRAME_MASK                                 0x00001c00
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_OFFSET                                 0x00000010
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_LSB                                    13
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_MSB                                    31
+#define WBM_RELEASE_RING_TX_BUFFER_TIMESTAMP_MASK                                   0xffffe000
+
+
+ 
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_OFFSET           0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_LSB              0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MSB              0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TX_RATE_STATS_INFO_VALID_MASK             0x00000001
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_LSB                           1
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MSB                           3
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_BW_MASK                          0x0000000e
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_OFFSET                  0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_LSB                     4
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MSB                     7
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_PKT_TYPE_MASK                    0x000000f0
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_OFFSET                      0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_LSB                         8
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MSB                         8
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_STBC_MASK                        0x00000100
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_OFFSET                      0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_LSB                         9
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MSB                         9
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_LDPC_MASK                        0x00000200
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_OFFSET                       0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_LSB                          10
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MSB                          11
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_SGI_MASK                         0x00000c00
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_OFFSET                       0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_LSB                          12
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MSB                          15
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TRANSMIT_MCS_MASK                         0x0000f000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_OFFSET                 0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_LSB                    16
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MSB                    16
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_OFDMA_TRANSMISSION_MASK                   0x00010000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_LSB                           17
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_MSB                           28
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_TONES_IN_RU_MASK                          0x1ffe0000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_OFFSET                        0x00000014
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_LSB                           29
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_MSB                           31
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_RESERVED_0A_MASK                          0xe0000000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_OFFSET              0x00000018
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_LSB                 0
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MSB                 31
+#define WBM_RELEASE_RING_TX_TX_RATE_STATS_PPDU_TRANSMISSION_TSF_MASK                0xffffffff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_OFFSET                                       0x0000001c
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_LSB                                          0
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_MSB                                          15
+#define WBM_RELEASE_RING_TX_SW_PEER_ID_MASK                                         0x0000ffff
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TID_OFFSET                                              0x0000001c
+#define WBM_RELEASE_RING_TX_TID_LSB                                                 16
+#define WBM_RELEASE_RING_TX_TID_MSB                                                 19
+#define WBM_RELEASE_RING_TX_TID_MASK                                                0x000f0000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_OFFSET                          0x0000001c
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_LSB                             20
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_MSB                             27
+#define WBM_RELEASE_RING_TX_TQM_STATUS_NUMBER_31_24_MASK                            0x0ff00000
+
+
+ 
+
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_OFFSET                                    0x0000001c
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_LSB                                       28
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_MSB                                       31
+#define WBM_RELEASE_RING_TX_LOOPING_COUNT_MASK                                      0xf0000000
+
+
+
+#endif    
diff --git a/hw/qcn9224/v2/wcss_seq_hwiobase.h b/hw/qcn9224/v2/wcss_seq_hwiobase.h
new file mode 100644
index 0000000..b5d930b
--- /dev/null
+++ b/hw/qcn9224/v2/wcss_seq_hwiobase.h
@@ -0,0 +1,162 @@
+
+/* 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 __WCSS_SEQ_HWIOBASE_H__
+#define __WCSS_SEQ_HWIOBASE_H__
+ 
+ 
+ 
+
+ 
+
+#define WCSS_CFGBUS_BASE                                            0x00008000
+#define WCSS_CFGBUS_BASE_SIZE                                       0x00008000
+#define WCSS_CFGBUS_BASE_PHYS                                       0x00008000
+
+ 
+
+#define UMAC_NOC_BASE                                               0x00140000
+#define UMAC_NOC_BASE_SIZE                                          0x00004400
+#define UMAC_NOC_BASE_PHYS                                          0x00140000
+
+ 
+
+#define PHYA0_BASE                                                  0x00300000
+#define PHYA0_BASE_SIZE                                             0x00300000
+#define PHYA0_BASE_PHYS                                             0x00300000
+
+ 
+
+#define PHYA1_BASE                                                  0x00600000
+#define PHYA1_BASE_SIZE                                             0x00300000
+#define PHYA1_BASE_PHYS                                             0x00600000
+
+ 
+
+#define DMAC_BASE                                                   0x00900000
+#define DMAC_BASE_SIZE                                              0x00080000
+#define DMAC_BASE_PHYS                                              0x00900000
+
+ 
+
+#define UMAC_BASE                                                   0x00a00000
+#define UMAC_BASE_SIZE                                              0x0004d000
+#define UMAC_BASE_PHYS                                              0x00a00000
+
+ 
+
+#define PMAC0_BASE                                                  0x00a80000
+#define PMAC0_BASE_SIZE                                             0x00040000
+#define PMAC0_BASE_PHYS                                             0x00a80000
+
+ 
+
+#define PMAC1_BASE                                                  0x00ac0000
+#define PMAC1_BASE_SIZE                                             0x00040000
+#define PMAC1_BASE_PHYS                                             0x00ac0000
+
+ 
+
+#define MAC_WSIB_BASE                                               0x00b3c000
+#define MAC_WSIB_BASE_SIZE                                          0x00004000
+#define MAC_WSIB_BASE_PHYS                                          0x00b3c000
+
+ 
+
+#define CXC_BASE                                                    0x00b40000
+#define CXC_BASE_SIZE                                               0x00010000
+#define CXC_BASE_PHYS                                               0x00b40000
+
+ 
+
+#define WFSS_PMM_BASE                                               0x00b50000
+#define WFSS_PMM_BASE_SIZE                                          0x00002401
+#define WFSS_PMM_BASE_PHYS                                          0x00b50000
+
+ 
+
+#define WFSS_CC_BASE                                                0x00b60000
+#define WFSS_CC_BASE_SIZE                                           0x00008000
+#define WFSS_CC_BASE_PHYS                                           0x00b60000
+
+ 
+
+#define WCMN_CORE_BASE                                              0x00b68000
+#define WCMN_CORE_BASE_SIZE                                         0x000008a9
+#define WCMN_CORE_BASE_PHYS                                         0x00b68000
+
+ 
+
+#define WIFI_CFGBUS_APB_TSLV_BASE                                   0x00b6b000
+#define WIFI_CFGBUS_APB_TSLV_BASE_SIZE                              0x00001000
+#define WIFI_CFGBUS_APB_TSLV_BASE_PHYS                              0x00b6b000
+
+ 
+
+#define WFSS_CFGBUS_BASE                                            0x00b6c000
+#define WFSS_CFGBUS_BASE_SIZE                                       0x000000a0
+#define WFSS_CFGBUS_BASE_PHYS                                       0x00b6c000
+
+ 
+
+#define WIFI_CFGBUS_AHB_TSLV_BASE                                   0x00b6d000
+#define WIFI_CFGBUS_AHB_TSLV_BASE_SIZE                              0x00001000
+#define WIFI_CFGBUS_AHB_TSLV_BASE_PHYS                              0x00b6d000
+
+ 
+
+#define UMAC_ACMT_BASE                                              0x00b6e000
+#define UMAC_ACMT_BASE_SIZE                                         0x00001000
+#define UMAC_ACMT_BASE_PHYS                                         0x00b6e000
+
+ 
+
+#define WCSS_CC_BASE                                                0x00b80000
+#define WCSS_CC_BASE_SIZE                                           0x00010000
+#define WCSS_CC_BASE_PHYS                                           0x00b80000
+
+ 
+
+#define PMM_TOP_BASE                                                0x00b90000
+#define PMM_TOP_BASE_SIZE                                           0x00010000
+#define PMM_TOP_BASE_PHYS                                           0x00b90000
+
+ 
+
+#define WCSS_TOP_CMN_BASE                                           0x00ba0000
+#define WCSS_TOP_CMN_BASE_SIZE                                      0x00004000
+#define WCSS_TOP_CMN_BASE_PHYS                                      0x00ba0000
+
+ 
+
+#define MSIP_BASE                                                   0x00bb0000
+#define MSIP_BASE_SIZE                                              0x00010000
+#define MSIP_BASE_PHYS                                              0x00bb0000
+
+ 
+
+#define DBG_BASE                                                    0x01000000
+#define DBG_BASE_SIZE                                               0x00100000
+#define DBG_BASE_PHYS                                               0x01000000
+
+ 
+
+#define Q6SS_WLAN_BASE                                              0x01100000
+#define Q6SS_WLAN_BASE_SIZE                                         0x00100000
+#define Q6SS_WLAN_BASE_PHYS                                         0x01100000
+
+
+#endif  
diff --git a/hw/qcn9224/v2/wcss_seq_hwioreg_umac.h b/hw/qcn9224/v2/wcss_seq_hwioreg_umac.h
new file mode 100644
index 0000000..03197d8
--- /dev/null
+++ b/hw/qcn9224/v2/wcss_seq_hwioreg_umac.h
@@ -0,0 +1,54008 @@
+
+/* 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 __WCSS_SEQ_HWIOREG_UMAC_H__
+#define __WCSS_SEQ_HWIOREG_UMAC_H__
+ 
+ 
+ 
+
+#include "seq_hwio.h"
+#include "wcss_seq_hwiobase.h"
+#ifdef SCALE_INCLUDES
+#include "HALhwio.h"
+#else
+#include "msmhwio.h"
+#endif
+
+ 
+
+#define MAC_UMXI_REG_REG_BASE                                                                               (UMAC_BASE      + 0x00030000)
+#define MAC_UMXI_REG_REG_BASE_SIZE                                                                          0x4000
+#define MAC_UMXI_REG_REG_BASE_USED                                                                          0x510
+#define MAC_UMXI_REG_REG_BASE_PHYS                                                                          (UMAC_BASE_PHYS + 0x00030000)
+#define MAC_UMXI_REG_REG_BASE_OFFS                                                                          0x00030000
+
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x)                                                         ((x) + 0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_PHYS(x)                                                         ((x) + 0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OFFS                                                            (0x0)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RMSK                                                            0x8000007f
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                          0x80000000
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                                  31
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_1_BMSK                                                    0x40
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_1_SHFT                                                       6
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_0_BMSK                                                    0x20
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_WR_PERF_CNT_0_SHFT                                                       5
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_3_BMSK                                                    0x10
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_3_SHFT                                                       4
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_2_BMSK                                                     0x8
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_2_SHFT                                                       3
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_1_BMSK                                                     0x4
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_1_SHFT                                                       2
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_0_BMSK                                                     0x2
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_RD_PERF_CNT_0_SHFT                                                       1
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_UNUSED_BMSK                                                            0x1
+#define HWIO_UMAC_MXI_R0_CLOCK_GATE_DISABLE_UNUSED_SHFT                                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x)                                                    ((x) + 0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_PHYS(x)                                                    ((x) + 0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OFFS                                                       (0x4)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_VALUE_BMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE0_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x)                                                    ((x) + 0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_PHYS(x)                                                    ((x) + 0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OFFS                                                       (0x8)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_RMSK                                                             0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_VALUE_BMSK                                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE0_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x)                                                       ((x) + 0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_PHYS(x)                                                       ((x) + 0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OFFS                                                          (0xc)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_RMSK                                                          0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_VALUE_BMSK                                                    0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE0_VALUE_SHFT                                                             0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x)                                                    ((x) + 0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_PHYS(x)                                                    ((x) + 0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OFFS                                                       (0x10)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_VALUE_BMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_LSB_BASE1_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x)                                                    ((x) + 0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_PHYS(x)                                                    ((x) + 0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OFFS                                                       (0x14)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_RMSK                                                             0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_POR                                                        0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ATTR                                                                    0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_VALUE_BMSK                                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_MSB_BASE1_VALUE_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x)                                                       ((x) + 0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_PHYS(x)                                                       ((x) + 0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OFFS                                                          (0x18)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_RMSK                                                          0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_VALUE_BMSK                                                    0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_PERF_ADDR_RANGE1_VALUE_SHFT                                                             0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x)                                                ((x) + 0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_PHYS(x)                                                ((x) + 0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OFFS                                                   (0x1c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_0_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x)                                        ((x) + 0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_PHYS(x)                                        ((x) + 0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OFFS                                           (0x20)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x)                                        ((x) + 0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_PHYS(x)                                        ((x) + 0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OFFS                                           (0x24)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x)                                                ((x) + 0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_PHYS(x)                                                ((x) + 0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_OFFS                                                   (0x28)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_0_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x)                                                 ((x) + 0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_PHYS(x)                                                 ((x) + 0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_OFFS                                                    (0x2c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_0_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OFFS                                                   (0x30)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_1_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x)                                        ((x) + 0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_PHYS(x)                                        ((x) + 0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OFFS                                           (0x34)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x)                                        ((x) + 0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_PHYS(x)                                        ((x) + 0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OFFS                                           (0x38)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_OFFS                                                   (0x3c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_1_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x)                                                 ((x) + 0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_PHYS(x)                                                 ((x) + 0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_OFFS                                                    (0x40)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_1_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x)                                                ((x) + 0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_PHYS(x)                                                ((x) + 0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OFFS                                                   (0x44)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_2_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x)                                        ((x) + 0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_PHYS(x)                                        ((x) + 0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OFFS                                           (0x48)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x)                                        ((x) + 0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_PHYS(x)                                        ((x) + 0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OFFS                                           (0x4c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_2_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x)                                                ((x) + 0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_PHYS(x)                                                ((x) + 0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_OFFS                                                   (0x50)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_2_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x)                                                 ((x) + 0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_PHYS(x)                                                 ((x) + 0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_OFFS                                                    (0x54)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_2_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x)                                                ((x) + 0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_PHYS(x)                                                ((x) + 0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OFFS                                                   (0x58)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ATTR                                                                0x0
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDRESS_RANGE_LIMIT_BMSK                               0xc0000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ADDRESS_RANGE_LIMIT_SHFT                                       30
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_WINDOW_SIZE_BMSK                                       0x38000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_WINDOW_SIZE_SHFT                                               27
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RESET_CNT_BMSK                                          0x4000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_RESET_CNT_SHFT                                                 26
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_CNTR_EN_BMSK                                            0x2000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_CNTR_EN_SHFT                                                   25
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ID_BITMAP_BMSK                                          0x1ffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_CFG_3_ID_BITMAP_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x)                                        ((x) + 0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_PHYS(x)                                        ((x) + 0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OFFS                                           (0x5c)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_0_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x)                                        ((x) + 0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_PHYS(x)                                        ((x) + 0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OFFS                                           (0x60)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_POR                                            0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ATTR                                                        0x3
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ID_BITMAP_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_ID_CFG_3_IX_1_ID_BITMAP_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x)                                                ((x) + 0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_PHYS(x)                                                ((x) + 0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_OFFS                                                   (0x64)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ATTR                                                                0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_CNTR_VAL_3_VALUE_SHFT                                                      0
+
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x)                                                 ((x) + 0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_PHYS(x)                                                 ((x) + 0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_OFFS                                                    (0x68)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x))
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_VALUE_BMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_UMAC_MXI_RD_PERF_TXN_CTR_3_VALUE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x)                                                     ((x) + 0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_PHYS(x)                                                     ((x) + 0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OFFS                                                        (0x6c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RMSK                                                           0x70101
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ATTR                                                                     0x0
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_WINDOW_SIZE_BMSK                                               0x70000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_WINDOW_SIZE_SHFT                                                    16
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RESET_CNT_BMSK                                                   0x100
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_RESET_CNT_SHFT                                                       8
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_CNTR_EN_BMSK                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_0_CNTR_EN_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x)                                                  ((x) + 0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_PHYS(x)                                                  ((x) + 0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OFFS                                                     (0x70)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_RMSK                                                     0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_POR                                                      0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ID_BITMAP_BMSK                                           0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_ID_BITMAP_SHFT                                                    0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x)                                             ((x) + 0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_PHYS(x)                                             ((x) + 0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OFFS                                                (0x74)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_0_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x)                                             ((x) + 0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_PHYS(x)                                             ((x) + 0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OFFS                                                (0x78)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_0_IX_1_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x)                                                     ((x) + 0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_PHYS(x)                                                     ((x) + 0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_OFFS                                                        (0x7c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_0_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x)                                                      ((x) + 0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_PHYS(x)                                                      ((x) + 0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_OFFS                                                         (0x80)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_0_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x)                                                     ((x) + 0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_PHYS(x)                                                     ((x) + 0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OFFS                                                        (0x84)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RMSK                                                           0x70101
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ATTR                                                                     0x0
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_WINDOW_SIZE_BMSK                                               0x70000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_WINDOW_SIZE_SHFT                                                    16
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RESET_CNT_BMSK                                                   0x100
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_RESET_CNT_SHFT                                                       8
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_CNTR_EN_BMSK                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_CFG_1_CNTR_EN_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x)                                             ((x) + 0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_PHYS(x)                                             ((x) + 0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OFFS                                                (0x88)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_0_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x)                                             ((x) + 0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_PHYS(x)                                             ((x) + 0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OFFS                                                (0x8c)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IX_1_ID_BITMAP_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x)                                                  ((x) + 0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_PHYS(x)                                                  ((x) + 0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OFFS                                                     (0x90)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_RMSK                                                     0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_POR                                                      0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ID_BITMAP_BMSK                                           0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_ID_CFG_1_ID_BITMAP_SHFT                                                    0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x)                                                     ((x) + 0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_PHYS(x)                                                     ((x) + 0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_OFFS                                                        (0x94)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_CNTR_VAL_1_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x)                                                      ((x) + 0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_PHYS(x)                                                      ((x) + 0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_OFFS                                                         (0x98)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_WR_PERF_TXN_CTR_1_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x)                                                         ((x) + 0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_PHYS(x)                                                         ((x) + 0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OFFS                                                            (0x9c)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_WR_REMAP_EN_BMSK                                                0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_WR_REMAP_EN_SHFT                                                        31
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RD_REMAP_EN_BMSK                                                0x40000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_RD_REMAP_EN_SHFT                                                        30
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_SEC_BMSK                                                  0x20000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_SEC_SHFT                                                          29
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_ADDR_BMSK                                                 0x1fffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_REG_REMAP_ADDR_SHFT                                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ADDR(x)                                                     ((x) + 0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_PHYS(x)                                                     ((x) + 0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_OFFS                                                        (0xa0)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_RMSK                                                               0x7
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ATTR                                                                     0x3
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_SIZE_OF_NULL_REMAP_BMSK                                            0x7
+#define HWIO_UMAC_MXI_R0_MXI_NULL_REMAP_CFG_REG_SIZE_OF_NULL_REMAP_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OFFS                                                           (0xa4)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_RMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_POR                                                            0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ATTR                                                                        0x3
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_VAL_BMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_S_PARE_REGISTER_VAL_SHFT                                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x)                                                 ((x) + 0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_PHYS(x)                                                 ((x) + 0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OFFS                                                    (0xa8)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_BASE_ADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_LSB_BASE_ADDR_LSB_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x)                                                 ((x) + 0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_PHYS(x)                                                 ((x) + 0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OFFS                                                    (0xac)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_RMSK                                                          0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_BASE_ADDR_MSB_BMSK                                            0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_BASE_MSB_BASE_ADDR_MSB_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x)                                                 ((x) + 0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_PHYS(x)                                                 ((x) + 0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OFFS                                                    (0xb0)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_BASE_ADDR_MASK_LSB_BMSK                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_LSB_BASE_ADDR_MASK_LSB_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x)                                                 ((x) + 0xb4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PHYS(x)                                                 ((x) + 0xb4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OFFS                                                    (0xb4)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_RMSK                                                    0xc00000ff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_POR                                                     0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_SS_UP_CHK_ENABLE_BMSK                                   0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_SS_UP_CHK_ENABLE_SHFT                                           31
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PCIE_STATE_CHK_ENABLE_BMSK                              0x40000000
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_PCIE_STATE_CHK_ENABLE_SHFT                                      30
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_BASE_ADDR_MASK_MSB_BMSK                                       0xff
+#define HWIO_UMAC_MXI_R0_MXI_INTERNAL_ADDR_MASK_MSB_BASE_ADDR_MASK_MSB_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x)                                                     ((x) + 0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_PHYS(x)                                                     ((x) + 0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_OFFS                                                        (0xb8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_LOWER_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x)                                                     ((x) + 0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_PHYS(x)                                                     ((x) + 0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_OFFS                                                        (0xbc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_RMSK                                                              0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_VALUE_BMSK                                                        0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_TESTBUS_UPPER_VALUE_SHFT                                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x)                                                    ((x) + 0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_PHYS(x)                                                    ((x) + 0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_OFFS                                                       (0xc0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_RMSK                                                            0xfff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_POR                                                        0x00000211
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ATTR                                                                    0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_RD_ADDR_BMSK                                           0xe00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_RD_ADDR_SHFT                                               9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_ADDR_BMSK                                           0x1f0
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_ADDR_SHFT                                               4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_DATA_BMSK                                             0xf
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_SM_STATES_IX_0_SM_STATE_WR_DATA_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x)                                                 ((x) + 0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_PHYS(x)                                                 ((x) + 0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OFFS                                                    (0xc4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_RMSK                                                           0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ATTR                                                                 0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                    0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                      0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x)                                                ((x) + 0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_PHYS(x)                                                ((x) + 0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OFFS                                                   (0xc8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RMSK                                                   0x80003fff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_POR                                                    0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ATTR                                                                0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                 0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                         31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_SPARE_BMSK                                                 0x2000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_SPARE_SHFT                                                     13
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_BST_FIFO_AXI_MAS_BMSK                                   0x1000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_BST_FIFO_AXI_MAS_SHFT                                       12
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_BST_FIFO_AXI_MAS_BMSK                                    0x800
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_BST_FIFO_AXI_MAS_SHFT                                       11
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WDOG_CTR_BMSK                                               0x400
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WDOG_CTR_SHFT                                                  10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_FIFO_BMSK                                                0x200
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_FIFO_SHFT                                                    9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_FIFO_BMSK                                           0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_FIFO_SHFT                                               8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_BMSK                                            0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_SHFT                                               7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_AXI_MAS_BMSK                                              0x40
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_AXI_MAS_SHFT                                                 6
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_BMSK                                         0x20
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_SHFT                                            5
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_BMSK                                         0x10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_SHFT                                            4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_CMD_BMSK                                              0x8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_DATA_CMD_SHFT                                                3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_CMD_BMSK                                              0x4
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_WR_ADDR_CMD_SHFT                                                2
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_CMD_BMSK                                                   0x2
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_RD_CMD_SHFT                                                     1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CORE_BMSK                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_CLOCK_GATE_DISABLE_CORE_SHFT                                                       0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x)                                                      ((x) + 0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_PHYS(x)                                                      ((x) + 0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_OFFS                                                         (0xcc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_RMSK                                                         0x81010101
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_BMSK                                     0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_SHFT                                             31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_BMSK                                       0x1000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_SHFT                                              24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_BMSK                                         0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_SHFT                                              16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_HW_ERR_INT_BMSK                                     0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_HW_ERR_INT_SHFT                                         8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_WARN_INT_BMSK                                         0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_INTS_GXI_WDTIMEOUT_WARN_INT_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x)                                                     ((x) + 0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_PHYS(x)                                                     ((x) + 0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_OFFS                                                        (0xd0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_RMSK                                                          0xffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_POR                                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ATTR                                                                     0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_BMSK                                     0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_ERR_PORT_BMSK                                            0xff00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_WR_ERR_PORT_SHFT                                                 8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_RD_ERR_PORT_BMSK                                              0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_ERR_STATS_AXI_RD_ERR_PORT_SHFT                                                 0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x)                                              ((x) + 0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_PHYS(x)                                              ((x) + 0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_OFFS                                                 (0xd4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_RMSK                                                  0x1010101
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_POR                                                  0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ATTR                                                              0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_ACC_ERR_BMSK                           0x1000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_ACC_ERR_SHFT                                  24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_ACC_ERR_BMSK                             0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_ACC_ERR_SHFT                                  16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_TIMEOUT_BMSK                               0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_WR_TIMEOUT_SHFT                                   8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_TIMEOUT_BMSK                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_INTS_GXI_PCIE_L0_RD_TIMEOUT_SHFT                                   0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x)                                             ((x) + 0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_PHYS(x)                                             ((x) + 0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_OFFS                                                (0xd8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_RMSK                                                    0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_POR                                                 0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ATTR                                                             0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_WR_PCIE_L0_ACC_ERR_PORT_BMSK                        0xff00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_WR_PCIE_L0_ACC_ERR_PORT_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_RD_PCIE_L0_ACC_ERR_PORT_BMSK                          0xff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_EXT_ACC_ERR_STATS_AXI_RD_PCIE_L0_ACC_ERR_PORT_SHFT                             0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x)                                               ((x) + 0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_PHYS(x)                                               ((x) + 0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OFFS                                                  (0xdc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_RMSK                                                  0xffff3f3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_BMSK                0xff000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_SHFT                        24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_BMSK                 0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_SHFT                       16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_BMSK                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_BMSK                         0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_SHFT                            0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x)                                               ((x) + 0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_PHYS(x)                                               ((x) + 0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OFFS                                                  (0xe0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_RMSK                                                  0xffff3f3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_BMSK                0xff000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_SHFT                        24
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_BMSK                 0xff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_SHFT                       16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_BMSK                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_SHFT                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_BMSK                         0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_SHFT                            0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x)                                             ((x) + 0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_PHYS(x)                                             ((x) + 0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OFFS                                                (0xe4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_RMSK                                                0xefffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_POR                                                 0x46000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_INT_BMSK                        0xe0000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_INT_SHFT                                29
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_EXT_BMSK                         0xe000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_BURST_SIZE_EXT_SHFT                                25
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_ISSUE_THRESHOLD_BMSK                        0x1ffe000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_READ_ISSUE_THRESHOLD_SHFT                               13
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_WRITE_PREFETCH_THRESHOLD_BMSK                       0x1ffe
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_WRITE_PREFETCH_THRESHOLD_SHFT                            1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_CLEAR_STATS_BMSK                                       0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_0_GXI_CLEAR_STATS_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x)                                             ((x) + 0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_PHYS(x)                                             ((x) + 0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OFFS                                                (0xe8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_RMSK                                                0xc00007ff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_POR                                                 0x00000013
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SIZE_SEL_ENABLE_BMSK                          0x80000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SIZE_SEL_ENABLE_SHFT                                  31
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SPLIT_DISABLE_BMSK                            0x40000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_BURST_SPLIT_DISABLE_SHFT                                    30
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_RD_FLUSH_BMSK                                0x400
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_RD_FLUSH_SHFT                                   10
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_WR_FLUSH_BMSK                                0x200
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DELAYED_WR_FLUSH_SHFT                                    9
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DISABLE_WR_PREFIL_BMSK                               0x100
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_DISABLE_WR_PREFIL_SHFT                                   8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_WR_BOUNDARY_SPLIT_BMSK                            0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_WR_BOUNDARY_SPLIT_SHFT                               7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_RD_BOUNDARY_SPLIT_BMSK                            0x40
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_MAX_RD_BOUNDARY_SPLIT_SHFT                               6
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_INT_BMSK                             0x38
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_INT_SHFT                                3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_EXT_BMSK                              0x7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_MISC_CONTROL_IX_1_GXI_WRITE_BURST_SIZE_EXT_SHFT                                0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x)                                             ((x) + 0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_PHYS(x)                                             ((x) + 0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OFFS                                                (0xec)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_RMSK                                                0xffff0001
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_POR                                                 0x00ff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ATTR                                                             0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_LIMIT_BMSK                            0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_LIMIT_SHFT                                    16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_DISABLE_BMSK                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_CONTROL_GXI_WDOG_WARN_DISABLE_SHFT                                   0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x)                                              ((x) + 0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_PHYS(x)                                              ((x) + 0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_OFFS                                                 (0xf0)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_RMSK                                                     0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_POR                                                  0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ATTR                                                              0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_GXI_WDOG_WARN_STATUS_BMSK                                0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_WARN_STATUS_GXI_WDOG_WARN_STATUS_SHFT                                     0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x)                                                 ((x) + 0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_PHYS(x)                                                 ((x) + 0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_OFFS                                                    (0xf4)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_BMSK                                  0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_SHFT                                          16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_BMSK                                     0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_SHFT                                          0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x)                                           ((x) + 0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_PHYS(x)                                           ((x) + 0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OFFS                                              (0xf8)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_RMSK                                              0xffff0001
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_POR                                               0x00ff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ATTR                                                           0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_LIMIT_BMSK                        0xffff0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_LIMIT_SHFT                                16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_DISABLE_BMSK                             0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_CONTROL_GXI_WDOG_HW_ERR_DISABLE_SHFT                               0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x)                                            ((x) + 0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_PHYS(x)                                            ((x) + 0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_OFFS                                               (0xfc)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_RMSK                                                   0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_GXI_WDOG_HW_ERR_STATUS_BMSK                            0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WDOG_HW_ERR_STATUS_GXI_WDOG_HW_ERR_STATUS_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x)                                               ((x) + 0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_PHYS(x)                                               ((x) + 0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OFFS                                                  (0x100)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_RMSK                                                     0xfffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                   0xe0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                        17
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                      0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                      0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x)                                               ((x) + 0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_PHYS(x)                                               ((x) + 0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OFFS                                                  (0x104)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_RMSK                                                     0xfffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_POR                                                   0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ATTR                                                               0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                   0xe0000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                        17
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                      0x10000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                           16
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                      0xffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x)                                     ((x) + 0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_PHYS(x)                                     ((x) + 0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OFFS                                        (0x108)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x)                                     ((x) + 0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_PHYS(x)                                     ((x) + 0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OFFS                                        (0x10c)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x)                                     ((x) + 0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_PHYS(x)                                     ((x) + 0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OFFS                                        (0x110)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x)                                     ((x) + 0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_PHYS(x)                                     ((x) + 0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OFFS                                        (0x114)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_POR                                         0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ATTR                                                     0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                           0
+
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x)                                            ((x) + 0x118)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_PHYS(x)                                            ((x) + 0x118)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OFFS                                               (0x118)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RMSK                                                   0xbfbf
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ATTR                                                            0x3
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_IN(x))
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_EN_BMSK                                         0x8000
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_EN_SHFT                                             15
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_CNT_BMSK                                        0x3f00
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_WR_OVR_CNT_SHFT                                             8
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_EN_BMSK                                           0x80
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_EN_SHFT                                              7
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_CNT_BMSK                                          0x3f
+#define HWIO_UMAC_MXI_R0_WMAC_GXI_GXI_AXI_OUTSANDING_CTL_RD_OVR_CNT_SHFT                                             0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x)                                                       ((x) + 0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_PHYS(x)                                                       ((x) + 0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OFFS                                                          (0x11c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RMSK                                                              0xbfbf
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_DBG_EN_BMSK                                           0x8000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_DBG_EN_SHFT                                               15
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_ADDR_BMSK                                             0x3f00
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_WR_CMD_FIFO_ADDR_SHFT                                                  8
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_DBG_EN_BMSK                                             0x80
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_DBG_EN_SHFT                                                7
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_ADDR_BMSK                                               0x3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_CTL_RD_CMD_FIFO_ADDR_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x)                                                       ((x) + 0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_PHYS(x)                                                       ((x) + 0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_OFFS                                                          (0x120)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RMSK                                                          0x3f3f3f3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_POR                                                           0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ATTR                                                                       0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_WR_PTR_BMSK                                       0x3f000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_WR_PTR_SHFT                                               24
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_RD_PTR_BMSK                                         0x3f0000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_WR_CMD_FIFO_RD_PTR_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_WR_PTR_BMSK                                           0x3f00
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_WR_PTR_SHFT                                                8
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_RD_PTR_BMSK                                             0x3f
+#define HWIO_UMAC_MXI_R0_MXI_CMD_FIFO_DBG_STS_RD_CMD_FIFO_RD_PTR_SHFT                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x)                                                      ((x) + 0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_PHYS(x)                                                      ((x) + 0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_OFFS                                                         (0x124)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_LO_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x)                                                      ((x) + 0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_PHYS(x)                                                      ((x) + 0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_OFFS                                                         (0x128)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_RD_CMD_DBG_HI_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x)                                                      ((x) + 0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_PHYS(x)                                                      ((x) + 0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_OFFS                                                         (0x12c)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_LO_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x)                                                      ((x) + 0x130)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_PHYS(x)                                                      ((x) + 0x130)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_OFFS                                                         (0x130)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_POR                                                          0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ATTR                                                                      0x1
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_VALUE_BMSK                                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CMD_WR_CMD_DBG_HI_VALUE_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x)                                                       ((x) + 0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_PHYS(x)                                                       ((x) + 0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OFFS                                                          (0x134)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_RMSK                                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_POR                                                           0xff000000
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_REG_SS_ADDR_MASK_LSB_BMSK                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_LSB_REG_SS_ADDR_MASK_LSB_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x)                                                       ((x) + 0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_PHYS(x)                                                       ((x) + 0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OFFS                                                          (0x138)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_RMSK                                                                0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_POR                                                           0x0000007f
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ATTR                                                                       0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_REG_SS_ADDR_MASK_MSB_BMSK                                           0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_MASK_MSB_REG_SS_ADDR_MASK_MSB_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x)                                                   ((x) + 0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_PHYS(x)                                                   ((x) + 0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OFFS                                                      (0x13c)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_REG_INT_ADDR_MASK_LSB_BMSK                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_LSB_REG_INT_ADDR_MASK_LSB_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x)                                                   ((x) + 0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_PHYS(x)                                                   ((x) + 0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OFFS                                                      (0x140)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_POR                                                       0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_REG_INT_ADDR_MASK_MSB_BMSK                                      0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_INT_ADDR_MASK_MSB_REG_INT_ADDR_MASK_MSB_SHFT                                         0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x)                                                      ((x) + 0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_PHYS(x)                                                      ((x) + 0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OFFS                                                         (0x144)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_POR                                                          0x00b80000
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ATTR                                                                      0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_REG_SS_ADDR_RANGE_LSB_BMSK                                   0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_LSB_REG_SS_ADDR_RANGE_LSB_SHFT                                            0
+
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x)                                                      ((x) + 0x148)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_PHYS(x)                                                      ((x) + 0x148)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OFFS                                                         (0x148)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_RMSK                                                               0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_POR                                                          0x00000010
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ATTR                                                                      0x3
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_REG_SS_ADDR_RANGE_MSB_BMSK                                         0xff
+#define HWIO_UMAC_MXI_R0_MXI_SS_ADDR_RANGE_MSB_REG_SS_ADDR_RANGE_MSB_SHFT                                            0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x)                                                         ((x) + 0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_PHYS(x)                                                         ((x) + 0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OFFS                                                            (0x14c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_RMSK                                                            0xff13ff13
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_ID_BMSK                                          0xff000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_ID_SHFT                                                  24
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_BMSK                                       0x100000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_SHFT                                             20
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_BMSK                                         0x20000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_SHFT                                              17
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_BMSK                                          0x10000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_ID_BMSK                                                   0xff00
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_ID_SHFT                                                        8
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_BMSK                                                0x10
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_SHFT                                                   4
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_CHK_EN_BMSK                                                  0x2
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_PORT_CHK_EN_SHFT                                                    1
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_INJ_ENABLE_BMSK                                                   0x1
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_CFG_ADDR_INJ_ENABLE_SHFT                                                     0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x)                                                         ((x) + 0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_PHYS(x)                                                         ((x) + 0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OFFS                                                            (0x150)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_RMSK                                                            0xff07ff07
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_POR                                                             0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ATTR                                                                         0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_ID_BMSK                                          0xff000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_ID_SHFT                                                  24
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_BMSK                                        0x40000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_ERR_INJ_DONE_SHFT                                             18
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_BMSK                                         0x20000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_PORT_CHK_EN_SHFT                                              17
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_BMSK                                          0x10000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_DATA_ADDR_INJ_ENABLE_SHFT                                               16
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_ID_BMSK                                                   0xff00
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_ID_SHFT                                                        8
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_BMSK                                                 0x4
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_ERR_INJ_DONE_SHFT                                                   2
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_CHK_EN_BMSK                                                  0x2
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_PORT_CHK_EN_SHFT                                                    1
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_INJ_ENABLE_BMSK                                                   0x1
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_CFG_ADDR_INJ_ENABLE_SHFT                                                     0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x)                                                   ((x) + 0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_PHYS(x)                                                   ((x) + 0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OFFS                                                      (0x154)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x)                                                   ((x) + 0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_PHYS(x)                                                   ((x) + 0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OFFS                                                      (0x158)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_BMSK                                               0xff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x)                                                   ((x) + 0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_PHYS(x)                                                   ((x) + 0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OFFS                                                      (0x15c)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x)                                                   ((x) + 0x160)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_PHYS(x)                                                   ((x) + 0x160)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OFFS                                                      (0x160)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_WR_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x)                                                   ((x) + 0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_PHYS(x)                                                   ((x) + 0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OFFS                                                      (0x164)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_0_ERR_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x)                                                   ((x) + 0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_PHYS(x)                                                   ((x) + 0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OFFS                                                      (0x168)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_RMSK                                                            0xff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_BMSK                                               0xff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_ADDR_IX_1_ERR_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x)                                                   ((x) + 0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_PHYS(x)                                                   ((x) + 0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OFFS                                                      (0x16c)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_0_ERR_DATA_LSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x)                                                   ((x) + 0x170)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_PHYS(x)                                                   ((x) + 0x170)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OFFS                                                      (0x170)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_RMSK                                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_POR                                                       0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ATTR                                                                   0x3
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_BMSK                                         0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_RD_ERR_INJ_DATA_IX_1_ERR_DATA_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x)                                              ((x) + 0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_PHYS(x)                                              ((x) + 0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OFFS                                                 (0x174)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_RMSK                                                 0x3fffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_POR                                                  0x08000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ATTR                                                              0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TIMING_TRACKER_UNIT_BMSK                             0x20000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TIMING_TRACKER_UNIT_SHFT                                     29
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_WRITES_ENABLE_BMSK                             0x10000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_WRITES_ENABLE_SHFT                                     28
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_READS_ENABLE_BMSK                               0x8000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACK_READS_ENABLE_SHFT                                      27
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_TIMEOUT_BMSK                          0x4000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_TIMEOUT_SHFT                                 26
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_ERROR_BMSK                            0x2000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_TRACKING_EN_FOR_ERROR_SHFT                                   25
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_BMSK                                        0x1ffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_SHFT                                                0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x)                               ((x) + 0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_PHYS(x)                               ((x) + 0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OFFS                                  (0x178)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_RMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_POR                                   0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_POR_RMSK                              0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ATTR                                               0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ID_BITMAP_BMSK                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_0_ID_BITMAP_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x)                               ((x) + 0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_PHYS(x)                               ((x) + 0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OFFS                                  (0x17c)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_RMSK                                  0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_POR                                   0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_POR_RMSK                              0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ATTR                                               0x3
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ID_BITMAP_BMSK                        0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_CTRL_ID_BITMAP_IX_1_ID_BITMAP_SHFT                                 0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x)                                            ((x) + 0x180)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_PHYS(x)                                            ((x) + 0x180)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_OFFS                                               (0x180)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_RMSK                                                      0xf
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ERROR_TRACKING_ARRAY_INDEX_BMSK                           0xc
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_ERROR_TRACKING_ARRAY_INDEX_SHFT                             2
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_TIMEOUT_STATUS_BMSK                                   0x2
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_TIMEOUT_STATUS_SHFT                                     1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_ERROR_STATUS_BMSK                                     0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRANSACTION_TRACKING_STATUS_AXI_ERROR_STATUS_SHFT                                       0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n)                                       ((base) + 0X184 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_PHYS(base,n)                                       ((base) + 0X184 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_OFFS(n)                                            (0X184 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_MAXn                                                        3
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n), HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_RMSK)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR(base,n), mask)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR_LOW_BMSK                                      0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_L0_n_ADDR_LOW_SHFT                                               0
+
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n)                                       ((base) + 0X194 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_PHYS(base,n)                                       ((base) + 0X194 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_OFFS(n)                                            (0X194 + (0x4*(n)))
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_RMSK                                               0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MAXn                                                        3
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_POR                                                0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ATTR                                                            0x1
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n), HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_RMSK)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR(base,n), mask)
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_ONGOING_BMSK                           0x80000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_ONGOING_SHFT                                   31
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_NEXT_MISSED_CAPTURED_COUNT_BMSK                    0x70000000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_NEXT_MISSED_CAPTURED_COUNT_SHFT                            28
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TIME_BMSK                               0xfff0000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TIME_SHFT                                      16
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_SIZE_BMSK                                  0xc000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_SIZE_SHFT                                      14
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TYPE_BMSK                                  0x2000
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_TRANSACTION_TYPE_SHFT                                      13
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MID_BMSK                                               0x1f00
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_MID_SHFT                                                    8
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR_HIGH_BMSK                                           0xff
+#define HWIO_UMAC_MXI_R0_MXI_TRACKING_DETAILS_ARRAY_HI_n_ADDR_HIGH_SHFT                                              0
+
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x)                                                 ((x) + 0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_PHYS(x)                                                 ((x) + 0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_OFFS                                                    (0x1a4)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_TIMESTAMP_BMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_0_TIMESTAMP_SHFT                                                   0
+
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x)                                                 ((x) + 0x1a8)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_PHYS(x)                                                 ((x) + 0x1a8)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_OFFS                                                    (0x1a8)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_RMSK                                                    0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_POR                                                     0x00000000
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ATTR                                                                 0x1
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_TIMESTAMP_BMSK                                          0xffffffff
+#define HWIO_UMAC_MXI_R0_MXI_CURRENT_TIMESTAMP_IX_1_TIMESTAMP_SHFT                                                   0
+
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x)                                                  ((x) + 0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_PHYS(x)                                                  ((x) + 0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OFFS                                                     (0x1ac)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_RMSK                                                          0xfff
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_POR                                                      0x00000049
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x),v)
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_ADDR(x),m,v,HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_IN(x))
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_VAL_BMSK                                 0xc00
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_VAL_SHFT                                    10
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_EN_BMSK                                  0x200
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TQM_SEC_BIT_OVERRIDE_EN_SHFT                                      9
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_VAL_BMSK                                 0x180
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_VAL_SHFT                                     7
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_EN_BMSK                                   0x40
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_REO_SEC_BIT_OVERRIDE_EN_SHFT                                      6
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_VAL_BMSK                                  0x30
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_VAL_SHFT                                     4
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_EN_BMSK                                    0x8
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_WBM_SEC_BIT_OVERRIDE_EN_SHFT                                      3
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_VAL_BMSK                                   0x6
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_VAL_SHFT                                     1
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_EN_BMSK                                    0x1
+#define HWIO_UMAC_MXI_R0_GXI_SECURITY_BIT_OVERRIDE_TCL_SEC_BIT_OVERRIDE_EN_SHFT                                      0
+
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x)                                                        ((x) + 0x1b0)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_PHYS(x)                                                        ((x) + 0x1b0)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_OFFS                                                           (0x1b0)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RMSK                                                            0x1ff01ff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_POR                                                            0x00000000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ATTR                                                                        0x1
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x))
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_ADDR(x), m)
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_FLUSH_CNT_NOT_ZERO_BMSK                                      0x1000000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_FLUSH_CNT_NOT_ZERO_SHFT                                             24
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_PORT_ID_BMSK                                                  0xff0000
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_WR_PORT_ID_SHFT                                                        16
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_FLUSH_CNT_NOT_ZERO_BMSK                                          0x100
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_FLUSH_CNT_NOT_ZERO_SHFT                                              8
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_PORT_ID_BMSK                                                      0xff
+#define HWIO_UMAC_MXI_R0_GXI_FLUSH_ERR_STATS_RD_PORT_ID_SHFT                                                         0
+
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x)                                                               ((x) + 0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_PHYS(x)                                                               ((x) + 0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OFFS                                                                  (0x500)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_RMSK                                                                     0x1001f
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_POR                                                                   0x00000000
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ATTR                                                                               0x3
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                0x10000
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                     16
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_TESTBUS_SELECT_BMSK                                                         0x1f
+#define HWIO_UMAC_MXI_R1_TESTBUS_CTRL_TESTBUS_SELECT_SHFT                                                            0
+
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x)                                                             ((x) + 0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_PHYS(x)                                                             ((x) + 0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OFFS                                                                (0x504)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_RMSK                                                                0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_POR                                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ATTR                                                                             0x3
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_MASK_BMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_0_MASK_SHFT                                                                    0
+
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x)                                                             ((x) + 0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_PHYS(x)                                                             ((x) + 0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OFFS                                                                (0x508)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_RMSK                                                                0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_POR                                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ATTR                                                                             0x3
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_MASK_BMSK                                                           0xffffffff
+#define HWIO_UMAC_MXI_R1_EVENTMASK_IX_1_MASK_SHFT                                                                    0
+
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                  ((x) + 0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                  ((x) + 0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                     (0x50c)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                     0xffffffff
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                      0x7ffe0002
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                  0x3
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                   0xfffe0000
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                           17
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                    0x1fffc
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                          2
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                 0x2
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                   1
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                  0x1
+#define HWIO_UMAC_MXI_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                    0
+
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x)                                                          ((x) + 0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_PHYS(x)                                                          ((x) + 0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OFFS                                                             (0x510)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_RMSK                                                                    0x1
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_POR                                                              0x00000000
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ATTR                                                                          0x3
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                             0x1
+#define HWIO_UMAC_MXI_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                               0
+
+ 
+
+#define WBM_REG_REG_BASE                                                                                        (UMAC_BASE      + 0x00034000)
+#define WBM_REG_REG_BASE_SIZE                                                                                   0x4000
+#define WBM_REG_REG_BASE_USED                                                                                   0x3124
+#define WBM_REG_REG_BASE_PHYS                                                                                   (UMAC_BASE_PHYS + 0x00034000)
+#define WBM_REG_REG_BASE_OFFS                                                                                   0x00034000
+
+#define HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x)                                                                      ((x) + 0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_PHYS(x)                                                                      ((x) + 0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OFFS                                                                         (0x0)
+#define HWIO_WBM_R0_GENERAL_ENABLE_RMSK                                                                              0xfff
+#define HWIO_WBM_R0_GENERAL_ENABLE_POR                                                                          0x00000220
+#define HWIO_WBM_R0_GENERAL_ENABLE_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_GENERAL_ENABLE_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_GENERAL_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_GENERAL_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_GENERAL_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_GENERAL_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_GENERAL_ENABLE_IN(x))
+#define HWIO_WBM_R0_GENERAL_ENABLE_LOWER_WATERMARK_DISABLE_BMSK                                                      0x800
+#define HWIO_WBM_R0_GENERAL_ENABLE_LOWER_WATERMARK_DISABLE_SHFT                                                         11
+#define HWIO_WBM_R0_GENERAL_ENABLE_CACHE_ID_DISABLE_BMSK                                                             0x400
+#define HWIO_WBM_R0_GENERAL_ENABLE_CACHE_ID_DISABLE_SHFT                                                                10
+#define HWIO_WBM_R0_GENERAL_ENABLE_MULTI_DELINK_SUPPORT_DISABLE_BMSK                                                 0x200
+#define HWIO_WBM_R0_GENERAL_ENABLE_MULTI_DELINK_SUPPORT_DISABLE_SHFT                                                     9
+#define HWIO_WBM_R0_GENERAL_ENABLE_LPM_CACHE_SELF_FLUSH_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_GENERAL_ENABLE_LPM_CACHE_SELF_FLUSH_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_CONTENT_CLEAR_ENABLE_BMSK                                                0x80
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_CONTENT_CLEAR_ENABLE_SHFT                                                   7
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_BYPASS_DISABLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_DESC_BYPASS_DISABLE_SHFT                                                         6
+#define HWIO_WBM_R0_GENERAL_ENABLE_MSDU_BUFFER_BYPASS_DISABLE_BMSK                                                    0x20
+#define HWIO_WBM_R0_GENERAL_ENABLE_MSDU_BUFFER_BYPASS_DISABLE_SHFT                                                       5
+#define HWIO_WBM_R0_GENERAL_ENABLE_RELEASE_FUNCTION_ENABLE_BMSK                                                       0x10
+#define HWIO_WBM_R0_GENERAL_ENABLE_RELEASE_FUNCTION_ENABLE_SHFT                                                          4
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_CONSUMER_ENABLE_BMSK                                                 0x8
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_CONSUMER_ENABLE_SHFT                                                   3
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_PRODUCER_ENABLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_GENERAL_ENABLE_LINK_IDLE_LIST_PRODUCER_ENABLE_SHFT                                                   2
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_CONSUMER_ENABLE_BMSK                                               0x2
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_CONSUMER_ENABLE_SHFT                                                 1
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_PRODUCER_ENABLE_BMSK                                               0x1
+#define HWIO_WBM_R0_GENERAL_ENABLE_BUFFER_IDLE_LIST_PRODUCER_ENABLE_SHFT                                                 0
+
+#define HWIO_WBM_R0_DUP_DET_CFG_ADDR(x)                                                                         ((x) + 0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_PHYS(x)                                                                         ((x) + 0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_OFFS                                                                            (0x4)
+#define HWIO_WBM_R0_DUP_DET_CFG_RMSK                                                                                 0x1ff
+#define HWIO_WBM_R0_DUP_DET_CFG_POR                                                                             0x000000ff
+#define HWIO_WBM_R0_DUP_DET_CFG_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_DUP_DET_CFG_ATTR                                                                                         0x3
+#define HWIO_WBM_R0_DUP_DET_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_CFG_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_CFG_IN(x))
+#define HWIO_WBM_R0_DUP_DET_CFG_IDLE_DIST_DUP_CHECK_BMSK                                                             0x100
+#define HWIO_WBM_R0_DUP_DET_CFG_IDLE_DIST_DUP_CHECK_SHFT                                                                 8
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_TX_RELEASE_RING_EN_BMSK                                                            0x80
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_TX_RELEASE_RING_EN_SHFT                                                               7
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_TX_RELEASE_RING_EN_BMSK                                                            0x40
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_TX_RELEASE_RING_EN_SHFT                                                               6
+#define HWIO_WBM_R0_DUP_DET_CFG_TQM_RELEASE_RING_EN_BMSK                                                              0x20
+#define HWIO_WBM_R0_DUP_DET_CFG_TQM_RELEASE_RING_EN_SHFT                                                                 5
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_RX_RELEASE_RING_EN_BMSK                                                            0x10
+#define HWIO_WBM_R0_DUP_DET_CFG_SW_RX_RELEASE_RING_EN_SHFT                                                               4
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_RX_RELEASE_RING_EN_BMSK                                                             0x8
+#define HWIO_WBM_R0_DUP_DET_CFG_FW_RX_RELEASE_RING_EN_SHFT                                                               3
+#define HWIO_WBM_R0_DUP_DET_CFG_REO_RELEASE_RING_EN_BMSK                                                               0x4
+#define HWIO_WBM_R0_DUP_DET_CFG_REO_RELEASE_RING_EN_SHFT                                                                 2
+#define HWIO_WBM_R0_DUP_DET_CFG_RXDMA_RELEASE_RING_EN_BMSK                                                             0x2
+#define HWIO_WBM_R0_DUP_DET_CFG_RXDMA_RELEASE_RING_EN_SHFT                                                               1
+#define HWIO_WBM_R0_DUP_DET_CFG_DUPLICATE_DETECTION_ENABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_DUP_DET_CFG_DUPLICATE_DETECTION_ENABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x)                                                           ((x) + 0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_PHYS(x)                                                           ((x) + 0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OFFS                                                              (0x8)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_RMSK                                                                    0xff
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_POR                                                               0x00000000
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ATTR                                                                           0x3
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT2_SRNG_P_MLO_BMSK                                            0xc0
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT2_SRNG_P_MLO_SHFT                                               6
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT1_SRNG_P_MLO_BMSK                                            0x30
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_OUT1_SRNG_P_MLO_SHFT                                               4
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN2_SRNG_C_MLO_BMSK                                              0xc
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN2_SRNG_C_MLO_SHFT                                                2
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN1_SRNG_C_MLO_BMSK                                              0x3
+#define HWIO_WBM_R0_MLO_GXI_TRANSFER_PRIORITY_WBM2WBM_IN1_SRNG_C_MLO_SHFT                                                0
+
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OFFS                                                                  (0xc)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_RMSK                                                                         0x3
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT2_BMSK                                                            0x2
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT2_SHFT                                                              1
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT1_BMSK                                                            0x1
+#define HWIO_WBM_R0_MLO_POSTED_WRITE_CTRL_WBM2WBM_OUT1_SHFT                                                              0
+
+#define HWIO_WBM_R0_VC_ID_CFG_ADDR(x)                                                                           ((x) + 0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_PHYS(x)                                                                           ((x) + 0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_OFFS                                                                              (0x10)
+#define HWIO_WBM_R0_VC_ID_CFG_RMSK                                                                                  0xffff
+#define HWIO_WBM_R0_VC_ID_CFG_POR                                                                               0x00000800
+#define HWIO_WBM_R0_VC_ID_CFG_POR_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R0_VC_ID_CFG_ATTR                                                                                           0x3
+#define HWIO_WBM_R0_VC_ID_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_VC_ID_CFG_ADDR(x))
+#define HWIO_WBM_R0_VC_ID_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VC_ID_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_VC_ID_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_VC_ID_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_VC_ID_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_VC_ID_CFG_ADDR(x),m,v,HWIO_WBM_R0_VC_ID_CFG_IN(x))
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT2_VC_ID_BMSK                                                               0x8000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT2_VC_ID_SHFT                                                                   15
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT1_VC_ID_BMSK                                                               0x4000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_OUT1_VC_ID_SHFT                                                                   14
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN2_VC_ID_BMSK                                                                0x2000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN2_VC_ID_SHFT                                                                    13
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN1_VC_ID_BMSK                                                                0x1000
+#define HWIO_WBM_R0_VC_ID_CFG_WBM2WBM_IN1_VC_ID_SHFT                                                                    12
+#define HWIO_WBM_R0_VC_ID_CFG_VA_GXI_VC_ID_BMSK                                                                      0x800
+#define HWIO_WBM_R0_VC_ID_CFG_VA_GXI_VC_ID_SHFT                                                                         11
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE2_GXI_VC_ID_BMSK                                                                  0x400
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE2_GXI_VC_ID_SHFT                                                                     10
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE1_GXI_VC_ID_BMSK                                                                  0x200
+#define HWIO_WBM_R0_VC_ID_CFG_CACHE1_GXI_VC_ID_SHFT                                                                      9
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_P_RING_VC_ID_BMSK                                                            0x100
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_P_RING_VC_ID_SHFT                                                                8
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_C_RING_VC_ID_BMSK                                                             0x80
+#define HWIO_WBM_R0_VC_ID_CFG_IDLE_LINK_C_RING_VC_ID_SHFT                                                                7
+#define HWIO_WBM_R0_VC_ID_CFG_SW1_RELEASE_RING_VC_ID_BMSK                                                             0x40
+#define HWIO_WBM_R0_VC_ID_CFG_SW1_RELEASE_RING_VC_ID_SHFT                                                                6
+#define HWIO_WBM_R0_VC_ID_CFG_RXDMA0_RELEASE_RING_VC_ID_BMSK                                                          0x20
+#define HWIO_WBM_R0_VC_ID_CFG_RXDMA0_RELEASE_RING_VC_ID_SHFT                                                             5
+#define HWIO_WBM_R0_VC_ID_CFG_FW_RELEASE_RING_VC_ID_BMSK                                                              0x10
+#define HWIO_WBM_R0_VC_ID_CFG_FW_RELEASE_RING_VC_ID_SHFT                                                                 4
+#define HWIO_WBM_R0_VC_ID_CFG_SW_RELEASE_RING_VC_ID_BMSK                                                               0x8
+#define HWIO_WBM_R0_VC_ID_CFG_SW_RELEASE_RING_VC_ID_SHFT                                                                 3
+#define HWIO_WBM_R0_VC_ID_CFG_REO_RELEASE_RING_VC_ID_BMSK                                                              0x4
+#define HWIO_WBM_R0_VC_ID_CFG_REO_RELEASE_RING_VC_ID_SHFT                                                                2
+#define HWIO_WBM_R0_VC_ID_CFG_TQM_RELEASE_RING_VC_ID_BMSK                                                              0x2
+#define HWIO_WBM_R0_VC_ID_CFG_TQM_RELEASE_RING_VC_ID_SHFT                                                                1
+#define HWIO_WBM_R0_VC_ID_CFG_PPE_RELEASE_RING_VC_ID_BMSK                                                              0x1
+#define HWIO_WBM_R0_VC_ID_CFG_PPE_RELEASE_RING_VC_ID_SHFT                                                                0
+
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x)                                                                 ((x) + 0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_PHYS(x)                                                                 ((x) + 0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OFFS                                                                    (0x14)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RMSK                                                                          0xff
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_POR                                                                     0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA2_RELEASE_RING_ENABLE_BMSK                                               0x80
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA2_RELEASE_RING_ENABLE_SHFT                                                  7
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA1_RELEASE_RING_ENABLE_BMSK                                               0x40
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA1_RELEASE_RING_ENABLE_SHFT                                                  6
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA0_RELEASE_RING_ENABLE_BMSK                                               0x20
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_RXDMA0_RELEASE_RING_ENABLE_SHFT                                                  5
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_FW_RELEASE_RING_ENABLE_BMSK                                                   0x10
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_FW_RELEASE_RING_ENABLE_SHFT                                                      4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_SW_RELEASE_RING_ENABLE_BMSK                                                    0x8
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_SW_RELEASE_RING_ENABLE_SHFT                                                      3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_REO_RELEASE_RING_ENABLE_BMSK                                                   0x4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_REO_RELEASE_RING_ENABLE_SHFT                                                     2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_TQM_RELEASE_RING_ENABLE_BMSK                                                   0x2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_TQM_RELEASE_RING_ENABLE_SHFT                                                     1
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_PPE_RELEASE_RING_ENABLE_BMSK                                                   0x1
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_PPE_RELEASE_RING_ENABLE_SHFT                                                     0
+
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x)                                                               ((x) + 0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_PHYS(x)                                                               ((x) + 0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OFFS                                                                  (0x18)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_RMSK                                                                         0x7
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_POR                                                                   0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ATTR                                                                               0x3
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_ENABLE_2_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_ENABLE_2_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN2_RELEASE_RING_ENABLE_BMSK                                             0x4
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN2_RELEASE_RING_ENABLE_SHFT                                               2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN1_RELEASE_RING_ENABLE_BMSK                                             0x2
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_MLO_IN1_RELEASE_RING_ENABLE_SHFT                                               1
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_SW1_RELEASE_RING_ENABLE_BMSK                                                 0x1
+#define HWIO_WBM_R0_RELEASE_RING_ENABLE_2_SW1_RELEASE_RING_ENABLE_SHFT                                                   0
+
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x)                                                             ((x) + 0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_PHYS(x)                                                             ((x) + 0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OFFS                                                                (0x1c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_POR                                                                 0x00000000
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ATTR                                                                             0x3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA2_BUF_RING_ENABLE_BMSK                                           0x20
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA2_BUF_RING_ENABLE_SHFT                                              5
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA1_BUF_RING_ENABLE_BMSK                                           0x10
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA1_BUF_RING_ENABLE_SHFT                                              4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA0_BUF_RING_ENABLE_BMSK                                            0x8
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2RXDMA0_BUF_RING_ENABLE_SHFT                                              3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2FW_BUF_RING_ENABLE_BMSK                                                0x4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2FW_BUF_RING_ENABLE_SHFT                                                  2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2SW_BUF_RING_ENABLE_BMSK                                                0x2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2SW_BUF_RING_ENABLE_SHFT                                                  1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2PPE_BUF_RING_ENABLE_BMSK                                               0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_ENABLE_WBM2PPE_BUF_RING_ENABLE_SHFT                                                 0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x)                                                               ((x) + 0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_PHYS(x)                                                               ((x) + 0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OFFS                                                                  (0x20)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_POR                                                                   0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ATTR                                                                               0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA2_LINK_RING_ENABLE_BMSK                                            0x40
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA2_LINK_RING_ENABLE_SHFT                                               6
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA1_LINK_RING_ENABLE_BMSK                                            0x20
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA1_LINK_RING_ENABLE_SHFT                                               5
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA0_LINK_RING_ENABLE_BMSK                                            0x10
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2RXDMA0_LINK_RING_ENABLE_SHFT                                               4
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2FW_LINK_RING_ENABLE_BMSK                                                 0x8
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2FW_LINK_RING_ENABLE_SHFT                                                   3
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2SW_LINK_RING_ENABLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2SW_LINK_RING_ENABLE_SHFT                                                   2
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2REO_LINK_RING_ENABLE_BMSK                                                0x2
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2REO_LINK_RING_ENABLE_SHFT                                                  1
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2TQM_LINK_RING_ENABLE_BMSK                                                0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_ENABLE_WBM2TQM_LINK_RING_ENABLE_SHFT                                                  0
+
+#define HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x)                                                                         ((x) + 0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_PHYS(x)                                                                         ((x) + 0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OFFS                                                                            (0x24)
+#define HWIO_WBM_R0_OWN_CHIP_ID_RMSK                                                                                   0xf
+#define HWIO_WBM_R0_OWN_CHIP_ID_POR                                                                             0x00000001
+#define HWIO_WBM_R0_OWN_CHIP_ID_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_OWN_CHIP_ID_ATTR                                                                                         0x3
+#define HWIO_WBM_R0_OWN_CHIP_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x))
+#define HWIO_WBM_R0_OWN_CHIP_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x), m)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x),v)
+#define HWIO_WBM_R0_OWN_CHIP_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_OWN_CHIP_ID_ADDR(x),m,v,HWIO_WBM_R0_OWN_CHIP_ID_IN(x))
+#define HWIO_WBM_R0_OWN_CHIP_ID_RBM_BMSK                                                                               0xf
+#define HWIO_WBM_R0_OWN_CHIP_ID_RBM_SHFT                                                                                 0
+
+#define HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x)                                                                        ((x) + 0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_PHYS(x)                                                                        ((x) + 0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OFFS                                                                           (0x28)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RMSK                                                                                0x3ff
+#define HWIO_WBM_R0_MLO_OUT1_CFG_POR                                                                            0x00000005
+#define HWIO_WBM_R0_MLO_OUT1_CFG_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_CFG_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MLO_OUT1_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT1_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT1_CFG_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT1_CFG_IN(x))
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_BMSK                                                                           0x3c0
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_SHFT                                                                               6
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_ENABLE_BMSK                                                                     0x20
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM2_ENABLE_SHFT                                                                        5
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_BMSK                                                                            0x1e
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_SHFT                                                                               1
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_ENABLE_BMSK                                                                      0x1
+#define HWIO_WBM_R0_MLO_OUT1_CFG_RBM1_ENABLE_SHFT                                                                        0
+
+#define HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x)                                                                        ((x) + 0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_PHYS(x)                                                                        ((x) + 0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OFFS                                                                           (0x2c)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RMSK                                                                                0x3ff
+#define HWIO_WBM_R0_MLO_OUT2_CFG_POR                                                                            0x00000007
+#define HWIO_WBM_R0_MLO_OUT2_CFG_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_CFG_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MLO_OUT2_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT2_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT2_CFG_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT2_CFG_IN(x))
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_BMSK                                                                           0x3c0
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_SHFT                                                                               6
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_ENABLE_BMSK                                                                     0x20
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM2_ENABLE_SHFT                                                                        5
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_BMSK                                                                            0x1e
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_SHFT                                                                               1
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_ENABLE_BMSK                                                                      0x1
+#define HWIO_WBM_R0_MLO_OUT2_CFG_RBM1_ENABLE_SHFT                                                                        0
+
+#define HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x)                                                                    ((x) + 0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_PHYS(x)                                                                    ((x) + 0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OFFS                                                                       (0x30)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_RMSK                                                                            0x7ff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_POR                                                                        0x000007ff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_MISC_RING_ENABLE_ATTR                                                                                    0x3
+#define HWIO_WBM_R0_MISC_RING_ENABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x))
+#define HWIO_WBM_R0_MISC_RING_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x),v)
+#define HWIO_WBM_R0_MISC_RING_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MISC_RING_ENABLE_ADDR(x),m,v,HWIO_WBM_R0_MISC_RING_ENABLE_IN(x))
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT2_MLO_RELEASE_RING_ENABLE_BMSK                                       0x400
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT2_MLO_RELEASE_RING_ENABLE_SHFT                                          10
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT1_MLO_RELEASE_RING_ENABLE_BMSK                                       0x200
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2WBM_OUT1_MLO_RELEASE_RING_ENABLE_SHFT                                           9
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW6_RELEASE_RING_ENABLE_BMSK                                                0x100
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW6_RELEASE_RING_ENABLE_SHFT                                                    8
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW5_RELEASE_RING_ENABLE_BMSK                                                 0x80
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW5_RELEASE_RING_ENABLE_SHFT                                                    7
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM_ERROR_RELEASE_RING_ENABLE_BMSK                                               0x40
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM_ERROR_RELEASE_RING_ENABLE_SHFT                                                  6
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW4_RELEASE_RING_ENABLE_BMSK                                                 0x20
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW4_RELEASE_RING_ENABLE_SHFT                                                    5
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW3_RELEASE_RING_ENABLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW3_RELEASE_RING_ENABLE_SHFT                                                    4
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW2_RELEASE_RING_ENABLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW2_RELEASE_RING_ENABLE_SHFT                                                    3
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW1_RELEASE_RING_ENABLE_BMSK                                                  0x4
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW1_RELEASE_RING_ENABLE_SHFT                                                    2
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW0_RELEASE_RING_ENABLE_BMSK                                                  0x2
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2SW0_RELEASE_RING_ENABLE_SHFT                                                    1
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2FW_RELEASE_RING_ENABLE_BMSK                                                   0x1
+#define HWIO_WBM_R0_MISC_RING_ENABLE_WBM2FW_RELEASE_RING_ENABLE_SHFT                                                     0
+
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x)                                                                 ((x) + 0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_PHYS(x)                                                                 ((x) + 0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_OFFS                                                                    (0x34)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RMSK                                                                          0xff
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA2_RELEASE_RING_NOT_IDLE_BMSK                                             0x80
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA2_RELEASE_RING_NOT_IDLE_SHFT                                                7
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA1_RELEASE_RING_NOT_IDLE_BMSK                                             0x40
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA1_RELEASE_RING_NOT_IDLE_SHFT                                                6
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA0_RELEASE_RING_NOT_IDLE_BMSK                                             0x20
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_RXDMA0_RELEASE_RING_NOT_IDLE_SHFT                                                5
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_FW_RELEASE_RING_NOT_IDLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_FW_RELEASE_RING_NOT_IDLE_SHFT                                                    4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_SW_RELEASE_RING_NOT_IDLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_SW_RELEASE_RING_NOT_IDLE_SHFT                                                    3
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_REO_RELEASE_RING_NOT_IDLE_BMSK                                                 0x4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_REO_RELEASE_RING_NOT_IDLE_SHFT                                                   2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_TQM_RELEASE_RING_NOT_IDLE_BMSK                                                 0x2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_TQM_RELEASE_RING_NOT_IDLE_SHFT                                                   1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_PPE_RELEASE_RING_NOT_IDLE_BMSK                                                 0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_PPE_RELEASE_RING_NOT_IDLE_SHFT                                                   0
+
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x)                                                               ((x) + 0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_PHYS(x)                                                               ((x) + 0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_OFFS                                                                  (0x38)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_RMSK                                                                         0x7
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_POR                                                                   0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_ATTR                                                                               0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_STATUS_2_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN2_MLO_RING_NOT_IDLE_BMSK                                           0x4
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN2_MLO_RING_NOT_IDLE_SHFT                                             2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN1_MLO_RING_NOT_IDLE_BMSK                                           0x2
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_WBM2WBM_IN1_MLO_RING_NOT_IDLE_SHFT                                             1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_SW1_RELEASE_RING_NOT_IDLE_BMSK                                               0x1
+#define HWIO_WBM_R0_RELEASE_RING_STATUS_2_SW1_RELEASE_RING_NOT_IDLE_SHFT                                                 0
+
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x)                                                                ((x) + 0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_PHYS(x)                                                                ((x) + 0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OFFS                                                                   (0x3c)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_POR                                                                    0x00000000
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_ATTR                                                                                0x3
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_START_COOKIE_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_START_COOKIE_IN(x))
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_DUP_DET_START_COOKIE_BMSK                                                 0xfffff
+#define HWIO_WBM_R0_DUP_DET_START_COOKIE_DUP_DET_START_COOKIE_SHFT                                                       0
+
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x)                                                                      ((x) + 0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_PHYS(x)                                                                      ((x) + 0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OFFS                                                                         (0x40)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_POR                                                                          0x00000000
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CFG0_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CFG0_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_SHFT                                                          0
+
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x)                                                                      ((x) + 0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PHYS(x)                                                                      ((x) + 0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OFFS                                                                         (0x44)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_RMSK                                                                            0x7ffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_POR                                                                          0x00011700
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CFG1_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CFG1_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_BMSK                                                             0x40000
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_SHFT                                                                  18
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_BMSK                                                          0x3e000
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_SHFT                                                               13
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_BMSK                                                             0x1f00
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_SHFT                                                                  8
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_BMSK                                                      0xff
+#define HWIO_WBM_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_SHFT                                                         0
+
+#define HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x)                                                                   ((x) + 0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_PHYS(x)                                                                   ((x) + 0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_OFFS                                                                      (0x48)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_POR                                                                       0x00000000
+#define HWIO_WBM_R0_BP_WARNING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_ATTR                                                                                   0x1
+#define HWIO_WBM_R0_BP_WARNING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_BP_WARNING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_BP_WARNING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_BP_WARNING_STATUS_BP_STATUS_BMSK                                                            0xffffffff
+#define HWIO_WBM_R0_BP_WARNING_STATUS_BP_STATUS_SHFT                                                                     0
+
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x)                                                             ((x) + 0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_PHYS(x)                                                             ((x) + 0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_OFFS                                                                (0x4c)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA2_BUF_RING_NOT_IDLE_BMSK                                         0x20
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA2_BUF_RING_NOT_IDLE_SHFT                                            5
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA1_BUF_RING_NOT_IDLE_BMSK                                         0x10
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA1_BUF_RING_NOT_IDLE_SHFT                                            4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA0_BUF_RING_NOT_IDLE_BMSK                                          0x8
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2RXDMA0_BUF_RING_NOT_IDLE_SHFT                                            3
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2FW_BUF_RING_NOT_IDLE_BMSK                                              0x4
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2FW_BUF_RING_NOT_IDLE_SHFT                                                2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2SW_BUF_RING_NOT_IDLE_BMSK                                              0x2
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2SW_BUF_RING_NOT_IDLE_SHFT                                                1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2PPE_BUF_RING_NOT_IDLE_BMSK                                             0x1
+#define HWIO_WBM_R0_MSDU_BUFFER_RING_STATUS_WBM2PPE_BUF_RING_NOT_IDLE_SHFT                                               0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x)                                                               ((x) + 0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_PHYS(x)                                                               ((x) + 0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_OFFS                                                                  (0x50)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA2_LINK_RING_NOT_IDLE_BMSK                                          0x40
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA2_LINK_RING_NOT_IDLE_SHFT                                             6
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA1_LINK_RING_NOT_IDLE_BMSK                                          0x20
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA1_LINK_RING_NOT_IDLE_SHFT                                             5
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA0_LINK_RING_NOT_IDLE_BMSK                                          0x10
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2RXDMA0_LINK_RING_NOT_IDLE_SHFT                                             4
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2FW_LINK_RING_NOT_IDLE_BMSK                                               0x8
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2FW_LINK_RING_NOT_IDLE_SHFT                                                 3
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2SW_LINK_RING_NOT_IDLE_BMSK                                               0x4
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2SW_LINK_RING_NOT_IDLE_SHFT                                                 2
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2REO_LINK_RING_NOT_IDLE_BMSK                                              0x2
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2REO_LINK_RING_NOT_IDLE_SHFT                                                1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2TQM_LINK_RING_NOT_IDLE_BMSK                                              0x1
+#define HWIO_WBM_R0_LINK_DESC_RING_STATUS_WBM2TQM_LINK_RING_NOT_IDLE_SHFT                                                0
+
+#define HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x)                                                                    ((x) + 0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_PHYS(x)                                                                    ((x) + 0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_OFFS                                                                       (0x54)
+#define HWIO_WBM_R0_MISC_RING_STATUS_RMSK                                                                           0x1fff
+#define HWIO_WBM_R0_MISC_RING_STATUS_POR                                                                        0x00000000
+#define HWIO_WBM_R0_MISC_RING_STATUS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_MISC_RING_STATUS_ATTR                                                                                    0x1
+#define HWIO_WBM_R0_MISC_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MISC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW6_BUFFER_RING_NOT_IDLE_BMSK                                                  0x1000
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW6_BUFFER_RING_NOT_IDLE_SHFT                                                      12
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW5_BUFFER_RING_NOT_IDLE_BMSK                                                   0x800
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW5_BUFFER_RING_NOT_IDLE_SHFT                                                      11
+#define HWIO_WBM_R0_MISC_RING_STATUS_ERROR_RELEASE_RING_NOT_IDLE_BMSK                                                0x400
+#define HWIO_WBM_R0_MISC_RING_STATUS_ERROR_RELEASE_RING_NOT_IDLE_SHFT                                                   10
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW4_BUFFER_RING_NOT_IDLE_BMSK                                                   0x200
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW4_BUFFER_RING_NOT_IDLE_SHFT                                                       9
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW3_BUFFER_RING_NOT_IDLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW3_BUFFER_RING_NOT_IDLE_SHFT                                                       8
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW2_BUFFER_RING_NOT_IDLE_BMSK                                                    0x80
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW2_BUFFER_RING_NOT_IDLE_SHFT                                                       7
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW1_BUFFER_RING_NOT_IDLE_BMSK                                                    0x40
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW1_BUFFER_RING_NOT_IDLE_SHFT                                                       6
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW0_BUFFER_RING_NOT_IDLE_BMSK                                                    0x20
+#define HWIO_WBM_R0_MISC_RING_STATUS_SW0_BUFFER_RING_NOT_IDLE_SHFT                                                       5
+#define HWIO_WBM_R0_MISC_RING_STATUS_FW_BUFFER_RING_NOT_IDLE_BMSK                                                     0x10
+#define HWIO_WBM_R0_MISC_RING_STATUS_FW_BUFFER_RING_NOT_IDLE_SHFT                                                        4
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_CONSUMER_NOT_IDLE_BMSK                                             0x8
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_CONSUMER_NOT_IDLE_SHFT                                               3
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_PRODUCER_NOT_IDLE_BMSK                                             0x4
+#define HWIO_WBM_R0_MISC_RING_STATUS_LINK_IDLE_LIST_PRODUCER_NOT_IDLE_SHFT                                               2
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_CONSUMER_NOT_IDLE_BMSK                                           0x2
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_CONSUMER_NOT_IDLE_SHFT                                             1
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_PRODUCER_NOT_IDLE_BMSK                                           0x1
+#define HWIO_WBM_R0_MISC_RING_STATUS_BUFFER_IDLE_LIST_PRODUCER_NOT_IDLE_SHFT                                             0
+
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x)                                                                  ((x) + 0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_PHYS(x)                                                                  ((x) + 0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OFFS                                                                     (0x58)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RMSK                                                                        0x13fff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_IN(x)            \
+                in_dword(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x))
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x), m)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x),v)
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RELEASE_RING_FLUSH_ADDR(x),m,v,HWIO_WBM_R0_RELEASE_RING_FLUSH_IN(x))
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_IN_FLUSH_BMSK                                              0x10000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_IN_FLUSH_SHFT                                                   16
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_FIFO_FLUSH_BMSK                                                   0x2000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_FIFO_FLUSH_SHFT                                                       13
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_RING_AGE_FLUSH_BMSK                                               0x1000
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_SW_RELEASE_RING_AGE_FLUSH_SHFT                                                   12
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_TIMEOUT_BMSK                                                 0xfff
+#define HWIO_WBM_R0_RELEASE_RING_FLUSH_RELEASE_RING_AGE_TIMEOUT_SHFT                                                     0
+
+#define HWIO_WBM_R0_IDLE_STATUS_ADDR(x)                                                                         ((x) + 0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_PHYS(x)                                                                         ((x) + 0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_OFFS                                                                            (0x5c)
+#define HWIO_WBM_R0_IDLE_STATUS_RMSK                                                                              0x1fffff
+#define HWIO_WBM_R0_IDLE_STATUS_POR                                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_STATUS_POR_RMSK                                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_STATUS_ATTR                                                                                         0x1
+#define HWIO_WBM_R0_IDLE_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_STATUS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT2_MLO_PROD_FIFO_IN_IDLE_BMSK                                           0x100000
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT2_MLO_PROD_FIFO_IN_IDLE_SHFT                                                 20
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT1_MLO_PROD_FIFO_IN_IDLE_BMSK                                            0x80000
+#define HWIO_WBM_R0_IDLE_STATUS_WBM2WBM_OUT1_MLO_PROD_FIFO_IN_IDLE_SHFT                                                 19
+#define HWIO_WBM_R0_IDLE_STATUS_SW6_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                  0x40000
+#define HWIO_WBM_R0_IDLE_STATUS_SW6_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       18
+#define HWIO_WBM_R0_IDLE_STATUS_SW5_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                  0x20000
+#define HWIO_WBM_R0_IDLE_STATUS_SW5_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       17
+#define HWIO_WBM_R0_IDLE_STATUS_ERROR_RELEASE_PROD_FIFO_IN_IDLE_BMSK                                               0x10000
+#define HWIO_WBM_R0_IDLE_STATUS_ERROR_RELEASE_PROD_FIFO_IN_IDLE_SHFT                                                    16
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_IN_IDLE_BMSK                                                                    0x8000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_IN_IDLE_SHFT                                                                        15
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_APPLICATION_LOGIC_IN_IDLE_BMSK                                                  0x4000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_APPLICATION_LOGIC_IN_IDLE_SHFT                                                      14
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_CONSUMER_RINGS_IN_IDLE_BMSK                                                     0x2000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_CONSUMER_RINGS_IN_IDLE_SHFT                                                         13
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_PRODUCER_RINGS_IN_IDLE_BMSK                                                     0x1000
+#define HWIO_WBM_R0_IDLE_STATUS_ALL_PRODUCER_RINGS_IN_IDLE_SHFT                                                         12
+#define HWIO_WBM_R0_IDLE_STATUS_SW4_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x800
+#define HWIO_WBM_R0_IDLE_STATUS_SW4_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       11
+#define HWIO_WBM_R0_IDLE_STATUS_SW3_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x400
+#define HWIO_WBM_R0_IDLE_STATUS_SW3_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                       10
+#define HWIO_WBM_R0_IDLE_STATUS_SW2_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x200
+#define HWIO_WBM_R0_IDLE_STATUS_SW2_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        9
+#define HWIO_WBM_R0_IDLE_STATUS_SW1_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                    0x100
+#define HWIO_WBM_R0_IDLE_STATUS_SW1_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        8
+#define HWIO_WBM_R0_IDLE_STATUS_SW0_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                     0x80
+#define HWIO_WBM_R0_IDLE_STATUS_SW0_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                        7
+#define HWIO_WBM_R0_IDLE_STATUS_FW_BUFFER_PROD_FIFO_IN_IDLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_IDLE_STATUS_FW_BUFFER_PROD_FIFO_IN_IDLE_SHFT                                                         6
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_DESC_ZERO_OUT_FIFO_IN_IDLE_BMSK                                                  0x20
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_DESC_ZERO_OUT_FIFO_IN_IDLE_SHFT                                                     5
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_DIST_FIFO_IN_IDLE_BMSK                                                 0x10
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_DIST_FIFO_IN_IDLE_SHFT                                                    4
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_PROD_FIFO_IN_IDLE_BMSK                                                  0x8
+#define HWIO_WBM_R0_IDLE_STATUS_LINK_IDLE_LIST_PROD_FIFO_IN_IDLE_SHFT                                                    3
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_DIST_FIFO_IN_IDLE_BMSK                                                0x4
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_DIST_FIFO_IN_IDLE_SHFT                                                  2
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_PROD_FIFO_IN_IDLE_BMSK                                                0x2
+#define HWIO_WBM_R0_IDLE_STATUS_BUFFER_IDLE_LIST_PROD_FIFO_IN_IDLE_SHFT                                                  1
+#define HWIO_WBM_R0_IDLE_STATUS_RELEASE_PARSER_FIFO_IN_IDLE_BMSK                                                       0x1
+#define HWIO_WBM_R0_IDLE_STATUS_RELEASE_PARSER_FIFO_IN_IDLE_SHFT                                                         0
+
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ADDR(x)                                                       ((x) + 0x60)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_PHYS(x)                                                       ((x) + 0x60)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_OFFS                                                          (0x60)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_POR                                                           0x00000000
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ATTR                                                                       0x1
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ADDR(x))
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_31_0_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ADDR(x)                                                      ((x) + 0x64)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_PHYS(x)                                                      ((x) + 0x64)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_OFFS                                                         (0x64)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_RMSK                                                               0xff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_POR                                                          0x00000000
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ATTR                                                                      0x1
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ADDR(x))
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_CACHE0_CURRENT_LINK_ADDR_39_32_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ADDR(x)                                                       ((x) + 0x68)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_PHYS(x)                                                       ((x) + 0x68)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_OFFS                                                          (0x68)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_POR                                                           0x00000000
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ATTR                                                                       0x1
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ADDR(x))
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_31_0_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ADDR(x)                                                      ((x) + 0x6c)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_PHYS(x)                                                      ((x) + 0x6c)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_OFFS                                                         (0x6c)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_RMSK                                                               0xff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_POR                                                          0x00000000
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ATTR                                                                      0x1
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ADDR(x))
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_CACHE1_CURRENT_LINK_ADDR_39_32_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x)                                                                       ((x) + 0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_PHYS(x)                                                                       ((x) + 0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_OFFS                                                                          (0x70)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_RMSK                                                                                0x3f
+#define HWIO_WBM_R0_IDLE_SEQUENCE_POR                                                                           0x00000000
+#define HWIO_WBM_R0_IDLE_SEQUENCE_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_IDLE_SEQUENCE_ATTR                                                                                       0x1
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x))
+#define HWIO_WBM_R0_IDLE_SEQUENCE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_SEQUENCE_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_RELEASE_RING_NOT_EMPTY_BMSK                                                     0x20
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_RELEASE_RING_NOT_EMPTY_SHFT                                                        5
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_IN_IDLE_BMSK                                                                    0x10
+#define HWIO_WBM_R0_IDLE_SEQUENCE_WBM_IN_IDLE_SHFT                                                                       4
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IDLE_SEQUENCE_STATE_BMSK                                                             0xf
+#define HWIO_WBM_R0_IDLE_SEQUENCE_IDLE_SEQUENCE_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x)                                                                 ((x) + 0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_PHYS(x)                                                                 ((x) + 0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OFFS                                                                    (0x74)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_RMSK                                                                           0x7
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_POR                                                                     0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_PARSER_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_MSDU_PARSER_CONTROL_IN(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_DISABLE_CACHE_2_BMSK                                                           0x4
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_DISABLE_CACHE_2_SHFT                                                             2
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_2_BMSK                                                             0x2
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_2_SHFT                                                               1
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_1_BMSK                                                             0x1
+#define HWIO_WBM_R0_MSDU_PARSER_CONTROL_FLUSH_CACHE_1_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x)                                                                  ((x) + 0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_PHYS(x)                                                                  ((x) + 0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_OFFS                                                                     (0x78)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_RMSK                                                                        0x3ffff
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_POR                                                                      0x00001441
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_ATTR                                                                                  0x1
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_2_DONE_BMSK                                                     0x20000
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_2_DONE_SHFT                                                          17
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_2_STATE_BMSK                                                          0x1f000
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_2_STATE_SHFT                                                               12
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_1_DONE_BMSK                                                       0x800
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_FLUSH_CACHE_1_DONE_SHFT                                                          11
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_EMPTY_BMSK                                               0x400
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_EMPTY_SHFT                                                  10
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_DELINK_PARSER_STATE_BMSK                                                 0x3c0
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_DELINK_PARSER_STATE_SHFT                                                     6
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_IN_IDLE_BMSK                                              0x20
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_MSDU_PARSER_CMD_FIFO_IN_IDLE_SHFT                                                 5
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_1_STATE_BMSK                                                             0x1f
+#define HWIO_WBM_R0_MSDU_PARSER_STATUS_CACHE_1_STATE_SHFT                                                                0
+
+#define HWIO_WBM_R0_MISC_CONTROL_ADDR(x)                                                                        ((x) + 0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_PHYS(x)                                                                        ((x) + 0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_OFFS                                                                           (0x7c)
+#define HWIO_WBM_R0_MISC_CONTROL_RMSK                                                                           0xffffffff
+#define HWIO_WBM_R0_MISC_CONTROL_POR                                                                            0x000001c0
+#define HWIO_WBM_R0_MISC_CONTROL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_MISC_CONTROL_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_MISC_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MISC_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MISC_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MISC_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MISC_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_MISC_CONTROL_IN(x))
+#define HWIO_WBM_R0_MISC_CONTROL_SPARE_CONTROL_BMSK                                                             0xfffffffc
+#define HWIO_WBM_R0_MISC_CONTROL_SPARE_CONTROL_SHFT                                                                      2
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_WRITE_STRUCT_SWAP_BMSK                                                            0x2
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_WRITE_STRUCT_SWAP_SHFT                                                              1
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_READ_STRUCT_SWAP_BMSK                                                             0x1
+#define HWIO_WBM_R0_MISC_CONTROL_GXI_READ_STRUCT_SWAP_SHFT                                                               0
+
+#define HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x)                                                                        ((x) + 0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_PHYS(x)                                                                        ((x) + 0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OFFS                                                                           (0x80)
+#define HWIO_WBM_R0_SPARE_CTRL_2_RMSK                                                                           0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_POR                                                                            0x00000000
+#define HWIO_WBM_R0_SPARE_CTRL_2_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_ATTR                                                                                        0x3
+#define HWIO_WBM_R0_SPARE_CTRL_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x))
+#define HWIO_WBM_R0_SPARE_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x), m)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x),v)
+#define HWIO_WBM_R0_SPARE_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SPARE_CTRL_2_ADDR(x),m,v,HWIO_WBM_R0_SPARE_CTRL_2_IN(x))
+#define HWIO_WBM_R0_SPARE_CTRL_2_SPARE_CONTROL_2_BMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SPARE_CTRL_2_SPARE_CONTROL_2_SHFT                                                                    0
+
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x)                                                                  ((x) + 0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_PHYS(x)                                                                  ((x) + 0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OFFS                                                                     (0x84)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RMSK                                                                      0x3ffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RING_PRIORITY_CFG0_ADDR(x),m,v,HWIO_WBM_R0_RING_PRIORITY_CFG0_IN(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2RXDMA0_LINK_RING_PRIORITY_BMSK                                        0x3000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2RXDMA0_LINK_RING_PRIORITY_SHFT                                               24
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2FW_LINK_RING_PRIORITY_BMSK                                             0xc00000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2FW_LINK_RING_PRIORITY_SHFT                                                   22
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2SW_LINK_RING_PRIORITY_BMSK                                             0x300000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2SW_LINK_RING_PRIORITY_SHFT                                                   20
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2REO_LINK_RING_PRIORITY_BMSK                                             0xc0000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2REO_LINK_RING_PRIORITY_SHFT                                                  18
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2TQM_LINK_RING_PRIORITY_BMSK                                             0x30000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_WBM2TQM_LINK_RING_PRIORITY_SHFT                                                  16
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RXDMA0_RELEASE_RING_PRIORITY_BMSK                                            0xc000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_RXDMA0_RELEASE_RING_PRIORITY_SHFT                                                14
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_FW_RELEASE_RING_PRIORITY_BMSK                                                0x3000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_FW_RELEASE_RING_PRIORITY_SHFT                                                    12
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_SW_RELEASE_RING_PRIORITY_BMSK                                                 0xc00
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_SW_RELEASE_RING_PRIORITY_SHFT                                                    10
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_REO_RELEASE_RING_PRIORITY_BMSK                                                0x300
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_REO_RELEASE_RING_PRIORITY_SHFT                                                    8
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_TQM_RELEASE_RING_PRIORITY_BMSK                                                 0xc0
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_TQM_RELEASE_RING_PRIORITY_SHFT                                                    6
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_PPE_RELEASE_RING_PRIORITY_BMSK                                                 0x30
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_PPE_RELEASE_RING_PRIORITY_SHFT                                                    4
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_CONSUMER_RING_PRIORITY_BMSK                                      0xc
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_CONSUMER_RING_PRIORITY_SHFT                                        2
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_PRODUCER_RING_PRIORITY_BMSK                                      0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG0_LINK_IDLE_LIST_PRODUCER_RING_PRIORITY_SHFT                                        0
+
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x)                                                                  ((x) + 0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_PHYS(x)                                                                  ((x) + 0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OFFS                                                                     (0x88)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_RMSK                                                                        0xfffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RING_PRIORITY_CFG1_ADDR(x),m,v,HWIO_WBM_R0_RING_PRIORITY_CFG1_IN(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_SW_COOKIE_CONV_GXI_PRIORITY_BMSK                                            0xc0000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_SW_COOKIE_CONV_GXI_PRIORITY_SHFT                                                 18
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW6_RELEASE_RING_PRIORITY_BMSK                                          0x30000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW6_RELEASE_RING_PRIORITY_SHFT                                               16
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW5_RELEASE_RING_PRIORITY_BMSK                                           0xc000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW5_RELEASE_RING_PRIORITY_SHFT                                               14
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM_ERROR_RELEASE_RING_PRIORITY_BMSK                                         0x3000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM_ERROR_RELEASE_RING_PRIORITY_SHFT                                             12
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW4_RELEASE_RING_PRIORITY_BMSK                                            0xc00
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW4_RELEASE_RING_PRIORITY_SHFT                                               10
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW3_RELEASE_RING_PRIORITY_BMSK                                            0x300
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW3_RELEASE_RING_PRIORITY_SHFT                                                8
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW2_RELEASE_RING_PRIORITY_BMSK                                             0xc0
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW2_RELEASE_RING_PRIORITY_SHFT                                                6
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW1_RELEASE_RING_PRIORITY_BMSK                                             0x30
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW1_RELEASE_RING_PRIORITY_SHFT                                                4
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW0_RELEASE_RING_PRIORITY_BMSK                                              0xc
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2SW0_RELEASE_RING_PRIORITY_SHFT                                                2
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2FW_RELEASE_RING_PRIORITY_BMSK                                               0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG1_WBM2FW_RELEASE_RING_PRIORITY_SHFT                                                 0
+
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_ADDR(x)                                                                  ((x) + 0x8c)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_PHYS(x)                                                                  ((x) + 0x8c)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_OFFS                                                                     (0x8c)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_RMSK                                                                            0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_POR                                                                      0x00000000
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_IN(x)            \
+                in_dword(HWIO_WBM_R0_RING_PRIORITY_CFG2_ADDR(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RING_PRIORITY_CFG2_ADDR(x), m)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RING_PRIORITY_CFG2_ADDR(x),v)
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RING_PRIORITY_CFG2_ADDR(x),m,v,HWIO_WBM_R0_RING_PRIORITY_CFG2_IN(x))
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_SW1_RELEASE_RING_PRIORITY_BMSK                                                  0x3
+#define HWIO_WBM_R0_RING_PRIORITY_CFG2_SW1_RELEASE_RING_PRIORITY_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM_CFG_2_ADDR(x)                                                                           ((x) + 0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_PHYS(x)                                                                           ((x) + 0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_OFFS                                                                              (0x90)
+#define HWIO_WBM_R0_WBM_CFG_2_RMSK                                                                                    0x7f
+#define HWIO_WBM_R0_WBM_CFG_2_POR                                                                               0x00000040
+#define HWIO_WBM_R0_WBM_CFG_2_POR_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_CFG_2_ATTR                                                                                           0x3
+#define HWIO_WBM_R0_WBM_CFG_2_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_CFG_2_ADDR(x))
+#define HWIO_WBM_R0_WBM_CFG_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_CFG_2_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_CFG_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_CFG_2_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_CFG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_CFG_2_ADDR(x),m,v,HWIO_WBM_R0_WBM_CFG_2_IN(x))
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_DEBUG_SEL_BMSK                                                                   0x40
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_DEBUG_SEL_SHFT                                                                      6
+#define HWIO_WBM_R0_WBM_CFG_2_TRANS_BUNCHING_UPDATE_BMSK                                                              0x20
+#define HWIO_WBM_R0_WBM_CFG_2_TRANS_BUNCHING_UPDATE_SHFT                                                                 5
+#define HWIO_WBM_R0_WBM_CFG_2_TRANS_BUNCHING_256B_EN_BMSK                                                             0x10
+#define HWIO_WBM_R0_WBM_CFG_2_TRANS_BUNCHING_256B_EN_SHFT                                                                4
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_CONV_INDICATION_EN_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM_CFG_2_COOKIE_CONV_INDICATION_EN_SHFT                                                             3
+#define HWIO_WBM_R0_WBM_CFG_2_OUT_OF_ORDER_RELEASE_EN_BMSK                                                             0x4
+#define HWIO_WBM_R0_WBM_CFG_2_OUT_OF_ORDER_RELEASE_EN_SHFT                                                               2
+#define HWIO_WBM_R0_WBM_CFG_2_ERROR_PATH_COOKIE_CONV_EN_BMSK                                                           0x2
+#define HWIO_WBM_R0_WBM_CFG_2_ERROR_PATH_COOKIE_CONV_EN_SHFT                                                             1
+#define HWIO_WBM_R0_WBM_CFG_2_RELEASE_PATH_COOKIE_CONV_EN_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM_CFG_2_RELEASE_PATH_COOKIE_CONV_EN_SHFT                                                           0
+
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x)                                                               ((x) + 0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_PHYS(x)                                                               ((x) + 0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OFFS                                                                  (0x94)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_RMSK                                                                       0x1ff
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_POR                                                                   0x000001fe
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x))
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x), m)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x),v)
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_ADDR(x),m,v,HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_IN(x))
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM_COOKIE_CONV_GLOBAL_ENABLE_BMSK                                         0x100
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM_COOKIE_CONV_GLOBAL_ENABLE_SHFT                                             8
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW6_COOKIE_CONVERSION_EN_BMSK                                           0x80
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW6_COOKIE_CONVERSION_EN_SHFT                                              7
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW5_COOKIE_CONVERSION_EN_BMSK                                           0x40
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW5_COOKIE_CONVERSION_EN_SHFT                                              6
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW4_COOKIE_CONVERSION_EN_BMSK                                           0x20
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW4_COOKIE_CONVERSION_EN_SHFT                                              5
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW3_COOKIE_CONVERSION_EN_BMSK                                           0x10
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW3_COOKIE_CONVERSION_EN_SHFT                                              4
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW2_COOKIE_CONVERSION_EN_BMSK                                            0x8
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW2_COOKIE_CONVERSION_EN_SHFT                                              3
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW1_COOKIE_CONVERSION_EN_BMSK                                            0x4
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW1_COOKIE_CONVERSION_EN_SHFT                                              2
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW0_COOKIE_CONVERSION_EN_BMSK                                            0x2
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2SW0_COOKIE_CONVERSION_EN_SHFT                                              1
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2FW_COOKIE_CONVERSION_EN_BMSK                                             0x1
+#define HWIO_WBM_R0_SW_COOKIE_CONVERT_CFG_WBM2FW_COOKIE_CONVERSION_EN_SHFT                                               0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x)                                                                 ((x) + 0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_PHYS(x)                                                                 ((x) + 0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OFFS                                                                    (0x98)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG0_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG0_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2REO_LINK_RING_WATERMARK_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2REO_LINK_RING_WATERMARK_SHFT                                                16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2TQM_LINK_RING_WATERMARK_BMSK                                            0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG0_WBM2TQM_LINK_RING_WATERMARK_SHFT                                                 0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x)                                                                 ((x) + 0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_PHYS(x)                                                                 ((x) + 0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OFFS                                                                    (0x9c)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG1_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG1_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2FW_LINK_RING_WATERMARK_BMSK                                         0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2FW_LINK_RING_WATERMARK_SHFT                                                 16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2SW_LINK_RING_WATERMARK_BMSK                                             0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG1_WBM2SW_LINK_RING_WATERMARK_SHFT                                                  0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x)                                                                 ((x) + 0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_PHYS(x)                                                                 ((x) + 0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OFFS                                                                    (0xa0)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG2_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG2_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_WBM2RXDMA0_LINK_RING_WATERMARK_BMSK                                         0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG2_WBM2RXDMA0_LINK_RING_WATERMARK_SHFT                                              0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x)                                                                 ((x) + 0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_PHYS(x)                                                                 ((x) + 0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OFFS                                                                    (0xa4)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG3_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG3_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2REO_LINK_RING_WATERMARK_LOWER_BMSK                                  0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2REO_LINK_RING_WATERMARK_LOWER_SHFT                                          16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2TQM_LINK_RING_WATERMARK_LOWER_BMSK                                      0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG3_WBM2TQM_LINK_RING_WATERMARK_LOWER_SHFT                                           0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x)                                                                 ((x) + 0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_PHYS(x)                                                                 ((x) + 0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OFFS                                                                    (0xa8)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_RMSK                                                                    0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG4_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG4_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2FW_LINK_RING_WATERMARK_LOWER_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2FW_LINK_RING_WATERMARK_LOWER_SHFT                                           16
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2SW_LINK_RING_WATERMARK_LOWER_BMSK                                       0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG4_WBM2SW_LINK_RING_WATERMARK_LOWER_SHFT                                            0
+
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x)                                                                 ((x) + 0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_PHYS(x)                                                                 ((x) + 0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OFFS                                                                    (0xac)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_POR                                                                     0x00000000
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_IN(x)            \
+                in_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x), m)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x),v)
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_LINK_DESC_RING_CFG5_ADDR(x),m,v,HWIO_WBM_R0_LINK_DESC_RING_CFG5_IN(x))
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_WBM2RXDMA0_LINK_RING_WATERMARK_LOWER_BMSK                                   0xffff
+#define HWIO_WBM_R0_LINK_DESC_RING_CFG5_WBM2RXDMA0_LINK_RING_WATERMARK_LOWER_SHFT                                        0
+
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x)                                                                    ((x) + 0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_PHYS(x)                                                                    ((x) + 0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OFFS                                                                       (0xb0)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RMSK                                                                           0x3fff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_POR                                                                        0x00000000
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_POR_RMSK                                                                   0xffffffff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_ATTR                                                                                    0x3
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_WBM_R0_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                          0x3000
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                              12
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_VALUE_BMSK                                                                      0xfff
+#define HWIO_WBM_R0_WATCHDOG_TIMEOUT_VALUE_SHFT                                                                          0
+
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x)                                                            ((x) + 0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_PHYS(x)                                                            ((x) + 0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OFFS                                                               (0xb4)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RMSK                                                                   0x3fff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_POR                                                                0x00000000
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                  0x3000
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                      12
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_VALUE_BMSK                                                              0xfff
+#define HWIO_WBM_R0_WARNING_WATCHDOG_TIMEOUT_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x)                                                       ((x) + 0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_PHYS(x)                                                       ((x) + 0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OFFS                                                          (0xb8)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RMSK                                                              0x3fff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_POR                                                           0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ATTR                                                                       0x3
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x),v)
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_ADDR(x),m,v,HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_IN(x))
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RESOLUTION_UNITS_BMSK                                             0x3000
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_RESOLUTION_UNITS_SHFT                                                 12
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_VALUE_BMSK                                                         0xfff
+#define HWIO_WBM_R0_CACHE_CTRL_LPM_WATCHDOG_LIMIT_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x)                                                            ((x) + 0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_PHYS(x)                                                            ((x) + 0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_OFFS                                                               (0xbc)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RMSK                                                                 0x1fffff
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_POR                                                                0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ATTR                                                                            0x1
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_ERR_BMSK                                                0x1e0000
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_ERR_SHFT                                                      17
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_BMSK                                                     0x1fff0
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_RD_DATA_DEST_SHFT                                                           4
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_P_STATE_ENC_BMSK                                                          0xf
+#define HWIO_WBM_R0_RLS_PARSER_SM_STUCK_INFO_P_STATE_ENC_SHFT                                                            0
+
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x)                                                              ((x) + 0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_PHYS(x)                                                              ((x) + 0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_OFFS                                                                 (0xc0)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_POR                                                                  0x00000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ATTR                                                                              0x1
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_IN(x)            \
+                in_dword(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x))
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ADDR(x), m)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_OCCURRENCE_BMSK                                                0x80000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_OCCURRENCE_SHFT                                                        31
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_SOURCE_BMSK                                                    0x40000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_SOURCE_SHFT                                                            30
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_TYPE_BMSK                                                      0x30000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_ERROR_TYPE_SHFT                                                              28
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_SW_BUFFER_COOKIE_BMSK                                                 0xffffe00
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_SW_BUFFER_COOKIE_SHFT                                                         9
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BM_ACTION_BMSK                                                            0x180
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BM_ACTION_SHFT                                                                7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BUFFER_DESC_TYPE_BMSK                                                      0x70
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_BUFFER_DESC_TYPE_SHFT                                                         4
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RETURN_BUFFER_MANAGER_BMSK                                                  0xf
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE_RETURN_BUFFER_MANAGER_SHFT                                                    0
+
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x)                                                             ((x) + 0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_PHYS(x)                                                             ((x) + 0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_OFFS                                                                (0xc4)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RMSK                                                                       0x7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_POR                                                                 0x00000000
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ATTR                                                                             0x1
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_IN(x)            \
+                in_dword(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x))
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_ADDR(x), m)
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RELEASE_SOURCE_MODULE_BMSK                                                 0x7
+#define HWIO_WBM_R0_INTERRUPT_DATA_CAPTURE2_RELEASE_SOURCE_MODULE_SHFT                                                   0
+
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                                ((x) + 0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                                ((x) + 0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_OFFS                                                                   (0xc8)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_RMSK                                                                      0x7ffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_POR                                                                    0x00000000
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ATTR                                                                                0x1
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_TYPE_BMSK                                                             0x60000
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_TYPE_SHFT                                                                  17
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_ADDR_BMSK                                                             0x1ffff
+#define HWIO_WBM_R0_INVALID_APB_ACC_ADDR_ERR_ADDR_SHFT                                                                   0
+
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x)                                                        ((x) + 0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_PHYS(x)                                                        ((x) + 0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OFFS                                                           (0xcc)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_RMSK                                                                  0x7
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_POR                                                            0x00000000
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x))
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_ADDR(x),m,v,HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_IN(x))
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_BYPASS_COUNTER_FULL_BMSK                                              0x4
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_BYPASS_COUNTER_FULL_SHFT                                                2
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_FREEPOOL_COUNTER_FULL_BMSK                                            0x2
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_FREEPOOL_COUNTER_FULL_SHFT                                              1
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_COUNTER_CLR_BMSK                                                      0x1
+#define HWIO_WBM_R0_WATERMARK_LOWER_COUNTER_CTRL_COUNTER_CLR_SHFT                                                        0
+
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x)                                                     ((x) + 0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_PHYS(x)                                                     ((x) + 0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_OFFS                                                        (0xd0)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_POR                                                         0x00000000
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ATTR                                                                     0x1
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_VALUE_BMSK                                                  0xffffffff
+#define HWIO_WBM_R0_FREEPOOL_PATH_LINK_DIST_COUNTER_VALUE_SHFT                                                           0
+
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x)                                                       ((x) + 0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_PHYS(x)                                                       ((x) + 0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_OFFS                                                          (0xd4)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_POR                                                           0x00000000
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ATTR                                                                       0x1
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_BYPASS_PATH_LINK_DIST_COUNTER_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x)                                                            ((x) + 0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_PHYS(x)                                                            ((x) + 0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_OFFS                                                               (0xd8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ATTR                                                                            0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_TQM_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x)                                                            ((x) + 0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_PHYS(x)                                                            ((x) + 0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_OFFS                                                               (0xdc)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ATTR                                                                            0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_REO_VALUE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x)                                                             ((x) + 0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_PHYS(x)                                                             ((x) + 0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_OFFS                                                                (0xe0)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_POR                                                                 0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ATTR                                                                             0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_SW_VALUE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x)                                                             ((x) + 0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_PHYS(x)                                                             ((x) + 0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_OFFS                                                                (0xe4)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_POR                                                                 0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ATTR                                                                             0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_FW_VALUE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x)                                                          ((x) + 0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_PHYS(x)                                                          ((x) + 0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_OFFS                                                             (0xe8)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_POR                                                              0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ATTR                                                                          0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_RXDMA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x)                                                            ((x) + 0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_PHYS(x)                                                            ((x) + 0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OFFS                                                               (0xec)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RMSK                                                                     0x1f
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_POR                                                                0x00000000
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ATTR                                                                            0x3
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_IN(x)            \
+                in_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x), m)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x),v)
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_ADDR(x),m,v,HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_IN(x))
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RXDMA_CLR_BMSK                                                           0x10
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_RXDMA_CLR_SHFT                                                              4
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_FW_CLR_BMSK                                                               0x8
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_FW_CLR_SHFT                                                                 3
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_SW_CLR_BMSK                                                               0x4
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_SW_CLR_SHFT                                                                 2
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_REO_CLR_BMSK                                                              0x2
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_REO_CLR_SHFT                                                                1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_TQM_CLR_BMSK                                                              0x1
+#define HWIO_WBM_R0_VALID_BELOW_LT_COUNT_CLR_TQM_CLR_SHFT                                                                0
+
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x)                                                    ((x) + 0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_PHYS(x)                                                    ((x) + 0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_OFFS                                                       (0xf0)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_RMSK                                                        0x1ffffff
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_POR                                                        0x00000000
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ATTR                                                                    0x1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COUNT_BMSK                                                  0x1e00000
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COUNT_SHFT                                                         21
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COOKIE_BMSK                                                  0x1ffffe
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_COOKIE_SHFT                                                         1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_VALID_BMSK                                                        0x1
+#define HWIO_WBM_R0_MSDU_PARSE_DUP_DETECT_INDICATION_VALID_SHFT                                                          0
+
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x)                                                     ((x) + 0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_PHYS(x)                                                     ((x) + 0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_OFFS                                                        (0xf4)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_RMSK                                                         0x1ffffff
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_POR                                                         0x00000000
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ATTR                                                                     0x1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COUNT_BMSK                                                   0x1e00000
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COUNT_SHFT                                                          21
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COOKIE_BMSK                                                   0x1ffffe
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_COOKIE_SHFT                                                          1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_VALID_BMSK                                                         0x1
+#define HWIO_WBM_R0_RLS_PARSE_DUP_DETECT_INDICATION_VALID_SHFT                                                           0
+
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x)                                                        ((x) + 0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_PHYS(x)                                                        ((x) + 0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_OFFS                                                           (0xf8)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_RMSK                                                            0x1ffffff
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_POR                                                            0x00000000
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ATTR                                                                        0x1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x))
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COUNT_BMSK                                                      0x1e00000
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COUNT_SHFT                                                             21
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COOKIE_BMSK                                                      0x1ffffe
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_COOKIE_SHFT                                                             1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_VALID_BMSK                                                            0x1
+#define HWIO_WBM_R0_IDLE_DIST_DUP_DET_INDICATION_VALID_SHFT                                                              0
+
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x)                                                               ((x) + 0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_PHYS(x)                                                               ((x) + 0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_OFFS                                                                  (0xfc)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_POR                                                                   0x00000000
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ATTR                                                                               0x1
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_TQM_LINKS_DISTRIBUTED_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x)                                                               ((x) + 0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_PHYS(x)                                                               ((x) + 0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_OFFS                                                                  (0x100)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_POR                                                                   0x00000000
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ATTR                                                                               0x1
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_REO_LINKS_DISTRIBUTED_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x)                                                                ((x) + 0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_PHYS(x)                                                                ((x) + 0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_OFFS                                                                   (0x104)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_POR                                                                    0x00000000
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ATTR                                                                                0x1
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_COUNT_BMSK                                                                0xfffff
+#define HWIO_WBM_R0_SW_LINKS_DISTRIBUTED_COUNT_SHFT                                                                      0
+
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x)                                                                ((x) + 0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_PHYS(x)                                                                ((x) + 0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_OFFS                                                                   (0x108)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_RMSK                                                                      0xfffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ATTR                                                                                0x1
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_COUNT_BMSK                                                                0xfffff
+#define HWIO_WBM_R0_FW_LINKS_DISTRIBUTED_COUNT_SHFT                                                                      0
+
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x)                                                            ((x) + 0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_PHYS(x)                                                            ((x) + 0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_OFFS                                                               (0x10c)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_RMSK                                                                  0xfffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_POR                                                                0x00000000
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ATTR                                                                            0x1
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_COUNT_BMSK                                                            0xfffff
+#define HWIO_WBM_R0_RXDMA0_LINKS_DISTRIBUTED_COUNT_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x)                                                             ((x) + 0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_PHYS(x)                                                             ((x) + 0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_OFFS                                                                (0x110)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_RMSK                                                                   0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ATTR                                                                             0x1
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_IN(x)            \
+                in_dword(HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x))
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_ADDR(x), m)
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_COUNT_BMSK                                                             0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_DISTRIBUTED_COUNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x)                                                               ((x) + 0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_PHYS(x)                                                               ((x) + 0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_OFFS                                                                  (0x114)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_RMSK                                                                     0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_POR                                                                   0x00000000
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ATTR                                                                               0x1
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_IN(x)            \
+                in_dword(HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x))
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_ADDR(x), m)
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_COUNT_BMSK                                                               0xfffff
+#define HWIO_WBM_R0_TOTAL_LINKS_AVAILABLE_COUNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x)                                                                ((x) + 0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_PHYS(x)                                                                ((x) + 0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OFFS                                                                   (0x118)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RMSK                                                                        0x3ff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_POR                                                                    0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ATTR                                                                                0x3
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x3fe
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_PTR_SHFT                                                                     1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_VALID_BMSK                                                                 0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_CTRL_RD_VALID_SHFT                                                                   0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x)                                                              ((x) + 0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_PHYS(x)                                                              ((x) + 0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_OFFS                                                                 (0x11c)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_POR                                                                  0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ATTR                                                                              0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x)                                                              ((x) + 0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_PHYS(x)                                                              ((x) + 0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_OFFS                                                                 (0x120)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ATTR                                                                              0x1
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_DUP_DET_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x)                                                              ((x) + 0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_PHYS(x)                                                              ((x) + 0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_OFFS                                                                 (0x124)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_RMSK                                                                      0x1ff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x1e0
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                             5
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_UD_CNT_BMSK                                                                0x1f
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_DETAILS_UD_CNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x)                                                              ((x) + 0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_PHYS(x)                                                              ((x) + 0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OFFS                                                                 (0x128)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RMSK                                                                       0x1f
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ATTR                                                                              0x3
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_PTR_BMSK                                                                0x1e
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_PTR_SHFT                                                                   1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_VALID_BMSK                                                               0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_CTRL_RD_VALID_SHFT                                                                 0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x)                                                            ((x) + 0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_PHYS(x)                                                            ((x) + 0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_OFFS                                                               (0x12c)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x)                                                            ((x) + 0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_PHYS(x)                                                            ((x) + 0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_OFFS                                                               (0x130)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x)                                                              ((x) + 0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_PHYS(x)                                                              ((x) + 0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_OFFS                                                                 (0x134)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_RMSK                                                                    0x3ffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_BF_RDPTR_BMSK                                                  0x3c000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_BF_RDPTR_SHFT                                                       14
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_BUD_CNT_BMSK                                                             0x3e00
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_BUD_CNT_SHFT                                                                  9
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_RDPTR_BMSK                                                       0x1e0
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_INTERNAL_RDPTR_SHFT                                                           5
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                0x1f
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                   0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x)                                                              ((x) + 0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_PHYS(x)                                                              ((x) + 0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OFFS                                                                 (0x138)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RMSK                                                                       0x1f
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_POR                                                                  0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ATTR                                                                              0x3
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                0x1e
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                   1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                               0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                 0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x)                                                            ((x) + 0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_PHYS(x)                                                            ((x) + 0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_OFFS                                                               (0x13c)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x)                                                            ((x) + 0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_PHYS(x)                                                            ((x) + 0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_OFFS                                                               (0x140)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ATTR                                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x)                                                           ((x) + 0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_PHYS(x)                                                           ((x) + 0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OFFS                                                              (0x144)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RMSK                                                                    0x1f
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_POR                                                               0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ATTR                                                                           0x3
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_PTR_BMSK                                                             0x1e
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_PTR_SHFT                                                                1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_VALID_BMSK                                                            0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_CTRL_RD_VALID_SHFT                                                              0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x)                                                         ((x) + 0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_PHYS(x)                                                         ((x) + 0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_OFFS                                                            (0x148)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_POR                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ATTR                                                                         0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RD_DATA_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_0_RD_DATA_SHFT                                                             0
+
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x)                                                         ((x) + 0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_PHYS(x)                                                         ((x) + 0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_OFFS                                                            (0x14c)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ATTR                                                                         0x1
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RD_DATA_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_IDLE_PROD_BP_FIFO_RD_DATA_1_RD_DATA_SHFT                                                             0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x)                                                             ((x) + 0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_PHYS(x)                                                             ((x) + 0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_OFFS                                                                (0x150)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_RMSK                                                                     0x7ff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                        0x7c0
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                            6
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_UD_CNT_BMSK                                                               0x3f
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_DETAILS_UD_CNT_SHFT                                                                  0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x)                                                             ((x) + 0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_PHYS(x)                                                             ((x) + 0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OFFS                                                                (0x154)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RMSK                                                                      0x3f
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_POR                                                                 0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ATTR                                                                             0x3
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_PTR_BMSK                                                               0x3e
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_PTR_SHFT                                                                  1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_VALID_BMSK                                                              0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_CTRL_RD_VALID_SHFT                                                                0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x)                                                           ((x) + 0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_PHYS(x)                                                           ((x) + 0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_OFFS                                                              (0x158)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_POR                                                               0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ATTR                                                                           0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RD_DATA_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_0_RD_DATA_SHFT                                                               0
+
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x)                                                           ((x) + 0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_PHYS(x)                                                           ((x) + 0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_OFFS                                                              (0x15c)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_POR                                                               0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ATTR                                                                           0x1
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RD_DATA_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_FIFO_RD_DATA_1_RD_DATA_SHFT                                                               0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_OFFS                                                                  (0x160)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW0_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x164)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x168)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x16c)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW0_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_OFFS                                                                  (0x170)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW1_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x174)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x178)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x17c)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW1_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_OFFS                                                                  (0x180)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW2_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x184)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x188)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x18c)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW2_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_OFFS                                                                  (0x190)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW3_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x194)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x198)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x19c)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW3_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_OFFS                                                                  (0x1a0)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW4_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1a4)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1a8)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1ac)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW4_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_OFFS                                                                  (0x1b0)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_RMSK                                                                      0x3fff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x3f80
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW5_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1b4)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RMSK                                                                        0xff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0xfe
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1b8)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1bc)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW5_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_OFFS                                                                  (0x1c0)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_RMSK                                                                      0x1fff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x1f80
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_SW6_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1c4)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x7e
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1c8)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1cc)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW6_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x)                                                                ((x) + 0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_PHYS(x)                                                                ((x) + 0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_OFFS                                                                   (0x1d0)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_RMSK                                                                       0x1fff
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ATTR                                                                                0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                          0x1f80
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                               7
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                  0x7f
+#define HWIO_WBM_R0_FW_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                     0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x)                                                                ((x) + 0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_PHYS(x)                                                                ((x) + 0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OFFS                                                                   (0x1d4)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RMSK                                                                         0x7f
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_POR                                                                    0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ATTR                                                                                0x3
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                  0x7e
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                     1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                 0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                   0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x)                                                              ((x) + 0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_PHYS(x)                                                              ((x) + 0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_OFFS                                                                 (0x1d8)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x)                                                              ((x) + 0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_PHYS(x)                                                              ((x) + 0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_OFFS                                                                 (0x1dc)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                         0xffffffff
+#define HWIO_WBM_R0_FW_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                  0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x)                                                               ((x) + 0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_PHYS(x)                                                               ((x) + 0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_OFFS                                                                  (0x1e0)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_RMSK                                                                      0x1fff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_POR                                                                   0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ATTR                                                                               0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                         0x1f80
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                              7
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                                 0x7f
+#define HWIO_WBM_R0_ERR_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                                    0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x)                                                               ((x) + 0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_PHYS(x)                                                               ((x) + 0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OFFS                                                                  (0x1e4)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RMSK                                                                        0x7f
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_POR                                                                   0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ATTR                                                                               0x3
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                                 0x7e
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                                    1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                                0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                                  0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x)                                                             ((x) + 0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_PHYS(x)                                                             ((x) + 0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_OFFS                                                                (0x1e8)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_POR                                                                 0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ATTR                                                                             0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x)                                                             ((x) + 0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_PHYS(x)                                                             ((x) + 0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_OFFS                                                                (0x1ec)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ATTR                                                                             0x1
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_ERR_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                                 0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x)                                                          ((x) + 0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_PHYS(x)                                                          ((x) + 0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_OFFS                                                             (0x1f0)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_RMSK                                                                 0x1fff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                    0x1f80
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                         7
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                            0x7f
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                               0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x)                                                          ((x) + 0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_PHYS(x)                                                          ((x) + 0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OFFS                                                             (0x1f4)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RMSK                                                                   0x7f
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ATTR                                                                          0x3
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                            0x7e
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                               1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                           0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                             0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x)                                                        ((x) + 0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_PHYS(x)                                                        ((x) + 0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_OFFS                                                           (0x1f8)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x)                                                        ((x) + 0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_PHYS(x)                                                        ((x) + 0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_OFFS                                                           (0x1fc)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT1_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x)                                                          ((x) + 0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_PHYS(x)                                                          ((x) + 0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_OFFS                                                             (0x200)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_RMSK                                                                 0x1fff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                    0x1f80
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                         7
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_UD_CNT_BMSK                                                            0x7f
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_DETAILS_UD_CNT_SHFT                                                               0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x)                                                          ((x) + 0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_PHYS(x)                                                          ((x) + 0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OFFS                                                             (0x204)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RMSK                                                                   0x7f
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_POR                                                              0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ATTR                                                                          0x3
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_PTR_BMSK                                                            0x7e
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_PTR_SHFT                                                               1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_VALID_BMSK                                                           0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_CTRL_RD_VALID_SHFT                                                             0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x)                                                        ((x) + 0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_PHYS(x)                                                        ((x) + 0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_OFFS                                                           (0x208)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_0_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x)                                                        ((x) + 0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_PHYS(x)                                                        ((x) + 0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_OFFS                                                           (0x20c)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_POR                                                            0x00000000
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ATTR                                                                        0x1
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RD_DATA_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_MLO_OUT2_PROD_FIFO_RD_DATA_1_RD_DATA_SHFT                                                            0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x)                                                            ((x) + 0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_PHYS(x)                                                            ((x) + 0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OFFS                                                               (0x210)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RMSK                                                                     0x7f
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_POR                                                                0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ATTR                                                                            0x3
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_PTR_BMSK                                                              0x7e
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_PTR_SHFT                                                                 1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_VALID_BMSK                                                             0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_CTRL_RD_VALID_SHFT                                                               0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x)                                                            ((x) + 0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_PHYS(x)                                                            ((x) + 0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_OFFS                                                               (0x214)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_RMSK                                                                   0x1fff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_POR                                                                0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                      0x1f80
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                           7
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_UD_CNT_BMSK                                                              0x7f
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_DETAILS_UD_CNT_SHFT                                                                 0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x)                                                          ((x) + 0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_PHYS(x)                                                          ((x) + 0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_OFFS                                                             (0x218)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_POR                                                              0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_0_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x)                                                          ((x) + 0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_PHYS(x)                                                          ((x) + 0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_OFFS                                                             (0x21c)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ATTR                                                                          0x1
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_FIFO_RD_DATA_1_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x)                                                            ((x) + 0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_PHYS(x)                                                            ((x) + 0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_OFFS                                                               (0x220)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_RMSK                                                                     0x1f
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                        0x18
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                           3
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_UD_CNT_BMSK                                                               0x7
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_DETAILS_UD_CNT_SHFT                                                                 0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x)                                                            ((x) + 0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_PHYS(x)                                                            ((x) + 0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OFFS                                                               (0x224)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RMSK                                                                      0x7
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ATTR                                                                            0x3
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_PTR_BMSK                                                               0x6
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_PTR_SHFT                                                                 1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_VALID_BMSK                                                             0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_CTRL_RD_VALID_SHFT                                                               0
+
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x)                                                          ((x) + 0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_PHYS(x)                                                          ((x) + 0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_OFFS                                                             (0x228)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_POR                                                              0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ATTR                                                                          0x1
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL0_FIFO_RD_DATA_0_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_ADDR(x)                                                            ((x) + 0x22c)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_PHYS(x)                                                            ((x) + 0x22c)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_OFFS                                                               (0x22c)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_RMSK                                                                     0x1f
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_INTERNAL_PTR_BMSK                                                        0x18
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_INTERNAL_PTR_SHFT                                                           3
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_UD_CNT_BMSK                                                               0x7
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_DETAILS_UD_CNT_SHFT                                                                 0
+
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ADDR(x)                                                            ((x) + 0x230)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_PHYS(x)                                                            ((x) + 0x230)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_OFFS                                                               (0x230)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_RMSK                                                                      0x7
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_POR                                                                0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ATTR                                                                            0x3
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_ADDR(x),m,v,HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_IN(x))
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_RD_PTR_BMSK                                                               0x6
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_RD_PTR_SHFT                                                                 1
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_RD_VALID_BMSK                                                             0x1
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_CTRL_RD_VALID_SHFT                                                               0
+
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_ADDR(x)                                                          ((x) + 0x234)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_PHYS(x)                                                          ((x) + 0x234)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_OFFS                                                             (0x234)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_POR                                                              0x00000000
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_ATTR                                                                          0x1
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_IN(x)            \
+                in_dword(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_ADDR(x))
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_ADDR(x), m)
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_RD_DATA_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_CACHE_CTRL1_FIFO_RD_DATA_0_RD_DATA_SHFT                                                              0
+
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x)                                                     ((x) + 0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_PHYS(x)                                                     ((x) + 0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_OFFS                                                        (0x238)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_RMSK                                                         0xfffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_POR                                                         0x00000000
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ATTR                                                                     0x1
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x))
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_VALUE_BMSK                                                   0xfffffff
+#define HWIO_WBM_R0_MSDU_PARSER_CURRENT_COOKIE_INFO_VALUE_SHFT                                                           0
+
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x)                                                      ((x) + 0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_PHYS(x)                                                      ((x) + 0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_OFFS                                                         (0x23c)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_RMSK                                                          0xfffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_POR                                                          0x00000000
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ATTR                                                                      0x1
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_IN(x)            \
+                in_dword(HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x))
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_ADDR(x), m)
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_VALUE_BMSK                                                    0xfffffff
+#define HWIO_WBM_R0_RLS_PARSER_CURRENT_COOKIE_INFO_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x)                                                                   ((x) + 0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_PHYS(x)                                                                   ((x) + 0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OFFS                                                                      (0x240)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_RMSK                                                                           0x7ff
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_POR                                                                       0x00000010
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_ATTR                                                                                   0x3
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_CONTROL_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_CONTROL_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_SCATTER_BUFFER_SIZE_BMSK                                                       0x7fc
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_SCATTER_BUFFER_SIZE_SHFT                                                           2
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_LINK_DESC_IDLE_LIST_MODE_BMSK                                                    0x2
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_LINK_DESC_IDLE_LIST_MODE_SHFT                                                      1
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_BUFFER_IDLE_LIST_MODE_BMSK                                                       0x1
+#define HWIO_WBM_R0_IDLE_LIST_CONTROL_BUFFER_IDLE_LIST_MODE_SHFT                                                         0
+
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x)                                                                      ((x) + 0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_PHYS(x)                                                                      ((x) + 0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OFFS                                                                         (0x244)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_POR                                                                          0x00020002
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_ATTR                                                                                      0x3
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_IN(x)            \
+                in_dword(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x))
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x), m)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x),v)
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_IDLE_LIST_SIZE_ADDR(x),m,v,HWIO_WBM_R0_IDLE_LIST_SIZE_IN(x))
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_LINK_DESC_LIST_BMSK                                0xffff0000
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_LINK_DESC_LIST_SHFT                                        16
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_BUF_LIST_BMSK                                          0xffff
+#define HWIO_WBM_R0_IDLE_LIST_SIZE_SCATTER_RING_SIZE_OF_IDLE_BUF_LIST_SHFT                                               0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x)                                                   ((x) + 0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_PHYS(x)                                                   ((x) + 0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OFFS                                                      (0x250)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_BASE_ADDRESS_31_0_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_LSB_BASE_ADDRESS_31_0_SHFT                                             0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x)                                                   ((x) + 0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_PHYS(x)                                                   ((x) + 0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OFFS                                                      (0x254)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDRESS_MATCH_TAG_BMSK                                    0xffffff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_ADDRESS_MATCH_TAG_SHFT                                             8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_BASE_ADDRESS_39_32_BMSK                                         0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_LIST_BASE_MSB_BASE_ADDRESS_39_32_SHFT                                            0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x)                                               ((x) + 0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_PHYS(x)                                               ((x) + 0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OFFS                                                  (0x260)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_BUFFER_ADDRESS_31_0_BMSK                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX0_BUFFER_ADDRESS_31_0_SHFT                                       0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x)                                               ((x) + 0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_PHYS(x)                                               ((x) + 0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OFFS                                                  (0x264)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_RMSK                                                    0x1fffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_HEAD_POINTER_OFFSET_BMSK                                0x1fff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_HEAD_POINTER_OFFSET_SHFT                                       8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_BUFFER_ADDRESS_39_32_BMSK                                   0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HEAD_INFO_IX1_BUFFER_ADDRESS_39_32_SHFT                                      0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x)                                               ((x) + 0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_PHYS(x)                                               ((x) + 0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OFFS                                                  (0x270)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_BUFFER_ADDRESS_31_0_BMSK                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX0_BUFFER_ADDRESS_31_0_SHFT                                       0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x)                                               ((x) + 0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_PHYS(x)                                               ((x) + 0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OFFS                                                  (0x274)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_RMSK                                                    0x1fffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_POR                                                   0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ATTR                                                               0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_TAIL_POINTER_OFFSET_BMSK                                0x1fff00
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_TAIL_POINTER_OFFSET_SHFT                                       8
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_BUFFER_ADDRESS_39_32_BMSK                                   0xff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TAIL_INFO_IX1_BUFFER_ADDRESS_39_32_SHFT                                      0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x)                                                          ((x) + 0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_PHYS(x)                                                          ((x) + 0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OFFS                                                             (0x27c)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_RMSK                                                                0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_POR                                                              0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ATTR                                                                          0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_SCAT_HEAD_PTR_BMSK                                                  0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_HP_SCAT_HEAD_PTR_SHFT                                                        0
+
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x)                                                          ((x) + 0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_PHYS(x)                                                          ((x) + 0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OFFS                                                             (0x284)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_RMSK                                                                0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_POR                                                              0x00000000
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ATTR                                                                          0x3
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_IN(x)            \
+                in_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x), m)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x),v)
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_ADDR(x),m,v,HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_IN(x))
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_SCAT_TAIL_PTR_BMSK                                                  0xfffff
+#define HWIO_WBM_R0_SCATTERED_LINK_DESC_PTR_TP_SCAT_TAIL_PTR_SHFT                                                        0
+
+#define HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x)                                                                       ((x) + 0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_PHYS(x)                                                                       ((x) + 0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OFFS                                                                          (0x288)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_RMSK                                                                            0x3fffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_POR                                                                           0x00020000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_ATTR                                                                                       0x3
+#define HWIO_WBM_R0_CLK_GATE_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x))
+#define HWIO_WBM_R0_CLK_GATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x), m)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x),v)
+#define HWIO_WBM_R0_CLK_GATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_CLK_GATE_CTRL_ADDR(x),m,v,HWIO_WBM_R0_CLK_GATE_CTRL_IN(x))
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE1_BMSK                                                          0x3c0000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE1_SHFT                                                                18
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_ENS_EXTEND_BMSK                                                              0x20000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_ENS_EXTEND_SHFT                                                                   17
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_APB_BMSK                                                        0x10000
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_APB_SHFT                                                             16
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_BMSK                                                             0xffff
+#define HWIO_WBM_R0_CLK_GATE_CTRL_CLK_GATE_DISABLE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OFFS                                                              (0x28c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OFFS                                                              (0x290)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OFFS                                                                    (0x294)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_OFFS                                                                (0x298)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OFFS                                                                  (0x29c)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x2a8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x2ac)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x2bc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x2c0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x2c4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x2c8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x2cc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x2d0)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x2d4)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x2d8)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x2dc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x2fc)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OFFS                                                                (0x300)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OFFS                                                              (0x304)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OFFS                                                              (0x308)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OFFS                                                                    (0x30c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_OFFS                                                                (0x310)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OFFS                                                                  (0x314)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x320)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x324)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x334)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x338)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x33c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x340)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x344)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x348)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x34c)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x350)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x354)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x374)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OFFS                                                                (0x378)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OFFS                                                               (0x37c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OFFS                                                               (0x380)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OFFS                                                                     (0x384)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_RMSK                                                                           0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_OFFS                                                                 (0x388)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OFFS                                                                   (0x38c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OFFS                                                            (0x398)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OFFS                                                            (0x39c)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x3ac)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x3b0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x3b4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3b8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x3bc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x3c0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x3c4)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x3c8)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x3cc)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x3ec)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OFFS                                                                 (0x3f0)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_WBM_R0_SW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x3f4)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x3f4)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_OFFS                                                              (0x3f4)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x3f8)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x3f8)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_OFFS                                                              (0x3f8)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x3fc)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x3fc)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_OFFS                                                                    (0x3fc)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x400)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x400)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_OFFS                                                                (0x400)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x404)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x404)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_OFFS                                                                  (0x404)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x410)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x410)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x410)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x414)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x414)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x414)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x424)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x424)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x424)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x428)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x428)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x428)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x42c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x42c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x42c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x430)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x430)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x430)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x434)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x434)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x434)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x438)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x438)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x438)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x43c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x43c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x43c)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x440)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x440)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x440)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x444)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x444)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x444)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x464)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x464)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x464)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x468)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x468)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_OFFS                                                                (0x468)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x46c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x46c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_OFFS                                                              (0x46c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x470)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x470)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_OFFS                                                              (0x470)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_ADDR(x)                                                                 ((x) + 0x474)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_PHYS(x)                                                                 ((x) + 0x474)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_OFFS                                                                    (0x474)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_ADDR(x)                                                             ((x) + 0x478)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_PHYS(x)                                                             ((x) + 0x478)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_OFFS                                                                (0x478)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ADDR(x)                                                               ((x) + 0x47c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_PHYS(x)                                                               ((x) + 0x47c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_OFFS                                                                  (0x47c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x488)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x488)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_OFFS                                                           (0x488)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x48c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x48c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_OFFS                                                           (0x48c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x49c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x49c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x49c)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x4a0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x4a0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x4a0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x4a4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x4a4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x4a4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x4a8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x4a8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x4a8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x4ac)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x4ac)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x4ac)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x4b0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x4b0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x4b0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x4b4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x4b4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                         (0x4b4)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x4b8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x4b8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                         (0x4b8)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x4bc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x4bc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_OFFS                                                             (0x4bc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x4dc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x4dc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x4dc)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ADDR(x)                                                             ((x) + 0x4e0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_PHYS(x)                                                             ((x) + 0x4e0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_OFFS                                                                (0x4e0)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_PPE_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OFFS                                                               (0x4e4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OFFS                                                               (0x4e8)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OFFS                                                                     (0x4ec)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_RMSK                                                                           0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_OFFS                                                                 (0x4f0)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OFFS                                                                   (0x4f4)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OFFS                                                            (0x500)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OFFS                                                            (0x504)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x514)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x518)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x51c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x520)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x524)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x528)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x52c)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x530)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x534)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x554)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OFFS                                                                 (0x558)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_WBM_R0_FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x)                                                        ((x) + 0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_PHYS(x)                                                        ((x) + 0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OFFS                                                           (0x55c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x)                                                        ((x) + 0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_PHYS(x)                                                        ((x) + 0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OFFS                                                           (0x560)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RMSK                                                             0xffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xffff00
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                          8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                              0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x)                                                              ((x) + 0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_PHYS(x)                                                              ((x) + 0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OFFS                                                                 (0x564)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_RMSK                                                                       0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_POR                                                                  0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ATTR                                                                              0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                            0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                               0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x)                                                          ((x) + 0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_PHYS(x)                                                          ((x) + 0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_OFFS                                                             (0x568)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_POR                                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                             0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                     16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                 0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                      0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x)                                                            ((x) + 0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_PHYS(x)                                                            ((x) + 0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OFFS                                                               (0x56c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RMSK                                                                 0x3fffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_POR                                                                0x00000080
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ATTR                                                                            0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                   0x3fc000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                         14
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                    0x3000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                        12
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                     0xf00
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                         8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                        0x80
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                           7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                         0x40
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                            6
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                   0x20
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                      5
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                    0x10
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                       4
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                         0x8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                           3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                         0x4
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                           2
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                      0x2
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                        1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                      0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                        0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x)                                                     ((x) + 0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_PHYS(x)                                                     ((x) + 0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OFFS                                                        (0x578)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                   0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x)                                                     ((x) + 0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_PHYS(x)                                                     ((x) + 0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OFFS                                                        (0x57c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_RMSK                                                              0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                         0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                          ((x) + 0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                          ((x) + 0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OFFS                                             (0x58c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                   0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                           16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                               0x8000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                   15
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                         0x7fff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                              0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                          ((x) + 0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                          ((x) + 0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OFFS                                             (0x590)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                 0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                   0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                        0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x)                                             ((x) + 0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_PHYS(x)                                             ((x) + 0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_OFFS                                                (0x594)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_POR                                                 0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ATTR                                                             0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                  0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                          16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                       0x7fff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                            0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                          ((x) + 0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                          ((x) + 0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OFFS                                             (0x598)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                               0x3ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                   0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                         ((x) + 0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                         ((x) + 0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OFFS                                            (0x59c)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                   0x7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR                                             0x00000003
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                         0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                              0x7
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                        ((x) + 0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                        ((x) + 0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_OFFS                                           (0x5a0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_RMSK                                             0xffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR                                            0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                        0x1
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                              0xff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                    16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                             0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                  0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                   ((x) + 0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                   ((x) + 0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                      (0x5a4)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                   ((x) + 0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                   ((x) + 0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                      (0x5a8)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x)                                                       ((x) + 0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_PHYS(x)                                                       ((x) + 0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OFFS                                                          (0x5ac)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                 ((x) + 0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                 ((x) + 0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                    (0x5cc)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                        0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                     0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                 0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                     0xffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x)                                                          ((x) + 0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_PHYS(x)                                                          ((x) + 0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OFFS                                                             (0x5d0)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_RMSK                                                             0xffff003f
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ATTR                                                                          0x3
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                    0xffff0000
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                            16
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                           0x3f
+#define HWIO_WBM_R0_RXDMA0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OFFS                                                             (0x994)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OFFS                                                             (0x998)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x)                                                                ((x) + 0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_PHYS(x)                                                                ((x) + 0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OFFS                                                                   (0x99c)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x)                                                            ((x) + 0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_PHYS(x)                                                            ((x) + 0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_OFFS                                                               (0x9a0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x)                                                              ((x) + 0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_PHYS(x)                                                              ((x) + 0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OFFS                                                                 (0x9a4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OFFS                                                          (0x9a8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OFFS                                                          (0x9ac)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x9b8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x9bc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x9c0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OFFS                                                        (0x9dc)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OFFS                                                        (0x9e0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OFFS                                                            (0x9e4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x9e8)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OFFS                                                        (0x9ec)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OFFS                                                        (0x9f0)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OFFS                                                            (0x9f4)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                      (0xa04)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x)                                                            ((x) + 0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_PHYS(x)                                                            ((x) + 0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OFFS                                                               (0xa08)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OFFS                                                             (0xa0c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OFFS                                                             (0xa10)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x)                                                                ((x) + 0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_PHYS(x)                                                                ((x) + 0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OFFS                                                                   (0xa14)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x)                                                            ((x) + 0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_PHYS(x)                                                            ((x) + 0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_OFFS                                                               (0xa18)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x)                                                              ((x) + 0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_PHYS(x)                                                              ((x) + 0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OFFS                                                                 (0xa1c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OFFS                                                          (0xa20)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OFFS                                                          (0xa24)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                   (0xa30)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                  (0xa34)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0xa38)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OFFS                                                        (0xa54)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OFFS                                                        (0xa58)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OFFS                                                            (0xa5c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0xa60)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OFFS                                                        (0xa64)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OFFS                                                        (0xa68)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OFFS                                                            (0xa6c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                      (0xa7c)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x)                                                            ((x) + 0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_PHYS(x)                                                            ((x) + 0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OFFS                                                               (0xa80)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OFFS                                                              (0xa84)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OFFS                                                              (0xa88)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OFFS                                                                    (0xa8c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_OFFS                                                                (0xa90)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OFFS                                                                  (0xa94)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OFFS                                                           (0xa98)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OFFS                                                           (0xa9c)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xaa8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xaac)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xab0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0xacc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0xad0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OFFS                                                             (0xad4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xad8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OFFS                                                         (0xadc)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OFFS                                                         (0xae0)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OFFS                                                             (0xae4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xaf4)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OFFS                                                                (0xaf8)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2SW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OFFS                                                              (0xafc)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OFFS                                                              (0xb00)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OFFS                                                                    (0xb04)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RMSK                                                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_OFFS                                                                (0xb08)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OFFS                                                                  (0xb0c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OFFS                                                           (0xb10)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OFFS                                                           (0xb14)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xb20)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xb24)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xb28)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0xb44)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0xb48)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OFFS                                                             (0xb4c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xb50)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OFFS                                                         (0xb54)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OFFS                                                         (0xb58)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OFFS                                                             (0xb5c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xb6c)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OFFS                                                                (0xb70)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2FW_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OFFS                                                          (0xb74)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OFFS                                                          (0xb78)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RMSK                                                            0xffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                  0xffff00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x)                                                             ((x) + 0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_PHYS(x)                                                             ((x) + 0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OFFS                                                                (0xb7c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x)                                                         ((x) + 0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_PHYS(x)                                                         ((x) + 0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_OFFS                                                            (0xb80)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x)                                                           ((x) + 0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_PHYS(x)                                                           ((x) + 0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OFFS                                                              (0xb84)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OFFS                                                       (0xb88)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OFFS                                                       (0xb8c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                (0xb98)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_OFFS                                               (0xb9c)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xba0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OFFS                                                     (0xbbc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OFFS                                                     (0xbc0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OFFS                                                         (0xbc4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xbc8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffc0ffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OFFS                                                     (0xbcc)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OFFS                                                     (0xbd0)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OFFS                                                         (0xbd4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xbe4)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x)                                                         ((x) + 0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_PHYS(x)                                                         ((x) + 0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OFFS                                                            (0xbe8)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2RXDMA0_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x)                                                         ((x) + 0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_PHYS(x)                                                         ((x) + 0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OFFS                                                            (0xd3c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x)                                                         ((x) + 0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_PHYS(x)                                                         ((x) + 0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OFFS                                                            (0xd40)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RMSK                                                             0xfffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xfffff00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                           8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x)                                                               ((x) + 0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_PHYS(x)                                                               ((x) + 0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OFFS                                                                  (0xd44)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RMSK                                                                      0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_POR                                                                   0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RING_ID_BMSK                                                              0xff00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_RING_ID_SHFT                                                                   8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ENTRY_SIZE_BMSK                                                             0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x)                                                           ((x) + 0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_PHYS(x)                                                           ((x) + 0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_OFFS                                                              (0xd48)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ATTR                                                                           0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                              0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                      16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                  0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x)                                                             ((x) + 0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_PHYS(x)                                                             ((x) + 0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OFFS                                                                (0xd4c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RMSK                                                                 0x7ffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_POR                                                                 0x00000080
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                         0x4000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                26
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOP_CNT_BMSK                                                        0x3c00000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOP_CNT_SHFT                                                               22
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                    0x3fc000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                          14
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                     0x3000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                         12
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                      0xf00
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                          8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                         0x80
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                            7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                          0x40
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                             6
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                    0x20
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                       5
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                     0x10
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                        4
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                          0x8
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                            3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SECURITY_BIT_BMSK                                                          0x4
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_SECURITY_BIT_SHFT                                                            2
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                       0x2
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                         1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                       0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OFFS                                                         (0xd50)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OFFS                                                         (0xd54)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OFFS                                                         (0xd58)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OFFS                                                         (0xd5c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x)                                               ((x) + 0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_PHYS(x)                                               ((x) + 0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OFFS                                                  (0xd60)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x)                                              ((x) + 0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_PHYS(x)                                              ((x) + 0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_OFFS                                                 (0xd64)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                               15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                            ((x) + 0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                            ((x) + 0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OFFS                                               (0xd68)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RMSK                                                    0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                           ((x) + 0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                           ((x) + 0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                              (0xd6c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                            16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                    15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                               0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                           ((x) + 0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                           ((x) + 0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                              (0xd70)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                  0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                              ((x) + 0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                              ((x) + 0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_OFFS                                                 (0xd74)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                           ((x) + 0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                           ((x) + 0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                              (0xd78)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                   0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                          ((x) + 0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                          ((x) + 0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                             (0xd7c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                    0x7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                              0x00000003
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                               0x7
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                         ((x) + 0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                         ((x) + 0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                            (0xd80)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                             0xfffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                             0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                         0x1
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                              0xff00000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                     20
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                             0xfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                   0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x)                                              ((x) + 0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_PHYS(x)                                              ((x) + 0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OFFS                                                 (0xd84)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_RMSK                                                 0xffcfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                      0xff000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                              24
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                       0x800000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                             23
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                     0x400000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                           22
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                     0xfffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                  ((x) + 0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                  ((x) + 0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                     (0xd88)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                         0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x)                                                           ((x) + 0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_PHYS(x)                                                           ((x) + 0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OFFS                                                              (0xd8c)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_RMSK                                                              0xffff003f
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                     0xffff0000
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                             16
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                            0x3f
+#define HWIO_WBM_R0_WBM_IDLE_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x)                                                        ((x) + 0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_PHYS(x)                                                        ((x) + 0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OFFS                                                           (0xd90)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x)                                                        ((x) + 0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_PHYS(x)                                                        ((x) + 0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OFFS                                                           (0xd94)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RMSK                                                             0xffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xffff00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                          8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                              0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x)                                                              ((x) + 0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_PHYS(x)                                                              ((x) + 0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OFFS                                                                 (0xd98)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RMSK                                                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_POR                                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RING_ID_BMSK                                                             0xff00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_RING_ID_SHFT                                                                  8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                            0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x)                                                          ((x) + 0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_PHYS(x)                                                          ((x) + 0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_OFFS                                                             (0xd9c)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ATTR                                                                          0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                             0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                     16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                 0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                      0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x)                                                            ((x) + 0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_PHYS(x)                                                            ((x) + 0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OFFS                                                               (0xda0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RMSK                                                                0x7ffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_POR                                                                0x00000080
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                        0x4000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                               26
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                       0x3c00000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                              22
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                   0x3fc000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                         14
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                    0x3000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                        12
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                     0xf00
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                        0x80
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                           7
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                         0x40
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                            6
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                   0x20
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                      5
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                    0x10
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                       4
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                         0x8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                           3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                         0x4
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                           2
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                      0x2
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                        1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                      0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                     ((x) + 0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                     ((x) + 0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OFFS                                                        (0xda4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                     ((x) + 0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                     ((x) + 0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OFFS                                                        (0xda8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_RMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                         0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                              ((x) + 0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                              ((x) + 0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                 (0xdb4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                             ((x) + 0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                             ((x) + 0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                (0xdb8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                             0x1
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                  0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                          16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                       0x7fff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                            0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                           ((x) + 0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                           ((x) + 0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                              (0xdbc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                   0x3ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                 0x3ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                   ((x) + 0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                   ((x) + 0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                      (0xdd8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                   ((x) + 0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                   ((x) + 0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                      (0xddc)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x)                                                       ((x) + 0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_PHYS(x)                                                       ((x) + 0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OFFS                                                          (0xde0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                             ((x) + 0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                             ((x) + 0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                (0xde4)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                0xffc0ffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                     0xff000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                             24
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                      0x800000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                            23
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                    0x400000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                          22
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                   ((x) + 0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                   ((x) + 0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                      (0xde8)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                   ((x) + 0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                   ((x) + 0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                      (0xdec)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                           0x1ff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                               0x100
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                   8
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                       0xff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x)                                                       ((x) + 0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_PHYS(x)                                                       ((x) + 0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OFFS                                                          (0xdf0)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                 ((x) + 0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                 ((x) + 0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                    (0xe00)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                        0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                     0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                 0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                     0xffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x)                                                          ((x) + 0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_PHYS(x)                                                          ((x) + 0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OFFS                                                             (0xe04)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_RMSK                                                             0xffff003f
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                    0xffff0000
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                            16
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                           0x3f
+#define HWIO_WBM_R0_WBM2FW_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OFFS                                                          (0xe08)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OFFS                                                          (0xe0c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OFFS                                                                (0xe10)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_OFFS                                                            (0xe14)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OFFS                                                              (0xe18)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xe1c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xe20)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xe2c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xe30)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xe34)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xe50)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xe54)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xe58)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xe5c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xe60)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xe64)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xe68)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xe78)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OFFS                                                            (0xe7c)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW0_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OFFS                                                          (0xe80)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OFFS                                                          (0xe84)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OFFS                                                                (0xe88)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_OFFS                                                            (0xe8c)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OFFS                                                              (0xe90)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xe94)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xe98)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xea4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xea8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xeac)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xec8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xecc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xed0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xed4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xed8)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xedc)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xee0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xef0)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OFFS                                                            (0xef4)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW1_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OFFS                                                          (0xef8)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OFFS                                                          (0xefc)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OFFS                                                                (0xf00)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_OFFS                                                            (0xf04)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OFFS                                                              (0xf08)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xf0c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xf10)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xf1c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xf20)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xf24)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xf40)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xf44)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xf48)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xf4c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xf50)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xf54)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xf58)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xf68)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OFFS                                                            (0xf6c)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW2_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OFFS                                                          (0xf70)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OFFS                                                          (0xf74)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OFFS                                                                (0xf78)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_OFFS                                                            (0xf7c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OFFS                                                              (0xf80)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xf84)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0xf88)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0xf94)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0xf98)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xf9c)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0xfb8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0xfbc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OFFS                                                         (0xfc0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xfc4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0xfc8)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0xfcc)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OFFS                                                         (0xfd0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xfe0)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OFFS                                                            (0xfe4)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW3_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OFFS                                                          (0xfe8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OFFS                                                          (0xfec)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OFFS                                                                (0xff0)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_OFFS                                                            (0xff4)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OFFS                                                              (0xff8)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0xffc)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x1000)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x100c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1010)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x1014)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x1030)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x1034)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x1038)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x103c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x1040)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x1044)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x1048)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x1058)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OFFS                                                            (0x105c)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW4_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OFFS                                                          (0x1060)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OFFS                                                          (0x1064)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OFFS                                                                (0x1068)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_OFFS                                                            (0x106c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OFFS                                                              (0x1070)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0x1074)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x1078)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x1084)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1088)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x108c)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x10a8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x10ac)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x10b0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x10b4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x10b8)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x10bc)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x10c0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x10d0)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OFFS                                                            (0x10d4)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW5_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OFFS                                                          (0x10d8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OFFS                                                          (0x10dc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RMSK                                                           0xfffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                 0xfffff00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x)                                                             ((x) + 0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_PHYS(x)                                                             ((x) + 0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OFFS                                                                (0x10e0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RMSK                                                                    0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x)                                                         ((x) + 0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_PHYS(x)                                                         ((x) + 0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_OFFS                                                            (0x10e4)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x)                                                           ((x) + 0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_PHYS(x)                                                           ((x) + 0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OFFS                                                              (0x10e8)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_POR                                                               0x00000080
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OFFS                                                       (0x10ec)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OFFS                                                       (0x10f0)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                (0x10fc)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                               (0x1100)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0x1104)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                     (0x1120)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                     (0x1124)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OFFS                                                         (0x1128)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                               (0x112c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffcfffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                   0xfffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                     (0x1130)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                     (0x1134)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OFFS                                                         (0x1138)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x1148)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x)                                                         ((x) + 0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_PHYS(x)                                                         ((x) + 0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OFFS                                                            (0x114c)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_WBM_R0_WBM2SW6_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OFFS                                                        (0x1150)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OFFS                                                        (0x1154)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RMSK                                                         0xfffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                               0xfffff00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x)                                                           ((x) + 0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_PHYS(x)                                                           ((x) + 0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OFFS                                                              (0x1158)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RMSK                                                                  0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RING_ID_BMSK                                                          0xff00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_RING_ID_SHFT                                                               8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x)                                                       ((x) + 0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_PHYS(x)                                                       ((x) + 0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_OFFS                                                          (0x115c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x)                                                         ((x) + 0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_PHYS(x)                                                         ((x) + 0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OFFS                                                            (0x1160)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RMSK                                                             0x7ffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_POR                                                             0x00000080
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                     0x4000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                            26
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                    0x3c00000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                           22
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                  ((x) + 0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                  ((x) + 0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OFFS                                                     (0x1164)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                  ((x) + 0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                  ((x) + 0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OFFS                                                     (0x1168)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                           ((x) + 0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                           ((x) + 0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                              (0x1174)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                           0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                            16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                    15
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                               0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                          ((x) + 0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                          ((x) + 0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                             (0x1178)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                       0x8000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                           15
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                        ((x) + 0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                        ((x) + 0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                           (0x117c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                0x3ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                              0x3ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                  0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                   (0x1198)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                   (0x119c)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OFFS                                                       (0x11a0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                          ((x) + 0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                          ((x) + 0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                             (0x11a4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                             0xffcfffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                              0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                         0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                          0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                  0xff000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                          24
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                   0x800000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                         23
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                 0x400000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                       22
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                 0xfffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                ((x) + 0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                ((x) + 0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                   (0x11a8)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                ((x) + 0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                ((x) + 0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                   (0x11ac)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                            0x100
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                8
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x)                                                    ((x) + 0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_PHYS(x)                                                    ((x) + 0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OFFS                                                       (0x11b0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                 (0x11c0)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x)                                                       ((x) + 0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_PHYS(x)                                                       ((x) + 0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OFFS                                                          (0x11c4)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_WBM_R0_WBM_ERROR_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OFFS                                                              (0x11c8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OFFS                                                              (0x11cc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x)                                                                 ((x) + 0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_PHYS(x)                                                                 ((x) + 0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OFFS                                                                    (0x11d0)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x)                                                             ((x) + 0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_PHYS(x)                                                             ((x) + 0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_OFFS                                                                (0x11d4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x)                                                               ((x) + 0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_PHYS(x)                                                               ((x) + 0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OFFS                                                                  (0x11d8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OFFS                                                           (0x11e4)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OFFS                                                           (0x11e8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x11f8)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x11fc)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x1200)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x1204)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x1208)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x120c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OFFS                                                         (0x1210)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OFFS                                                         (0x1214)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OFFS                                                             (0x1218)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x1238)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x)                                                       ((x) + 0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_PHYS(x)                                                       ((x) + 0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OFFS                                                          (0x123c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                           (0x1240)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x1244)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x1248)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                        (0x124c)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                        (0x1250)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OFFS                                                                (0x1254)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2WBM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OFFS                                                              (0x1258)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OFFS                                                              (0x125c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x)                                                                 ((x) + 0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_PHYS(x)                                                                 ((x) + 0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OFFS                                                                    (0x1260)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_RMSK                                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_POR                                                                     0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x)                                                             ((x) + 0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_PHYS(x)                                                             ((x) + 0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_OFFS                                                                (0x1264)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x)                                                               ((x) + 0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_PHYS(x)                                                               ((x) + 0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OFFS                                                                  (0x1268)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OFFS                                                           (0x1274)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OFFS                                                           (0x1278)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x1288)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x128c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x1290)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x1294)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x1298)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x129c)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OFFS                                                         (0x12a0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OFFS                                                         (0x12a4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OFFS                                                             (0x12a8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x12c8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x)                                                       ((x) + 0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_PHYS(x)                                                       ((x) + 0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OFFS                                                          (0x12cc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                           (0x12d0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x12d4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x12d8)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                        (0x12dc)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                        (0x12e0)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OFFS                                                                (0x12e4)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_WBM_R0_WBM2WBM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OFFS                                                             (0x12e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OFFS                                                             (0x12ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x)                                                                ((x) + 0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_PHYS(x)                                                                ((x) + 0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OFFS                                                                   (0x12f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x)                                                            ((x) + 0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_PHYS(x)                                                            ((x) + 0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_OFFS                                                               (0x12f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x)                                                              ((x) + 0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_PHYS(x)                                                              ((x) + 0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OFFS                                                                 (0x12f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OFFS                                                          (0x12fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OFFS                                                          (0x1300)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x130c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x1310)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x1314)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OFFS                                                        (0x1330)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OFFS                                                        (0x1334)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OFFS                                                            (0x1338)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x133c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OFFS                                                        (0x1340)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OFFS                                                        (0x1344)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OFFS                                                            (0x1348)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OFFS                                                      (0x1358)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x)                                                      ((x) + 0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_PHYS(x)                                                      ((x) + 0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OFFS                                                         (0x135c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                              0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                      16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                              15
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                   0x7e00
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                        9
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                               0x180
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                   7
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                     0x70
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                        4
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                   0xf
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                       ((x) + 0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                       ((x) + 0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                          (0x1360)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                              0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                   ((x) + 0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                   ((x) + 0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                      (0x1364)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                   ((x) + 0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                   ((x) + 0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                      (0x1368)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                    ((x) + 0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                    ((x) + 0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                       (0x136c)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                    ((x) + 0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                    ((x) + 0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                       (0x1370)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x)                                                            ((x) + 0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_PHYS(x)                                                            ((x) + 0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OFFS                                                               (0x1374)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2WBM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OFFS                                                             (0x1378)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OFFS                                                             (0x137c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RMSK                                                               0xffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xffff00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x)                                                                ((x) + 0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_PHYS(x)                                                                ((x) + 0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OFFS                                                                   (0x1380)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RMSK                                                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_POR                                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ATTR                                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RING_ID_BMSK                                                               0xff00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_RING_ID_SHFT                                                                    8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x)                                                            ((x) + 0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_PHYS(x)                                                            ((x) + 0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_OFFS                                                               (0x1384)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x)                                                              ((x) + 0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_PHYS(x)                                                              ((x) + 0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OFFS                                                                 (0x1388)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RMSK                                                                  0x7ffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_POR                                                                  0x00000080
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ATTR                                                                              0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                          0x4000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                 26
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOP_CNT_BMSK                                                         0x3c00000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOP_CNT_SHFT                                                                22
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x)                                                       ((x) + 0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_PHYS(x)                                                       ((x) + 0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OFFS                                                          (0x138c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x)                                                       ((x) + 0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_PHYS(x)                                                       ((x) + 0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OFFS                                                          (0x1390)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                ((x) + 0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                ((x) + 0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OFFS                                                   (0x139c)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_RMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_POR                                                    0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ATTR                                                                0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x)                                               ((x) + 0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_PHYS(x)                                               ((x) + 0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_OFFS                                                  (0x13a0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                             ((x) + 0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                             ((x) + 0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OFFS                                                (0x13a4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RMSK                                                     0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_POR                                                 0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ATTR                                                             0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                   0x3ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                       0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OFFS                                                        (0x13c0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OFFS                                                        (0x13c4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OFFS                                                            (0x13c8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                               ((x) + 0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                               ((x) + 0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OFFS                                                  (0x13cc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_RMSK                                                  0xffc0ffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_POR                                                   0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ATTR                                                               0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                       0xff000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                               24
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                        0x800000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                              23
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                      0x400000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                            22
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x)                                                     ((x) + 0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_PHYS(x)                                                     ((x) + 0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OFFS                                                        (0x13d0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x)                                                     ((x) + 0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_PHYS(x)                                                     ((x) + 0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OFFS                                                        (0x13d4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_POR                                                         0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                 0x100
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                     8
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x)                                                         ((x) + 0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_PHYS(x)                                                         ((x) + 0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OFFS                                                            (0x13d8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_RMSK                                                            0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_POR                                                             0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ATTR                                                                         0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MSI2_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OFFS                                                      (0x13e8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x)                                                      ((x) + 0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_PHYS(x)                                                      ((x) + 0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OFFS                                                         (0x13ec)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_RMSK                                                         0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_POR                                                          0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_POR_RMSK                                                     0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ATTR                                                                      0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                              0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                      16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                          0x8000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                              15
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                   0x7e00
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                        9
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                               0x180
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                   7
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                     0x70
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                        4
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                   0xf
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                       ((x) + 0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                       ((x) + 0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                          (0x13f0)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                              0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                           0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                       0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                      0xffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                           0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                   ((x) + 0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                   ((x) + 0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                      (0x13f4)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                      0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                   ((x) + 0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                   ((x) + 0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                      (0x13f8)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                            0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                       0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                  0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                   0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                      0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                         0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                    ((x) + 0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                    ((x) + 0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                       (0x13fc)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                    ((x) + 0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                    ((x) + 0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                       (0x1400)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                             0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                        0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x)                                                            ((x) + 0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_PHYS(x)                                                            ((x) + 0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OFFS                                                               (0x1404)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x), m)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x),v)
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_ADDR(x),m,v,HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_IN(x))
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_WBM_R0_WBM2WBM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x)                                                                   ((x) + 0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_PHYS(x)                                                                   ((x) + 0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OFFS                                                                      (0x2000)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_RMSK                                                                             0x1
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_POR                                                                       0x00000000
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_POR_RMSK                                                                  0xffffffff
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_ATTR                                                                                   0x3
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WBM_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                      0x1
+#define HWIO_WBM_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                        0
+
+#define HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x)                                                                        ((x) + 0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_PHYS(x)                                                                        ((x) + 0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OFFS                                                                           (0x2004)
+#define HWIO_WBM_R1_TESTBUS_CTRL_RMSK                                                                                 0x3f
+#define HWIO_WBM_R1_TESTBUS_CTRL_POR                                                                            0x00000000
+#define HWIO_WBM_R1_TESTBUS_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WBM_R1_TESTBUS_CTRL_ATTR                                                                                        0x3
+#define HWIO_WBM_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_WBM_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_WBM_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_WBM_R1_TESTBUS_CTRL_SELECT_WBM_BMSK                                                                      0x3f
+#define HWIO_WBM_R1_TESTBUS_CTRL_SELECT_WBM_SHFT                                                                         0
+
+#define HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x)                                                                       ((x) + 0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_PHYS(x)                                                                       ((x) + 0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_OFFS                                                                          (0x2008)
+#define HWIO_WBM_R1_TESTBUS_LOWER_RMSK                                                                          0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_POR                                                                           0x00000000
+#define HWIO_WBM_R1_TESTBUS_LOWER_POR_RMSK                                                                      0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_ATTR                                                                                       0x1
+#define HWIO_WBM_R1_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_LOWER_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_TESTBUS_LOWER_VALUE_SHFT                                                                             0
+
+#define HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x)                                                                      ((x) + 0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_PHYS(x)                                                                      ((x) + 0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_OFFS                                                                         (0x200c)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_RMSK                                                                               0xff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_POR                                                                          0x00000000
+#define HWIO_WBM_R1_TESTBUS_HIGHER_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_TESTBUS_HIGHER_IN(x)            \
+                in_dword(HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x))
+#define HWIO_WBM_R1_TESTBUS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_TESTBUS_HIGHER_ADDR(x), m)
+#define HWIO_WBM_R1_TESTBUS_HIGHER_VALUE_BMSK                                                                         0xff
+#define HWIO_WBM_R1_TESTBUS_HIGHER_VALUE_SHFT                                                                            0
+
+#define HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x)                                                                      ((x) + 0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_PHYS(x)                                                                      ((x) + 0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_OFFS                                                                         (0x2010)
+#define HWIO_WBM_R1_SM_STATES_IX_0_RMSK                                                                         0x7fffffff
+#define HWIO_WBM_R1_SM_STATES_IX_0_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_0_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW2_BUFFER_P_STATE_BMSK                                                      0x60000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW2_BUFFER_P_STATE_SHFT                                                              29
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW1_BUFFER_P_STATE_BMSK                                                      0x18000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW1_BUFFER_P_STATE_SHFT                                                              27
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW0_BUFFER_P_STATE_BMSK                                                       0x6000000
+#define HWIO_WBM_R1_SM_STATES_IX_0_SW0_BUFFER_P_STATE_SHFT                                                              25
+#define HWIO_WBM_R1_SM_STATES_IX_0_FW_BUFFER_P_STATE_BMSK                                                        0x1800000
+#define HWIO_WBM_R1_SM_STATES_IX_0_FW_BUFFER_P_STATE_SHFT                                                               23
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_P_STATE_BMSK                                                         0x600000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_P_STATE_SHFT                                                               21
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_C_STATE_BMSK                                                         0x180000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_DIST_C_STATE_SHFT                                                               19
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_P_STATE_BMSK                                                        0x60000
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_P_STATE_SHFT                                                             17
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_C_STATE_BMSK                                                        0x18000
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_DIST_C_STATE_SHFT                                                             15
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_B_STATE_BMSK                                                 0x7000
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_B_STATE_SHFT                                                     12
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_P_STATE_BMSK                                                  0xc00
+#define HWIO_WBM_R1_SM_STATES_IX_0_LINK_IDLE_LIST_PROD_P_STATE_SHFT                                                     10
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_B_STATE_BMSK                                                0x380
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_B_STATE_SHFT                                                    7
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_P_STATE_BMSK                                                 0x60
+#define HWIO_WBM_R1_SM_STATES_IX_0_BUFFER_IDLE_LIST_PROD_P_STATE_SHFT                                                    5
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_P_STATE_BMSK                                                         0x1c
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_P_STATE_SHFT                                                            2
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_C_STATE_BMSK                                                          0x3
+#define HWIO_WBM_R1_SM_STATES_IX_0_RLS_REQ_PARSE_C_STATE_SHFT                                                            0
+
+#define HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x)                                                                      ((x) + 0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_PHYS(x)                                                                      ((x) + 0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_OFFS                                                                         (0x2014)
+#define HWIO_WBM_R1_SM_STATES_IX_1_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_1_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_1_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW4_BUFFER_P_STATE_BMSK                                                      0xc0000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW4_BUFFER_P_STATE_SHFT                                                              30
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_DIST_NULL_PTR_BMSK                                                 0x20000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_DIST_NULL_PTR_SHFT                                                         29
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_DIST_NULL_PTR_BMSK                                                  0x10000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_DIST_NULL_PTR_SHFT                                                          28
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_C_STATE_BMSK                                              0xe000000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_C_STATE_SHFT                                                     25
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_P_STATE_BMSK                                              0x1c00000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SCAT_SRNG_P_STATE_SHFT                                                     22
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_C_STATE_BMSK                                                0x380000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_C_STATE_SHFT                                                      19
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_P_STATE_BMSK                                                 0x70000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SCAT_SRNG_P_STATE_SHFT                                                      16
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_C_STATE_BMSK                                                      0xe000
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_C_STATE_SHFT                                                          13
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_P_STATE_BMSK                                                      0x1c00
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_LINK_SRNG_P_STATE_SHFT                                                          10
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_C_STATE_BMSK                                                        0x380
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_C_STATE_SHFT                                                            7
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_P_STATE_BMSK                                                         0x70
+#define HWIO_WBM_R1_SM_STATES_IX_1_IDLE_BUF_SRNG_P_STATE_SHFT                                                            4
+#define HWIO_WBM_R1_SM_STATES_IX_1_LINK_ZERO_OUT_STATE_BMSK                                                            0xc
+#define HWIO_WBM_R1_SM_STATES_IX_1_LINK_ZERO_OUT_STATE_SHFT                                                              2
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW3_BUFFER_P_STATE_BMSK                                                             0x3
+#define HWIO_WBM_R1_SM_STATES_IX_1_SW3_BUFFER_P_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x)                                                                      ((x) + 0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_PHYS(x)                                                                      ((x) + 0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_OFFS                                                                         (0x2018)
+#define HWIO_WBM_R1_SM_STATES_IX_2_RMSK                                                                              0x3ff
+#define HWIO_WBM_R1_SM_STATES_IX_2_POR                                                                          0x00000000
+#define HWIO_WBM_R1_SM_STATES_IX_2_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_SM_STATES_IX_2_ATTR                                                                                      0x1
+#define HWIO_WBM_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_WBM_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT2_REL_P_STATE_BMSK                                                         0x300
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT2_REL_P_STATE_SHFT                                                             8
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT1_REL_P_STATE_BMSK                                                          0xc0
+#define HWIO_WBM_R1_SM_STATES_IX_2_MLO_OUT1_REL_P_STATE_SHFT                                                             6
+#define HWIO_WBM_R1_SM_STATES_IX_2_ERROR_RELEASE_P_STATE_BMSK                                                         0x30
+#define HWIO_WBM_R1_SM_STATES_IX_2_ERROR_RELEASE_P_STATE_SHFT                                                            4
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW6_BUFFER_P_STATE_BMSK                                                             0xc
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW6_BUFFER_P_STATE_SHFT                                                               2
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW5_BUFFER_P_STATE_BMSK                                                             0x3
+#define HWIO_WBM_R1_SM_STATES_IX_2_SW5_BUFFER_P_STATE_SHFT                                                               0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x)                                                                      ((x) + 0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_PHYS(x)                                                                      ((x) + 0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OFFS                                                                         (0x201c)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_0_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_0_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x)                                                                      ((x) + 0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_PHYS(x)                                                                      ((x) + 0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OFFS                                                                         (0x2020)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_1_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_1_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x)                                                                      ((x) + 0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_PHYS(x)                                                                      ((x) + 0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OFFS                                                                         (0x2024)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_2_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_2_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_2_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x)                                                                      ((x) + 0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_PHYS(x)                                                                      ((x) + 0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OFFS                                                                         (0x2028)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_RMSK                                                                         0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_POR                                                                          0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_POR_RMSK                                                                     0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_ATTR                                                                                      0x3
+#define HWIO_WBM_R1_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_WBM_R1_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_WBM_R1_EVENTMASK_IX_3_IN(x))
+#define HWIO_WBM_R1_EVENTMASK_IX_3_MASK_BMSK                                                                    0xffffffff
+#define HWIO_WBM_R1_EVENTMASK_IX_3_MASK_SHFT                                                                             0
+
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                           ((x) + 0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                           ((x) + 0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                              (0x202c)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                              0xffffffff
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                               0x7ffe0002
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                           0x3
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                            0xfffe0000
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                    17
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                             0x1fffc
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                                   2
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                          0x2
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                            1
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                           0x1
+#define HWIO_WBM_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                             0
+
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OFFS                                                                    (0x3000)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_TQM_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_TQM_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OFFS                                                                    (0x3004)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_TQM_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_TQM_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OFFS                                                                    (0x3008)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_REO_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_REO_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OFFS                                                                    (0x300c)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_REO_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_REO_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_REO_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OFFS                                                                     (0x3010)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_SW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OFFS                                                                     (0x3014)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_SW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_SW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3018)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3018)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_OFFS                                                                    (0x3018)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW1_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW1_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW1_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW1_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_SW1_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x301c)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x301c)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_OFFS                                                                    (0x301c)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_SW1_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_SW1_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_SW1_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_SW1_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_SW1_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_SW1_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_ADDR(x)                                                                 ((x) + 0x3020)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_PHYS(x)                                                                 ((x) + 0x3020)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_OFFS                                                                    (0x3020)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_PPE_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_PPE_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_PPE_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_PPE_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_PPE_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_ADDR(x)                                                                 ((x) + 0x3024)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_PHYS(x)                                                                 ((x) + 0x3024)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_OFFS                                                                    (0x3024)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_PPE_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_PPE_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_PPE_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_PPE_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_PPE_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_PPE_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OFFS                                                                     (0x3028)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_FW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_FW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OFFS                                                                     (0x302c)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_FW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_FW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WBM_R2_FW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x)                                                              ((x) + 0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_PHYS(x)                                                              ((x) + 0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OFFS                                                                 (0x3030)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_HEAD_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x)                                                              ((x) + 0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_PHYS(x)                                                              ((x) + 0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OFFS                                                                 (0x3034)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_TAIL_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_RXDMA0_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x)                                                                ((x) + 0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_PHYS(x)                                                                ((x) + 0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OFFS                                                                   (0x3078)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x)                                                                ((x) + 0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_PHYS(x)                                                                ((x) + 0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OFFS                                                                   (0x307c)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x)                                                                ((x) + 0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_PHYS(x)                                                                ((x) + 0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OFFS                                                                   (0x3080)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2REO_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2REO_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x)                                                                ((x) + 0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_PHYS(x)                                                                ((x) + 0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OFFS                                                                   (0x3084)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2REO_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2REO_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OFFS                                                                    (0x3088)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OFFS                                                                    (0x308c)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2SW_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OFFS                                                                    (0x3090)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OFFS                                                                    (0x3094)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2FW_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x)                                                             ((x) + 0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_PHYS(x)                                                             ((x) + 0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OFFS                                                                (0x3098)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_RMSK                                                                    0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_HEAD_PTR_BMSK                                                           0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x)                                                             ((x) + 0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_PHYS(x)                                                             ((x) + 0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OFFS                                                                (0x309c)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_RMSK                                                                    0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_TAIL_PTR_BMSK                                                           0xffff
+#define HWIO_WBM_R2_WBM2RXDMA0_LINK_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x)                                                               ((x) + 0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_PHYS(x)                                                               ((x) + 0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OFFS                                                                  (0x30b8)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_RMSK                                                                     0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_POR                                                                   0x00000000
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ATTR                                                                               0x3
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_HEAD_PTR_BMSK                                                            0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_HP_HEAD_PTR_SHFT                                                                  0
+
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x)                                                               ((x) + 0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_PHYS(x)                                                               ((x) + 0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OFFS                                                                  (0x30bc)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_RMSK                                                                     0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_POR                                                                   0x00000000
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_POR_RMSK                                                              0xffffffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ATTR                                                                               0x3
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_TAIL_PTR_BMSK                                                            0xfffff
+#define HWIO_WBM_R2_WBM_IDLE_LINK_RING_TP_TAIL_PTR_SHFT                                                                  0
+
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x)                                                              ((x) + 0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_PHYS(x)                                                              ((x) + 0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OFFS                                                                 (0x30c0)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_HEAD_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x)                                                              ((x) + 0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_PHYS(x)                                                              ((x) + 0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OFFS                                                                 (0x30c4)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_RMSK                                                                     0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_POR                                                                  0x00000000
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_POR_RMSK                                                             0xffffffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ATTR                                                                              0x3
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_TAIL_PTR_BMSK                                                            0xffff
+#define HWIO_WBM_R2_WBM2FW_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                 0
+
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OFFS                                                                (0x30c8)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OFFS                                                                (0x30cc)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW0_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OFFS                                                                (0x30d0)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OFFS                                                                (0x30d4)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW1_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OFFS                                                                (0x30d8)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OFFS                                                                (0x30dc)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW2_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OFFS                                                                (0x30e0)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OFFS                                                                (0x30e4)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW3_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OFFS                                                                (0x30e8)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OFFS                                                                (0x30ec)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW4_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OFFS                                                                (0x30f0)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OFFS                                                                (0x30f4)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW5_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x)                                                             ((x) + 0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_PHYS(x)                                                             ((x) + 0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OFFS                                                                (0x30f8)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_HEAD_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x)                                                             ((x) + 0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_PHYS(x)                                                             ((x) + 0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OFFS                                                                (0x30fc)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_RMSK                                                                   0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_POR                                                                 0x00000000
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ATTR                                                                             0x3
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_TAIL_PTR_BMSK                                                          0xfffff
+#define HWIO_WBM_R2_WBM2SW6_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x)                                                           ((x) + 0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_PHYS(x)                                                           ((x) + 0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OFFS                                                              (0x3100)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_RMSK                                                                 0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_POR                                                               0x00000000
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ATTR                                                                           0x3
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_HEAD_PTR_BMSK                                                        0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x)                                                           ((x) + 0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_PHYS(x)                                                           ((x) + 0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OFFS                                                              (0x3104)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_RMSK                                                                 0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_POR                                                               0x00000000
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ATTR                                                                           0x3
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_TAIL_PTR_BMSK                                                        0xfffff
+#define HWIO_WBM_R2_WBM_ERROR_RELEASE_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x)                                                                 ((x) + 0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_PHYS(x)                                                                 ((x) + 0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OFFS                                                                    (0x3108)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x)                                                                 ((x) + 0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_PHYS(x)                                                                 ((x) + 0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OFFS                                                                    (0x310c)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x)                                                                 ((x) + 0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_PHYS(x)                                                                 ((x) + 0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OFFS                                                                    (0x3110)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x)                                                                 ((x) + 0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_PHYS(x)                                                                 ((x) + 0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OFFS                                                                    (0x3114)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_RMSK                                                                        0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_POR                                                                     0x00000000
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_WBM_R2_WBM2WBM_IN2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x)                                                                ((x) + 0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_PHYS(x)                                                                ((x) + 0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OFFS                                                                   (0x3118)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x)                                                                ((x) + 0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_PHYS(x)                                                                ((x) + 0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OFFS                                                                   (0x311c)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT1_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x)                                                                ((x) + 0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_PHYS(x)                                                                ((x) + 0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OFFS                                                                   (0x3120)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_HEAD_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x)                                                                ((x) + 0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_PHYS(x)                                                                ((x) + 0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OFFS                                                                   (0x3124)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_RMSK                                                                       0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_POR                                                                    0x00000000
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ATTR                                                                                0x3
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_IN(x)            \
+                in_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x), m)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x),v)
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_ADDR(x),m,v,HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_IN(x))
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_TAIL_PTR_BMSK                                                              0xffff
+#define HWIO_WBM_R2_WBM2WBM_OUT2_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+ 
+
+#define REO_REG_REG_BASE                                                                                     (UMAC_BASE      + 0x00038000)
+#define REO_REG_REG_BASE_SIZE                                                                                0x4000
+#define REO_REG_REG_BASE_USED                                                                                0x30ac
+#define REO_REG_REG_BASE_PHYS                                                                                (UMAC_BASE_PHYS + 0x00038000)
+#define REO_REG_REG_BASE_OFFS                                                                                0x00038000
+
+#define HWIO_REO_R0_GENERAL_ENABLE_ADDR(x)                                                                   ((x) + 0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_PHYS(x)                                                                   ((x) + 0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_OFFS                                                                      (0x0)
+#define HWIO_REO_R0_GENERAL_ENABLE_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_GENERAL_ENABLE_POR                                                                       0x00000100
+#define HWIO_REO_R0_GENERAL_ENABLE_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_GENERAL_ENABLE_ATTR                                                                                   0x3
+#define HWIO_REO_R0_GENERAL_ENABLE_IN(x)            \
+                in_dword(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x))
+#define HWIO_REO_R0_GENERAL_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x), m)
+#define HWIO_REO_R0_GENERAL_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x),v)
+#define HWIO_REO_R0_GENERAL_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GENERAL_ENABLE_ADDR(x),m,v,HWIO_REO_R0_GENERAL_ENABLE_IN(x))
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO1_RING_ENABLE_BMSK                                                  0x80000000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO1_RING_ENABLE_SHFT                                                          31
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW6_RING_ENABLE_BMSK                                                  0x40000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW6_RING_ENABLE_SHFT                                                          30
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW5_RING_ENABLE_BMSK                                                  0x20000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW5_RING_ENABLE_SHFT                                                          29
+#define HWIO_REO_R0_GENERAL_ENABLE_INVALIDATE_CACHE_FOR_ZERO_VLD_BMSK                                        0x10000000
+#define HWIO_REO_R0_GENERAL_ENABLE_INVALIDATE_CACHE_FOR_ZERO_VLD_SHFT                                                28
+#define HWIO_REO_R0_GENERAL_ENABLE_STRUCT_SWAP_DELINK_BMSK                                                    0x8000000
+#define HWIO_REO_R0_GENERAL_ENABLE_STRUCT_SWAP_DELINK_SHFT                                                           27
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW8_RING_ENABLE_BMSK                                                   0x4000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW8_RING_ENABLE_SHFT                                                          26
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW7_RING_ENABLE_BMSK                                                   0x2000000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW7_RING_ENABLE_SHFT                                                          25
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO3_RING_ENABLE_BMSK                                                   0x1000000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO3_RING_ENABLE_SHFT                                                          24
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO2_RING_ENABLE_BMSK                                                    0x800000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO2_RING_ENABLE_SHFT                                                          23
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO_RING_ENABLE_BMSK                                                     0x400000
+#define HWIO_REO_R0_GENERAL_ENABLE_SW2REO_RING_ENABLE_SHFT                                                           22
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_CMD_RING_ENABLE_BMSK                                                    0x200000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_CMD_RING_ENABLE_SHFT                                                          21
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_STATUS_RING_ENABLE_BMSK                                                 0x100000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_STATUS_RING_ENABLE_SHFT                                                       20
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_RELEASE_RING_ENABLE_BMSK                                                 0x80000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_RELEASE_RING_ENABLE_SHFT                                                      19
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW0_RING_ENABLE_BMSK                                                     0x40000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW0_RING_ENABLE_SHFT                                                          18
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2FW_RING_ENABLE_BMSK                                                      0x20000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2FW_RING_ENABLE_SHFT                                                           17
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW4_RING_ENABLE_BMSK                                                     0x10000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW4_RING_ENABLE_SHFT                                                          16
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW3_RING_ENABLE_BMSK                                                      0x8000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW3_RING_ENABLE_SHFT                                                          15
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW2_RING_ENABLE_BMSK                                                      0x4000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW2_RING_ENABLE_SHFT                                                          14
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW1_RING_ENABLE_BMSK                                                      0x2000
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2SW1_RING_ENABLE_SHFT                                                          13
+#define HWIO_REO_R0_GENERAL_ENABLE_WBM2REO_LINK_RING_ENABLE_BMSK                                                 0x1000
+#define HWIO_REO_R0_GENERAL_ENABLE_WBM2REO_LINK_RING_ENABLE_SHFT                                                     12
+#define HWIO_REO_R0_GENERAL_ENABLE_RXDMA2REO_RING_ENABLE_BMSK                                                     0xe00
+#define HWIO_REO_R0_GENERAL_ENABLE_RXDMA2REO_RING_ENABLE_SHFT                                                         9
+#define HWIO_REO_R0_GENERAL_ENABLE_GLOBAL_PN_CHK_BMSK                                                             0x100
+#define HWIO_REO_R0_GENERAL_ENABLE_GLOBAL_PN_CHK_SHFT                                                                 8
+#define HWIO_REO_R0_GENERAL_ENABLE_BACKUP_1_BMSK                                                                   0xe0
+#define HWIO_REO_R0_GENERAL_ENABLE_BACKUP_1_SHFT                                                                      5
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2PPE_RING_ENABLE_BMSK                                                        0x10
+#define HWIO_REO_R0_GENERAL_ENABLE_REO2PPE_RING_ENABLE_SHFT                                                           4
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_FLUSH_ENABLE_BMSK                                                          0x8
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_FLUSH_ENABLE_SHFT                                                            3
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_LIST_ENABLE_BMSK                                                           0x4
+#define HWIO_REO_R0_GENERAL_ENABLE_AGING_LIST_ENABLE_SHFT                                                             2
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_HWREORDER_DISABLE_BMSK                                                       0x2
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_HWREORDER_DISABLE_SHFT                                                         1
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_ENABLE_BMSK                                                                  0x1
+#define HWIO_REO_R0_GENERAL_ENABLE_REO_ENABLE_SHFT                                                                    0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x)                                                       ((x) + 0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_PHYS(x)                                                       ((x) + 0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OFFS                                                          (0x4)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_POR                                                           0x76543210
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_7_BMSK                                      0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_7_SHFT                                              28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_6_BMSK                                       0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_6_SHFT                                              24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_5_BMSK                                        0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_5_SHFT                                              20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_4_BMSK                                         0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_4_SHFT                                              16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_3_BMSK                                          0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_3_SHFT                                              12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_2_BMSK                                           0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_2_SHFT                                               8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_1_BMSK                                            0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_1_SHFT                                               4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_0_BMSK                                             0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0_DEST_RING_MAPPING_0_SHFT                                               0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x)                                                       ((x) + 0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_PHYS(x)                                                       ((x) + 0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OFFS                                                          (0x8)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_POR                                                           0x6666ba98
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_15_BMSK                                     0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_15_SHFT                                             28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_14_BMSK                                      0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_14_SHFT                                             24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_13_BMSK                                       0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_13_SHFT                                             20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_12_BMSK                                        0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_12_SHFT                                             16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_11_BMSK                                         0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_11_SHFT                                             12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_10_BMSK                                          0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_10_SHFT                                              8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_9_BMSK                                            0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_9_SHFT                                               4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_8_BMSK                                             0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_1_DEST_RING_MAPPING_8_SHFT                                               0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x)                                                       ((x) + 0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_PHYS(x)                                                       ((x) + 0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OFFS                                                          (0xc)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_POR                                                           0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_23_BMSK                                     0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_23_SHFT                                             28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_22_BMSK                                      0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_22_SHFT                                             24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_21_BMSK                                       0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_21_SHFT                                             20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_20_BMSK                                        0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_20_SHFT                                             16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_19_BMSK                                         0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_19_SHFT                                             12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_18_BMSK                                          0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_18_SHFT                                              8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_17_BMSK                                           0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_17_SHFT                                              4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_16_BMSK                                            0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_2_DEST_RING_MAPPING_16_SHFT                                              0
+
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x)                                                       ((x) + 0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_PHYS(x)                                                       ((x) + 0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OFFS                                                          (0x10)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_POR                                                           0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ATTR                                                                       0x3
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_31_BMSK                                     0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_31_SHFT                                             28
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_30_BMSK                                      0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_30_SHFT                                             24
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_29_BMSK                                       0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_29_SHFT                                             20
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_28_BMSK                                        0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_28_SHFT                                             16
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_27_BMSK                                         0xf000
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_27_SHFT                                             12
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_26_BMSK                                          0xf00
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_26_SHFT                                              8
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_25_BMSK                                           0xf0
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_25_SHFT                                              4
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_24_BMSK                                            0xf
+#define HWIO_REO_R0_DESTINATION_RING_CTRL_IX_3_DEST_RING_MAPPING_24_SHFT                                              0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x)                                                   ((x) + 0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_PHYS(x)                                                   ((x) + 0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OFFS                                                      (0x24)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_POR                                                       0x76543210
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ATTR                                                                   0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_7_BMSK                              0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_7_SHFT                                      28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_6_BMSK                               0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_6_SHFT                                      24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_5_BMSK                                0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_5_SHFT                                      20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_4_BMSK                                 0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_4_SHFT                                      16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_3_BMSK                                  0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_3_SHFT                                      12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_2_BMSK                                   0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_2_SHFT                                       8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_1_BMSK                                    0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_1_SHFT                                       4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_0_BMSK                                     0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_0_DEST_RING_ALT_MAPPING_0_SHFT                                       0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x)                                                   ((x) + 0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_PHYS(x)                                                   ((x) + 0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OFFS                                                      (0x28)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_POR                                                       0x6666ba98
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ATTR                                                                   0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_15_BMSK                             0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_15_SHFT                                     28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_14_BMSK                              0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_14_SHFT                                     24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_13_BMSK                               0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_13_SHFT                                     20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_12_BMSK                                0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_12_SHFT                                     16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_11_BMSK                                 0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_11_SHFT                                     12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_10_BMSK                                  0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_10_SHFT                                      8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_9_BMSK                                    0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_9_SHFT                                       4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_8_BMSK                                     0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_1_DEST_RING_ALT_MAPPING_8_SHFT                                       0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x)                                                   ((x) + 0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_PHYS(x)                                                   ((x) + 0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OFFS                                                      (0x2c)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_POR                                                       0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ATTR                                                                   0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_23_BMSK                             0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_23_SHFT                                     28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_22_BMSK                              0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_22_SHFT                                     24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_21_BMSK                               0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_21_SHFT                                     20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_20_BMSK                                0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_20_SHFT                                     16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_19_BMSK                                 0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_19_SHFT                                     12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_18_BMSK                                  0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_18_SHFT                                      8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_17_BMSK                                   0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_17_SHFT                                      4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_16_BMSK                                    0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_2_DEST_RING_ALT_MAPPING_16_SHFT                                      0
+
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x)                                                   ((x) + 0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_PHYS(x)                                                   ((x) + 0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OFFS                                                      (0x30)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_POR                                                       0x66666666
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ATTR                                                                   0x3
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_ADDR(x),m,v,HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_IN(x))
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_31_BMSK                             0xf0000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_31_SHFT                                     28
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_30_BMSK                              0xf000000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_30_SHFT                                     24
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_29_BMSK                               0xf00000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_29_SHFT                                     20
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_28_BMSK                                0xf0000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_28_SHFT                                     16
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_27_BMSK                                 0xf000
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_27_SHFT                                     12
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_26_BMSK                                  0xf00
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_26_SHFT                                      8
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_25_BMSK                                   0xf0
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_25_SHFT                                      4
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_24_BMSK                                    0xf
+#define HWIO_REO_R0_DESTINATION_RING_ALT_CTRL_IX_3_DEST_RING_ALT_MAPPING_24_SHFT                                      0
+
+#define HWIO_REO_R0_TIMESTAMP_ADDR(x)                                                                        ((x) + 0x34)
+#define HWIO_REO_R0_TIMESTAMP_PHYS(x)                                                                        ((x) + 0x34)
+#define HWIO_REO_R0_TIMESTAMP_OFFS                                                                           (0x34)
+#define HWIO_REO_R0_TIMESTAMP_RMSK                                                                           0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_POR                                                                            0x00000000
+#define HWIO_REO_R0_TIMESTAMP_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_ATTR                                                                                        0x3
+#define HWIO_REO_R0_TIMESTAMP_IN(x)            \
+                in_dword(HWIO_REO_R0_TIMESTAMP_ADDR(x))
+#define HWIO_REO_R0_TIMESTAMP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_TIMESTAMP_ADDR(x), m)
+#define HWIO_REO_R0_TIMESTAMP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_TIMESTAMP_ADDR(x),v)
+#define HWIO_REO_R0_TIMESTAMP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_TIMESTAMP_ADDR(x),m,v,HWIO_REO_R0_TIMESTAMP_IN(x))
+#define HWIO_REO_R0_TIMESTAMP_TIMESTAMP_BMSK                                                                 0xffffffff
+#define HWIO_REO_R0_TIMESTAMP_TIMESTAMP_SHFT                                                                          0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OFFS                                                      (0x38)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_POR                                                       0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ATTR                                                                   0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_7_BMSK                             0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_7_SHFT                                     28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_6_BMSK                              0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_6_SHFT                                     24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_5_BMSK                               0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_5_SHFT                                     20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_4_BMSK                                0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_4_SHFT                                     16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_3_BMSK                                 0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_3_SHFT                                     12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_2_BMSK                                  0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_2_SHFT                                      8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_1_BMSK                                   0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_1_SHFT                                      4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_0_BMSK                                    0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_0_ERROR_DESTINATION_RING_0_SHFT                                      0
+
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x)                                                   ((x) + 0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_PHYS(x)                                                   ((x) + 0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OFFS                                                      (0x3c)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_POR                                                       0x55555555
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ATTR                                                                   0x3
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ADDR(x),m,v,HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_IN(x))
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_OTHER_BMSK                         0xf0000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_OTHER_SHFT                                 28
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_14_BMSK                             0xf000000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_14_SHFT                                    24
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_13_BMSK                              0xf00000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_13_SHFT                                    20
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_12_BMSK                               0xf0000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_12_SHFT                                    16
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_11_BMSK                                0xf000
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_11_SHFT                                    12
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_10_BMSK                                 0xf00
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_10_SHFT                                     8
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_9_BMSK                                   0xf0
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_9_SHFT                                      4
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_8_BMSK                                    0xf
+#define HWIO_REO_R0_ERROR_DESTINATION_MAPPING_IX_1_ERROR_DESTINATION_RING_8_SHFT                                      0
+
+#define HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x)                                                                    ((x) + 0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_PHYS(x)                                                                    ((x) + 0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OFFS                                                                       (0x4c)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_RMSK                                                                              0x3
+#define HWIO_REO_R0_IDLE_REQ_CTRL_POR                                                                        0x00000003
+#define HWIO_REO_R0_IDLE_REQ_CTRL_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_IDLE_REQ_CTRL_ATTR                                                                                    0x3
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x))
+#define HWIO_REO_R0_IDLE_REQ_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_IDLE_REQ_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_IDLE_REQ_CTRL_ADDR(x),m,v,HWIO_REO_R0_IDLE_REQ_CTRL_IN(x))
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_CACHE_BMSK                                                         0x2
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_CACHE_SHFT                                                           1
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_AGE_LIST_BMSK                                                      0x1
+#define HWIO_REO_R0_IDLE_REQ_CTRL_IDLE_REQ_FLUSH_AGE_LIST_SHFT                                                        0
+
+#define HWIO_REO_R0_LAST_SN_0_ADDR(x)                                                                        ((x) + 0x50)
+#define HWIO_REO_R0_LAST_SN_0_PHYS(x)                                                                        ((x) + 0x50)
+#define HWIO_REO_R0_LAST_SN_0_OFFS                                                                           (0x50)
+#define HWIO_REO_R0_LAST_SN_0_RMSK                                                                             0xffffff
+#define HWIO_REO_R0_LAST_SN_0_POR                                                                            0x00001001
+#define HWIO_REO_R0_LAST_SN_0_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_LAST_SN_0_ATTR                                                                                        0x1
+#define HWIO_REO_R0_LAST_SN_0_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_0_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_0_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_0_Q1_BMSK                                                                          0xfff000
+#define HWIO_REO_R0_LAST_SN_0_Q1_SHFT                                                                                12
+#define HWIO_REO_R0_LAST_SN_0_Q0_BMSK                                                                             0xfff
+#define HWIO_REO_R0_LAST_SN_0_Q0_SHFT                                                                                 0
+
+#define HWIO_REO_R0_LAST_SN_1_ADDR(x)                                                                        ((x) + 0x54)
+#define HWIO_REO_R0_LAST_SN_1_PHYS(x)                                                                        ((x) + 0x54)
+#define HWIO_REO_R0_LAST_SN_1_OFFS                                                                           (0x54)
+#define HWIO_REO_R0_LAST_SN_1_RMSK                                                                             0xffffff
+#define HWIO_REO_R0_LAST_SN_1_POR                                                                            0x00001001
+#define HWIO_REO_R0_LAST_SN_1_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_LAST_SN_1_ATTR                                                                                        0x1
+#define HWIO_REO_R0_LAST_SN_1_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_1_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_1_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_1_Q3_BMSK                                                                          0xfff000
+#define HWIO_REO_R0_LAST_SN_1_Q3_SHFT                                                                                12
+#define HWIO_REO_R0_LAST_SN_1_Q2_BMSK                                                                             0xfff
+#define HWIO_REO_R0_LAST_SN_1_Q2_SHFT                                                                                 0
+
+#define HWIO_REO_R0_LAST_SN_2_ADDR(x)                                                                        ((x) + 0x58)
+#define HWIO_REO_R0_LAST_SN_2_PHYS(x)                                                                        ((x) + 0x58)
+#define HWIO_REO_R0_LAST_SN_2_OFFS                                                                           (0x58)
+#define HWIO_REO_R0_LAST_SN_2_RMSK                                                                             0xffffff
+#define HWIO_REO_R0_LAST_SN_2_POR                                                                            0x00001001
+#define HWIO_REO_R0_LAST_SN_2_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_LAST_SN_2_ATTR                                                                                        0x1
+#define HWIO_REO_R0_LAST_SN_2_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_2_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_2_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_2_Q5_BMSK                                                                          0xfff000
+#define HWIO_REO_R0_LAST_SN_2_Q5_SHFT                                                                                12
+#define HWIO_REO_R0_LAST_SN_2_Q4_BMSK                                                                             0xfff
+#define HWIO_REO_R0_LAST_SN_2_Q4_SHFT                                                                                 0
+
+#define HWIO_REO_R0_LAST_SN_3_ADDR(x)                                                                        ((x) + 0x5c)
+#define HWIO_REO_R0_LAST_SN_3_PHYS(x)                                                                        ((x) + 0x5c)
+#define HWIO_REO_R0_LAST_SN_3_OFFS                                                                           (0x5c)
+#define HWIO_REO_R0_LAST_SN_3_RMSK                                                                             0xffffff
+#define HWIO_REO_R0_LAST_SN_3_POR                                                                            0x00001001
+#define HWIO_REO_R0_LAST_SN_3_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_LAST_SN_3_ATTR                                                                                        0x1
+#define HWIO_REO_R0_LAST_SN_3_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_3_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_3_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_3_Q7_BMSK                                                                          0xfff000
+#define HWIO_REO_R0_LAST_SN_3_Q7_SHFT                                                                                12
+#define HWIO_REO_R0_LAST_SN_3_Q6_BMSK                                                                             0xfff
+#define HWIO_REO_R0_LAST_SN_3_Q6_SHFT                                                                                 0
+
+#define HWIO_REO_R0_LAST_SN_4_ADDR(x)                                                                        ((x) + 0x60)
+#define HWIO_REO_R0_LAST_SN_4_PHYS(x)                                                                        ((x) + 0x60)
+#define HWIO_REO_R0_LAST_SN_4_OFFS                                                                           (0x60)
+#define HWIO_REO_R0_LAST_SN_4_RMSK                                                                                0xfff
+#define HWIO_REO_R0_LAST_SN_4_POR                                                                            0x00000001
+#define HWIO_REO_R0_LAST_SN_4_POR_RMSK                                                                       0xffffffff
+#define HWIO_REO_R0_LAST_SN_4_ATTR                                                                                        0x1
+#define HWIO_REO_R0_LAST_SN_4_IN(x)            \
+                in_dword(HWIO_REO_R0_LAST_SN_4_ADDR(x))
+#define HWIO_REO_R0_LAST_SN_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_LAST_SN_4_ADDR(x), m)
+#define HWIO_REO_R0_LAST_SN_4_Q8_BMSK                                                                             0xfff
+#define HWIO_REO_R0_LAST_SN_4_Q8_SHFT                                                                                 0
+
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x)                                                            ((x) + 0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_PHYS(x)                                                            ((x) + 0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OFFS                                                               (0x64)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_RMSK                                                                      0x1
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_POR                                                                0x00000000
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_ATTR                                                                            0x3
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x))
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MODULE_STRESS_CONTROL_ADDR(x),m,v,HWIO_REO_R0_MODULE_STRESS_CONTROL_IN(x))
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_HANG_AND_CLEAR_ON_RESET_BMSK                                              0x1
+#define HWIO_REO_R0_MODULE_STRESS_CONTROL_HANG_AND_CLEAR_ON_RESET_SHFT                                                0
+
+#define HWIO_REO_R0_PN_IN_DEST_ADDR(x)                                                                       ((x) + 0x68)
+#define HWIO_REO_R0_PN_IN_DEST_PHYS(x)                                                                       ((x) + 0x68)
+#define HWIO_REO_R0_PN_IN_DEST_OFFS                                                                          (0x68)
+#define HWIO_REO_R0_PN_IN_DEST_RMSK                                                                                 0x1
+#define HWIO_REO_R0_PN_IN_DEST_POR                                                                           0x00000000
+#define HWIO_REO_R0_PN_IN_DEST_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_PN_IN_DEST_ATTR                                                                                       0x3
+#define HWIO_REO_R0_PN_IN_DEST_IN(x)            \
+                in_dword(HWIO_REO_R0_PN_IN_DEST_ADDR(x))
+#define HWIO_REO_R0_PN_IN_DEST_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_PN_IN_DEST_ADDR(x), m)
+#define HWIO_REO_R0_PN_IN_DEST_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_PN_IN_DEST_ADDR(x),v)
+#define HWIO_REO_R0_PN_IN_DEST_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_PN_IN_DEST_ADDR(x),m,v,HWIO_REO_R0_PN_IN_DEST_IN(x))
+#define HWIO_REO_R0_PN_IN_DEST_PN_FIELD_EN_IN_DEST_BMSK                                                             0x1
+#define HWIO_REO_R0_PN_IN_DEST_PN_FIELD_EN_IN_DEST_SHFT                                                               0
+
+#define HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x)                                                                   ((x) + 0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_PHYS(x)                                                                   ((x) + 0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OFFS                                                                      (0x6c)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_POR                                                                       0x00000000
+#define HWIO_REO_R0_SW_COOKIE_CFG0_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_ATTR                                                                                   0x3
+#define HWIO_REO_R0_SW_COOKIE_CFG0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x), m)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x),v)
+#define HWIO_REO_R0_SW_COOKIE_CFG0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW_COOKIE_CFG0_ADDR(x),m,v,HWIO_REO_R0_SW_COOKIE_CFG0_IN(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_BMSK                                              0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG0_CMEM_LUT_BASE_ADDR_31_0_SHFT                                                       0
+
+#define HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x)                                                                   ((x) + 0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PHYS(x)                                                                   ((x) + 0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OFFS                                                                      (0x70)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_RMSK                                                                        0x1fffff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_POR                                                                       0x00111700
+#define HWIO_REO_R0_SW_COOKIE_CFG1_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_ATTR                                                                                   0x3
+#define HWIO_REO_R0_SW_COOKIE_CFG1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x), m)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x),v)
+#define HWIO_REO_R0_SW_COOKIE_CFG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW_COOKIE_CFG1_ADDR(x),m,v,HWIO_REO_R0_SW_COOKIE_CFG1_IN(x))
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_GLOBAL_ENABLE_BMSK                                        0x100000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_GLOBAL_ENABLE_SHFT                                              20
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_ENABLE_BMSK                                                0x80000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_SW_COOKIE_CONVERT_ENABLE_SHFT                                                     19
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_BMSK                                                          0x40000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_PAGE_ALIGNMENT_SHFT                                                               18
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_BMSK                                                       0x3e000
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_OFFSET_MSB_SHFT                                                            13
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_BMSK                                                          0x1f00
+#define HWIO_REO_R0_SW_COOKIE_CFG1_COOKIE_PAGE_MSB_SHFT                                                               8
+#define HWIO_REO_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_BMSK                                                   0xff
+#define HWIO_REO_R0_SW_COOKIE_CFG1_CMEM_LUT_BASE_ADDR_39_32_SHFT                                                      0
+
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x)                                                             ((x) + 0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_PHYS(x)                                                             ((x) + 0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OFFS                                                                (0x74)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_POR                                                                 0x00000000
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ATTR                                                                             0x3
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_ADDR(x),m,v,HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_IN(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_VALUE_BMSK                                                          0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE0_ADDR_VALUE_SHFT                                                                   0
+
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x)                                                             ((x) + 0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_PHYS(x)                                                             ((x) + 0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OFFS                                                                (0x78)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_POR                                                                 0x00000000
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ATTR                                                                             0x3
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_ADDR(x),m,v,HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_IN(x))
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_VALUE_BMSK                                                          0xffffffff
+#define HWIO_REO_R0_QDESC_LUT_BASE1_ADDR_VALUE_SHFT                                                                   0
+
+#define HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x)                                                                  ((x) + 0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_PHYS(x)                                                                  ((x) + 0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OFFS                                                                     (0x7c)
+#define HWIO_REO_R0_QDESC_ADDR_READ_RMSK                                                                          0x1ff
+#define HWIO_REO_R0_QDESC_ADDR_READ_POR                                                                      0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_READ_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_READ_ATTR                                                                                  0x3
+#define HWIO_REO_R0_QDESC_ADDR_READ_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_READ_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_ADDR_READ_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_ADDR_READ_ADDR(x),m,v,HWIO_REO_R0_QDESC_ADDR_READ_IN(x))
+#define HWIO_REO_R0_QDESC_ADDR_READ_GXI_SWAP_BMSK                                                                 0x100
+#define HWIO_REO_R0_QDESC_ADDR_READ_GXI_SWAP_SHFT                                                                     8
+#define HWIO_REO_R0_QDESC_ADDR_READ_LUT_FEATURE_ENABLE_BMSK                                                        0x80
+#define HWIO_REO_R0_QDESC_ADDR_READ_LUT_FEATURE_ENABLE_SHFT                                                           7
+#define HWIO_REO_R0_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY_BMSK                                                         0x40
+#define HWIO_REO_R0_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY_SHFT                                                            6
+#define HWIO_REO_R0_QDESC_ADDR_READ_INDEX_BMSK                                                                     0x3f
+#define HWIO_REO_R0_QDESC_ADDR_READ_INDEX_SHFT                                                                        0
+
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x)                                                                 ((x) + 0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_PHYS(x)                                                                 ((x) + 0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_OFFS                                                                    (0x80)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_POR                                                                     0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_ATTR                                                                                 0x1
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_LOWER_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_QDESC_ADDR_BMSK                                                         0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_LOWER_QDESC_ADDR_SHFT                                                                  0
+
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x)                                                                ((x) + 0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_PHYS(x)                                                                ((x) + 0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_OFFS                                                                   (0x84)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_RMSK                                                                    0x3ffffff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_POR                                                                    0x00000000
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_ATTR                                                                                0x1
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x))
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_ADDR_HIGHER_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_Q_INDEX_BMSK                                                            0x3ffff00
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_Q_INDEX_SHFT                                                                    8
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_QDESC_ADDR_BMSK                                                              0xff
+#define HWIO_REO_R0_QDESC_ADDR_HIGHER_QDESC_ADDR_SHFT                                                                 0
+
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x)                                                             ((x) + 0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_PHYS(x)                                                             ((x) + 0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OFFS                                                                (0x88)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_RMSK                                                                    0x1fff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_POR                                                                 0x00000000
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ATTR                                                                             0x3
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x))
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x), m)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x),v)
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_ADDR(x),m,v,HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_IN(x))
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_MAX_SUPPORTED_BMSK                                                      0x1fff
+#define HWIO_REO_R0_QDESC_MAX_SW_PEER_ID_MAX_SUPPORTED_SHFT                                                           0
+
+#define HWIO_REO_R0_RX_STATS_CMD_ADDR(x)                                                                     ((x) + 0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_PHYS(x)                                                                     ((x) + 0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_OFFS                                                                        (0x8c)
+#define HWIO_REO_R0_RX_STATS_CMD_RMSK                                                                              0xff
+#define HWIO_REO_R0_RX_STATS_CMD_POR                                                                         0x00000000
+#define HWIO_REO_R0_RX_STATS_CMD_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_RX_STATS_CMD_ATTR                                                                                     0x3
+#define HWIO_REO_R0_RX_STATS_CMD_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_CMD_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_CMD_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_CMD_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_CMD_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RX_STATS_CMD_ADDR(x),v)
+#define HWIO_REO_R0_RX_STATS_CMD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RX_STATS_CMD_ADDR(x),m,v,HWIO_REO_R0_RX_STATS_CMD_IN(x))
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_ALL_VDEV_ID_RX_STATS_BMSK                                                   0x80
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_ALL_VDEV_ID_RX_STATS_SHFT                                                      7
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_SINGLE_VDEV_RX_STATS_BMSK                                                   0x40
+#define HWIO_REO_R0_RX_STATS_CMD_CLEAR_SINGLE_VDEV_RX_STATS_SHFT                                                      6
+#define HWIO_REO_R0_RX_STATS_CMD_VDEV_ID_BMSK                                                                      0x3f
+#define HWIO_REO_R0_RX_STATS_CMD_VDEV_ID_SHFT                                                                         0
+
+#define HWIO_REO_R0_RX_STATS_LOWER_ADDR(x)                                                                   ((x) + 0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_PHYS(x)                                                                   ((x) + 0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_OFFS                                                                      (0x90)
+#define HWIO_REO_R0_RX_STATS_LOWER_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_POR                                                                       0x00000000
+#define HWIO_REO_R0_RX_STATS_LOWER_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_ATTR                                                                                   0x1
+#define HWIO_REO_R0_RX_STATS_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_LOWER_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_LOWER_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_LOWER_MSDU_BYTE_COUNT_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_RX_STATS_LOWER_MSDU_BYTE_COUNT_SHFT                                                               0
+
+#define HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x)                                                                  ((x) + 0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_PHYS(x)                                                                  ((x) + 0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_OFFS                                                                     (0x94)
+#define HWIO_REO_R0_RX_STATS_HIGHER_RMSK                                                                     0xffffffff
+#define HWIO_REO_R0_RX_STATS_HIGHER_POR                                                                      0x00000000
+#define HWIO_REO_R0_RX_STATS_HIGHER_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_RX_STATS_HIGHER_ATTR                                                                                  0x1
+#define HWIO_REO_R0_RX_STATS_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x))
+#define HWIO_REO_R0_RX_STATS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RX_STATS_HIGHER_ADDR(x), m)
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_COUNT_BMSK                                                          0xfffffff0
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_COUNT_SHFT                                                                   4
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_BYTE_COUNT_BMSK                                                            0xf
+#define HWIO_REO_R0_RX_STATS_HIGHER_MSDU_BYTE_COUNT_SHFT                                                              0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x)                                                         ((x) + 0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_PHYS(x)                                                         ((x) + 0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OFFS                                                            (0x98)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x)                                                         ((x) + 0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_PHYS(x)                                                         ((x) + 0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OFFS                                                            (0x9c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RMSK                                                              0xffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_SIZE_BMSK                                                    0xffff00
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_SIZE_SHFT                                                           8
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                               0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x)                                                               ((x) + 0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_PHYS(x)                                                               ((x) + 0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OFFS                                                                  (0xa0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_RMSK                                                                        0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_POR                                                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ATTR                                                                               0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ENTRY_SIZE_BMSK                                                             0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_ID_ENTRY_SIZE_SHFT                                                                0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_OFFS                                                              (0xa4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                              0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                      16
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_VALID_WORDS_BMSK                                                  0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_STATUS_NUM_VALID_WORDS_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x)                                                             ((x) + 0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_PHYS(x)                                                             ((x) + 0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OFFS                                                                (0xa8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RMSK                                                                  0x3fffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_POR                                                                 0x00000080
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_ATTR                                                                             0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SPARE_CONTROL_BMSK                                                    0x3fc000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SPARE_CONTROL_SHFT                                                          14
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE2_BMSK                                                     0x3000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE2_SHFT                                                         12
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE1_BMSK                                                      0xf00
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_SM_STATE1_SHFT                                                          8
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_IS_IDLE_BMSK                                                         0x80
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_IS_IDLE_SHFT                                                            7
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_ENABLE_BMSK                                                          0x40
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SRNG_ENABLE_SHFT                                                             6
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                    0x20
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                       5
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                     0x10
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                        4
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_MSI_SWAP_BIT_BMSK                                                          0x8
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_MSI_SWAP_BIT_SHFT                                                            3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SECURITY_BIT_BMSK                                                          0x4
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_SECURITY_BIT_SHFT                                                            2
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_LOOPCNT_DISABLE_BMSK                                                       0x2
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_LOOPCNT_DISABLE_SHFT                                                         1
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RING_ID_DISABLE_BMSK                                                       0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_RING_ID_DISABLE_SHFT                                                         0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OFFS                                                         (0xb4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OFFS                                                         (0xb8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_REO_R0_RXDMA2REO0_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                           ((x) + 0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                           ((x) + 0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OFFS                                              (0xc8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_RMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_POR                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                    0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                            16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                0x8000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                    15
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                          0x7fff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                               0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                           ((x) + 0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                           ((x) + 0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OFFS                                              (0xcc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                  0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_POR                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                    0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x)                                              ((x) + 0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_PHYS(x)                                              ((x) + 0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_OFFS                                                 (0xd0)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                           ((x) + 0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                           ((x) + 0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OFFS                                              (0xd4)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                   0x3ff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_POR                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                0x3ff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                    0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                          ((x) + 0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                          ((x) + 0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OFFS                                             (0xd8)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                    0x7
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_POR                                              0x00000003
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                          0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                               0x7
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                 0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                         ((x) + 0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                         ((x) + 0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_OFFS                                            (0xdc)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_RMSK                                              0xffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_POR                                             0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                         0x1
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                               0xff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                     16
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                              0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                   0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x)                                                  ((x) + 0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_PHYS(x)                                                  ((x) + 0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OFFS                                                     (0x108)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_RMSK                                                         0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_POR                                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ATTR                                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                      0xffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                           0
+
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x)                                                           ((x) + 0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_PHYS(x)                                                           ((x) + 0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OFFS                                                              (0x10c)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_RMSK                                                              0xffff003f
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ATTR                                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                     0xffff0000
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                             16
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                            0x3f
+#define HWIO_REO_R0_RXDMA2REO0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OFFS                                                        (0x110)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OFFS                                                        (0x114)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RMSK                                                          0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_SIZE_BMSK                                                0xffff00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x)                                                           ((x) + 0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_PHYS(x)                                                           ((x) + 0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OFFS                                                              (0x118)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_RMSK                                                                    0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ATTR                                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x)                                                       ((x) + 0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_PHYS(x)                                                       ((x) + 0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_OFFS                                                          (0x11c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_POR                                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x)                                                         ((x) + 0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_PHYS(x)                                                         ((x) + 0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OFFS                                                            (0x120)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RMSK                                                              0x3fffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_POR                                                             0x00000080
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ATTR                                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x)                                                  ((x) + 0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_PHYS(x)                                                  ((x) + 0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OFFS                                                     (0x12c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x)                                                  ((x) + 0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_PHYS(x)                                                  ((x) + 0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OFFS                                                     (0x130)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                       ((x) + 0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                       ((x) + 0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                          (0x140)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                        16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                            0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                      0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                           0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                       ((x) + 0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                       ((x) + 0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                          (0x144)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                              0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x)                                          ((x) + 0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_PHYS(x)                                          ((x) + 0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_OFFS                                             (0x148)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_POR                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                       ((x) + 0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                       ((x) + 0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                          (0x14c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                               0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                            0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                      ((x) + 0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                      ((x) + 0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                         (0x150)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_POR                                          0x00000003
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                      0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                           0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                             0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                     ((x) + 0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                     ((x) + 0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                        (0x154)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                          0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_POR                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                     0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                           0xff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                          0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OFFS                                                   (0x158)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OFFS                                                   (0x15c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OFFS                                                       (0x160)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OFFS                                                 (0x180)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x)                                                 ((x) + 0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_PHYS(x)                                                 ((x) + 0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OFFS                                                    (0x184)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                         0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                     0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                         15
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                              0x7e00
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                   9
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                          0x180
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                              7
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                0x70
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                   4
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                              0xf
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                  ((x) + 0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                  ((x) + 0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                     (0x188)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                         0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                 0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                      0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                              ((x) + 0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                              ((x) + 0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                 (0x18c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                              ((x) + 0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                              ((x) + 0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                 (0x190)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                       0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                 0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                               ((x) + 0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                               ((x) + 0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                  (0x194)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                               ((x) + 0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                               ((x) + 0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                  (0x198)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                        0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                  0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x)                                                       ((x) + 0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_PHYS(x)                                                       ((x) + 0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OFFS                                                          (0x19c)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_REO_R0_RXDMA2REO_MLO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OFFS                                                        (0x1a0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OFFS                                                        (0x1a4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RMSK                                                          0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_SIZE_BMSK                                                0xffff00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x)                                                           ((x) + 0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_PHYS(x)                                                           ((x) + 0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OFFS                                                              (0x1a8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_RMSK                                                                    0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_POR                                                               0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ATTR                                                                           0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x)                                                       ((x) + 0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_PHYS(x)                                                       ((x) + 0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_OFFS                                                          (0x1ac)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_POR                                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x)                                                         ((x) + 0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_PHYS(x)                                                         ((x) + 0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OFFS                                                            (0x1b0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RMSK                                                              0x3fffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_POR                                                             0x00000080
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ATTR                                                                         0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x)                                                  ((x) + 0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_PHYS(x)                                                  ((x) + 0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OFFS                                                     (0x1bc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x)                                                  ((x) + 0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_PHYS(x)                                                  ((x) + 0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OFFS                                                     (0x1c0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                       ((x) + 0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                       ((x) + 0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                          (0x1d0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                          0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                        16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                            0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                      0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                           0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                       ((x) + 0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                       ((x) + 0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                          (0x1d4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                              0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x)                                          ((x) + 0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_PHYS(x)                                          ((x) + 0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_OFFS                                             (0x1d8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_POR                                              0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                       ((x) + 0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                       ((x) + 0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                          (0x1dc)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                               0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_POR                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                            0x3ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                      ((x) + 0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                      ((x) + 0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                         (0x1e0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_POR                                          0x00000003
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                     0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                      0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                           0x7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                             0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                     ((x) + 0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                     ((x) + 0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                        (0x1e4)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                          0xffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_POR                                         0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                     0x1
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                           0xff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                          0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                               0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OFFS                                                   (0x1e8)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OFFS                                                   (0x1ec)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OFFS                                                       (0x1f0)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OFFS                                                 (0x210)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x)                                                 ((x) + 0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_PHYS(x)                                                 ((x) + 0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OFFS                                                    (0x214)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_POR                                                     0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ATTR                                                                 0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                         0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                 16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                     0x8000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                         15
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                              0x7e00
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                   9
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                          0x180
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                              7
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                0x70
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                   4
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                              0xf
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                  ((x) + 0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                  ((x) + 0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                     (0x218)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                         0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                      0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                  0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                 0xffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                      0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                              ((x) + 0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                              ((x) + 0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                 (0x21c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                 0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                           0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                              ((x) + 0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                              ((x) + 0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                 (0x220)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                       0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                  0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                             0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                              0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                 0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                    0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                               ((x) + 0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                               ((x) + 0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                  (0x224)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                  0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                            0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                               ((x) + 0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                               ((x) + 0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                  (0x228)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                        0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                   0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                              0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                               0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                  0xff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                     0
+
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x)                                                       ((x) + 0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_PHYS(x)                                                       ((x) + 0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OFFS                                                          (0x22c)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_REO_R0_RXDMA2REO_MLO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OFFS                                                          (0x230)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OFFS                                                          (0x234)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RMSK                                                            0xffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                  0xffff00
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x)                                                             ((x) + 0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_PHYS(x)                                                             ((x) + 0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OFFS                                                                (0x238)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_RMSK                                                                      0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_POR                                                                 0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ATTR                                                                             0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_ID_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_ID_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x)                                                         ((x) + 0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_PHYS(x)                                                         ((x) + 0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_OFFS                                                            (0x23c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_POR                                                             0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x)                                                           ((x) + 0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_PHYS(x)                                                           ((x) + 0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OFFS                                                              (0x240)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RMSK                                                                0x3fffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_POR                                                               0x00000080
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ATTR                                                                           0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_MISC_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                    ((x) + 0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                    ((x) + 0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OFFS                                                       (0x24c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                    ((x) + 0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                    ((x) + 0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OFFS                                                       (0x250)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                         ((x) + 0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                         ((x) + 0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                            (0x260)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                            0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                             0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                         0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                  0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                          16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                              0x8000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                  15
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                        0x7fff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                             0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                         ((x) + 0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                         ((x) + 0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                            (0x264)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                             0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                         0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                  0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                       0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                            ((x) + 0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                            ((x) + 0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_OFFS                                               (0x268)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_POR                                                0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                            0x8000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                15
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                         ((x) + 0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                         ((x) + 0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                            (0x26c)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                 0x3ff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                             0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                        0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                         0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                              0x3ff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                  0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                        ((x) + 0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                        ((x) + 0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                           (0x270)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                  0x7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                            0x00000003
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                       0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                        0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                             0x7
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                               0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                       ((x) + 0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                       ((x) + 0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                          (0x274)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                            0xffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                           0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                      0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                       0x1
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                             0xff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                   16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                            0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                 0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                   (0x2a0)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x)                                                         ((x) + 0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_PHYS(x)                                                         ((x) + 0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OFFS                                                            (0x2a4)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_REO_R0_WBM2REO_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OFFS                                                               (0x2a8)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OFFS                                                               (0x2ac)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x)                                                                  ((x) + 0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_PHYS(x)                                                                  ((x) + 0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OFFS                                                                     (0x2b0)
+#define HWIO_REO_R0_REO_CMD_RING_ID_RMSK                                                                           0xff
+#define HWIO_REO_R0_REO_CMD_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO_CMD_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO_CMD_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x)                                                              ((x) + 0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_PHYS(x)                                                              ((x) + 0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_OFFS                                                                 (0x2b4)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO_CMD_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x)                                                                ((x) + 0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_PHYS(x)                                                                ((x) + 0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OFFS                                                                   (0x2b8)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO_CMD_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO_CMD_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO_CMD_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO_CMD_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO_CMD_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO_CMD_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO_CMD_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO_CMD_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO_CMD_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO_CMD_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO_CMD_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OFFS                                                            (0x2c4)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OFFS                                                            (0x2c8)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x2d8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x2dc)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x2e0)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x2e4)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x2e8)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x2ec)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_REO_R0_REO_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OFFS                                                          (0x2f0)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OFFS                                                          (0x2f4)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OFFS                                                              (0x2f8)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x318)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x)                                                              ((x) + 0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_PHYS(x)                                                              ((x) + 0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OFFS                                                                 (0x31c)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_CMD_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_CMD_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OFFS                                                                (0x320)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OFFS                                                                (0x324)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_REO_R0_SW2REO_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_REO_R0_SW2REO_RING_ID_ADDR(x)                                                                   ((x) + 0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_PHYS(x)                                                                   ((x) + 0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_OFFS                                                                      (0x328)
+#define HWIO_REO_R0_SW2REO_RING_ID_RMSK                                                                            0xff
+#define HWIO_REO_R0_SW2REO_RING_ID_POR                                                                       0x00000000
+#define HWIO_REO_R0_SW2REO_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_ID_ATTR                                                                                   0x3
+#define HWIO_REO_R0_SW2REO_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_REO_R0_SW2REO_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x)                                                               ((x) + 0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_PHYS(x)                                                               ((x) + 0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_OFFS                                                                  (0x32c)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_REO_R0_SW2REO_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_REO_R0_SW2REO_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_REO_R0_SW2REO_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x)                                                                 ((x) + 0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_PHYS(x)                                                                 ((x) + 0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OFFS                                                                    (0x330)
+#define HWIO_REO_R0_SW2REO_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_POR                                                                     0x00000080
+#define HWIO_REO_R0_SW2REO_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_REO_R0_SW2REO_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_REO_R0_SW2REO_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_REO_R0_SW2REO_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_REO_R0_SW2REO_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_REO_R0_SW2REO_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_REO_R0_SW2REO_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_REO_R0_SW2REO_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_REO_R0_SW2REO_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_REO_R0_SW2REO_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_REO_R0_SW2REO_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_REO_R0_SW2REO_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_REO_R0_SW2REO_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_REO_R0_SW2REO_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_REO_R0_SW2REO_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_REO_R0_SW2REO_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OFFS                                                             (0x33c)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OFFS                                                             (0x340)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_REO_R0_SW2REO_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x350)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x354)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x358)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x35c)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x360)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x364)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_REO_R0_SW2REO_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OFFS                                                           (0x368)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OFFS                                                           (0x36c)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OFFS                                                               (0x370)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x390)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_REO_R0_SW2REO_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x)                                                               ((x) + 0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_PHYS(x)                                                               ((x) + 0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OFFS                                                                  (0x394)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_RMSK                                                                  0xffff003f
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_POR                                                                   0x00000000
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_ATTR                                                                               0x3
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                         0xffff0000
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                 16
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                0x3f
+#define HWIO_REO_R0_SW2REO_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                   0
+
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OFFS                                                               (0x398)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OFFS                                                               (0x39c)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_SW2REO1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x)                                                                  ((x) + 0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_PHYS(x)                                                                  ((x) + 0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OFFS                                                                     (0x3a0)
+#define HWIO_REO_R0_SW2REO1_RING_ID_RMSK                                                                           0xff
+#define HWIO_REO_R0_SW2REO1_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_SW2REO1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_SW2REO1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x)                                                              ((x) + 0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_PHYS(x)                                                              ((x) + 0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_OFFS                                                                 (0x3a4)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x)                                                                ((x) + 0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_PHYS(x)                                                                ((x) + 0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OFFS                                                                   (0x3a8)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_SW2REO1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_SW2REO1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_SW2REO1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_SW2REO1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_SW2REO1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_SW2REO1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_SW2REO1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_SW2REO1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_SW2REO1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_SW2REO1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_SW2REO1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OFFS                                                            (0x3b4)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OFFS                                                            (0x3b8)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_SW2REO1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x3c8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x3cc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x3d0)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3d4)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x3d8)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x3dc)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_REO_R0_SW2REO1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OFFS                                                          (0x3e0)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OFFS                                                          (0x3e4)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OFFS                                                              (0x3e8)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x408)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_SW2REO1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OFFS                                                                 (0x40c)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_SW2REO1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x410)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x410)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_OFFS                                                               (0x410)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x414)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x414)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_OFFS                                                               (0x414)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_SW2REO2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO2_RING_ID_ADDR(x)                                                                  ((x) + 0x418)
+#define HWIO_REO_R0_SW2REO2_RING_ID_PHYS(x)                                                                  ((x) + 0x418)
+#define HWIO_REO_R0_SW2REO2_RING_ID_OFFS                                                                     (0x418)
+#define HWIO_REO_R0_SW2REO2_RING_ID_RMSK                                                                           0xff
+#define HWIO_REO_R0_SW2REO2_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_SW2REO2_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_SW2REO2_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_ADDR(x)                                                              ((x) + 0x41c)
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_PHYS(x)                                                              ((x) + 0x41c)
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_OFFS                                                                 (0x41c)
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_SW2REO2_RING_MISC_ADDR(x)                                                                ((x) + 0x420)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_PHYS(x)                                                                ((x) + 0x420)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_OFFS                                                                   (0x420)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_REO_R0_SW2REO2_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_SW2REO2_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_SW2REO2_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_SW2REO2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_SW2REO2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_SW2REO2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_SW2REO2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_SW2REO2_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_SW2REO2_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_SW2REO2_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_SW2REO2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_SW2REO2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_SW2REO2_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_SW2REO2_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x42c)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x42c)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_OFFS                                                            (0x42c)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x430)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x430)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_OFFS                                                            (0x430)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_SW2REO2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x440)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x440)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x440)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x444)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x444)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x444)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x448)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x448)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x448)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x44c)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x44c)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x44c)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x450)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x450)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x450)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x454)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x454)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x454)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_REO_R0_SW2REO2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x458)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x458)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_OFFS                                                          (0x458)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x45c)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x45c)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_OFFS                                                          (0x45c)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x460)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x460)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_OFFS                                                              (0x460)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x480)
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x480)
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x480)
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_SW2REO2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_ADDR(x)                                                              ((x) + 0x484)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_PHYS(x)                                                              ((x) + 0x484)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_OFFS                                                                 (0x484)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO2_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO2_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO2_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO2_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO2_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_SW2REO2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x488)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x488)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_OFFS                                                               (0x488)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x48c)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x48c)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_OFFS                                                               (0x48c)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_SW2REO3_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_SW2REO3_RING_ID_ADDR(x)                                                                  ((x) + 0x490)
+#define HWIO_REO_R0_SW2REO3_RING_ID_PHYS(x)                                                                  ((x) + 0x490)
+#define HWIO_REO_R0_SW2REO3_RING_ID_OFFS                                                                     (0x490)
+#define HWIO_REO_R0_SW2REO3_RING_ID_RMSK                                                                           0xff
+#define HWIO_REO_R0_SW2REO3_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_SW2REO3_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_ID_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_ID_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_ID_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_SW2REO3_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_ADDR(x)                                                              ((x) + 0x494)
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_PHYS(x)                                                              ((x) + 0x494)
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_OFFS                                                                 (0x494)
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO3_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_SW2REO3_RING_MISC_ADDR(x)                                                                ((x) + 0x498)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_PHYS(x)                                                                ((x) + 0x498)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_OFFS                                                                   (0x498)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_REO_R0_SW2REO3_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_SW2REO3_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_SW2REO3_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_MISC_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_SW2REO3_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_SW2REO3_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_SW2REO3_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_SW2REO3_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_SW2REO3_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_SW2REO3_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_SW2REO3_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_SW2REO3_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_SW2REO3_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_SW2REO3_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_SW2REO3_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x4a4)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x4a4)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_OFFS                                                            (0x4a4)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x4a8)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x4a8)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_OFFS                                                            (0x4a8)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_SW2REO3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x4b8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x4b8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x4b8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x4bc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x4bc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x4bc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x4c0)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x4c0)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x4c0)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x4c4)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x4c4)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x4c4)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x4c8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x4c8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x4c8)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x4cc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x4cc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x4cc)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_REO_R0_SW2REO3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x4d0)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x4d0)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_OFFS                                                          (0x4d0)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4d4)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4d4)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_OFFS                                                          (0x4d4)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x4d8)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x4d8)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_OFFS                                                              (0x4d8)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x4f8)
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x4f8)
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x4f8)
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_SW2REO3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_ADDR(x)                                                              ((x) + 0x4fc)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_PHYS(x)                                                              ((x) + 0x4fc)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_OFFS                                                                 (0x4fc)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_SW2REO3_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_SW2REO3_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_SW2REO3_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_SW2REO3_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_SW2REO3_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_SW2REO3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OFFS                                                               (0x500)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OFFS                                                               (0x504)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x)                                                                  ((x) + 0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_PHYS(x)                                                                  ((x) + 0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OFFS                                                                     (0x508)
+#define HWIO_REO_R0_REO2SW1_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW1_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW1_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW1_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x)                                                              ((x) + 0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_PHYS(x)                                                              ((x) + 0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_OFFS                                                                 (0x50c)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x)                                                                ((x) + 0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_PHYS(x)                                                                ((x) + 0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OFFS                                                                   (0x510)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OFFS                                                            (0x514)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OFFS                                                            (0x518)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x524)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x528)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x52c)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OFFS                                                          (0x548)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OFFS                                                          (0x54c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OFFS                                                              (0x550)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x554)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OFFS                                                          (0x558)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OFFS                                                          (0x55c)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OFFS                                                              (0x560)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x570)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OFFS                                                                 (0x574)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW1_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW1_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OFFS                                                               (0x578)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OFFS                                                               (0x57c)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x)                                                                  ((x) + 0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_PHYS(x)                                                                  ((x) + 0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OFFS                                                                     (0x580)
+#define HWIO_REO_R0_REO2SW2_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW2_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW2_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW2_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW2_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW2_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x)                                                              ((x) + 0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_PHYS(x)                                                              ((x) + 0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_OFFS                                                                 (0x584)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x)                                                                ((x) + 0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_PHYS(x)                                                                ((x) + 0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OFFS                                                                   (0x588)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW2_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW2_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW2_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW2_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW2_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OFFS                                                            (0x58c)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OFFS                                                            (0x590)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x59c)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x5a0)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x5a4)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OFFS                                                          (0x5c0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OFFS                                                          (0x5c4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OFFS                                                              (0x5c8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x5cc)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OFFS                                                          (0x5d0)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OFFS                                                          (0x5d4)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OFFS                                                              (0x5d8)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x5e8)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x)                                                              ((x) + 0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_PHYS(x)                                                              ((x) + 0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OFFS                                                                 (0x5ec)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW2_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW2_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OFFS                                                               (0x5f0)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OFFS                                                               (0x5f4)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW3_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x)                                                                  ((x) + 0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_PHYS(x)                                                                  ((x) + 0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OFFS                                                                     (0x5f8)
+#define HWIO_REO_R0_REO2SW3_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW3_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW3_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW3_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW3_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW3_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x)                                                              ((x) + 0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_PHYS(x)                                                              ((x) + 0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_OFFS                                                                 (0x5fc)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW3_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x)                                                                ((x) + 0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_PHYS(x)                                                                ((x) + 0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OFFS                                                                   (0x600)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW3_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW3_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW3_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW3_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW3_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW3_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW3_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW3_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW3_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW3_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OFFS                                                            (0x604)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OFFS                                                            (0x608)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW3_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x614)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x618)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x61c)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OFFS                                                          (0x638)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OFFS                                                          (0x63c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OFFS                                                              (0x640)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x644)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW3_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OFFS                                                          (0x648)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OFFS                                                          (0x64c)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OFFS                                                              (0x650)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x660)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x)                                                              ((x) + 0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_PHYS(x)                                                              ((x) + 0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OFFS                                                                 (0x664)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW3_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW3_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OFFS                                                               (0x668)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OFFS                                                               (0x66c)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW4_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x)                                                                  ((x) + 0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_PHYS(x)                                                                  ((x) + 0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OFFS                                                                     (0x670)
+#define HWIO_REO_R0_REO2SW4_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW4_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW4_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW4_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW4_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW4_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x)                                                              ((x) + 0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_PHYS(x)                                                              ((x) + 0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_OFFS                                                                 (0x674)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW4_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x)                                                                ((x) + 0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_PHYS(x)                                                                ((x) + 0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OFFS                                                                   (0x678)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW4_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW4_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW4_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW4_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW4_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW4_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW4_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW4_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW4_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW4_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OFFS                                                            (0x67c)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OFFS                                                            (0x680)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW4_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x68c)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x690)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x694)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OFFS                                                          (0x6b0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OFFS                                                          (0x6b4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OFFS                                                              (0x6b8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x6bc)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW4_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OFFS                                                          (0x6c0)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OFFS                                                          (0x6c4)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OFFS                                                              (0x6c8)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x6d8)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x)                                                              ((x) + 0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_PHYS(x)                                                              ((x) + 0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OFFS                                                                 (0x6dc)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW4_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW4_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OFFS                                                               (0x6e0)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OFFS                                                               (0x6e4)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW5_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x)                                                                  ((x) + 0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_PHYS(x)                                                                  ((x) + 0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OFFS                                                                     (0x6e8)
+#define HWIO_REO_R0_REO2SW5_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW5_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW5_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW5_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW5_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW5_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x)                                                              ((x) + 0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_PHYS(x)                                                              ((x) + 0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_OFFS                                                                 (0x6ec)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW5_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x)                                                                ((x) + 0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_PHYS(x)                                                                ((x) + 0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OFFS                                                                   (0x6f0)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW5_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW5_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW5_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW5_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW5_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW5_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW5_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW5_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW5_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW5_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OFFS                                                            (0x6f4)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OFFS                                                            (0x6f8)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW5_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x704)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x708)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x70c)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OFFS                                                          (0x728)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OFFS                                                          (0x72c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OFFS                                                              (0x730)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x734)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW5_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OFFS                                                          (0x738)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OFFS                                                          (0x73c)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OFFS                                                              (0x740)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x750)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x)                                                              ((x) + 0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_PHYS(x)                                                              ((x) + 0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OFFS                                                                 (0x754)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW5_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW5_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OFFS                                                               (0x758)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OFFS                                                               (0x75c)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW6_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x)                                                                  ((x) + 0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_PHYS(x)                                                                  ((x) + 0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OFFS                                                                     (0x760)
+#define HWIO_REO_R0_REO2SW6_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW6_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW6_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW6_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW6_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW6_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x)                                                              ((x) + 0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_PHYS(x)                                                              ((x) + 0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_OFFS                                                                 (0x764)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW6_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x)                                                                ((x) + 0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_PHYS(x)                                                                ((x) + 0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OFFS                                                                   (0x768)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW6_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW6_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW6_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW6_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW6_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW6_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW6_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW6_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW6_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW6_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OFFS                                                            (0x76c)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OFFS                                                            (0x770)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW6_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x77c)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x780)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x784)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OFFS                                                          (0x7a0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OFFS                                                          (0x7a4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OFFS                                                              (0x7a8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x7ac)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW6_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OFFS                                                          (0x7b0)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OFFS                                                          (0x7b4)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OFFS                                                              (0x7b8)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x7c8)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW6_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x)                                                              ((x) + 0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_PHYS(x)                                                              ((x) + 0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OFFS                                                                 (0x7cc)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW6_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW6_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW6_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x7d0)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x7d0)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_OFFS                                                               (0x7d0)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x7d4)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x7d4)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_OFFS                                                               (0x7d4)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW7_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW7_RING_ID_ADDR(x)                                                                  ((x) + 0x7d8)
+#define HWIO_REO_R0_REO2SW7_RING_ID_PHYS(x)                                                                  ((x) + 0x7d8)
+#define HWIO_REO_R0_REO2SW7_RING_ID_OFFS                                                                     (0x7d8)
+#define HWIO_REO_R0_REO2SW7_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW7_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW7_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW7_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW7_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW7_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_ADDR(x)                                                              ((x) + 0x7dc)
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_PHYS(x)                                                              ((x) + 0x7dc)
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_OFFS                                                                 (0x7dc)
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW7_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW7_RING_MISC_ADDR(x)                                                                ((x) + 0x7e0)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_PHYS(x)                                                                ((x) + 0x7e0)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_OFFS                                                                   (0x7e0)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW7_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW7_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW7_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW7_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW7_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW7_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW7_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW7_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW7_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW7_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW7_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW7_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW7_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW7_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW7_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x7e4)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x7e4)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_OFFS                                                            (0x7e4)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x7e8)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x7e8)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_OFFS                                                            (0x7e8)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW7_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7f4)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7f4)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7f4)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x7f8)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x7f8)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x7f8)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x7fc)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x7fc)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x7fc)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x818)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x818)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_OFFS                                                          (0x818)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x81c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x81c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_OFFS                                                          (0x81c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x820)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x820)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_OFFS                                                              (0x820)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x824)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x824)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x824)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW7_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x828)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x828)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_OFFS                                                          (0x828)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x82c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x82c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_OFFS                                                          (0x82c)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x830)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x830)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_OFFS                                                              (0x830)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x840)
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x840)
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x840)
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW7_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_ADDR(x)                                                              ((x) + 0x844)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_PHYS(x)                                                              ((x) + 0x844)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_OFFS                                                                 (0x844)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW7_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW7_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW7_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW7_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW7_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW7_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x848)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x848)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_OFFS                                                               (0x848)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x84c)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x84c)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_OFFS                                                               (0x84c)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW8_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW8_RING_ID_ADDR(x)                                                                  ((x) + 0x850)
+#define HWIO_REO_R0_REO2SW8_RING_ID_PHYS(x)                                                                  ((x) + 0x850)
+#define HWIO_REO_R0_REO2SW8_RING_ID_OFFS                                                                     (0x850)
+#define HWIO_REO_R0_REO2SW8_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW8_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW8_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW8_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW8_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW8_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_ADDR(x)                                                              ((x) + 0x854)
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_PHYS(x)                                                              ((x) + 0x854)
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_OFFS                                                                 (0x854)
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW8_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW8_RING_MISC_ADDR(x)                                                                ((x) + 0x858)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_PHYS(x)                                                                ((x) + 0x858)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_OFFS                                                                   (0x858)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW8_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW8_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW8_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW8_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW8_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW8_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW8_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW8_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW8_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW8_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW8_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW8_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW8_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW8_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW8_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x85c)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x85c)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_OFFS                                                            (0x85c)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x860)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x860)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_OFFS                                                            (0x860)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW8_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x86c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x86c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x86c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x870)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x870)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x870)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x874)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x874)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x874)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x890)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x890)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_OFFS                                                          (0x890)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x894)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x894)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_OFFS                                                          (0x894)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x898)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x898)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_OFFS                                                              (0x898)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x89c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x89c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x89c)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW8_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x8a0)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x8a0)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_OFFS                                                          (0x8a0)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x8a4)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x8a4)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_OFFS                                                          (0x8a4)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x8a8)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x8a8)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_OFFS                                                              (0x8a8)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x8b8)
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x8b8)
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x8b8)
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW8_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_ADDR(x)                                                              ((x) + 0x8bc)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_PHYS(x)                                                              ((x) + 0x8bc)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_OFFS                                                                 (0x8bc)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW8_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW8_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW8_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW8_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW8_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW8_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OFFS                                                               (0x8c0)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OFFS                                                               (0x8c4)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2SW0_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x)                                                                  ((x) + 0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_PHYS(x)                                                                  ((x) + 0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OFFS                                                                     (0x8c8)
+#define HWIO_REO_R0_REO2SW0_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2SW0_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2SW0_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2SW0_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2SW0_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2SW0_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x)                                                              ((x) + 0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_PHYS(x)                                                              ((x) + 0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_OFFS                                                                 (0x8cc)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2SW0_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x)                                                                ((x) + 0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_PHYS(x)                                                                ((x) + 0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OFFS                                                                   (0x8d0)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2SW0_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2SW0_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2SW0_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2SW0_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2SW0_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2SW0_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2SW0_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2SW0_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2SW0_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2SW0_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OFFS                                                            (0x8d4)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OFFS                                                            (0x8d8)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2SW0_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x8e4)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x8e8)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x8ec)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OFFS                                                          (0x908)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OFFS                                                          (0x90c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OFFS                                                              (0x910)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x914)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2SW0_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OFFS                                                          (0x918)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OFFS                                                          (0x91c)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OFFS                                                              (0x920)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x930)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2SW0_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x)                                                              ((x) + 0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_PHYS(x)                                                              ((x) + 0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OFFS                                                                 (0x934)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2SW0_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2SW0_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2SW0_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x938)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x938)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_OFFS                                                               (0x938)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x93c)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x93c)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_OFFS                                                               (0x93c)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_RMSK                                                                0xfffffff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xfffff00
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_REO_R0_REO2PPE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_REO_R0_REO2PPE_RING_ID_ADDR(x)                                                                  ((x) + 0x940)
+#define HWIO_REO_R0_REO2PPE_RING_ID_PHYS(x)                                                                  ((x) + 0x940)
+#define HWIO_REO_R0_REO2PPE_RING_ID_OFFS                                                                     (0x940)
+#define HWIO_REO_R0_REO2PPE_RING_ID_RMSK                                                                         0xffff
+#define HWIO_REO_R0_REO2PPE_RING_ID_POR                                                                      0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_REO_R0_REO2PPE_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_REO_R0_REO2PPE_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_REO_R0_REO2PPE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_REO_R0_REO2PPE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_ADDR(x)                                                              ((x) + 0x944)
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_PHYS(x)                                                              ((x) + 0x944)
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_OFFS                                                                 (0x944)
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_REO_R0_REO2PPE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_REO_R0_REO2PPE_RING_MISC_ADDR(x)                                                                ((x) + 0x948)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_PHYS(x)                                                                ((x) + 0x948)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_OFFS                                                                   (0x948)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_REO_R0_REO2PPE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_REO_R0_REO2PPE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2PPE_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_REO_R0_REO2PPE_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_REO_R0_REO2PPE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_REO_R0_REO2PPE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_REO_R0_REO2PPE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_REO_R0_REO2PPE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_REO_R0_REO2PPE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_REO_R0_REO2PPE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_REO_R0_REO2PPE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_REO_R0_REO2PPE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_REO_R0_REO2PPE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_REO_R0_REO2PPE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_REO_R0_REO2PPE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x94c)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x94c)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_OFFS                                                            (0x94c)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x950)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x950)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_OFFS                                                            (0x950)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_REO_R0_REO2PPE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x95c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x95c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x95c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x960)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x960)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x960)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x964)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x964)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x964)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x980)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x980)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_OFFS                                                          (0x980)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x984)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x984)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_OFFS                                                          (0x984)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x988)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x988)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_OFFS                                                              (0x988)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x98c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x98c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x98c)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffcfffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xfffff
+#define HWIO_REO_R0_REO2PPE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x990)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x990)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_OFFS                                                          (0x990)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x994)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x994)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_OFFS                                                          (0x994)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x998)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x998)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_OFFS                                                              (0x998)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x9a8)
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x9a8)
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x9a8)
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_REO_R0_REO2PPE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x9ac)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x9ac)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_OFFS                                                                 (0x9ac)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_REO_R0_REO2PPE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OFFS                                                                (0x9b0)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OFFS                                                                (0x9b4)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RMSK                                                                 0xfffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xfffff00
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_REO_R0_REO2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_REO_R0_REO2FW_RING_ID_ADDR(x)                                                                   ((x) + 0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_PHYS(x)                                                                   ((x) + 0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_OFFS                                                                      (0x9b8)
+#define HWIO_REO_R0_REO2FW_RING_ID_RMSK                                                                          0xffff
+#define HWIO_REO_R0_REO2FW_RING_ID_POR                                                                       0x00000000
+#define HWIO_REO_R0_REO2FW_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_ID_ATTR                                                                                   0x3
+#define HWIO_REO_R0_REO2FW_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_ID_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_REO_R0_REO2FW_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_REO_R0_REO2FW_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_REO_R0_REO2FW_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x)                                                               ((x) + 0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_PHYS(x)                                                               ((x) + 0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_OFFS                                                                  (0x9bc)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2FW_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_REO_R0_REO2FW_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_REO_R0_REO2FW_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x)                                                                 ((x) + 0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_PHYS(x)                                                                 ((x) + 0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OFFS                                                                    (0x9c0)
+#define HWIO_REO_R0_REO2FW_RING_MISC_RMSK                                                                     0x7ffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_POR                                                                     0x00000080
+#define HWIO_REO_R0_REO2FW_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_REO_R0_REO2FW_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                             0x4000000
+#define HWIO_REO_R0_REO2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                    26
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_REO_R0_REO2FW_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_REO_R0_REO2FW_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_REO_R0_REO2FW_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_REO_R0_REO2FW_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_REO_R0_REO2FW_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_REO_R0_REO2FW_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_REO_R0_REO2FW_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_REO_R0_REO2FW_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_REO_R0_REO2FW_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_REO_R0_REO2FW_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_REO_R0_REO2FW_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_REO_R0_REO2FW_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_REO_R0_REO2FW_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_REO_R0_REO2FW_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OFFS                                                             (0x9c4)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OFFS                                                             (0x9c8)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_REO_R0_REO2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x9d4)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x9d8)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x9dc)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OFFS                                                           (0x9f8)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OFFS                                                           (0x9fc)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OFFS                                                               (0xa00)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                  ((x) + 0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                  ((x) + 0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OFFS                                                     (0xa04)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_RMSK                                                     0xffcfffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_POR                                                      0x00000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                          0xff000000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                  24
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                           0x800000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                 23
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                         0x400000
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                               22
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xfffff
+#define HWIO_REO_R0_REO2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x)                                                        ((x) + 0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_PHYS(x)                                                        ((x) + 0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OFFS                                                           (0xa08)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x)                                                        ((x) + 0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_PHYS(x)                                                        ((x) + 0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OFFS                                                           (0xa0c)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                    0x100
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                        8
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x)                                                            ((x) + 0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_PHYS(x)                                                            ((x) + 0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OFFS                                                               (0xa10)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_POR                                                                0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MSI2_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xa20)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_REO_R0_REO2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x)                                                               ((x) + 0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_PHYS(x)                                                               ((x) + 0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OFFS                                                                  (0xa24)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_RMSK                                                                  0xffff003f
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2FW_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO2FW_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                         0xffff0000
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                 16
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                0x3f
+#define HWIO_REO_R0_REO2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                   0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x)                                                        ((x) + 0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_PHYS(x)                                                        ((x) + 0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OFFS                                                           (0xa28)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                 0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x)                                                        ((x) + 0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_PHYS(x)                                                        ((x) + 0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OFFS                                                           (0xa2c)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RMSK                                                             0xffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                   0xffff00
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                          8
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                              0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                 0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x)                                                              ((x) + 0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_PHYS(x)                                                              ((x) + 0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OFFS                                                                 (0xa30)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RMSK                                                                     0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_POR                                                                  0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ATTR                                                                              0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RING_ID_BMSK                                                             0xff00
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_RING_ID_SHFT                                                                  8
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                            0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                               0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x)                                                          ((x) + 0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_PHYS(x)                                                          ((x) + 0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_OFFS                                                             (0xa34)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_RMSK                                                             0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_POR                                                              0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_ATTR                                                                          0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                             0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                     16
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                 0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                      0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x)                                                            ((x) + 0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_PHYS(x)                                                            ((x) + 0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OFFS                                                               (0xa38)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RMSK                                                                0x7ffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_POR                                                                0x00000080
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ATTR                                                                            0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                        0x4000000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                               26
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                       0x3c00000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                              22
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                   0x3fc000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                         14
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                    0x3000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                        12
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                     0xf00
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                         8
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                        0x80
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                           7
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                         0x40
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                            6
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                   0x20
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                      5
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                    0x10
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                       4
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                         0x8
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                           3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                         0x4
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                           2
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                      0x2
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                        1
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                      0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                        0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                     ((x) + 0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                     ((x) + 0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OFFS                                                        (0xa3c)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_POR                                                         0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                   0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                            0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                     ((x) + 0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                     ((x) + 0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OFFS                                                        (0xa40)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_RMSK                                                              0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_POR                                                         0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                     0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                         0xff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                            0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                              ((x) + 0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                              ((x) + 0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                 (0xa4c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                              0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                             ((x) + 0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                             ((x) + 0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                (0xa50)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                 0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                             0x1
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                  0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                          16
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                       0x7fff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                            0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                           ((x) + 0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                           ((x) + 0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                              (0xa54)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                   0x3ff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                               0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                          0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                           0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                 0x3ff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                     0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                             ((x) + 0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                             ((x) + 0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                (0xa7c)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                0xffc0ffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                 0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                             0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                     0xff000000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                             24
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                      0x800000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                            23
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                    0x400000
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                          22
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                     0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                          0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                 ((x) + 0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                 ((x) + 0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                    (0xa98)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                        0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                     0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                 0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                     0xffff
+#define HWIO_REO_R0_REO_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                          0
+
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x)                                                          ((x) + 0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_PHYS(x)                                                          ((x) + 0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OFFS                                                             (0xa9c)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_RMSK                                                             0xffff003f
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_POR                                                              0x00000000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ATTR                                                                          0x3
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                    0xffff0000
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                            16
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                           0x3f
+#define HWIO_REO_R0_REO_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                              0
+
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x)                                                         ((x) + 0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_PHYS(x)                                                         ((x) + 0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OFFS                                                            (0xaa0)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                  0
+
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x)                                                         ((x) + 0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_PHYS(x)                                                         ((x) + 0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OFFS                                                            (0xaa4)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RMSK                                                              0xffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_POR                                                             0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                    0xffff00
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                           8
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                               0xff
+#define HWIO_REO_R0_REO_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                  0
+
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x)                                                               ((x) + 0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_PHYS(x)                                                               ((x) + 0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OFFS                                                                  (0xaa8)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_ID_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO_STATUS_RING_ID_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_ID_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_ID_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RING_ID_BMSK                                                              0xff00
+#define HWIO_REO_R0_REO_STATUS_RING_ID_RING_ID_SHFT                                                                   8
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                             0xff
+#define HWIO_REO_R0_REO_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                0
+
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x)                                                           ((x) + 0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_PHYS(x)                                                           ((x) + 0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_OFFS                                                              (0xaac)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_POR                                                               0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_ATTR                                                                           0x1
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                              0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                      16
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                  0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                       0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x)                                                             ((x) + 0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_PHYS(x)                                                             ((x) + 0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OFFS                                                                (0xab0)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RMSK                                                                 0x7ffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_POR                                                                 0x00000080
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ATTR                                                                             0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MISC_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MISC_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                         0x4000000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                26
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOP_CNT_BMSK                                                        0x3c00000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOP_CNT_SHFT                                                               22
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                    0x3fc000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                          14
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                     0x3000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                         12
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                      0xf00
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                          8
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                         0x80
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                            7
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                          0x40
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                             6
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                    0x20
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                       5
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                     0x10
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                        4
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                          0x8
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                            3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                          0x4
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                            2
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                       0x2
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                         1
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                       0x1
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                         0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                      ((x) + 0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                      ((x) + 0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OFFS                                                         (0xab4)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_POR                                                          0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ATTR                                                                      0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                    0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                             0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                      ((x) + 0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                      ((x) + 0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OFFS                                                         (0xab8)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_RMSK                                                               0xff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_POR                                                          0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ATTR                                                                      0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                          0xff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                             0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                               ((x) + 0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                               ((x) + 0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                  (0xac4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_POR                                                   0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                               0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                              ((x) + 0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                              ((x) + 0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                 (0xac8)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                              0x1
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                   0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                           16
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                           0x8000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                               15
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                        0x7fff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                             0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                            ((x) + 0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                            ((x) + 0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                               (0xacc)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                    0x3ff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                            0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                  0x3ff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                      0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                    ((x) + 0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                    ((x) + 0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OFFS                                                       (0xae8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_POR                                                        0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                    ((x) + 0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                    ((x) + 0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OFFS                                                       (0xaec)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_RMSK                                                            0x1ff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_POR                                                        0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                0x100
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                    8
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                        0xff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x)                                                        ((x) + 0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_PHYS(x)                                                        ((x) + 0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OFFS                                                           (0xaf0)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                              0
+
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x)                                              ((x) + 0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_PHYS(x)                                              ((x) + 0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OFFS                                                 (0xaf4)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_RMSK                                                 0xffc0ffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_POR                                                  0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ATTR                                                              0x3
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                      0xff000000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                              24
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                       0x800000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                             23
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                     0x400000
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                           22
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                      0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x)                                                    ((x) + 0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_PHYS(x)                                                    ((x) + 0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OFFS                                                       (0xaf8)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_POR                                                        0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR_BMSK                                                  0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_LSB_ADDR_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x)                                                    ((x) + 0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_PHYS(x)                                                    ((x) + 0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OFFS                                                       (0xafc)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_RMSK                                                            0x1ff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_POR                                                        0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ATTR                                                                    0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                0x100
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                    8
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR_BMSK                                                        0xff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_BASE_MSB_ADDR_SHFT                                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x)                                                        ((x) + 0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_PHYS(x)                                                        ((x) + 0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OFFS                                                           (0xb00)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_POR                                                            0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ATTR                                                                        0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_VALUE_BMSK                                                     0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MSI2_DATA_VALUE_SHFT                                                              0
+
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                  ((x) + 0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                  ((x) + 0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                     (0xb10)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                         0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_POR                                                      0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                  0x3
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                      0xffff
+#define HWIO_REO_R0_REO_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                           0
+
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x)                                                           ((x) + 0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_PHYS(x)                                                           ((x) + 0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OFFS                                                              (0xb14)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_RMSK                                                              0xffff003f
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_POR                                                               0x00000000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_ATTR                                                                           0x3
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x), m)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x),v)
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO_STATUS_RING_MISC_1_ADDR(x),m,v,HWIO_REO_R0_REO_STATUS_RING_MISC_1_IN(x))
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                     0xffff0000
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                             16
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                            0x3f
+#define HWIO_REO_R0_REO_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                               0
+
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x)                                                                 ((x) + 0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_PHYS(x)                                                                 ((x) + 0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OFFS                                                                    (0xb18)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RMSK                                                                    0xffff3fff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_POR                                                                     0x03e80fa0
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ATTR                                                                                 0x3
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_IN(x)            \
+                in_dword(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x))
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x), m)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x),v)
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_WATCHDOG_TIMEOUT_ADDR(x),m,v,HWIO_REO_R0_WATCHDOG_TIMEOUT_IN(x))
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_WARNING_TIMEOUT_BMSK                                                    0xffff0000
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_WARNING_TIMEOUT_SHFT                                                            16
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_BMSK                                                       0x3000
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_RESOLUTION_UNITS_SHFT                                                           12
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ERROR_TIMEOUT_BMSK                                                           0xfff
+#define HWIO_REO_R0_WATCHDOG_TIMEOUT_ERROR_TIMEOUT_SHFT                                                               0
+
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x)                                                          ((x) + 0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_PHYS(x)                                                          ((x) + 0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_OFFS                                                             (0xb1c)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_RMSK                                                                 0x1fff
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_POR                                                              0x00000000
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ATTR                                                                          0x1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x))
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_WATCHDOG_WARNING_STATUS_ADDR(x), m)
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2PPE_RING_BACK_PRESSURE_BMSK                                      0x1000
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2PPE_RING_BACK_PRESSURE_SHFT                                          12
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_RELEASE_RING_BACK_PRESSURE_BMSK                                   0x800
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_RELEASE_RING_BACK_PRESSURE_SHFT                                      11
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_STATUS_RING_BACK_PRESSURE_BMSK                                    0x400
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO_STATUS_RING_BACK_PRESSURE_SHFT                                       10
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2FW_RING_BACK_PRESSURE_BMSK                                        0x200
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2FW_RING_BACK_PRESSURE_SHFT                                            9
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW8_RING_BACK_PRESSURE_BMSK                                       0x100
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW8_RING_BACK_PRESSURE_SHFT                                           8
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW7_RING_BACK_PRESSURE_BMSK                                        0x80
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW7_RING_BACK_PRESSURE_SHFT                                           7
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW6_RING_BACK_PRESSURE_BMSK                                        0x40
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW6_RING_BACK_PRESSURE_SHFT                                           6
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW5_RING_BACK_PRESSURE_BMSK                                        0x20
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW5_RING_BACK_PRESSURE_SHFT                                           5
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW4_RING_BACK_PRESSURE_BMSK                                        0x10
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW4_RING_BACK_PRESSURE_SHFT                                           4
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW3_RING_BACK_PRESSURE_BMSK                                         0x8
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW3_RING_BACK_PRESSURE_SHFT                                           3
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW2_RING_BACK_PRESSURE_BMSK                                         0x4
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW2_RING_BACK_PRESSURE_SHFT                                           2
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW1_RING_BACK_PRESSURE_BMSK                                         0x2
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW1_RING_BACK_PRESSURE_SHFT                                           1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW0_RING_BACK_PRESSURE_BMSK                                         0x1
+#define HWIO_REO_R0_WATCHDOG_WARNING_STATUS_REO2SW0_RING_BACK_PRESSURE_SHFT                                           0
+
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x)                                                      ((x) + 0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_PHYS(x)                                                      ((x) + 0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_OFFS                                                         (0xb20)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_RMSK                                                         0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_POR                                                          0x00000000
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ATTR                                                                      0x1
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x))
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ERROR_DATA_BMSK                                              0xffffffff
+#define HWIO_REO_R0_INTERRUPT_DATA_CAPTURE_IX_0_ERROR_DATA_SHFT                                                       0
+
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x)                                                               ((x) + 0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_PHYS(x)                                                               ((x) + 0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OFFS                                                                  (0xb24)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_RMSK                                                                       0x1ff
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_POR                                                                   0x0000002d
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ATTR                                                                               0x3
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_IN(x)            \
+                in_dword(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x))
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x), m)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x),v)
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MSDU_BUF_COUNT_CFG_ADDR(x),m,v,HWIO_REO_R0_MSDU_BUF_COUNT_CFG_IN(x))
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_THRESHOLD_BUF_COUNT_BMSK                                                   0x1fe
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_THRESHOLD_BUF_COUNT_SHFT                                                       1
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_DROP_EN_BMSK                                                                 0x1
+#define HWIO_REO_R0_MSDU_BUF_COUNT_CFG_DROP_EN_SHFT                                                                   0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x)                                                             ((x) + 0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_PHYS(x)                                                             ((x) + 0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OFFS                                                                (0xb28)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_POR                                                                 0x000186a0
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_ATTR                                                                             0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_0_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_0_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_AGING_THRESHOLD_AC0_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_0_AGING_THRESHOLD_AC0_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x)                                                             ((x) + 0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_PHYS(x)                                                             ((x) + 0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OFFS                                                                (0xb2c)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_POR                                                                 0x000186a0
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_ATTR                                                                             0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_1_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_1_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_AGING_THRESHOLD_AC1_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_1_AGING_THRESHOLD_AC1_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x)                                                             ((x) + 0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_PHYS(x)                                                             ((x) + 0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OFFS                                                                (0xb30)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_POR                                                                 0x00009c40
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_ATTR                                                                             0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_2_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_2_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_AGING_THRESHOLD_AC2_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_2_AGING_THRESHOLD_AC2_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x)                                                             ((x) + 0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_PHYS(x)                                                             ((x) + 0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OFFS                                                                (0xb34)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_POR                                                                 0x00009c40
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_ATTR                                                                             0x3
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_THRESHOLD_IX_3_ADDR(x),m,v,HWIO_REO_R0_AGING_THRESHOLD_IX_3_IN(x))
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_AGING_THRESHOLD_AC3_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_THRESHOLD_IX_3_AGING_THRESHOLD_AC3_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x)                                                       ((x) + 0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_PHYS(x)                                                       ((x) + 0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_OFFS                                                          (0xb38)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_AGING_HEADPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_0_AGING_HEADPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x)                                                       ((x) + 0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_PHYS(x)                                                       ((x) + 0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_OFFS                                                          (0xb3c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_AGING_HEADPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_0_AGING_HEADPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x)                                                       ((x) + 0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_PHYS(x)                                                       ((x) + 0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_OFFS                                                          (0xb40)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_AGING_TAILPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_0_AGING_TAILPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x)                                                       ((x) + 0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_PHYS(x)                                                       ((x) + 0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_OFFS                                                          (0xb44)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_AGING_TAILPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_0_AGING_TAILPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x)                                                       ((x) + 0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_PHYS(x)                                                       ((x) + 0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_OFFS                                                          (0xb48)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_AGING_HEADPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_1_AGING_HEADPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x)                                                       ((x) + 0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_PHYS(x)                                                       ((x) + 0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_OFFS                                                          (0xb4c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_AGING_HEADPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_1_AGING_HEADPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x)                                                       ((x) + 0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_PHYS(x)                                                       ((x) + 0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_OFFS                                                          (0xb50)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_AGING_TAILPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_1_AGING_TAILPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x)                                                       ((x) + 0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_PHYS(x)                                                       ((x) + 0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_OFFS                                                          (0xb54)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_AGING_TAILPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_1_AGING_TAILPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x)                                                       ((x) + 0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_PHYS(x)                                                       ((x) + 0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_OFFS                                                          (0xb58)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_AGING_HEADPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_2_AGING_HEADPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x)                                                       ((x) + 0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_PHYS(x)                                                       ((x) + 0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_OFFS                                                          (0xb5c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_AGING_HEADPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_2_AGING_HEADPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x)                                                       ((x) + 0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_PHYS(x)                                                       ((x) + 0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_OFFS                                                          (0xb60)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_AGING_TAILPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_2_AGING_TAILPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x)                                                       ((x) + 0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_PHYS(x)                                                       ((x) + 0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_OFFS                                                          (0xb64)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_AGING_TAILPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_2_AGING_TAILPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x)                                                       ((x) + 0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_PHYS(x)                                                       ((x) + 0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_OFFS                                                          (0xb68)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_AGING_HEADPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_LO_IX_3_AGING_HEADPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x)                                                       ((x) + 0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_PHYS(x)                                                       ((x) + 0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_OFFS                                                          (0xb6c)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_AGING_HEADPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_HEADPTR_HI_IX_3_AGING_HEADPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x)                                                       ((x) + 0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_PHYS(x)                                                       ((x) + 0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_OFFS                                                          (0xb70)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_AGING_TAILPTR_LO_BITS_BMSK                                    0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_LO_IX_3_AGING_TAILPTR_LO_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x)                                                       ((x) + 0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_PHYS(x)                                                       ((x) + 0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_OFFS                                                          (0xb74)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_RMSK                                                                0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_POR                                                           0x00000000
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ATTR                                                                       0x1
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_AGING_TAILPTR_HI_BITS_BMSK                                          0xff
+#define HWIO_REO_R0_AGING_LINK_TAILPTR_HI_IX_3_AGING_TAILPTR_HI_BITS_SHFT                                             0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x)                                                            ((x) + 0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_PHYS(x)                                                            ((x) + 0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_OFFS                                                               (0xb78)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_RMSK                                                                   0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_POR                                                                0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ATTR                                                                            0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_AGING_NUM_QUEUES_AC0_BMSK                                              0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_0_AGING_NUM_QUEUES_AC0_SHFT                                                   0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x)                                                            ((x) + 0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_PHYS(x)                                                            ((x) + 0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_OFFS                                                               (0xb7c)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_RMSK                                                                   0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_POR                                                                0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ATTR                                                                            0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_AGING_NUM_QUEUES_AC1_BMSK                                              0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_1_AGING_NUM_QUEUES_AC1_SHFT                                                   0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x)                                                            ((x) + 0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_PHYS(x)                                                            ((x) + 0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_OFFS                                                               (0xb80)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_RMSK                                                                   0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_POR                                                                0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ATTR                                                                            0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_AGING_NUM_QUEUES_AC2_BMSK                                              0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_2_AGING_NUM_QUEUES_AC2_SHFT                                                   0
+
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x)                                                            ((x) + 0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_PHYS(x)                                                            ((x) + 0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_OFFS                                                               (0xb84)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_RMSK                                                                   0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_POR                                                                0x00000000
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ATTR                                                                            0x1
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_AGING_NUM_QUEUES_AC3_BMSK                                              0xffff
+#define HWIO_REO_R0_AGING_NUM_QUEUES_IX_3_AGING_NUM_QUEUES_AC3_SHFT                                                   0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x)                                                             ((x) + 0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_PHYS(x)                                                             ((x) + 0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_OFFS                                                                (0xb88)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_POR                                                                 0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ATTR                                                                             0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_AGING_TIMESTAMP_AC0_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_0_AGING_TIMESTAMP_AC0_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x)                                                             ((x) + 0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_PHYS(x)                                                             ((x) + 0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_OFFS                                                                (0xb8c)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_POR                                                                 0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ATTR                                                                             0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_AGING_TIMESTAMP_AC1_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_1_AGING_TIMESTAMP_AC1_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x)                                                             ((x) + 0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_PHYS(x)                                                             ((x) + 0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_OFFS                                                                (0xb90)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_POR                                                                 0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ATTR                                                                             0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_AGING_TIMESTAMP_AC2_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_2_AGING_TIMESTAMP_AC2_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x)                                                             ((x) + 0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_PHYS(x)                                                             ((x) + 0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_OFFS                                                                (0xb94)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_POR                                                                 0x00000000
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ATTR                                                                             0x1
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x))
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_TIMESTAMP_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_AGING_TIMESTAMP_AC3_BMSK                                            0xffffffff
+#define HWIO_REO_R0_AGING_TIMESTAMP_IX_3_AGING_TIMESTAMP_AC3_SHFT                                                     0
+
+#define HWIO_REO_R0_AGING_CONTROL_ADDR(x)                                                                    ((x) + 0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_PHYS(x)                                                                    ((x) + 0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_OFFS                                                                       (0xb98)
+#define HWIO_REO_R0_AGING_CONTROL_RMSK                                                                             0x1f
+#define HWIO_REO_R0_AGING_CONTROL_POR                                                                        0x00000000
+#define HWIO_REO_R0_AGING_CONTROL_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_AGING_CONTROL_ATTR                                                                                    0x3
+#define HWIO_REO_R0_AGING_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_AGING_CONTROL_ADDR(x))
+#define HWIO_REO_R0_AGING_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AGING_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_AGING_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_AGING_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_AGING_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_AGING_CONTROL_ADDR(x),m,v,HWIO_REO_R0_AGING_CONTROL_IN(x))
+#define HWIO_REO_R0_AGING_CONTROL_PERMPDU_UPDATE_THRESHOLD_BMSK                                                    0x1f
+#define HWIO_REO_R0_AGING_CONTROL_PERMPDU_UPDATE_THRESHOLD_SHFT                                                       0
+
+#define HWIO_REO_R0_MISC_CTL_ADDR(x)                                                                         ((x) + 0xb9c)
+#define HWIO_REO_R0_MISC_CTL_PHYS(x)                                                                         ((x) + 0xb9c)
+#define HWIO_REO_R0_MISC_CTL_OFFS                                                                            (0xb9c)
+#define HWIO_REO_R0_MISC_CTL_RMSK                                                                            0x3fffffff
+#define HWIO_REO_R0_MISC_CTL_POR                                                                             0x0cac0008
+#define HWIO_REO_R0_MISC_CTL_POR_RMSK                                                                        0xffffffff
+#define HWIO_REO_R0_MISC_CTL_ATTR                                                                                         0x3
+#define HWIO_REO_R0_MISC_CTL_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_IN(x))
+#define HWIO_REO_R0_MISC_CTL_WCSS_INDICATION_BMSK                                                            0x20000000
+#define HWIO_REO_R0_MISC_CTL_WCSS_INDICATION_SHFT                                                                    29
+#define HWIO_REO_R0_MISC_CTL_SOFT_REORDER_DEST_RING_BMSK                                                     0x1e000000
+#define HWIO_REO_R0_MISC_CTL_SOFT_REORDER_DEST_RING_SHFT                                                             25
+#define HWIO_REO_R0_MISC_CTL_BAR_DEST_RING_BMSK                                                               0x1e00000
+#define HWIO_REO_R0_MISC_CTL_BAR_DEST_RING_SHFT                                                                      21
+#define HWIO_REO_R0_MISC_CTL_FRAGMENT_DEST_RING_BMSK                                                           0x1e0000
+#define HWIO_REO_R0_MISC_CTL_FRAGMENT_DEST_RING_SHFT                                                                 17
+#define HWIO_REO_R0_MISC_CTL_CACHE_FLUSH_Q_DESC_ONLY_BMSK                                                       0x10000
+#define HWIO_REO_R0_MISC_CTL_CACHE_FLUSH_Q_DESC_ONLY_SHFT                                                            16
+#define HWIO_REO_R0_MISC_CTL_MSI_ENABLE_CHK_BIT_BMSK                                                             0x8000
+#define HWIO_REO_R0_MISC_CTL_MSI_ENABLE_CHK_BIT_SHFT                                                                 15
+#define HWIO_REO_R0_MISC_CTL_SPARE_CONTROL_BMSK                                                                  0x7fff
+#define HWIO_REO_R0_MISC_CTL_SPARE_CONTROL_SHFT                                                                       0
+
+#define HWIO_REO_R0_MISC_CTL_2_ADDR(x)                                                                       ((x) + 0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_PHYS(x)                                                                       ((x) + 0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_OFFS                                                                          (0xba0)
+#define HWIO_REO_R0_MISC_CTL_2_RMSK                                                                           0x3ffffff
+#define HWIO_REO_R0_MISC_CTL_2_POR                                                                           0x00000000
+#define HWIO_REO_R0_MISC_CTL_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_MISC_CTL_2_ATTR                                                                                       0x3
+#define HWIO_REO_R0_MISC_CTL_2_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_2_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_2_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_2_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_2_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_2_IN(x))
+#define HWIO_REO_R0_MISC_CTL_2_REO2PPE_RING_PRIORITY_BMSK                                                     0x3000000
+#define HWIO_REO_R0_MISC_CTL_2_REO2PPE_RING_PRIORITY_SHFT                                                            24
+#define HWIO_REO_R0_MISC_CTL_2_REO_STATUS_RING_PRIORITY_BMSK                                                   0xc00000
+#define HWIO_REO_R0_MISC_CTL_2_REO_STATUS_RING_PRIORITY_SHFT                                                         22
+#define HWIO_REO_R0_MISC_CTL_2_REO_RELEASE_RING_PRIORITY_BMSK                                                  0x300000
+#define HWIO_REO_R0_MISC_CTL_2_REO_RELEASE_RING_PRIORITY_SHFT                                                        20
+#define HWIO_REO_R0_MISC_CTL_2_REO2FW_RING_PRIORITY_BMSK                                                        0xc0000
+#define HWIO_REO_R0_MISC_CTL_2_REO2FW_RING_PRIORITY_SHFT                                                             18
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW0_RING_PRIORITY_BMSK                                                       0x30000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW0_RING_PRIORITY_SHFT                                                            16
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW8_RING_PRIORITY_BMSK                                                        0xc000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW8_RING_PRIORITY_SHFT                                                            14
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW7_RING_PRIORITY_BMSK                                                        0x3000
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW7_RING_PRIORITY_SHFT                                                            12
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW6_RING_PRIORITY_BMSK                                                         0xc00
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW6_RING_PRIORITY_SHFT                                                            10
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW5_RING_PRIORITY_BMSK                                                         0x300
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW5_RING_PRIORITY_SHFT                                                             8
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW4_RING_PRIORITY_BMSK                                                          0xc0
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW4_RING_PRIORITY_SHFT                                                             6
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW3_RING_PRIORITY_BMSK                                                          0x30
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW3_RING_PRIORITY_SHFT                                                             4
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW2_RING_PRIORITY_BMSK                                                           0xc
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW2_RING_PRIORITY_SHFT                                                             2
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW1_RING_PRIORITY_BMSK                                                           0x3
+#define HWIO_REO_R0_MISC_CTL_2_REO2SW1_RING_PRIORITY_SHFT                                                             0
+
+#define HWIO_REO_R0_MISC_CTL_3_ADDR(x)                                                                       ((x) + 0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_PHYS(x)                                                                       ((x) + 0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_OFFS                                                                          (0xba4)
+#define HWIO_REO_R0_MISC_CTL_3_RMSK                                                                               0xfff
+#define HWIO_REO_R0_MISC_CTL_3_POR                                                                           0x00000e00
+#define HWIO_REO_R0_MISC_CTL_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_MISC_CTL_3_ATTR                                                                                       0x3
+#define HWIO_REO_R0_MISC_CTL_3_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_3_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_3_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_3_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_3_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_3_IN(x))
+#define HWIO_REO_R0_MISC_CTL_3_REO_QDESC_VC_ID_BMSK                                                               0x800
+#define HWIO_REO_R0_MISC_CTL_3_REO_QDESC_VC_ID_SHFT                                                                  11
+#define HWIO_REO_R0_MISC_CTL_3_REO_VA_VC_ID_BMSK                                                                  0x400
+#define HWIO_REO_R0_MISC_CTL_3_REO_VA_VC_ID_SHFT                                                                     10
+#define HWIO_REO_R0_MISC_CTL_3_SEQ_VC_ID_BMSK                                                                     0x200
+#define HWIO_REO_R0_MISC_CTL_3_SEQ_VC_ID_SHFT                                                                         9
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_LINK_DESC_VC_ID_BMSK                                                          0x100
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_LINK_DESC_VC_ID_SHFT                                                              8
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_CMD_VC_ID_BMSK                                                                 0x80
+#define HWIO_REO_R0_MISC_CTL_3_ENTR_CMD_VC_ID_SHFT                                                                    7
+#define HWIO_REO_R0_MISC_CTL_3_ENTR6_VC_ID_BMSK                                                                    0x40
+#define HWIO_REO_R0_MISC_CTL_3_ENTR6_VC_ID_SHFT                                                                       6
+#define HWIO_REO_R0_MISC_CTL_3_ENTR5_VC_ID_BMSK                                                                    0x20
+#define HWIO_REO_R0_MISC_CTL_3_ENTR5_VC_ID_SHFT                                                                       5
+#define HWIO_REO_R0_MISC_CTL_3_ENTR4_VC_ID_BMSK                                                                    0x10
+#define HWIO_REO_R0_MISC_CTL_3_ENTR4_VC_ID_SHFT                                                                       4
+#define HWIO_REO_R0_MISC_CTL_3_ENTR3_VC_ID_BMSK                                                                     0x8
+#define HWIO_REO_R0_MISC_CTL_3_ENTR3_VC_ID_SHFT                                                                       3
+#define HWIO_REO_R0_MISC_CTL_3_ENTR2_VC_ID_BMSK                                                                     0x4
+#define HWIO_REO_R0_MISC_CTL_3_ENTR2_VC_ID_SHFT                                                                       2
+#define HWIO_REO_R0_MISC_CTL_3_ENTR1_VC_ID_BMSK                                                                     0x2
+#define HWIO_REO_R0_MISC_CTL_3_ENTR1_VC_ID_SHFT                                                                       1
+#define HWIO_REO_R0_MISC_CTL_3_ENTR0_VC_ID_BMSK                                                                     0x1
+#define HWIO_REO_R0_MISC_CTL_3_ENTR0_VC_ID_SHFT                                                                       0
+
+#define HWIO_REO_R0_MISC_CTL_4_ADDR(x)                                                                       ((x) + 0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_PHYS(x)                                                                       ((x) + 0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_OFFS                                                                          (0xba8)
+#define HWIO_REO_R0_MISC_CTL_4_RMSK                                                                            0x1fffff
+#define HWIO_REO_R0_MISC_CTL_4_POR                                                                           0x00000000
+#define HWIO_REO_R0_MISC_CTL_4_POR_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_MISC_CTL_4_ATTR                                                                                       0x3
+#define HWIO_REO_R0_MISC_CTL_4_IN(x)            \
+                in_dword(HWIO_REO_R0_MISC_CTL_4_ADDR(x))
+#define HWIO_REO_R0_MISC_CTL_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_MISC_CTL_4_ADDR(x), m)
+#define HWIO_REO_R0_MISC_CTL_4_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_MISC_CTL_4_ADDR(x),v)
+#define HWIO_REO_R0_MISC_CTL_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_MISC_CTL_4_ADDR(x),m,v,HWIO_REO_R0_MISC_CTL_4_IN(x))
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_ENABLE_BMSK                                                   0x100000
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_ENABLE_SHFT                                                         20
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_LIMIT_BMSK                                                     0xfffff
+#define HWIO_REO_R0_MISC_CTL_4_CACHE_FLUSH_TIMER_LIMIT_SHFT                                                           0
+
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_ADDR(base,n)                                                           ((base) + 0XBAC + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_PHYS(base,n)                                                           ((base) + 0XBAC + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_OFFS(n)                                                                (0XBAC + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_RMSK                                                                       0xffff
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_MAXn                                                                           16
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_POR                                                                    0x00000000
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_INI(base,n)                \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_INT_PRI_n_ADDR(base,n), HWIO_REO_R0_REO2PPE_INT_PRI_n_RMSK)
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_INT_PRI_n_ADDR(base,n), mask)
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_OUTI(base,n,val)        \
+                out_dword(HWIO_REO_R0_REO2PPE_INT_PRI_n_ADDR(base,n),val)
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_INT_PRI_n_ADDR(base,n),mask,val,HWIO_REO_R0_REO2PPE_INT_PRI_n_INI(base,n))
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_TABLE_BMSK                                                                 0xffff
+#define HWIO_REO_R0_REO2PPE_INT_PRI_n_TABLE_SHFT                                                                      0
+
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_ADDR(base,n)                                                          ((base) + 0XBF0 + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_PHYS(base,n)                                                          ((base) + 0XBF0 + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_OFFS(n)                                                               (0XBF0 + (0x4*(n)))
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_RMSK                                                                      0xffff
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_MAXn                                                                          63
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_POR                                                                   0x00000000
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_ATTR                                                                               0x3
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_INI(base,n)                \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_SRC_INFO_n_ADDR(base,n), HWIO_REO_R0_REO2PPE_SRC_INFO_n_RMSK)
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_SRC_INFO_n_ADDR(base,n), mask)
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_OUTI(base,n,val)        \
+                out_dword(HWIO_REO_R0_REO2PPE_SRC_INFO_n_ADDR(base,n),val)
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_SRC_INFO_n_ADDR(base,n),mask,val,HWIO_REO_R0_REO2PPE_SRC_INFO_n_INI(base,n))
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_TABLE_BMSK                                                                0xffff
+#define HWIO_REO_R0_REO2PPE_SRC_INFO_n_TABLE_SHFT                                                                     0
+
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_ADDR(x)                                                                ((x) + 0xcf0)
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_PHYS(x)                                                                ((x) + 0xcf0)
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_OFFS                                                                   (0xcf0)
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_RMSK                                                                       0xffff
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_POR                                                                    0x00000000
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_ATTR                                                                                0x3
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_IN(x)            \
+                in_dword(HWIO_REO_R0_REO2PPE_DEST_INFO_ADDR(x))
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_REO2PPE_DEST_INFO_ADDR(x), m)
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_REO2PPE_DEST_INFO_ADDR(x),v)
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_REO2PPE_DEST_INFO_ADDR(x),m,v,HWIO_REO_R0_REO2PPE_DEST_INFO_IN(x))
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_DST_INFO_BMSK                                                              0xffff
+#define HWIO_REO_R0_REO2PPE_DEST_INFO_DST_INFO_SHFT                                                                   0
+
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x)                                                            ((x) + 0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_PHYS(x)                                                            ((x) + 0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OFFS                                                               (0xcf4)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_POR                                                                0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ATTR                                                                            0x3
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_IN(x)            \
+                in_dword(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x))
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x), m)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x),v)
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_ADDR(x),m,v,HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_IN(x))
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_HIGH_MEMORY_THRESHOLD_BMSK                                         0xffffffff
+#define HWIO_REO_R0_HIGH_MEMORY_THRESHOLD_HIGH_MEMORY_THRESHOLD_SHFT                                                  0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x)                                                             ((x) + 0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_PHYS(x)                                                             ((x) + 0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_OFFS                                                                (0xcf8)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_POR                                                                 0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ATTR                                                                             0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_BUFFERS_USED_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_0_BUFFERS_USED_SHFT                                                            0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x)                                                             ((x) + 0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_PHYS(x)                                                             ((x) + 0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_OFFS                                                                (0xcfc)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_POR                                                                 0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ATTR                                                                             0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_BUFFERS_USED_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_1_BUFFERS_USED_SHFT                                                            0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x)                                                             ((x) + 0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_PHYS(x)                                                             ((x) + 0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_OFFS                                                                (0xd00)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_POR                                                                 0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ATTR                                                                             0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_BUFFERS_USED_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_2_BUFFERS_USED_SHFT                                                            0
+
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x)                                                             ((x) + 0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_PHYS(x)                                                             ((x) + 0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_OFFS                                                                (0xd04)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_POR                                                                 0x00000000
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ATTR                                                                             0x1
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x))
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_AC_BUFFERS_USED_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_BUFFERS_USED_BMSK                                                   0xffffffff
+#define HWIO_REO_R0_AC_BUFFERS_USED_IX_3_BUFFERS_USED_SHFT                                                            0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x)                                               ((x) + 0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_PHYS(x)                                               ((x) + 0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OFFS                                                  (0xd08)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_RMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_POR                                                   0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ATTR                                                               0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_THRESHOLD_BMSK                                          0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_0_THRESHOLD_SHFT                                                 0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x)                                               ((x) + 0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_PHYS(x)                                               ((x) + 0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OFFS                                                  (0xd0c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_RMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_POR                                                   0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ATTR                                                               0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_THRESHOLD_BMSK                                          0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_1_THRESHOLD_SHFT                                                 0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x)                                               ((x) + 0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_PHYS(x)                                               ((x) + 0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OFFS                                                  (0xd10)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_RMSK                                                    0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_POR                                                   0x00ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ATTR                                                               0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_THRESHOLD_BMSK                                          0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_IX_2_THRESHOLD_SHFT                                                 0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x)                                              ((x) + 0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_PHYS(x)                                              ((x) + 0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OFFS                                                 (0xd14)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_RMSK                                                  0x3ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_POR                                                  0x03ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_POR_RMSK                                             0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ATTR                                                              0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_THRESHOLD_BMSK                                        0x3ffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_THRESH_TOTAL_THRESHOLD_SHFT                                                0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x)                                                      ((x) + 0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_PHYS(x)                                                      ((x) + 0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OFFS                                                         (0xd18)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_RMSK                                                           0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_POR                                                          0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ATTR                                                                      0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_COUNT_BMSK                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_0_COUNT_SHFT                                                            0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x)                                                      ((x) + 0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_PHYS(x)                                                      ((x) + 0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OFFS                                                         (0xd1c)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_RMSK                                                           0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_POR                                                          0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ATTR                                                                      0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_COUNT_BMSK                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_1_COUNT_SHFT                                                            0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x)                                                      ((x) + 0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_PHYS(x)                                                      ((x) + 0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OFFS                                                         (0xd20)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_RMSK                                                           0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_POR                                                          0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ATTR                                                                      0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_COUNT_BMSK                                                     0xffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_IX_2_COUNT_SHFT                                                            0
+
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x)                                                      ((x) + 0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_PHYS(x)                                                      ((x) + 0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OFFS                                                         (0xd24)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_RMSK                                                                0x1
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_POR                                                          0x00000000
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ATTR                                                                      0x3
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ADDR(x),m,v,HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_IN(x))
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ENABLE_DESC_THRESH_TLV_BMSK                                         0x1
+#define HWIO_REO_R0_GLOBAL_LINK_DESC_COUNT_CTRL_ENABLE_DESC_THRESH_TLV_SHFT                                           0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x)                                                    ((x) + 0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_PHYS(x)                                                    ((x) + 0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_OFFS                                                       (0xd28)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDRESS_LO_BITS_BMSK                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_0_ADDRESS_LO_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x)                                                    ((x) + 0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_PHYS(x)                                                    ((x) + 0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_OFFS                                                       (0xd2c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_RMSK                                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDRESS_HI_BITS_BMSK                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_0_ADDRESS_HI_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x)                                                    ((x) + 0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_PHYS(x)                                                    ((x) + 0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_OFFS                                                       (0xd30)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDRESS_LO_BITS_BMSK                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_1_ADDRESS_LO_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x)                                                    ((x) + 0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_PHYS(x)                                                    ((x) + 0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_OFFS                                                       (0xd34)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_RMSK                                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDRESS_HI_BITS_BMSK                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_1_ADDRESS_HI_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x)                                                    ((x) + 0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_PHYS(x)                                                    ((x) + 0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_OFFS                                                       (0xd38)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDRESS_LO_BITS_BMSK                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_2_ADDRESS_LO_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x)                                                    ((x) + 0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_PHYS(x)                                                    ((x) + 0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_OFFS                                                       (0xd3c)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_RMSK                                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDRESS_HI_BITS_BMSK                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_2_ADDRESS_HI_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x)                                                    ((x) + 0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_PHYS(x)                                                    ((x) + 0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_OFFS                                                       (0xd40)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_RMSK                                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDRESS_LO_BITS_BMSK                                       0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_LO_IX_3_ADDRESS_LO_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x)                                                    ((x) + 0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_PHYS(x)                                                    ((x) + 0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_OFFS                                                       (0xd44)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_RMSK                                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_POR                                                        0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ATTR                                                                    0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDRESS_HI_BITS_BMSK                                             0xff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_ADDR_HI_IX_3_ADDRESS_HI_BITS_SHFT                                                0
+
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x)                                                            ((x) + 0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_PHYS(x)                                                            ((x) + 0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_OFFS                                                               (0xd48)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_RMSK                                                                     0x1f
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_POR                                                                0x00000000
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_POR_RMSK                                                           0xffffffff
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ATTR                                                                            0x1
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_IN(x)            \
+                in_dword(HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x))
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDR(x), m)
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ENTIRE_CACHE_BLOCKED_BMSK                                                0x10
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ENTIRE_CACHE_BLOCKED_SHFT                                                   4
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDRESS_VALID_BMSK                                                        0xf
+#define HWIO_REO_R0_QUEUE_DESC_BLOCK_INFO_ADDRESS_VALID_SHFT                                                          0
+
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x)                                                                 ((x) + 0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_PHYS(x)                                                                 ((x) + 0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OFFS                                                                    (0xd74)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_RMSK                                                                    0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_POR                                                                     0x008609ff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ATTR                                                                                 0x3
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONFIG_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONFIG_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_BMSK                                                     0xff000000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_SHFT                                                             24
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_BMSK                                                   0x800000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_SHFT                                                         23
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_BMSK                                                    0x400000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_SHFT                                                          22
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_BMSK                                                     0x200000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_SHFT                                                           21
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_BMSK                                                       0x100000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_SHFT                                                             20
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_SECURITY_BMSK                                                         0x80000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_READ_SECURITY_SHFT                                                              19
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_BMSK                                                   0x40000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_SHFT                                                        18
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_BMSK                                               0x20000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_SHFT                                                    17
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_BMSK                                                 0x1fe00
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_SHFT                                                       9
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_BMSK                                                      0x1ff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_SHFT                                                          0
+
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x)                                                                ((x) + 0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_PHYS(x)                                                                ((x) + 0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OFFS                                                                   (0xd78)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_RMSK                                                                          0x3
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_POR                                                                    0x00000000
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_ATTR                                                                                0x3
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONTROL_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONTROL_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_BMSK                                   0x2
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_SHFT                                     1
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_CACHE_RESET_BMSK                                                              0x1
+#define HWIO_REO_R0_CACHE_CTL_CONTROL_CACHE_RESET_SHFT                                                                0
+
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x)                                                             ((x) + 0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_PHYS(x)                                                             ((x) + 0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OFFS                                                                (0xd7c)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_RMSK                                                                 0x1ffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_POR                                                                 0x00000000
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ATTR                                                                             0x3
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_CONFIG_SET_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_CONFIG_SET_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_BMSK                                                      0x1ffffff
+#define HWIO_REO_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_SHFT                                                              0
+
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x)                                                               ((x) + 0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_PHYS(x)                                                               ((x) + 0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OFFS                                                                  (0xd80)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_RMSK                                                                       0x3ff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_POR                                                                   0x000000f0
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_ATTR                                                                               0x3
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_SET_SIZE_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_SET_SIZE_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_BMSK                                                             0x3ff
+#define HWIO_REO_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_SHFT                                                                 0
+
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x)                                                           ((x) + 0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_PHYS(x)                                                           ((x) + 0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OFFS                                                              (0xd84)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_RMSK                                                                     0x7
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_POR                                                               0x00000002
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ATTR                                                                           0x3
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_IN(x)            \
+                in_dword(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x))
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x), m)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),v)
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),m,v,HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_IN(x))
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_BMSK                                                               0x4
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_SHFT                                                                 2
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_BMSK                                                        0x3
+#define HWIO_REO_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_SHFT                                                          0
+
+#define HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x)                                                                    ((x) + 0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_PHYS(x)                                                                    ((x) + 0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OFFS                                                                       (0xd88)
+#define HWIO_REO_R0_CLK_GATE_CTRL_RMSK                                                                          0x7ffff
+#define HWIO_REO_R0_CLK_GATE_CTRL_POR                                                                        0x00000400
+#define HWIO_REO_R0_CLK_GATE_CTRL_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R0_CLK_GATE_CTRL_ATTR                                                                                    0x3
+#define HWIO_REO_R0_CLK_GATE_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x))
+#define HWIO_REO_R0_CLK_GATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x), m)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x),v)
+#define HWIO_REO_R0_CLK_GATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_CLK_GATE_CTRL_ADDR(x),m,v,HWIO_REO_R0_CLK_GATE_CTRL_IN(x))
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_7_BMSK                                                                0x40000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_7_SHFT                                                                     18
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_6_BMSK                                                                0x20000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_6_SHFT                                                                     17
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_5_BMSK                                                                0x10000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_5_SHFT                                                                     16
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_4_BMSK                                                                 0x8000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_4_SHFT                                                                     15
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_3_BMSK                                                                 0x4000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_3_SHFT                                                                     14
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_2_BMSK                                                                 0x2000
+#define HWIO_REO_R0_CLK_GATE_CTRL_RESERVE_2_SHFT                                                                     13
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_P_BMSK                                                0x1000
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_P_SHFT                                                    12
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_C_BMSK                                                 0x800
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SRNG_C_SHFT                                                    11
+#define HWIO_REO_R0_CLK_GATE_CTRL_CLOCK_ENS_EXTEND_BMSK                                                           0x400
+#define HWIO_REO_R0_CLK_GATE_CTRL_CLOCK_ENS_EXTEND_SHFT                                                              10
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_BMSK                                                        0x3ff
+#define HWIO_REO_R0_CLK_GATE_CTRL_REO_CLKGATE_DISABLE_SHFT                                                            0
+
+#define HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x)                                                                   ((x) + 0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_PHYS(x)                                                                   ((x) + 0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OFFS                                                                      (0xd8c)
+#define HWIO_REO_R0_EVENTMASK_IX_0_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_POR                                                                       0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_0_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_ATTR                                                                                   0x3
+#define HWIO_REO_R0_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_0_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_0_MASK_BMSK                                                                 0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_0_MASK_SHFT                                                                          0
+
+#define HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x)                                                                   ((x) + 0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_PHYS(x)                                                                   ((x) + 0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OFFS                                                                      (0xd90)
+#define HWIO_REO_R0_EVENTMASK_IX_1_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_POR                                                                       0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_ATTR                                                                                   0x3
+#define HWIO_REO_R0_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_1_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_1_MASK_BMSK                                                                 0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_1_MASK_SHFT                                                                          0
+
+#define HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x)                                                                   ((x) + 0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_PHYS(x)                                                                   ((x) + 0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OFFS                                                                      (0xd94)
+#define HWIO_REO_R0_EVENTMASK_IX_2_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_POR                                                                       0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_2_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_ATTR                                                                                   0x3
+#define HWIO_REO_R0_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_2_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_2_MASK_BMSK                                                                 0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_2_MASK_SHFT                                                                          0
+
+#define HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x)                                                                   ((x) + 0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_PHYS(x)                                                                   ((x) + 0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OFFS                                                                      (0xd98)
+#define HWIO_REO_R0_EVENTMASK_IX_3_RMSK                                                                      0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_POR                                                                       0x00000000
+#define HWIO_REO_R0_EVENTMASK_IX_3_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_ATTR                                                                                   0x3
+#define HWIO_REO_R0_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_REO_R0_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_REO_R0_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R0_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_REO_R0_EVENTMASK_IX_3_IN(x))
+#define HWIO_REO_R0_EVENTMASK_IX_3_MASK_BMSK                                                                 0xffffffff
+#define HWIO_REO_R0_EVENTMASK_IX_3_MASK_SHFT                                                                          0
+
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x)                                                                  ((x) + 0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_PHYS(x)                                                                  ((x) + 0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OFFS                                                                     (0x2000)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_POR                                                                      0x100771f0
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_ATTR                                                                                  0x3
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x))
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_MISC_DEBUG_CTRL_ADDR(x),m,v,HWIO_REO_R1_MISC_DEBUG_CTRL_IN(x))
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_DISABLE_SW_EXCEPTION_BMSK                                                0x80000000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_DISABLE_SW_EXCEPTION_SHFT                                                        31
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IDLE_REQ_BMSK                                                            0x40000000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_IDLE_REQ_SHFT                                                                    30
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_RESUME_THRESH_BMSK                                              0x3ff00000
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_RESUME_THRESH_SHFT                                                      20
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_STOP_THRESH_BMSK                                                   0xffc00
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_STOP_THRESH_SHFT                                                        10
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_START_THRESH_BMSK                                                    0x3ff
+#define HWIO_REO_R1_MISC_DEBUG_CTRL_CMD_FIFO_START_THRESH_SHFT                                                        0
+
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x)                                                             ((x) + 0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PHYS(x)                                                             ((x) + 0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OFFS                                                                (0x2004)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RMSK                                                                  0xffffff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_POR                                                                 0x003ff03f
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ATTR                                                                             0x3
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x))
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_ADDR(x),m,v,HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_IN(x))
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RELEASE_RING_ACCUM_DELAY_BMSK                                         0xfff000
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_RELEASE_RING_ACCUM_DELAY_SHFT                                               12
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PROD_RING_ACCUM_DELAY_BMSK                                               0xfff
+#define HWIO_REO_R1_MISC_PERF_DEBUG_CTRL_PROD_RING_ACCUM_DELAY_SHFT                                                   0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x)                                                          ((x) + 0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_PHYS(x)                                                          ((x) + 0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OFFS                                                             (0x2008)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_RMSK                                                                 0x1fff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_POR                                                              0x00001000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_POR_RMSK                                                         0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ATTR                                                                          0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_BMSK                                              0x1000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_SHFT                                                  12
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_BMSK                                                   0x800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_SHFT                                                      11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_BMSK                                                 0x400
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_SHFT                                                    10
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_BMSK                                                    0x3ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_SHFT                                                        0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x)                                                        ((x) + 0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_PHYS(x)                                                        ((x) + 0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OFFS                                                           (0x200c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_RMSK                                                           0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR                                                            0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ATTR                                                                        0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_BMSK                                           0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_SHFT                                                    0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x)                                                       ((x) + 0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_PHYS(x)                                                       ((x) + 0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OFFS                                                          (0x2010)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_RMSK                                                            0xffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR                                                           0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ATTR                                                                       0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_BMSK                                           0xffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_SHFT                                                  0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x)                                                    ((x) + 0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_PHYS(x)                                                    ((x) + 0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OFFS                                                       (0x2014)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_RMSK                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR                                                        0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ATTR                                                                    0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_BMSK                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_SHFT                                                      0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x)                                                   ((x) + 0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_PHYS(x)                                                   ((x) + 0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OFFS                                                      (0x2018)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_RMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR                                                       0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR_RMSK                                                  0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ATTR                                                                   0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_BMSK                                            0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_SHFT                                                     0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x)                                                              ((x) + 0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_PHYS(x)                                                              ((x) + 0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_OFFS                                                                 (0x201c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_RMSK                                                                  0x1ffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_POR                                                                  0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ATTR                                                                              0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_STM_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_STATE_BMSK                                                            0x1ffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_STM_STATE_SHFT                                                                    0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x)                                                        ((x) + 0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_PHYS(x)                                                        ((x) + 0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_OFFS                                                           (0x2020)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_RMSK                                                             0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_POR                                                            0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_POR_RMSK                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ATTR                                                                        0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_BMSK                                                    0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_SHFT                                                          11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_BMSK                                                       0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_SHFT                                                           0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x)                                                       ((x) + 0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_PHYS(x)                                                       ((x) + 0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_OFFS                                                          (0x2024)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_RMSK                                                            0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR                                                           0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ATTR                                                                       0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_BMSK                                                  0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_SHFT                                                        11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_BMSK                                                     0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_SHFT                                                         0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x)                                                       ((x) + 0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_PHYS(x)                                                       ((x) + 0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_OFFS                                                          (0x2028)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_RMSK                                                            0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR                                                           0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ATTR                                                                       0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_BMSK                                              0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_SHFT                                                    11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_BMSK                                                 0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_SHFT                                                     0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x)                                                       ((x) + 0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_PHYS(x)                                                       ((x) + 0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_OFFS                                                          (0x202c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_RMSK                                                            0x3fffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR                                                           0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR_RMSK                                                      0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ATTR                                                                       0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_BMSK                                             0x3ff800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_SHFT                                                   11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_BMSK                                                0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_SHFT                                                    0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x)                                                  ((x) + 0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_PHYS(x)                                                  ((x) + 0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_OFFS                                                     (0x2030)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_RMSK                                                     0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR                                                      0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ATTR                                                                  0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_BMSK                                               0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_SHFT                                                        0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x)                                                 ((x) + 0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_PHYS(x)                                                 ((x) + 0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_OFFS                                                    (0x2034)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_RMSK                                                    0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR                                                     0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR_RMSK                                                0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ATTR                                                                 0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_BMSK                                              0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_SHFT                                                       0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x)                                               ((x) + 0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_PHYS(x)                                               ((x) + 0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_OFFS                                                  (0x2038)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_RMSK                                                     0xfffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR                                                   0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ATTR                                                               0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_BMSK                                                0xffc00
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_SHFT                                                     10
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_BMSK                                                  0x3ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_SHFT                                                      0
+
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x)                                                      ((x) + 0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_PHYS(x)                                                      ((x) + 0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OFFS                                                         (0x203c)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_RMSK                                                                0x1
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_POR                                                          0x00000000
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ATTR                                                                      0x3
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                         0x1
+#define HWIO_REO_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                           0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x)                                                    ((x) + 0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_PHYS(x)                                                    ((x) + 0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OFFS                                                       (0x2040)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_RMSK                                                            0x7ff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR                                                        0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ATTR                                                                    0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_BMSK                                                     0x7f8
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_SHFT                                                         3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_BMSK                                     0x4
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_SHFT                                       2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_BMSK                                           0x2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_SHFT                                             1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_BMSK                                                    0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_SHFT                                                      0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x)                                                    ((x) + 0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_PHYS(x)                                                    ((x) + 0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OFFS                                                       (0x2044)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_RMSK                                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR                                                        0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ATTR                                                                    0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_BMSK                                       0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_SHFT                                                0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x)                                                    ((x) + 0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_PHYS(x)                                                    ((x) + 0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OFFS                                                       (0x2048)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_RMSK                                                             0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR                                                        0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR_RMSK                                                   0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ATTR                                                                    0x3
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),v)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),m,v,HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_BMSK                                            0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_SHFT                                               0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x)                                                     ((x) + 0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_PHYS(x)                                                     ((x) + 0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_OFFS                                                        (0x204c)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_RMSK                                                        0x3fffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR                                                         0x00000001
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ATTR                                                                     0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_BMSK                                                 0x3fc00000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_SHFT                                                         22
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_BMSK                                              0x3ff000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_SHFT                                                    12
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_BMSK                                     0x800
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_SHFT                                        11
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_BMSK                                          0x600
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_SHFT                                              9
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_BMSK                                      0x1e0
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_SHFT                                          5
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_BMSK                                       0x1c
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_SHFT                                          2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_BMSK                                              0x2
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_SHFT                                                1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_BMSK                                                    0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_SHFT                                                      0
+
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x)                                                      ((x) + 0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_PHYS(x)                                                      ((x) + 0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_OFFS                                                         (0x2050)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_RMSK                                                               0xff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR                                                          0x00000000
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR_RMSK                                                     0xffffffff
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ATTR                                                                      0x1
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x))
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_BMSK                                                      0xf0
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_SHFT                                                         4
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_BMSK                                                       0xf
+#define HWIO_REO_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_SHFT                                                         0
+
+#define HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x)                                                                ((x) + 0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_PHYS(x)                                                                ((x) + 0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OFFS                                                                   (0x2054)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_RMSK                                                                          0x1
+#define HWIO_REO_R1_END_OF_TEST_CHECK_POR                                                                    0x00000000
+#define HWIO_REO_R1_END_OF_TEST_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R1_END_OF_TEST_CHECK_ATTR                                                                                0x3
+#define HWIO_REO_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_REO_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_REO_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_REO_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_REO_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                   0x1
+#define HWIO_REO_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                     0
+
+#define HWIO_REO_R1_SM_ALL_IDLE_ADDR(x)                                                                      ((x) + 0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_PHYS(x)                                                                      ((x) + 0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_OFFS                                                                         (0x2058)
+#define HWIO_REO_R1_SM_ALL_IDLE_RMSK                                                                                0x7
+#define HWIO_REO_R1_SM_ALL_IDLE_POR                                                                          0x00000001
+#define HWIO_REO_R1_SM_ALL_IDLE_POR_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_SM_ALL_IDLE_ATTR                                                                                      0x1
+#define HWIO_REO_R1_SM_ALL_IDLE_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_ALL_IDLE_ADDR(x))
+#define HWIO_REO_R1_SM_ALL_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_ALL_IDLE_ADDR(x), m)
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_ENTRANCE_RINGS_NOT_EMPTY_BMSK                                                   0x4
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_ENTRANCE_RINGS_NOT_EMPTY_SHFT                                                     2
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_IN_IDLE_BMSK                                                                    0x2
+#define HWIO_REO_R1_SM_ALL_IDLE_REO_IN_IDLE_SHFT                                                                      1
+#define HWIO_REO_R1_SM_ALL_IDLE_ALL_STATES_IN_IDLE_BMSK                                                             0x1
+#define HWIO_REO_R1_SM_ALL_IDLE_ALL_STATES_IN_IDLE_SHFT                                                               0
+
+#define HWIO_REO_R1_TESTBUS_CTRL_ADDR(x)                                                                     ((x) + 0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_PHYS(x)                                                                     ((x) + 0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_OFFS                                                                        (0x205c)
+#define HWIO_REO_R1_TESTBUS_CTRL_RMSK                                                                              0x7f
+#define HWIO_REO_R1_TESTBUS_CTRL_POR                                                                         0x00000000
+#define HWIO_REO_R1_TESTBUS_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_REO_R1_TESTBUS_CTRL_ATTR                                                                                     0x3
+#define HWIO_REO_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_REO_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_REO_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_REO_R1_TESTBUS_CTRL_TESTBUS_SELECT_BMSK                                                               0x7f
+#define HWIO_REO_R1_TESTBUS_CTRL_TESTBUS_SELECT_SHFT                                                                  0
+
+#define HWIO_REO_R1_TESTBUS_LOWER_ADDR(x)                                                                    ((x) + 0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_PHYS(x)                                                                    ((x) + 0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_OFFS                                                                       (0x2060)
+#define HWIO_REO_R1_TESTBUS_LOWER_RMSK                                                                       0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_POR                                                                        0x00000000
+#define HWIO_REO_R1_TESTBUS_LOWER_POR_RMSK                                                                   0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_ATTR                                                                                    0x1
+#define HWIO_REO_R1_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_LOWER_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_LOWER_VALUE_BMSK                                                                 0xffffffff
+#define HWIO_REO_R1_TESTBUS_LOWER_VALUE_SHFT                                                                          0
+
+#define HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x)                                                                   ((x) + 0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_PHYS(x)                                                                   ((x) + 0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_OFFS                                                                      (0x2064)
+#define HWIO_REO_R1_TESTBUS_HIGHER_RMSK                                                                            0xff
+#define HWIO_REO_R1_TESTBUS_HIGHER_POR                                                                       0x00000000
+#define HWIO_REO_R1_TESTBUS_HIGHER_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_TESTBUS_HIGHER_ATTR                                                                                   0x1
+#define HWIO_REO_R1_TESTBUS_HIGHER_IN(x)            \
+                in_dword(HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x))
+#define HWIO_REO_R1_TESTBUS_HIGHER_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_TESTBUS_HIGHER_ADDR(x), m)
+#define HWIO_REO_R1_TESTBUS_HIGHER_VALUE_BMSK                                                                      0xff
+#define HWIO_REO_R1_TESTBUS_HIGHER_VALUE_SHFT                                                                         0
+
+#define HWIO_REO_R1_SM_STATES_IX_0_ADDR(x)                                                                   ((x) + 0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_PHYS(x)                                                                   ((x) + 0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_OFFS                                                                      (0x2068)
+#define HWIO_REO_R1_SM_STATES_IX_0_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_0_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_0_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_0_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_1_ADDR(x)                                                                   ((x) + 0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_PHYS(x)                                                                   ((x) + 0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_OFFS                                                                      (0x206c)
+#define HWIO_REO_R1_SM_STATES_IX_1_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_1_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_1_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_2_ADDR(x)                                                                   ((x) + 0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_PHYS(x)                                                                   ((x) + 0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_OFFS                                                                      (0x2070)
+#define HWIO_REO_R1_SM_STATES_IX_2_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_2_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_2_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_2_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_3_ADDR(x)                                                                   ((x) + 0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_PHYS(x)                                                                   ((x) + 0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_OFFS                                                                      (0x2074)
+#define HWIO_REO_R1_SM_STATES_IX_3_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_3_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_3_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_3_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_3_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_3_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_3_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_4_ADDR(x)                                                                   ((x) + 0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_PHYS(x)                                                                   ((x) + 0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_OFFS                                                                      (0x2078)
+#define HWIO_REO_R1_SM_STATES_IX_4_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_4_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_4_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_4_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_4_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_4_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_4_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_5_ADDR(x)                                                                   ((x) + 0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_PHYS(x)                                                                   ((x) + 0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_OFFS                                                                      (0x207c)
+#define HWIO_REO_R1_SM_STATES_IX_5_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_5_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_5_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_5_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_5_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_5_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_5_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_6_ADDR(x)                                                                   ((x) + 0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_PHYS(x)                                                                   ((x) + 0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_OFFS                                                                      (0x2080)
+#define HWIO_REO_R1_SM_STATES_IX_6_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_6_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_6_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_6_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_6_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_6_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_6_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_7_ADDR(x)                                                                   ((x) + 0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_PHYS(x)                                                                   ((x) + 0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_OFFS                                                                      (0x2084)
+#define HWIO_REO_R1_SM_STATES_IX_7_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_7_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_7_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_7_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_7_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_7_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_7_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_8_ADDR(x)                                                                   ((x) + 0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_PHYS(x)                                                                   ((x) + 0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_OFFS                                                                      (0x2088)
+#define HWIO_REO_R1_SM_STATES_IX_8_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_8_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_8_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_8_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_8_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_8_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_8_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_9_ADDR(x)                                                                   ((x) + 0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_PHYS(x)                                                                   ((x) + 0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_OFFS                                                                      (0x208c)
+#define HWIO_REO_R1_SM_STATES_IX_9_RMSK                                                                      0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_POR                                                                       0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_9_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_ATTR                                                                                   0x1
+#define HWIO_REO_R1_SM_STATES_IX_9_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_9_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_9_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_9_SM_STATE_BMSK                                                             0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_9_SM_STATE_SHFT                                                                      0
+
+#define HWIO_REO_R1_SM_STATES_IX_10_ADDR(x)                                                                  ((x) + 0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_PHYS(x)                                                                  ((x) + 0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_OFFS                                                                     (0x2090)
+#define HWIO_REO_R1_SM_STATES_IX_10_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_POR                                                                      0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_10_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_ATTR                                                                                  0x1
+#define HWIO_REO_R1_SM_STATES_IX_10_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_10_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_10_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_10_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_10_SM_STATE_BMSK                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_10_SM_STATE_SHFT                                                                     0
+
+#define HWIO_REO_R1_SM_STATES_IX_11_ADDR(x)                                                                  ((x) + 0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_PHYS(x)                                                                  ((x) + 0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_OFFS                                                                     (0x2094)
+#define HWIO_REO_R1_SM_STATES_IX_11_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_POR                                                                      0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_11_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_ATTR                                                                                  0x1
+#define HWIO_REO_R1_SM_STATES_IX_11_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_11_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_11_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_11_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_11_SM_STATE_BMSK                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_11_SM_STATE_SHFT                                                                     0
+
+#define HWIO_REO_R1_SM_STATES_IX_12_ADDR(x)                                                                  ((x) + 0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_PHYS(x)                                                                  ((x) + 0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_OFFS                                                                     (0x2098)
+#define HWIO_REO_R1_SM_STATES_IX_12_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_POR                                                                      0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_12_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_ATTR                                                                                  0x1
+#define HWIO_REO_R1_SM_STATES_IX_12_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_12_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_12_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_12_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_12_SM_STATE_BMSK                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_12_SM_STATE_SHFT                                                                     0
+
+#define HWIO_REO_R1_SM_STATES_IX_13_ADDR(x)                                                                  ((x) + 0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_PHYS(x)                                                                  ((x) + 0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_OFFS                                                                     (0x209c)
+#define HWIO_REO_R1_SM_STATES_IX_13_RMSK                                                                     0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_POR                                                                      0x00000000
+#define HWIO_REO_R1_SM_STATES_IX_13_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_ATTR                                                                                  0x1
+#define HWIO_REO_R1_SM_STATES_IX_13_IN(x)            \
+                in_dword(HWIO_REO_R1_SM_STATES_IX_13_ADDR(x))
+#define HWIO_REO_R1_SM_STATES_IX_13_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_SM_STATES_IX_13_ADDR(x), m)
+#define HWIO_REO_R1_SM_STATES_IX_13_SM_STATE_BMSK                                                            0xffffffff
+#define HWIO_REO_R1_SM_STATES_IX_13_SM_STATE_SHFT                                                                     0
+
+#define HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x)                                                                 ((x) + 0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_PHYS(x)                                                                 ((x) + 0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_OFFS                                                                    (0x20a0)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_RMSK                                                                    0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_POR                                                                     0x00000000
+#define HWIO_REO_R1_IDLE_STATES_IX_0_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_ATTR                                                                                 0x1
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x))
+#define HWIO_REO_R1_IDLE_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_IDLE_STATES_IX_0_ADDR(x), m)
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IDLE_STATE_BMSK                                                         0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_0_IDLE_STATE_SHFT                                                                  0
+
+#define HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x)                                                                 ((x) + 0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_PHYS(x)                                                                 ((x) + 0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_OFFS                                                                    (0x20a4)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_RMSK                                                                    0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_POR                                                                     0x00000000
+#define HWIO_REO_R1_IDLE_STATES_IX_1_POR_RMSK                                                                0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_ATTR                                                                                 0x1
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x))
+#define HWIO_REO_R1_IDLE_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_IDLE_STATES_IX_1_ADDR(x), m)
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IDLE_STATE_BMSK                                                         0xffffffff
+#define HWIO_REO_R1_IDLE_STATES_IX_1_IDLE_STATE_SHFT                                                                  0
+
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x)                                                                ((x) + 0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_PHYS(x)                                                                ((x) + 0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_OFFS                                                                   (0x20a8)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_RMSK                                                                         0x3f
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_POR                                                                    0x00000000
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_ATTR                                                                                0x1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_IN(x)            \
+                in_dword(HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x))
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_MISC_DEBUG_STATUS_ADDR(x), m)
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_2_BMSK                                               0x20
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_2_SHFT                                                  5
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_2_BMSK                                                         0x10
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_2_SHFT                                                            4
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_2_BMSK                                                      0x8
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_2_SHFT                                                        3
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_BMSK                                                  0x4
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_BUF_COUNT_EXCEEDED_FLAG_SHFT                                                    2
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_BMSK                                                            0x2
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_FIFO_FULL_SHFT                                                              1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_BMSK                                                        0x1
+#define HWIO_REO_R1_MISC_DEBUG_STATUS_TMP_CMD_FIFO_FULL_SHFT                                                          0
+
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x)                                            ((x) + 0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_PHYS(x)                                            ((x) + 0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OFFS                                               (0x20ac)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_RMSK                                               0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_POR                                                0x00000000
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_POR_RMSK                                           0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ATTR                                                            0x3
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_IN(x)            \
+                in_dword(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x))
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x), m)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x),v)
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_ADDR(x),m,v,HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_IN(x))
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_COUNT_BMSK                                         0xffffffff
+#define HWIO_REO_R1_DEBUG_COUNTER_MSDU_BUF_COUNT_EXCEEDED_COUNT_SHFT                                                  0
+
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x)                                                               ((x) + 0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_PHYS(x)                                                               ((x) + 0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OFFS                                                                  (0x20b0)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_RMSK                                                                     0x7ffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_POR                                                                   0x00000000
+#define HWIO_REO_R1_INVALID_APB_ACCESS_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ATTR                                                                               0x3
+#define HWIO_REO_R1_INVALID_APB_ACCESS_IN(x)            \
+                in_dword(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x))
+#define HWIO_REO_R1_INVALID_APB_ACCESS_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x), m)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OUT(x, v)            \
+                out_dword(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x),v)
+#define HWIO_REO_R1_INVALID_APB_ACCESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R1_INVALID_APB_ACCESS_ADDR(x),m,v,HWIO_REO_R1_INVALID_APB_ACCESS_IN(x))
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_TYPE_BMSK                                                            0x60000
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_TYPE_SHFT                                                                 17
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_ADDR_BMSK                                                            0x1ffff
+#define HWIO_REO_R1_INVALID_APB_ACCESS_ERR_ADDR_SHFT                                                                  0
+
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x)                                                               ((x) + 0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_PHYS(x)                                                               ((x) + 0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OFFS                                                                  (0x3000)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_RMSK                                                                      0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_POR                                                                   0x00000000
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_ATTR                                                                               0x3
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO0_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO0_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_HEAD_PTR_BMSK                                                             0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_HP_HEAD_PTR_SHFT                                                                  0
+
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x)                                                               ((x) + 0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_PHYS(x)                                                               ((x) + 0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OFFS                                                                  (0x3004)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_RMSK                                                                      0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_POR                                                                   0x00000000
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_ATTR                                                                               0x3
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO0_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO0_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_TAIL_PTR_BMSK                                                             0xffff
+#define HWIO_REO_R2_RXDMA2REO0_RING_TP_TAIL_PTR_SHFT                                                                  0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x)                                                           ((x) + 0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_PHYS(x)                                                           ((x) + 0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OFFS                                                              (0x3008)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_RMSK                                                                  0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_POR                                                               0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ATTR                                                                           0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_HEAD_PTR_BMSK                                                         0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x)                                                           ((x) + 0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_PHYS(x)                                                           ((x) + 0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OFFS                                                              (0x300c)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_RMSK                                                                  0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_POR                                                               0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ATTR                                                                           0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_TAIL_PTR_BMSK                                                         0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO1_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x)                                                           ((x) + 0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_PHYS(x)                                                           ((x) + 0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OFFS                                                              (0x3010)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_RMSK                                                                  0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_POR                                                               0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ATTR                                                                           0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_HEAD_PTR_BMSK                                                         0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x)                                                           ((x) + 0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_PHYS(x)                                                           ((x) + 0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OFFS                                                              (0x3014)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_RMSK                                                                  0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_POR                                                               0x00000000
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ATTR                                                                           0x3
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_ADDR(x),m,v,HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_IN(x))
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_TAIL_PTR_BMSK                                                         0xffff
+#define HWIO_REO_R2_RXDMA2REO_MLO2_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x)                                                             ((x) + 0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_PHYS(x)                                                             ((x) + 0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OFFS                                                                (0x3018)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_RMSK                                                                    0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_POR                                                                 0x00000000
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_ATTR                                                                             0x3
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_WBM2REO_LINK_RING_HP_ADDR(x),m,v,HWIO_REO_R2_WBM2REO_LINK_RING_HP_IN(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_BMSK                                                           0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x)                                                             ((x) + 0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_PHYS(x)                                                             ((x) + 0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OFFS                                                                (0x301c)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_RMSK                                                                    0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_POR                                                                 0x00000000
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_ATTR                                                                             0x3
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_WBM2REO_LINK_RING_TP_ADDR(x),m,v,HWIO_REO_R2_WBM2REO_LINK_RING_TP_IN(x))
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_BMSK                                                           0xffff
+#define HWIO_REO_R2_WBM2REO_LINK_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x)                                                                  ((x) + 0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_PHYS(x)                                                                  ((x) + 0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OFFS                                                                     (0x3020)
+#define HWIO_REO_R2_REO_CMD_RING_HP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO_CMD_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO_CMD_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_CMD_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_CMD_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_CMD_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_CMD_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_CMD_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_REO_CMD_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x)                                                                  ((x) + 0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_PHYS(x)                                                                  ((x) + 0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OFFS                                                                     (0x3024)
+#define HWIO_REO_R2_REO_CMD_RING_TP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO_CMD_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO_CMD_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_CMD_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_CMD_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_CMD_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_CMD_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_CMD_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_REO_CMD_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO_RING_HP_ADDR(x)                                                                   ((x) + 0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_PHYS(x)                                                                   ((x) + 0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_OFFS                                                                      (0x3028)
+#define HWIO_REO_R2_SW2REO_RING_HP_RMSK                                                                          0xffff
+#define HWIO_REO_R2_SW2REO_RING_HP_POR                                                                       0x00000000
+#define HWIO_REO_R2_SW2REO_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R2_SW2REO_RING_HP_ATTR                                                                                   0x3
+#define HWIO_REO_R2_SW2REO_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_REO_R2_SW2REO_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_REO_R2_SW2REO_RING_TP_ADDR(x)                                                                   ((x) + 0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_PHYS(x)                                                                   ((x) + 0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_OFFS                                                                      (0x302c)
+#define HWIO_REO_R2_SW2REO_RING_TP_RMSK                                                                          0xffff
+#define HWIO_REO_R2_SW2REO_RING_TP_POR                                                                       0x00000000
+#define HWIO_REO_R2_SW2REO_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R2_SW2REO_RING_TP_ATTR                                                                                   0x3
+#define HWIO_REO_R2_SW2REO_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_REO_R2_SW2REO_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+#define HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x)                                                                  ((x) + 0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_PHYS(x)                                                                  ((x) + 0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OFFS                                                                     (0x3030)
+#define HWIO_REO_R2_SW2REO1_RING_HP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO1_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO1_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x)                                                                  ((x) + 0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_PHYS(x)                                                                  ((x) + 0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OFFS                                                                     (0x3034)
+#define HWIO_REO_R2_SW2REO1_RING_TP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO1_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO1_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO2_RING_HP_ADDR(x)                                                                  ((x) + 0x3038)
+#define HWIO_REO_R2_SW2REO2_RING_HP_PHYS(x)                                                                  ((x) + 0x3038)
+#define HWIO_REO_R2_SW2REO2_RING_HP_OFFS                                                                     (0x3038)
+#define HWIO_REO_R2_SW2REO2_RING_HP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO2_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO2_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO2_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO2_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO2_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO2_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO2_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO2_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO2_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO2_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO2_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO2_RING_TP_ADDR(x)                                                                  ((x) + 0x303c)
+#define HWIO_REO_R2_SW2REO2_RING_TP_PHYS(x)                                                                  ((x) + 0x303c)
+#define HWIO_REO_R2_SW2REO2_RING_TP_OFFS                                                                     (0x303c)
+#define HWIO_REO_R2_SW2REO2_RING_TP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO2_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO2_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO2_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO2_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO2_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO2_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO2_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO2_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO2_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO2_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO2_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO3_RING_HP_ADDR(x)                                                                  ((x) + 0x3040)
+#define HWIO_REO_R2_SW2REO3_RING_HP_PHYS(x)                                                                  ((x) + 0x3040)
+#define HWIO_REO_R2_SW2REO3_RING_HP_OFFS                                                                     (0x3040)
+#define HWIO_REO_R2_SW2REO3_RING_HP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO3_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO3_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO3_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO3_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO3_RING_HP_ADDR(x))
+#define HWIO_REO_R2_SW2REO3_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO3_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO3_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO3_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO3_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO3_RING_HP_ADDR(x),m,v,HWIO_REO_R2_SW2REO3_RING_HP_IN(x))
+#define HWIO_REO_R2_SW2REO3_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO3_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_SW2REO3_RING_TP_ADDR(x)                                                                  ((x) + 0x3044)
+#define HWIO_REO_R2_SW2REO3_RING_TP_PHYS(x)                                                                  ((x) + 0x3044)
+#define HWIO_REO_R2_SW2REO3_RING_TP_OFFS                                                                     (0x3044)
+#define HWIO_REO_R2_SW2REO3_RING_TP_RMSK                                                                         0xffff
+#define HWIO_REO_R2_SW2REO3_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_SW2REO3_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_SW2REO3_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_SW2REO3_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_SW2REO3_RING_TP_ADDR(x))
+#define HWIO_REO_R2_SW2REO3_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_SW2REO3_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_SW2REO3_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_SW2REO3_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_SW2REO3_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_SW2REO3_RING_TP_ADDR(x),m,v,HWIO_REO_R2_SW2REO3_RING_TP_IN(x))
+#define HWIO_REO_R2_SW2REO3_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_REO_R2_SW2REO3_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x)                                                                  ((x) + 0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_PHYS(x)                                                                  ((x) + 0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OFFS                                                                     (0x3048)
+#define HWIO_REO_R2_REO2SW1_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW1_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW1_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW1_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW1_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x)                                                                  ((x) + 0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_PHYS(x)                                                                  ((x) + 0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OFFS                                                                     (0x304c)
+#define HWIO_REO_R2_REO2SW1_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW1_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW1_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW1_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW1_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x)                                                                  ((x) + 0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_PHYS(x)                                                                  ((x) + 0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OFFS                                                                     (0x3050)
+#define HWIO_REO_R2_REO2SW2_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW2_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW2_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW2_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW2_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW2_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x)                                                                  ((x) + 0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_PHYS(x)                                                                  ((x) + 0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OFFS                                                                     (0x3054)
+#define HWIO_REO_R2_REO2SW2_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW2_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW2_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW2_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW2_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW2_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW2_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x)                                                                  ((x) + 0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_PHYS(x)                                                                  ((x) + 0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OFFS                                                                     (0x3058)
+#define HWIO_REO_R2_REO2SW3_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW3_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW3_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW3_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW3_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW3_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW3_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW3_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x)                                                                  ((x) + 0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_PHYS(x)                                                                  ((x) + 0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OFFS                                                                     (0x305c)
+#define HWIO_REO_R2_REO2SW3_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW3_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW3_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW3_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW3_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW3_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW3_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW3_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW3_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x)                                                                  ((x) + 0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_PHYS(x)                                                                  ((x) + 0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OFFS                                                                     (0x3060)
+#define HWIO_REO_R2_REO2SW4_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW4_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW4_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW4_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW4_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW4_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW4_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW4_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x)                                                                  ((x) + 0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_PHYS(x)                                                                  ((x) + 0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OFFS                                                                     (0x3064)
+#define HWIO_REO_R2_REO2SW4_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW4_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW4_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW4_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW4_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW4_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW4_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW4_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW4_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x)                                                                  ((x) + 0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_PHYS(x)                                                                  ((x) + 0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OFFS                                                                     (0x3068)
+#define HWIO_REO_R2_REO2SW5_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW5_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW5_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW5_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW5_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW5_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW5_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW5_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x)                                                                  ((x) + 0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_PHYS(x)                                                                  ((x) + 0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OFFS                                                                     (0x306c)
+#define HWIO_REO_R2_REO2SW5_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW5_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW5_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW5_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW5_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW5_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW5_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW5_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW5_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x)                                                                  ((x) + 0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_PHYS(x)                                                                  ((x) + 0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OFFS                                                                     (0x3070)
+#define HWIO_REO_R2_REO2SW6_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW6_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW6_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW6_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW6_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW6_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW6_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW6_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x)                                                                  ((x) + 0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_PHYS(x)                                                                  ((x) + 0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OFFS                                                                     (0x3074)
+#define HWIO_REO_R2_REO2SW6_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW6_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW6_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW6_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW6_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW6_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW6_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW6_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW6_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW7_RING_HP_ADDR(x)                                                                  ((x) + 0x3078)
+#define HWIO_REO_R2_REO2SW7_RING_HP_PHYS(x)                                                                  ((x) + 0x3078)
+#define HWIO_REO_R2_REO2SW7_RING_HP_OFFS                                                                     (0x3078)
+#define HWIO_REO_R2_REO2SW7_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW7_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW7_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW7_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW7_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW7_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW7_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW7_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW7_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW7_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW7_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW7_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW7_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW7_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW7_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW7_RING_TP_ADDR(x)                                                                  ((x) + 0x307c)
+#define HWIO_REO_R2_REO2SW7_RING_TP_PHYS(x)                                                                  ((x) + 0x307c)
+#define HWIO_REO_R2_REO2SW7_RING_TP_OFFS                                                                     (0x307c)
+#define HWIO_REO_R2_REO2SW7_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW7_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW7_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW7_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW7_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW7_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW7_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW7_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW7_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW7_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW7_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW7_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW7_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW7_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW7_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW8_RING_HP_ADDR(x)                                                                  ((x) + 0x3080)
+#define HWIO_REO_R2_REO2SW8_RING_HP_PHYS(x)                                                                  ((x) + 0x3080)
+#define HWIO_REO_R2_REO2SW8_RING_HP_OFFS                                                                     (0x3080)
+#define HWIO_REO_R2_REO2SW8_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW8_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW8_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW8_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW8_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW8_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW8_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW8_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW8_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW8_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW8_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW8_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW8_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW8_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW8_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW8_RING_TP_ADDR(x)                                                                  ((x) + 0x3084)
+#define HWIO_REO_R2_REO2SW8_RING_TP_PHYS(x)                                                                  ((x) + 0x3084)
+#define HWIO_REO_R2_REO2SW8_RING_TP_OFFS                                                                     (0x3084)
+#define HWIO_REO_R2_REO2SW8_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW8_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW8_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW8_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW8_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW8_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW8_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW8_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW8_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW8_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW8_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW8_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW8_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW8_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW8_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x)                                                                  ((x) + 0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_PHYS(x)                                                                  ((x) + 0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OFFS                                                                     (0x3088)
+#define HWIO_REO_R2_REO2SW0_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW0_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW0_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2SW0_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW0_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW0_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2SW0_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2SW0_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x)                                                                  ((x) + 0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_PHYS(x)                                                                  ((x) + 0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OFFS                                                                     (0x308c)
+#define HWIO_REO_R2_REO2SW0_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2SW0_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2SW0_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2SW0_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2SW0_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2SW0_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2SW0_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2SW0_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2SW0_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2PPE_RING_HP_ADDR(x)                                                                  ((x) + 0x3090)
+#define HWIO_REO_R2_REO2PPE_RING_HP_PHYS(x)                                                                  ((x) + 0x3090)
+#define HWIO_REO_R2_REO2PPE_RING_HP_OFFS                                                                     (0x3090)
+#define HWIO_REO_R2_REO2PPE_RING_HP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2PPE_RING_HP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2PPE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2PPE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2PPE_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2PPE_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2PPE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2PPE_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2PPE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2PPE_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2PPE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2PPE_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2PPE_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2PPE_RING_HP_HEAD_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2PPE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2PPE_RING_TP_ADDR(x)                                                                  ((x) + 0x3094)
+#define HWIO_REO_R2_REO2PPE_RING_TP_PHYS(x)                                                                  ((x) + 0x3094)
+#define HWIO_REO_R2_REO2PPE_RING_TP_OFFS                                                                     (0x3094)
+#define HWIO_REO_R2_REO2PPE_RING_TP_RMSK                                                                        0xfffff
+#define HWIO_REO_R2_REO2PPE_RING_TP_POR                                                                      0x00000000
+#define HWIO_REO_R2_REO2PPE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_REO_R2_REO2PPE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_REO_R2_REO2PPE_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2PPE_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2PPE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2PPE_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2PPE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2PPE_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2PPE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2PPE_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2PPE_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2PPE_RING_TP_TAIL_PTR_BMSK                                                               0xfffff
+#define HWIO_REO_R2_REO2PPE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_REO_R2_REO2FW_RING_HP_ADDR(x)                                                                   ((x) + 0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_PHYS(x)                                                                   ((x) + 0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_OFFS                                                                      (0x3098)
+#define HWIO_REO_R2_REO2FW_RING_HP_RMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2FW_RING_HP_POR                                                                       0x00000000
+#define HWIO_REO_R2_REO2FW_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R2_REO2FW_RING_HP_ATTR                                                                                   0x3
+#define HWIO_REO_R2_REO2FW_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO2FW_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO2FW_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO2FW_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2FW_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO2FW_RING_HP_IN(x))
+#define HWIO_REO_R2_REO2FW_RING_HP_HEAD_PTR_BMSK                                                                0xfffff
+#define HWIO_REO_R2_REO2FW_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_REO_R2_REO2FW_RING_TP_ADDR(x)                                                                   ((x) + 0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_PHYS(x)                                                                   ((x) + 0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_OFFS                                                                      (0x309c)
+#define HWIO_REO_R2_REO2FW_RING_TP_RMSK                                                                         0xfffff
+#define HWIO_REO_R2_REO2FW_RING_TP_POR                                                                       0x00000000
+#define HWIO_REO_R2_REO2FW_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_REO_R2_REO2FW_RING_TP_ATTR                                                                                   0x3
+#define HWIO_REO_R2_REO2FW_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO2FW_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO2FW_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO2FW_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO2FW_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO2FW_RING_TP_IN(x))
+#define HWIO_REO_R2_REO2FW_RING_TP_TAIL_PTR_BMSK                                                                0xfffff
+#define HWIO_REO_R2_REO2FW_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x)                                                              ((x) + 0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_PHYS(x)                                                              ((x) + 0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OFFS                                                                 (0x30a0)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_RMSK                                                                     0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_POR                                                                  0x00000000
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_ATTR                                                                              0x3
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_RELEASE_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_RELEASE_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_HEAD_PTR_BMSK                                                            0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                 0
+
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x)                                                              ((x) + 0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_PHYS(x)                                                              ((x) + 0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OFFS                                                                 (0x30a4)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_RMSK                                                                     0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_POR                                                                  0x00000000
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_POR_RMSK                                                             0xffffffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_ATTR                                                                              0x3
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_RELEASE_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_RELEASE_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_TAIL_PTR_BMSK                                                            0xffff
+#define HWIO_REO_R2_REO_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                 0
+
+#define HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x)                                                               ((x) + 0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_PHYS(x)                                                               ((x) + 0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OFFS                                                                  (0x30a8)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_RMSK                                                                      0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_POR                                                                   0x00000000
+#define HWIO_REO_R2_REO_STATUS_RING_HP_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_ATTR                                                                               0x3
+#define HWIO_REO_R2_REO_STATUS_RING_HP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x))
+#define HWIO_REO_R2_REO_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_REO_R2_REO_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_STATUS_RING_HP_ADDR(x),m,v,HWIO_REO_R2_REO_STATUS_RING_HP_IN(x))
+#define HWIO_REO_R2_REO_STATUS_RING_HP_HEAD_PTR_BMSK                                                             0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_HP_HEAD_PTR_SHFT                                                                  0
+
+#define HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x)                                                               ((x) + 0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_PHYS(x)                                                               ((x) + 0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OFFS                                                                  (0x30ac)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_RMSK                                                                      0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_POR                                                                   0x00000000
+#define HWIO_REO_R2_REO_STATUS_RING_TP_POR_RMSK                                                              0xffffffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_ATTR                                                                               0x3
+#define HWIO_REO_R2_REO_STATUS_RING_TP_IN(x)            \
+                in_dword(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x))
+#define HWIO_REO_R2_REO_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_REO_R2_REO_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_REO_R2_REO_STATUS_RING_TP_ADDR(x),m,v,HWIO_REO_R2_REO_STATUS_RING_TP_IN(x))
+#define HWIO_REO_R2_REO_STATUS_RING_TP_TAIL_PTR_BMSK                                                             0xffff
+#define HWIO_REO_R2_REO_STATUS_RING_TP_TAIL_PTR_SHFT                                                                  0
+
+ 
+
+#define TQM_REG_REG_BASE                                                                                         (UMAC_BASE      + 0x0003c000)
+#define TQM_REG_REG_BASE_SIZE                                                                                    0x4000
+#define TQM_REG_REG_BASE_USED                                                                                    0x305c
+#define TQM_REG_REG_BASE_PHYS                                                                                    (UMAC_BASE_PHYS + 0x0003c000)
+#define TQM_REG_REG_BASE_OFFS                                                                                    0x0003c000
+
+#define HWIO_TQM_R0_CONTROL_ADDR(x)                                                                              ((x) + 0x0)
+#define HWIO_TQM_R0_CONTROL_PHYS(x)                                                                              ((x) + 0x0)
+#define HWIO_TQM_R0_CONTROL_OFFS                                                                                 (0x0)
+#define HWIO_TQM_R0_CONTROL_RMSK                                                                                       0x1b
+#define HWIO_TQM_R0_CONTROL_POR                                                                                  0x00000012
+#define HWIO_TQM_R0_CONTROL_POR_RMSK                                                                             0xffffffff
+#define HWIO_TQM_R0_CONTROL_ATTR                                                                                              0x3
+#define HWIO_TQM_R0_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_CONTROL_IN(x))
+#define HWIO_TQM_R0_CONTROL_INIT_PREFETCH_BUFFER_PTRS_BMSK                                                             0x10
+#define HWIO_TQM_R0_CONTROL_INIT_PREFETCH_BUFFER_PTRS_SHFT                                                                4
+#define HWIO_TQM_R0_CONTROL_BLOCK_PREFETCH_BMSK                                                                         0x8
+#define HWIO_TQM_R0_CONTROL_BLOCK_PREFETCH_SHFT                                                                           3
+#define HWIO_TQM_R0_CONTROL_CONCURRENT_PROC_BMSK                                                                        0x2
+#define HWIO_TQM_R0_CONTROL_CONCURRENT_PROC_SHFT                                                                          1
+#define HWIO_TQM_R0_CONTROL_ENABLE_BMSK                                                                                 0x1
+#define HWIO_TQM_R0_CONTROL_ENABLE_SHFT                                                                                   0
+
+#define HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x)                                                                        ((x) + 0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_PHYS(x)                                                                        ((x) + 0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OFFS                                                                           (0x4)
+#define HWIO_TQM_R0_PAUSE_CONTROL_RMSK                                                                                  0x7
+#define HWIO_TQM_R0_PAUSE_CONTROL_POR                                                                            0x00000003
+#define HWIO_TQM_R0_PAUSE_CONTROL_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_PAUSE_CONTROL_ATTR                                                                                        0x3
+#define HWIO_TQM_R0_PAUSE_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_PAUSE_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_PAUSE_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PAUSE_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_PAUSE_CONTROL_IN(x))
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HW_ACKED_MPDU_BMSK                                                             0x4
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HW_ACKED_MPDU_SHFT                                                               2
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HWSCH_CMD_BMSK                                                                 0x2
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_HWSCH_CMD_SHFT                                                                   1
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_SW_CMD_BMSK                                                                    0x1
+#define HWIO_TQM_R0_PAUSE_CONTROL_ENABLE_SW_CMD_SHFT                                                                      0
+
+#define HWIO_TQM_R0_MISC_CONTROL_ADDR(x)                                                                         ((x) + 0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_PHYS(x)                                                                         ((x) + 0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_OFFS                                                                            (0x8)
+#define HWIO_TQM_R0_MISC_CONTROL_RMSK                                                                                 0x3ff
+#define HWIO_TQM_R0_MISC_CONTROL_POR                                                                             0x00000010
+#define HWIO_TQM_R0_MISC_CONTROL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_MISC_CONTROL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_MISC_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_MISC_CONTROL_IN(x))
+#define HWIO_TQM_R0_MISC_CONTROL_GEN_ACKED_MPDU_INFO_END_BMSK                                                         0x200
+#define HWIO_TQM_R0_MISC_CONTROL_GEN_ACKED_MPDU_INFO_END_SHFT                                                             9
+#define HWIO_TQM_R0_MISC_CONTROL_RETAIN_CACHE_BMSK                                                                    0x100
+#define HWIO_TQM_R0_MISC_CONTROL_RETAIN_CACHE_SHFT                                                                        8
+#define HWIO_TQM_R0_MISC_CONTROL_FLUSH_IDLE_COUNT_BMSK                                                                 0xff
+#define HWIO_TQM_R0_MISC_CONTROL_FLUSH_IDLE_COUNT_SHFT                                                                    0
+
+#define HWIO_TQM_R0_LINK_0_ADDR(x)                                                                               ((x) + 0xc)
+#define HWIO_TQM_R0_LINK_0_PHYS(x)                                                                               ((x) + 0xc)
+#define HWIO_TQM_R0_LINK_0_OFFS                                                                                  (0xc)
+#define HWIO_TQM_R0_LINK_0_RMSK                                                                                        0x3f
+#define HWIO_TQM_R0_LINK_0_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_0_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_0_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_0_ADDR(x))
+#define HWIO_TQM_R0_LINK_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_0_ADDR(x),m,v,HWIO_TQM_R0_LINK_0_IN(x))
+#define HWIO_TQM_R0_LINK_0_SESSION_ID_BMSK                                                                             0x3f
+#define HWIO_TQM_R0_LINK_0_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_1_ADDR(x)                                                                               ((x) + 0x10)
+#define HWIO_TQM_R0_LINK_1_PHYS(x)                                                                               ((x) + 0x10)
+#define HWIO_TQM_R0_LINK_1_OFFS                                                                                  (0x10)
+#define HWIO_TQM_R0_LINK_1_RMSK                                                                                        0x3f
+#define HWIO_TQM_R0_LINK_1_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_1_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_1_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_1_ADDR(x))
+#define HWIO_TQM_R0_LINK_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_1_ADDR(x),m,v,HWIO_TQM_R0_LINK_1_IN(x))
+#define HWIO_TQM_R0_LINK_1_SESSION_ID_BMSK                                                                             0x3f
+#define HWIO_TQM_R0_LINK_1_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_A_ADDR(x)                                                                               ((x) + 0x14)
+#define HWIO_TQM_R0_LINK_A_PHYS(x)                                                                               ((x) + 0x14)
+#define HWIO_TQM_R0_LINK_A_OFFS                                                                                  (0x14)
+#define HWIO_TQM_R0_LINK_A_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_A_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_A_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_A_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_A_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_A_ADDR(x))
+#define HWIO_TQM_R0_LINK_A_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_A_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_A_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_A_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_A_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_A_ADDR(x),m,v,HWIO_TQM_R0_LINK_A_IN(x))
+#define HWIO_TQM_R0_LINK_A_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_A_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_B_ADDR(x)                                                                               ((x) + 0x18)
+#define HWIO_TQM_R0_LINK_B_PHYS(x)                                                                               ((x) + 0x18)
+#define HWIO_TQM_R0_LINK_B_OFFS                                                                                  (0x18)
+#define HWIO_TQM_R0_LINK_B_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_B_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_B_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_B_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_B_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_B_ADDR(x))
+#define HWIO_TQM_R0_LINK_B_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_B_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_B_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_B_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_B_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_B_ADDR(x),m,v,HWIO_TQM_R0_LINK_B_IN(x))
+#define HWIO_TQM_R0_LINK_B_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_B_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_C_ADDR(x)                                                                               ((x) + 0x1c)
+#define HWIO_TQM_R0_LINK_C_PHYS(x)                                                                               ((x) + 0x1c)
+#define HWIO_TQM_R0_LINK_C_OFFS                                                                                  (0x1c)
+#define HWIO_TQM_R0_LINK_C_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_C_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_C_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_C_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_C_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_C_ADDR(x))
+#define HWIO_TQM_R0_LINK_C_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_C_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_C_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_C_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_C_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_C_ADDR(x),m,v,HWIO_TQM_R0_LINK_C_IN(x))
+#define HWIO_TQM_R0_LINK_C_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_C_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_D_ADDR(x)                                                                               ((x) + 0x20)
+#define HWIO_TQM_R0_LINK_D_PHYS(x)                                                                               ((x) + 0x20)
+#define HWIO_TQM_R0_LINK_D_OFFS                                                                                  (0x20)
+#define HWIO_TQM_R0_LINK_D_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_D_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_D_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_D_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_D_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_D_ADDR(x))
+#define HWIO_TQM_R0_LINK_D_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_D_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_D_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_D_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_D_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_D_ADDR(x),m,v,HWIO_TQM_R0_LINK_D_IN(x))
+#define HWIO_TQM_R0_LINK_D_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_D_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_E_ADDR(x)                                                                               ((x) + 0x24)
+#define HWIO_TQM_R0_LINK_E_PHYS(x)                                                                               ((x) + 0x24)
+#define HWIO_TQM_R0_LINK_E_OFFS                                                                                  (0x24)
+#define HWIO_TQM_R0_LINK_E_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_E_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_E_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_E_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_E_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_E_ADDR(x))
+#define HWIO_TQM_R0_LINK_E_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_E_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_E_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_E_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_E_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_E_ADDR(x),m,v,HWIO_TQM_R0_LINK_E_IN(x))
+#define HWIO_TQM_R0_LINK_E_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_E_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_F_ADDR(x)                                                                               ((x) + 0x28)
+#define HWIO_TQM_R0_LINK_F_PHYS(x)                                                                               ((x) + 0x28)
+#define HWIO_TQM_R0_LINK_F_OFFS                                                                                  (0x28)
+#define HWIO_TQM_R0_LINK_F_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_F_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_F_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_F_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_F_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_F_ADDR(x))
+#define HWIO_TQM_R0_LINK_F_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_F_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_F_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_F_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_F_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_F_ADDR(x),m,v,HWIO_TQM_R0_LINK_F_IN(x))
+#define HWIO_TQM_R0_LINK_F_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_F_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_LINK_G_ADDR(x)                                                                               ((x) + 0x2c)
+#define HWIO_TQM_R0_LINK_G_PHYS(x)                                                                               ((x) + 0x2c)
+#define HWIO_TQM_R0_LINK_G_OFFS                                                                                  (0x2c)
+#define HWIO_TQM_R0_LINK_G_RMSK                                                                                        0xff
+#define HWIO_TQM_R0_LINK_G_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_LINK_G_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_LINK_G_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_LINK_G_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_G_ADDR(x))
+#define HWIO_TQM_R0_LINK_G_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_G_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_G_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_G_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_G_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_G_ADDR(x),m,v,HWIO_TQM_R0_LINK_G_IN(x))
+#define HWIO_TQM_R0_LINK_G_SESSION_ID_BMSK                                                                             0xff
+#define HWIO_TQM_R0_LINK_G_SESSION_ID_SHFT                                                                                0
+
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x)                                                      ((x) + 0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_PHYS(x)                                                      ((x) + 0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OFFS                                                         (0x30)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_RMSK                                                              0x3ff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_POR                                                          0x0000000a
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ATTR                                                                      0x3
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_IN(x))
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ENABLE_PREFETCH_BMSK                                              0x200
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_ENABLE_PREFETCH_SHFT                                                  9
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_CMD_EXECUTION_TIME_VALID_BMSK                                     0x100
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_CMD_EXECUTION_TIME_VALID_SHFT                                         8
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_MAX_CMD_EXECUTION_TIME_BMSK                                        0xff
+#define HWIO_TQM_R0_UPDATE_TX_MPDU_COUNT_SM_CONTROL_MAX_CMD_EXECUTION_TIME_SHFT                                           0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OFFS                                                                   (0x34)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OFFS                                                                   (0x38)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x)                                                                      ((x) + 0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_PHYS(x)                                                                      ((x) + 0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OFFS                                                                         (0x3c)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_RMSK                                                                               0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_POR                                                                          0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ATTR                                                                                      0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_ID_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x)                                                                  ((x) + 0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_PHYS(x)                                                                  ((x) + 0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_OFFS                                                                     (0x40)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x)                                                                    ((x) + 0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_PHYS(x)                                                                    ((x) + 0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OFFS                                                                       (0x44)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_POR                                                                        0x00000080
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OFFS                                                                (0x50)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OFFS                                                                (0x54)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x64)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x68)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x6c)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x70)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x74)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x78)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OFFS                                                              (0x7c)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OFFS                                                              (0x80)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OFFS                                                                  (0x84)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                            (0xa4)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_TQM_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x)                                                                  ((x) + 0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_PHYS(x)                                                                  ((x) + 0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OFFS                                                                     (0xa8)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_RMSK                                                                     0xffff003f
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TCL2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TCL2TQM_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                            0xffff0000
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                    16
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                   0x3f
+#define HWIO_TQM_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                      0
+
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OFFS                                                                    (0xac)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OFFS                                                                    (0xb0)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_TQM_R0_FW2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x)                                                                       ((x) + 0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_PHYS(x)                                                                       ((x) + 0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OFFS                                                                          (0xb4)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_RMSK                                                                                0xff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_POR                                                                           0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_FW2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_ID_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_TQM_R0_FW2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x)                                                                   ((x) + 0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_PHYS(x)                                                                   ((x) + 0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_OFFS                                                                      (0xb8)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x)                                                                     ((x) + 0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_PHYS(x)                                                                     ((x) + 0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OFFS                                                                        (0xbc)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_POR                                                                         0x00000080
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MISC_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OFFS                                                                 (0xc8)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OFFS                                                                 (0xcc)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_FW2TQM_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0xdc)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0xe0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_OFFS                                                         (0xe4)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0xe8)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0xec)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0xf0)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OFFS                                                               (0xf4)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OFFS                                                               (0xf8)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OFFS                                                                   (0xfc)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x11c)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_TQM_R0_FW2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x)                                                                   ((x) + 0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_PHYS(x)                                                                   ((x) + 0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OFFS                                                                      (0x120)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_RMSK                                                                      0xffff003f
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_POR                                                                       0x00000000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_FW2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_FW2TQM_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                             0xffff0000
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                     16
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                    0x3f
+#define HWIO_TQM_R0_FW2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                       0
+
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x)                                                                 ((x) + 0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_PHYS(x)                                                                 ((x) + 0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OFFS                                                                    (0x124)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x)                                                                 ((x) + 0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_PHYS(x)                                                                 ((x) + 0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OFFS                                                                    (0x128)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RMSK                                                                      0xffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_SIZE_BMSK                                                            0xffff00
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_SIZE_SHFT                                                                   8
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                       0xff
+#define HWIO_TQM_R0_SW_CMD_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                          0
+
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x)                                                                       ((x) + 0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_PHYS(x)                                                                       ((x) + 0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OFFS                                                                          (0x12c)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_RMSK                                                                                0xff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_POR                                                                           0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_ID_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_SW_CMD_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_ID_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ENTRY_SIZE_BMSK                                                                     0xff
+#define HWIO_TQM_R0_SW_CMD_RING_ID_ENTRY_SIZE_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x)                                                                   ((x) + 0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_PHYS(x)                                                                   ((x) + 0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_OFFS                                                                      (0x130)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_POR                                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_ATTR                                                                                   0x1
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                              16
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_VALID_WORDS_BMSK                                                          0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_STATUS_NUM_VALID_WORDS_SHFT                                                               0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x)                                                                     ((x) + 0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_PHYS(x)                                                                     ((x) + 0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OFFS                                                                        (0x134)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RMSK                                                                          0x3fffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_POR                                                                         0x00000080
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MISC_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SPARE_CONTROL_BMSK                                                            0x3fc000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SPARE_CONTROL_SHFT                                                                  14
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE2_BMSK                                                             0x3000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE2_SHFT                                                                 12
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE1_BMSK                                                              0xf00
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_SM_STATE1_SHFT                                                                  8
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_IS_IDLE_BMSK                                                                 0x80
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_IS_IDLE_SHFT                                                                    7
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_ENABLE_BMSK                                                                  0x40
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SRNG_ENABLE_SHFT                                                                     6
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                            0x20
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                               5
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                             0x10
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                                4
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_MSI_SWAP_BIT_BMSK                                                                  0x8
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_MSI_SWAP_BIT_SHFT                                                                    3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SECURITY_BIT_BMSK                                                                  0x4
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_SECURITY_BIT_SHFT                                                                    2
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_LOOPCNT_DISABLE_BMSK                                                               0x2
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                 1
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RING_ID_DISABLE_BMSK                                                               0x1
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_RING_ID_DISABLE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x)                                                              ((x) + 0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_PHYS(x)                                                              ((x) + 0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OFFS                                                                 (0x140)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x)                                                              ((x) + 0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_PHYS(x)                                                              ((x) + 0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OFFS                                                                 (0x144)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_RMSK                                                                       0xff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_POR                                                                  0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ATTR                                                                              0x3
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_SW_CMD_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                   ((x) + 0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                   ((x) + 0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                      (0x154)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                   ((x) + 0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                   ((x) + 0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                      (0x158)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                          0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                            0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                 0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x)                                                      ((x) + 0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_PHYS(x)                                                      ((x) + 0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_OFFS                                                         (0x15c)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_POR                                                          0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ATTR                                                                      0x1
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                           0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                   16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                      0x8000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                          15
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                                0x7fff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                     0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                   ((x) + 0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                   ((x) + 0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                      (0x160)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                           0x3ff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                        0x3ff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                            0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                  ((x) + 0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                  ((x) + 0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                     (0x164)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                            0x7
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_POR                                                      0x00000003
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                       0x7
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                 ((x) + 0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                 ((x) + 0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                    (0x168)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                      0xffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                       0xff0000
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                             16
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                      0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                           0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x)                                                            ((x) + 0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_PHYS(x)                                                            ((x) + 0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OFFS                                                               (0x16c)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR_BMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x)                                                            ((x) + 0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_PHYS(x)                                                            ((x) + 0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OFFS                                                               (0x170)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_RMSK                                                                    0x1ff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                        0x100
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                            8
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR_BMSK                                                                0xff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x)                                                                ((x) + 0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_PHYS(x)                                                                ((x) + 0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OFFS                                                                   (0x174)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_VALUE_BMSK                                                             0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MSI1_DATA_VALUE_SHFT                                                                      0
+
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x)                                                          ((x) + 0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_PHYS(x)                                                          ((x) + 0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OFFS                                                             (0x194)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_RMSK                                                                 0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_POR                                                              0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ATTR                                                                          0x3
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                              0xffff
+#define HWIO_TQM_R0_SW_CMD_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                   0
+
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x)                                                                   ((x) + 0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_PHYS(x)                                                                   ((x) + 0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OFFS                                                                      (0x198)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_RMSK                                                                      0xffff003f
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_POR                                                                       0x00000000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                             0xffff0000
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                     16
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                    0x3f
+#define HWIO_TQM_R0_SW_CMD_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                       0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x)                                                                ((x) + 0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_PHYS(x)                                                                ((x) + 0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OFFS                                                                   (0x19c)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x)                                                                ((x) + 0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_PHYS(x)                                                                ((x) + 0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OFFS                                                                   (0x1a0)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RMSK                                                                     0xffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_POR                                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ATTR                                                                                0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_SIZE_BMSK                                                           0xffff00
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_SIZE_SHFT                                                                  8
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                      0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                         0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x)                                                                      ((x) + 0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_PHYS(x)                                                                      ((x) + 0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OFFS                                                                         (0x1a4)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_RMSK                                                                               0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_POR                                                                          0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ATTR                                                                                      0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_ID_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ENTRY_SIZE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_ID_ENTRY_SIZE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x)                                                                  ((x) + 0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_PHYS(x)                                                                  ((x) + 0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_OFFS                                                                     (0x1a8)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_POR                                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_ATTR                                                                                  0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                             16
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                         0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                              0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x)                                                                    ((x) + 0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_PHYS(x)                                                                    ((x) + 0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OFFS                                                                       (0x1ac)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RMSK                                                                         0x3fffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_POR                                                                        0x00000080
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SPARE_CONTROL_BMSK                                                           0x3fc000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SPARE_CONTROL_SHFT                                                                 14
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE2_BMSK                                                            0x3000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE2_SHFT                                                                12
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE1_BMSK                                                             0xf00
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_SM_STATE1_SHFT                                                                 8
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_IS_IDLE_BMSK                                                                0x80
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_IS_IDLE_SHFT                                                                   7
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_ENABLE_BMSK                                                                 0x40
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SRNG_ENABLE_SHFT                                                                    6
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                           0x20
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                              5
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                            0x10
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                               4
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_MSI_SWAP_BIT_BMSK                                                                 0x8
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_MSI_SWAP_BIT_SHFT                                                                   3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SECURITY_BIT_BMSK                                                                 0x4
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_SECURITY_BIT_SHFT                                                                   2
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                              0x2
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                                1
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RING_ID_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_RING_ID_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x)                                                             ((x) + 0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_PHYS(x)                                                             ((x) + 0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OFFS                                                                (0x1b8)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x)                                                             ((x) + 0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_PHYS(x)                                                             ((x) + 0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OFFS                                                                (0x1bc)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_RMSK                                                                      0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                  ((x) + 0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                  ((x) + 0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                     (0x1cc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                  ((x) + 0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                  ((x) + 0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                     (0x1d0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                         0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                           0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                                0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                     ((x) + 0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                     ((x) + 0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_OFFS                                                        (0x1d4)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                          0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                  16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                     0x8000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                         15
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                               0x7fff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                    0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                  ((x) + 0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                  ((x) + 0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                     (0x1d8)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                          0x3ff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_POR                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                       0x3ff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                           0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                 ((x) + 0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                 ((x) + 0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                    (0x1dc)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                           0x7
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_POR                                                     0x00000003
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                 0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                      0x7
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                        0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                                ((x) + 0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                                ((x) + 0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                   (0x1e0)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                     0xffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                      0xff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                            16
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                     0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                          0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x)                                                           ((x) + 0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_PHYS(x)                                                           ((x) + 0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OFFS                                                              (0x1e4)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x)                                                           ((x) + 0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_PHYS(x)                                                           ((x) + 0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OFFS                                                              (0x1e8)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_RMSK                                                                   0x1ff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                       0x100
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                           8
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                               0xff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x)                                                               ((x) + 0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_PHYS(x)                                                               ((x) + 0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OFFS                                                                  (0x1ec)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_POR                                                                   0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ATTR                                                                               0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_VALUE_BMSK                                                            0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MSI1_DATA_VALUE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                         ((x) + 0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                         ((x) + 0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OFFS                                                            (0x20c)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_RMSK                                                                0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_POR                                                             0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ATTR                                                                         0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                             0xffff
+#define HWIO_TQM_R0_SW_CMD1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                  0
+
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x)                                                                  ((x) + 0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_PHYS(x)                                                                  ((x) + 0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OFFS                                                                     (0x210)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_RMSK                                                                     0xffff003f
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_POR                                                                      0x00000000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SW_CMD1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_SW_CMD1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                            0xffff0000
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                    16
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                   0x3f
+#define HWIO_TQM_R0_SW_CMD1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                      0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OFFS                                                              (0x214)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OFFS                                                              (0x218)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x)                                                                 ((x) + 0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_PHYS(x)                                                                 ((x) + 0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OFFS                                                                    (0x21c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_RMSK                                                                          0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x)                                                             ((x) + 0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_PHYS(x)                                                             ((x) + 0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_OFFS                                                                (0x220)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x)                                                               ((x) + 0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_PHYS(x)                                                               ((x) + 0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OFFS                                                                  (0x224)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OFFS                                                           (0x230)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OFFS                                                           (0x234)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x244)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x248)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x24c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x250)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x254)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x258)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OFFS                                                         (0x25c)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OFFS                                                         (0x260)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OFFS                                                             (0x264)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x284)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x)                                                             ((x) + 0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_PHYS(x)                                                             ((x) + 0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OFFS                                                                (0x288)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_WBM2TQM_LINK_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OFFS                                                               (0x28c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OFFS                                                               (0x290)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x)                                                                  ((x) + 0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_PHYS(x)                                                                  ((x) + 0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OFFS                                                                     (0x294)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x)                                                              ((x) + 0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_PHYS(x)                                                              ((x) + 0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_OFFS                                                                 (0x298)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x)                                                                ((x) + 0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_PHYS(x)                                                                ((x) + 0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OFFS                                                                   (0x29c)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OFFS                                                            (0x2a0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OFFS                                                            (0x2a4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x2b0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x2b4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x2b8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OFFS                                                          (0x2d4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OFFS                                                          (0x2d8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OFFS                                                              (0x2dc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x2e0)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OFFS                                                          (0x2e4)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OFFS                                                          (0x2e8)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OFFS                                                              (0x2ec)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x2fc)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x)                                                              ((x) + 0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_PHYS(x)                                                              ((x) + 0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OFFS                                                                 (0x300)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM_RELEASE_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OFFS                                                                (0x304)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OFFS                                                                (0x308)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OFFS                                                                      (0x30c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_OFFS                                                                  (0x310)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OFFS                                                                    (0x314)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RMSK                                                                     0x7ffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                             0x4000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                    26
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x318)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x31c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x328)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x32c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x330)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0x34c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0x350)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OFFS                                                               (0x354)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                  ((x) + 0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                  ((x) + 0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OFFS                                                     (0x358)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_RMSK                                                     0xffc0ffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                          0xff000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                  24
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                           0x800000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                 23
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                         0x400000
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                               22
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x)                                                        ((x) + 0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_PHYS(x)                                                        ((x) + 0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OFFS                                                           (0x35c)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x)                                                        ((x) + 0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_PHYS(x)                                                        ((x) + 0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OFFS                                                           (0x360)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                    0x100
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                        8
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x)                                                            ((x) + 0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_PHYS(x)                                                            ((x) + 0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OFFS                                                               (0x364)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MSI2_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x374)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x)                                                               ((x) + 0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_PHYS(x)                                                               ((x) + 0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OFFS                                                                  (0x378)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_RMSK                                                                  0xffff003f
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_POR                                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                         0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                 16
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                                0x3f
+#define HWIO_TQM_R0_TQM_STATUS_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                   0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OFFS                                                               (0x37c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OFFS                                                               (0x380)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x)                                                                  ((x) + 0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_PHYS(x)                                                                  ((x) + 0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OFFS                                                                     (0x384)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x)                                                              ((x) + 0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_PHYS(x)                                                              ((x) + 0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_OFFS                                                                 (0x388)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x)                                                                ((x) + 0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_PHYS(x)                                                                ((x) + 0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OFFS                                                                   (0x38c)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OFFS                                                            (0x390)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OFFS                                                            (0x394)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x3a0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x3a4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x3a8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OFFS                                                          (0x3c4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OFFS                                                          (0x3c8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OFFS                                                              (0x3cc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0x3d0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OFFS                                                          (0x3d4)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OFFS                                                          (0x3d8)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OFFS                                                              (0x3dc)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x3ec)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OFFS                                                                 (0x3f0)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x)                                                                     ((x) + 0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_PHYS(x)                                                                     ((x) + 0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OFFS                                                                        (0x3f4)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_POR                                                                         0x008609ff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONFIG_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONFIG_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_BMSK                                                         0xff000000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_DESC_TYPE_SWAP_SHFT                                                                 24
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_BMSK                                                       0x800000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_ENABLE_LEGACY_SWAP_SHFT                                                             23
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_BMSK                                                        0x400000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_STRUCT_SWAP_SHFT                                                              22
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_BMSK                                                         0x200000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_STRUCT_SWAP_SHFT                                                               21
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_BMSK                                                           0x100000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_WRITE_SECURITY_SHFT                                                                 20
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_SECURITY_BMSK                                                             0x80000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_READ_SECURITY_SHFT                                                                  19
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_BMSK                                                       0x40000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_BG_FLUSH_POST_WRITE_SHFT                                                            18
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_BMSK                                                   0x20000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CLIENT_FLUSH_POST_WRITE_SHFT                                                        17
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_BMSK                                                     0x1fe00
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_EMPTY_THRESHOLD_SHFT                                                           9
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_BMSK                                                          0x1ff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_CACHE_LINE_USE_NUM_SHFT                                                              0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x)                                                                    ((x) + 0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_PHYS(x)                                                                    ((x) + 0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OFFS                                                                       (0x3f8)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_RMSK                                                                              0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_POR                                                                        0x00000000
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONTROL_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_BMSK                                       0x2
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_WRITE_POSTED_FOR_NON_POSTED_LINE_FLUSH_SHFT                                         1
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_CACHE_RESET_BMSK                                                                  0x1
+#define HWIO_TQM_R0_CACHE_CTL_CONTROL_CACHE_RESET_SHFT                                                                    0
+
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x)                                                                 ((x) + 0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_PHYS(x)                                                                 ((x) + 0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OFFS                                                                    (0x3fc)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_RMSK                                                                     0x1ffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_POR                                                                     0x00000000
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_BMSK                                                          0x1ffffff
+#define HWIO_TQM_R0_CACHE_CTL_CONFIG_SET_CONFIG_SET_SHFT                                                                  0
+
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OFFS                                                                      (0x400)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_RMSK                                                                           0x3ff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_POR                                                                       0x000000f0
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_SET_SIZE_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_SET_SIZE_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_BMSK                                                                 0x3ff
+#define HWIO_TQM_R0_CACHE_CTL_SET_SIZE_SET1_SIZE_SHFT                                                                     0
+
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x)                                                               ((x) + 0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_PHYS(x)                                                               ((x) + 0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OFFS                                                                  (0x404)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_RMSK                                                                         0x7
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_POR                                                                   0x00000002
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ATTR                                                                               0x3
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_IN(x))
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_BMSK                                                                   0x4
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_VC_ID_SHFT                                                                     2
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_BMSK                                                            0x3
+#define HWIO_TQM_R0_CACHE_CTL_GXI_PRIORITY_GXI_PRIORITY_SHFT                                                              0
+
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x)                                                                 ((x) + 0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_PHYS(x)                                                                 ((x) + 0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OFFS                                                                    (0x408)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_POR                                                                     0x10041c10
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_IN(x)            \
+                in_dword(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x))
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x), m)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x),v)
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ADDR(x),m,v,HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_IN(x))
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_MIN_READ_SIZE_BMSK                                                      0xff000000
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_MIN_READ_SIZE_SHFT                                                              24
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_DESC_THRESHOLD_BMSK                                                       0xff0000
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_DESC_THRESHOLD_SHFT                                                             16
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_CMD_THRESHOLD_BMSK                                                          0xff00
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_CMD_THRESHOLD_SHFT                                                               8
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ENTRANCE_THRESHOLD_BMSK                                                       0xff
+#define HWIO_TQM_R0_CMD_AND_PTR_PREFETCH_ENTRANCE_THRESHOLD_SHFT                                                          0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x)                                                          ((x) + 0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_PHYS(x)                                                          ((x) + 0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OFFS                                                             (0x40c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_POR                                                              0x002f0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_END_ADDR_BMSK                                              0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_END_ADDR_SHFT                                                     16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_START_ADDR_BMSK                                                0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_0_SW_CMD_START_ADDR_SHFT                                                    0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x)                                                          ((x) + 0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_PHYS(x)                                                          ((x) + 0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OFFS                                                             (0x410)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_POR                                                              0x008b0030
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_END_ADDR_BMSK                                          0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_END_ADDR_SHFT                                                 16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_START_ADDR_BMSK                                            0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_1_HWSCH_CMD1_START_ADDR_SHFT                                                0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x)                                                          ((x) + 0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_PHYS(x)                                                          ((x) + 0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OFFS                                                             (0x414)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_POR                                                              0x00bb008c
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_END_ADDR_BMSK                                  0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_END_ADDR_SHFT                                         16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_START_ADDR_BMSK                                    0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_2_MSDU_ENTRANCE1_CMD_START_ADDR_SHFT                                        0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x)                                                          ((x) + 0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_PHYS(x)                                                          ((x) + 0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OFFS                                                             (0x418)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_POR                                                              0x00d300bc
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_END_ADDR_BMSK                                           0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_END_ADDR_SHFT                                                  16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_START_ADDR_BMSK                                             0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_4_DESC_PTRS_START_ADDR_SHFT                                                 0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x)                                                          ((x) + 0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_PHYS(x)                                                          ((x) + 0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OFFS                                                             (0x41c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_POR                                                              0x012f00d4
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_END_ADDR_BMSK                                          0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_END_ADDR_SHFT                                                 16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_START_ADDR_BMSK                                            0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_6_HWSCH_CMD2_START_ADDR_SHFT                                                0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x)                                                          ((x) + 0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_PHYS(x)                                                          ((x) + 0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OFFS                                                             (0x420)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_POR                                                              0x015f0130
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_END_ADDR_BMSK                                  0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_END_ADDR_SHFT                                         16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_START_ADDR_BMSK                                    0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_8_MSDU_ENTRANCE3_CMD_START_ADDR_SHFT                                        0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x)                                                          ((x) + 0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_PHYS(x)                                                          ((x) + 0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OFFS                                                             (0x424)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_POR                                                              0x018f0160
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_END_ADDR_BMSK                                             0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_END_ADDR_SHFT                                                    16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_START_ADDR_BMSK                                               0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_9_SW_CMD1_START_ADDR_SHFT                                                   0
+
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x)                                                              ((x) + 0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_PHYS(x)                                                              ((x) + 0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OFFS                                                                 (0x428)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_RMSK                                                                     0x1f7f
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_POR                                                                  0x00001441
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ATTR                                                                              0x3
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_IN(x)            \
+                in_dword(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x))
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x), m)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x),v)
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ADDR(x),m,v,HWIO_TQM_R0_STATUS_BUFFER_PARTITION_IN(x))
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ISSUE_MULTIPLE_BMSK                                                      0x1000
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_ISSUE_MULTIPLE_SHFT                                                          12
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_WAIT_THRESHOLD_BMSK                                                       0xf00
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_WAIT_THRESHOLD_SHFT                                                           8
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_STATUS0_END_ADDR_BMSK                                                      0x7f
+#define HWIO_TQM_R0_STATUS_BUFFER_PARTITION_STATUS0_END_ADDR_SHFT                                                         0
+
+#define HWIO_TQM_R0_WATCHDOG_ADDR(x)                                                                             ((x) + 0x42c)
+#define HWIO_TQM_R0_WATCHDOG_PHYS(x)                                                                             ((x) + 0x42c)
+#define HWIO_TQM_R0_WATCHDOG_OFFS                                                                                (0x42c)
+#define HWIO_TQM_R0_WATCHDOG_RMSK                                                                                0x7fffffff
+#define HWIO_TQM_R0_WATCHDOG_POR                                                                                 0x00002710
+#define HWIO_TQM_R0_WATCHDOG_POR_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_WATCHDOG_ATTR                                                                                             0x3
+#define HWIO_TQM_R0_WATCHDOG_IN(x)            \
+                in_dword(HWIO_TQM_R0_WATCHDOG_ADDR(x))
+#define HWIO_TQM_R0_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_WATCHDOG_ADDR(x), m)
+#define HWIO_TQM_R0_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_WATCHDOG_ADDR(x),v)
+#define HWIO_TQM_R0_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_WATCHDOG_ADDR(x),m,v,HWIO_TQM_R0_WATCHDOG_IN(x))
+#define HWIO_TQM_R0_WATCHDOG_STATUS_BMSK                                                                         0x7fff0000
+#define HWIO_TQM_R0_WATCHDOG_STATUS_SHFT                                                                                 16
+#define HWIO_TQM_R0_WATCHDOG_LIMIT_BMSK                                                                              0xffff
+#define HWIO_TQM_R0_WATCHDOG_LIMIT_SHFT                                                                                   0
+
+#define HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x)                                                                         ((x) + 0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_PHYS(x)                                                                         ((x) + 0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OFFS                                                                            (0x430)
+#define HWIO_TQM_R0_TESTBUS_CTRL_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_POR                                                                             0x00000000
+#define HWIO_TQM_R0_TESTBUS_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_TESTBUS_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TESTBUS_CTRL_ADDR(x),m,v,HWIO_TQM_R0_TESTBUS_CTRL_IN(x))
+#define HWIO_TQM_R0_TESTBUS_CTRL_SELECT_TQM_BMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TESTBUS_CTRL_SELECT_TQM_SHFT                                                                          0
+
+#define HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x)                                                                        ((x) + 0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_PHYS(x)                                                                        ((x) + 0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_OFFS                                                                           (0x434)
+#define HWIO_TQM_R0_TESTBUS_LOWER_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_POR                                                                            0x00000000
+#define HWIO_TQM_R0_TESTBUS_LOWER_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_TESTBUS_LOWER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_LOWER_VALUE_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_TESTBUS_LOWER_VALUE_SHFT                                                                              0
+
+#define HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x)                                                                        ((x) + 0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_PHYS(x)                                                                        ((x) + 0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_OFFS                                                                           (0x438)
+#define HWIO_TQM_R0_TESTBUS_UPPER_RMSK                                                                                 0xff
+#define HWIO_TQM_R0_TESTBUS_UPPER_POR                                                                            0x00000000
+#define HWIO_TQM_R0_TESTBUS_UPPER_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_TESTBUS_UPPER_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_TESTBUS_UPPER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x))
+#define HWIO_TQM_R0_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_TQM_R0_TESTBUS_UPPER_VALUE_BMSK                                                                           0xff
+#define HWIO_TQM_R0_TESTBUS_UPPER_VALUE_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x)                                                                       ((x) + 0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_PHYS(x)                                                                       ((x) + 0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OFFS                                                                          (0x43c)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_0_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_0_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_0_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x)                                                                       ((x) + 0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_PHYS(x)                                                                       ((x) + 0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OFFS                                                                          (0x440)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_1_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_1_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_1_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x)                                                                       ((x) + 0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_PHYS(x)                                                                       ((x) + 0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OFFS                                                                          (0x444)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_2_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_2_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_2_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x)                                                                       ((x) + 0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_PHYS(x)                                                                       ((x) + 0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OFFS                                                                          (0x448)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_POR                                                                           0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_ATTR                                                                                       0x3
+#define HWIO_TQM_R0_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_TQM_R0_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_TQM_R0_EVENTMASK_IX_3_IN(x))
+#define HWIO_TQM_R0_EVENTMASK_IX_3_MASK_BMSK                                                                     0xffffffff
+#define HWIO_TQM_R0_EVENTMASK_IX_3_MASK_SHFT                                                                              0
+
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                            ((x) + 0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                            ((x) + 0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                               (0x44c)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_POR                                                                0x7ffe0002
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                            0x3
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                             0xfffe0000
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                     17
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                              0x1fffc
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                                    2
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                           0x2
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                             1
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                            0x1
+#define HWIO_TQM_R0_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                              0
+
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x)                                                                    ((x) + 0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_PHYS(x)                                                                    ((x) + 0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OFFS                                                                       (0x450)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_RMSK                                                                              0x1
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_POR                                                                        0x00000000
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_ATTR                                                                                    0x3
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TQM_R0_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                       0x1
+#define HWIO_TQM_R0_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                         0
+
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                                 ((x) + 0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                                 ((x) + 0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_OFFS                                                                    (0x454)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_RMSK                                                                       0x1ffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_POR                                                                     0x00000000
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ATTR                                                                                 0x1
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                                 0x1ffff
+#define HWIO_TQM_R0_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_SM_STATES_IX0_ADDR(x)                                                                        ((x) + 0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_PHYS(x)                                                                        ((x) + 0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_OFFS                                                                           (0x458)
+#define HWIO_TQM_R0_SM_STATES_IX0_RMSK                                                                           0x3fffffff
+#define HWIO_TQM_R0_SM_STATES_IX0_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX0_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX0_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX0_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_QUEUE_STATS_SM_BMSK                                                        0x3e000000
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_QUEUE_STATS_SM_SHFT                                                                25
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_BMSK                                                      0x1e00000
+#define HWIO_TQM_R0_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_SHFT                                                             21
+#define HWIO_TQM_R0_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_BMSK                                                  0x180000
+#define HWIO_TQM_R0_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_SHFT                                                        19
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MPDU_LINK_SM_BMSK                                                             0x78000
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MPDU_LINK_SM_SHFT                                                                  15
+#define HWIO_TQM_R0_SM_STATES_IX0_CREATE_MPDU_SM_BMSK                                                                0x7c00
+#define HWIO_TQM_R0_SM_STATES_IX0_CREATE_MPDU_SM_SHFT                                                                    10
+#define HWIO_TQM_R0_SM_STATES_IX0_GEN_MPDU_SM_BMSK                                                                    0x3e0
+#define HWIO_TQM_R0_SM_STATES_IX0_GEN_MPDU_SM_SHFT                                                                        5
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MSDU_SM_BMSK                                                                     0x1f
+#define HWIO_TQM_R0_SM_STATES_IX0_ADD_MSDU_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX1_ADDR(x)                                                                        ((x) + 0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_PHYS(x)                                                                        ((x) + 0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_OFFS                                                                           (0x45c)
+#define HWIO_TQM_R0_SM_STATES_IX1_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX1_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX1_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX1_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX1_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK1_SM_BMSK                                                        0xc0000000
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK1_SM_SHFT                                                                30
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK0_SM_BMSK                                                        0x30000000
+#define HWIO_TQM_R0_SM_STATES_IX1_ARB_STATUS_BLK0_SM_SHFT                                                                28
+#define HWIO_TQM_R0_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_BMSK                                                    0xf800000
+#define HWIO_TQM_R0_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_SHFT                                                           23
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MSDU_SM_BMSK                                                                 0x7c0000
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MSDU_SM_SHFT                                                                       18
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MPDU_SM_BMSK                                                                  0x3f000
+#define HWIO_TQM_R0_SM_STATES_IX1_REM_MPDU_SM_SHFT                                                                       12
+#define HWIO_TQM_R0_SM_STATES_IX1_WRITE_CMD_SM_BMSK                                                                   0xe00
+#define HWIO_TQM_R0_SM_STATES_IX1_WRITE_CMD_SM_SHFT                                                                       9
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_MPDU_MAIN_SM_BMSK                                                              0x1f0
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_MPDU_MAIN_SM_SHFT                                                                  4
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_TLV_SM_BMSK                                                                      0xf
+#define HWIO_TQM_R0_SM_STATES_IX1_LIST_TLV_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX2_ADDR(x)                                                                        ((x) + 0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_PHYS(x)                                                                        ((x) + 0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_OFFS                                                                           (0x460)
+#define HWIO_TQM_R0_SM_STATES_IX2_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX2_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX2_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX2_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX2_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX2_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_ASYNC_SM_BMSK                                                              0x80000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_ASYNC_SM_SHFT                                                                      31
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_MSDU_ENT_SM_BMSK                                                           0x70000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_MSDU_ENT_SM_SHFT                                                                   28
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_SW_CMD_SM_BMSK                                                              0xf000000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_SW_CMD_SM_SHFT                                                                     24
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_HWSCH_CMD_SM_BMSK                                                            0xf00000
+#define HWIO_TQM_R0_SM_STATES_IX2_ARB_HWSCH_CMD_SM_SHFT                                                                  20
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_READ_SM_BMSK                                                             0xc0000
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_READ_SM_SHFT                                                                  18
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_SM_BMSK                                                                  0x3ffff
+#define HWIO_TQM_R0_SM_STATES_IX2_PREFETCH_SM_SHFT                                                                        0
+
+#define HWIO_TQM_R0_SM_STATES_IX3_ADDR(x)                                                                        ((x) + 0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_PHYS(x)                                                                        ((x) + 0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_OFFS                                                                           (0x464)
+#define HWIO_TQM_R0_SM_STATES_IX3_RMSK                                                                             0xffffff
+#define HWIO_TQM_R0_SM_STATES_IX3_POR                                                                            0x00000000
+#define HWIO_TQM_R0_SM_STATES_IX3_POR_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R0_SM_STATES_IX3_ATTR                                                                                        0x1
+#define HWIO_TQM_R0_SM_STATES_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R0_SM_STATES_IX3_ADDR(x))
+#define HWIO_TQM_R0_SM_STATES_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SM_STATES_IX3_ADDR(x), m)
+#define HWIO_TQM_R0_SM_STATES_IX3_PREFETCH_SM_BMSK                                                                 0xff0000
+#define HWIO_TQM_R0_SM_STATES_IX3_PREFETCH_SM_SHFT                                                                       16
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_BMSK                                                         0xc000
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_SHFT                                                             14
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_BMSK                                                         0x3000
+#define HWIO_TQM_R0_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_SHFT                                                             12
+#define HWIO_TQM_R0_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_BMSK                                                           0xf80
+#define HWIO_TQM_R0_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_SHFT                                                               7
+#define HWIO_TQM_R0_SM_STATES_IX3_AXI_TO_TLV_SM_BMSK                                                                   0x60
+#define HWIO_TQM_R0_SM_STATES_IX3_AXI_TO_TLV_SM_SHFT                                                                      5
+#define HWIO_TQM_R0_SM_STATES_IX3_LIST_TLV_STATE_BMSK                                                                  0x1c
+#define HWIO_TQM_R0_SM_STATES_IX3_LIST_TLV_STATE_SHFT                                                                     2
+#define HWIO_TQM_R0_SM_STATES_IX3_DATA_ALIGN_SM_BMSK                                                                    0x3
+#define HWIO_TQM_R0_SM_STATES_IX3_DATA_ALIGN_SM_SHFT                                                                      0
+
+#define HWIO_TQM_R0_MISC_CFG_ADDR(x)                                                                             ((x) + 0x468)
+#define HWIO_TQM_R0_MISC_CFG_PHYS(x)                                                                             ((x) + 0x468)
+#define HWIO_TQM_R0_MISC_CFG_OFFS                                                                                (0x468)
+#define HWIO_TQM_R0_MISC_CFG_RMSK                                                                                0xffdfefff
+#define HWIO_TQM_R0_MISC_CFG_POR                                                                                 0x9a576fe0
+#define HWIO_TQM_R0_MISC_CFG_POR_RMSK                                                                            0xffffffff
+#define HWIO_TQM_R0_MISC_CFG_ATTR                                                                                             0x3
+#define HWIO_TQM_R0_MISC_CFG_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CFG_ADDR(x))
+#define HWIO_TQM_R0_MISC_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CFG_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CFG_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CFG_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CFG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CFG_ADDR(x),m,v,HWIO_TQM_R0_MISC_CFG_IN(x))
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_ROUTING_CHECKS_BMSK                                                          0x80000000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_ROUTING_CHECKS_SHFT                                                                  31
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_LINK_STARVATION_WAIT_BMSK                                                   0x40000000
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_LINK_STARVATION_WAIT_SHFT                                                           30
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_STATUS_FOR_INVALID_FLOW_BMSK                                                0x20000000
+#define HWIO_TQM_R0_MISC_CFG_DISABLE_STATUS_FOR_INVALID_FLOW_SHFT                                                        29
+#define HWIO_TQM_R0_MISC_CFG_ENB_ACKED_MPDU_QUEUE_OVERVIEW_BMSK                                                  0x10000000
+#define HWIO_TQM_R0_MISC_CFG_ENB_ACKED_MPDU_QUEUE_OVERVIEW_SHFT                                                          28
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_TLV_FILTER_BMSK                                                               0x8000000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_TLV_FILTER_SHFT                                                                      27
+#define HWIO_TQM_R0_MISC_CFG_SEND_MSI_AFTER_IDLE_RESP_BMSK                                                        0x4000000
+#define HWIO_TQM_R0_MISC_CFG_SEND_MSI_AFTER_IDLE_RESP_SHFT                                                               26
+#define HWIO_TQM_R0_MISC_CFG_FILTER_INVALID_ADDRESS_IN_COMMANDS_BMSK                                              0x2000000
+#define HWIO_TQM_R0_MISC_CFG_FILTER_INVALID_ADDRESS_IN_COMMANDS_SHFT                                                     25
+#define HWIO_TQM_R0_MISC_CFG_STATUS1_WRITE_POSTED_BMSK                                                            0x1000000
+#define HWIO_TQM_R0_MISC_CFG_STATUS1_WRITE_POSTED_SHFT                                                                   24
+#define HWIO_TQM_R0_MISC_CFG_STATUS_WRITE_POSTED_BMSK                                                              0x800000
+#define HWIO_TQM_R0_MISC_CFG_STATUS_WRITE_POSTED_SHFT                                                                    23
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_FW2TQM_TP_AT_8W_BOUNDARY_BMSK                                                  0x400000
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_FW2TQM_TP_AT_8W_BOUNDARY_SHFT                                                        22
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_TCL2TQM_TP_AT_8W_BOUNDARY_BMSK                                                 0x100000
+#define HWIO_TQM_R0_MISC_CFG_UPDATE_TCL2TQM_TP_AT_8W_BOUNDARY_SHFT                                                       20
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_FILTER_GEN_MPDU_EMPTY_STATUS_BMSK                                               0x80000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_FILTER_GEN_MPDU_EMPTY_STATUS_SHFT                                                    19
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_INVALIDATE_CACHE_FOR_INVALID_DESC_BMSK                                          0x40000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_INVALIDATE_CACHE_FOR_INVALID_DESC_SHFT                                               18
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_UPDATE_TX_COUNT_DURING_FLUSH_BMSK                                               0x20000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_UPDATE_TX_COUNT_DURING_FLUSH_SHFT                                                    17
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_BA_PROC_DURING_FLUSH_BMSK                                                       0x10000
+#define HWIO_TQM_R0_MISC_CFG_ENABLE_BA_PROC_DURING_FLUSH_SHFT                                                            16
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_SWAP_BIT_BMSK                                                                 0x8000
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_SWAP_BIT_SHFT                                                                     15
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_POSTED_BMSK                                                                   0x4000
+#define HWIO_TQM_R0_MISC_CFG_WRITE_CMD_POSTED_SHFT                                                                       14
+#define HWIO_TQM_R0_MISC_CFG_DESC_PTR_RELEASE_POSTED_BMSK                                                            0x2000
+#define HWIO_TQM_R0_MISC_CFG_DESC_PTR_RELEASE_POSTED_SHFT                                                                13
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MSDU_BMSK                                                               0x800
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MSDU_SHFT                                                                  11
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_LIST_MPDU_BMSK                                                              0x400
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_LIST_MPDU_SHFT                                                                 10
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_GEN_MPDU_BMSK                                                               0x200
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_GEN_MPDU_SHFT                                                                   9
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MPDU_BMSK                                                               0x100
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_REM_MPDU_SHFT                                                                   8
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_ACKED_MPDU_BMSK                                                              0x80
+#define HWIO_TQM_R0_MISC_CFG_FW_TX_NOTIFY_ACKED_MPDU_SHFT                                                                 7
+#define HWIO_TQM_R0_MISC_CFG_FORCE_TO_REPORT_STATUS_BMSK                                                               0x40
+#define HWIO_TQM_R0_MISC_CFG_FORCE_TO_REPORT_STATUS_SHFT                                                                  6
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_POSTED_BMSK                                                                     0x20
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_POSTED_SHFT                                                                        5
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SWAP_BIT_BMSK                                                                   0x10
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SWAP_BIT_SHFT                                                                      4
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SECURITY_BIT_BMSK                                                                0x8
+#define HWIO_TQM_R0_MISC_CFG_LIST_MPDU_SECURITY_BIT_SHFT                                                                  3
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_POSTED_BMSK                                                                       0x4
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_POSTED_SHFT                                                                         2
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SWAP_BIT_BMSK                                                                     0x2
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SWAP_BIT_SHFT                                                                       1
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SECURITY_BIT_BMSK                                                                 0x1
+#define HWIO_TQM_R0_MISC_CFG_GEN_MPDU_SECURITY_BIT_SHFT                                                                   0
+
+#define HWIO_TQM_R0_MISC_CFG_1_ADDR(x)                                                                           ((x) + 0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_PHYS(x)                                                                           ((x) + 0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_OFFS                                                                              (0x46c)
+#define HWIO_TQM_R0_MISC_CFG_1_RMSK                                                                                   0x7ff
+#define HWIO_TQM_R0_MISC_CFG_1_POR                                                                               0x00000040
+#define HWIO_TQM_R0_MISC_CFG_1_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R0_MISC_CFG_1_ATTR                                                                                           0x3
+#define HWIO_TQM_R0_MISC_CFG_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_MISC_CFG_1_ADDR(x))
+#define HWIO_TQM_R0_MISC_CFG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MISC_CFG_1_ADDR(x), m)
+#define HWIO_TQM_R0_MISC_CFG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MISC_CFG_1_ADDR(x),v)
+#define HWIO_TQM_R0_MISC_CFG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MISC_CFG_1_ADDR(x),m,v,HWIO_TQM_R0_MISC_CFG_1_IN(x))
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_MLO_OWNER_BASED_ACK_PROCESS_BMSK                                               0x400
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_MLO_OWNER_BASED_ACK_PROCESS_SHFT                                                  10
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_TQM2TQM_GEN_MPDUS_BMSK                                                             0x200
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_TQM2TQM_GEN_MPDUS_SHFT                                                                 9
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_MLO_FRAGMENTATION_BMSK                                                             0x100
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_MLO_FRAGMENTATION_SHFT                                                                 8
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_SESSION_ID_BMSK                                                                     0x80
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_SESSION_ID_SHFT                                                                        7
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_OWNER_CHECK_BMSK                                                                    0x40
+#define HWIO_TQM_R0_MISC_CFG_1_ENB_OWNER_CHECK_SHFT                                                                       6
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_DROP_COUNT_UPDATES_FOR_MULTICAST_BMSK                                           0x20
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_DROP_COUNT_UPDATES_FOR_MULTICAST_SHFT                                              5
+#define HWIO_TQM_R0_MISC_CFG_1_UNMASK_EVENT_BUS_POT_BMSK                                                               0x10
+#define HWIO_TQM_R0_MISC_CFG_1_UNMASK_EVENT_BUS_POT_SHFT                                                                  4
+#define HWIO_TQM_R0_MISC_CFG_1_ALLOW_REGISTER_FLUSH_ACK_BMSK                                                            0x8
+#define HWIO_TQM_R0_MISC_CFG_1_ALLOW_REGISTER_FLUSH_ACK_SHFT                                                              3
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_SINGLE_FLOW_CONCURRENCY_BMSK                                                     0x4
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_SINGLE_FLOW_CONCURRENCY_SHFT                                                       2
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_UPDATE_REQUIREMENT_CHECK_BMSK                                                    0x2
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_UPDATE_REQUIREMENT_CHECK_SHFT                                                      1
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_PREFETCH_FIX_BMSK                                                                0x1
+#define HWIO_TQM_R0_MISC_CFG_1_DISABLE_PREFETCH_FIX_SHFT                                                                  0
+
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x)                                                                         ((x) + 0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_PHYS(x)                                                                         ((x) + 0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OFFS                                                                            (0x470)
+#define HWIO_TQM_R0_CLKGATE_CTRL_RMSK                                                                            0xdfffffff
+#define HWIO_TQM_R0_CLKGATE_CTRL_POR                                                                             0x00000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_CLKGATE_CTRL_ATTR                                                                                         0x3
+#define HWIO_TQM_R0_CLKGATE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_CLKGATE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_CLKGATE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_CLKGATE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_CLKGATE_CTRL_IN(x))
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLOCK_ENS_EXTEND_BMSK                                                           0x80000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLOCK_ENS_EXTEND_SHFT                                                                   31
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLK_GATE_DISABLE_APB_BMSK                                                       0x40000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CLK_GATE_DISABLE_APB_SHFT                                                               30
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_DESC_DISABLE_BMSK                                                  0x10000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_DESC_DISABLE_SHFT                                                          28
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV2_DISABLE_BMSK                                                       0x8000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV2_DISABLE_SHFT                                                              27
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV1_DISABLE_BMSK                                                       0x4000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_HWSCH_TX_TLV1_DISABLE_SHFT                                                              26
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_REL_RING_DISABLE_BMSK                                                       0x2000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_REL_RING_DISABLE_SHFT                                                              25
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS1_RING_DISABLE_BMSK                                                        0x1000000
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS1_RING_DISABLE_SHFT                                                               24
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS_RING_DISABLE_BMSK                                                          0x800000
+#define HWIO_TQM_R0_CLKGATE_CTRL_STATUS_RING_DISABLE_SHFT                                                                23
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_PTR_RING_DISABLE_BMSK                                                        0x400000
+#define HWIO_TQM_R0_CLKGATE_CTRL_DESC_PTR_RING_DISABLE_SHFT                                                              22
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD1_RING_DISABLE_BMSK                                                         0x200000
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD1_RING_DISABLE_SHFT                                                               21
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD_RING_DISABLE_BMSK                                                          0x100000
+#define HWIO_TQM_R0_CLKGATE_CTRL_SW_CMD_RING_DISABLE_SHFT                                                                20
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT3_RING_DISABLE_BMSK                                                        0x80000
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT3_RING_DISABLE_SHFT                                                             19
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT1_RING_DISABLE_BMSK                                                        0x40000
+#define HWIO_TQM_R0_CLKGATE_CTRL_MSDU_ENT1_RING_DISABLE_SHFT                                                             18
+#define HWIO_TQM_R0_CLKGATE_CTRL_UPDATE_QUEUE_DESC_CLK_GATE_DISABLE_BMSK                                            0x20000
+#define HWIO_TQM_R0_CLKGATE_CTRL_UPDATE_QUEUE_DESC_CLK_GATE_DISABLE_SHFT                                                 17
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_MEM_CLK_GATE_DISABLE_BMSK                                                    0x10000
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_MEM_CLK_GATE_DISABLE_SHFT                                                         16
+#define HWIO_TQM_R0_CLKGATE_CTRL_TLV_IF_CLK_GATE_DISABLE_BMSK                                                        0x8000
+#define HWIO_TQM_R0_CLKGATE_CTRL_TLV_IF_CLK_GATE_DISABLE_SHFT                                                            15
+#define HWIO_TQM_R0_CLKGATE_CTRL_AXI_IF_CLK_GATE_DISABLE_BMSK                                                        0x4000
+#define HWIO_TQM_R0_CLKGATE_CTRL_AXI_IF_CLK_GATE_DISABLE_SHFT                                                            14
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_CLK_GATE_DISABLE_BMSK                                                  0x2000
+#define HWIO_TQM_R0_CLKGATE_CTRL_COMMON_LOGIC_CLK_GATE_DISABLE_SHFT                                                      13
+#define HWIO_TQM_R0_CLKGATE_CTRL_FLUSH_UNBLK_CACHE_CLK_GATE_DISABLE_BMSK                                             0x1000
+#define HWIO_TQM_R0_CLKGATE_CTRL_FLUSH_UNBLK_CACHE_CLK_GATE_DISABLE_SHFT                                                 12
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_MPDU_HEAD_INFO_CLK_GATE_DISABLE_BMSK                                             0x800
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_MPDU_HEAD_INFO_CLK_GATE_DISABLE_SHFT                                                11
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MSDU_CLK_GATE_DISABLE_BMSK                                                       0x400
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MSDU_CLK_GATE_DISABLE_SHFT                                                          10
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MPDU_CLK_GATE_DISABLE_BMSK                                                       0x200
+#define HWIO_TQM_R0_CLKGATE_CTRL_REM_MPDU_CLK_GATE_DISABLE_SHFT                                                           9
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_QUEUE_STATS_CLK_GATE_DISABLE_BMSK                                                0x100
+#define HWIO_TQM_R0_CLKGATE_CTRL_GET_QUEUE_STATS_CLK_GATE_DISABLE_SHFT                                                    8
+#define HWIO_TQM_R0_CLKGATE_CTRL_TX_MPDU_COUNT_CLK_GATE_DISABLE_BMSK                                                   0x80
+#define HWIO_TQM_R0_CLKGATE_CTRL_TX_MPDU_COUNT_CLK_GATE_DISABLE_SHFT                                                      7
+#define HWIO_TQM_R0_CLKGATE_CTRL_LIST_MPDU_CLK_GATE_DISABLE_BMSK                                                       0x40
+#define HWIO_TQM_R0_CLKGATE_CTRL_LIST_MPDU_CLK_GATE_DISABLE_SHFT                                                          6
+#define HWIO_TQM_R0_CLKGATE_CTRL_GEN_MPDU_CLK_GATE_DISABLE_BMSK                                                        0x20
+#define HWIO_TQM_R0_CLKGATE_CTRL_GEN_MPDU_CLK_GATE_DISABLE_SHFT                                                           5
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADD_MSDU_CLK_GATE_DISABLE_BMSK                                                        0x10
+#define HWIO_TQM_R0_CLKGATE_CTRL_ADD_MSDU_CLK_GATE_DISABLE_SHFT                                                           4
+#define HWIO_TQM_R0_CLKGATE_CTRL_ARBITER_CLK_GATE_DISABLE_BMSK                                                          0x8
+#define HWIO_TQM_R0_CLKGATE_CTRL_ARBITER_CLK_GATE_DISABLE_SHFT                                                            3
+#define HWIO_TQM_R0_CLKGATE_CTRL_PREFETCH_CLK_GATE_DISABLE_BMSK                                                         0x4
+#define HWIO_TQM_R0_CLKGATE_CTRL_PREFETCH_CLK_GATE_DISABLE_SHFT                                                           2
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_CTL_CLK_GATE_DISABLE_BMSK                                                        0x2
+#define HWIO_TQM_R0_CLKGATE_CTRL_CACHE_CTL_CLK_GATE_DISABLE_SHFT                                                          1
+#define HWIO_TQM_R0_CLKGATE_CTRL_TOP_CLK_GATE_DISABLE_BMSK                                                              0x1
+#define HWIO_TQM_R0_CLKGATE_CTRL_TOP_CLK_GATE_DISABLE_SHFT                                                                0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x)                                                             ((x) + 0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_PHYS(x)                                                             ((x) + 0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OFFS                                                                (0x474)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER0_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x)                                                             ((x) + 0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_PHYS(x)                                                             ((x) + 0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OFFS                                                                (0x478)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER1_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x)                                                             ((x) + 0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_PHYS(x)                                                             ((x) + 0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OFFS                                                                (0x47c)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_RMSK                                                                  0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_POR                                                                 0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ATTR                                                                             0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_LINK_DESCRIPTOR_COUNTER_BMSK                                          0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_COUNTER2_LINK_DESCRIPTOR_COUNTER_SHFT                                                 0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x)                                                           ((x) + 0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PHYS(x)                                                           ((x) + 0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OFFS                                                              (0x480)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_POR                                                               0x00ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_LINK_DESCRIPTOR_COUNTER0_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD0_LINK_DESCRIPTOR_COUNTER0_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x)                                                           ((x) + 0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PHYS(x)                                                           ((x) + 0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OFFS                                                              (0x484)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_POR                                                               0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_LINK_DESCRIPTOR_COUNTER1_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD1_LINK_DESCRIPTOR_COUNTER1_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x)                                                           ((x) + 0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PHYS(x)                                                           ((x) + 0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OFFS                                                              (0x488)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_RMSK                                                              0xf0ffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_POR                                                               0x00000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ATTR                                                                           0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_ENABLE_BMSK                                               0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_ENABLE_SHFT                                                       31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_GENERATED_BMSK                                            0x40000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_MESSAGE_GENERATED_SHFT                                                    30
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_ENABLE_BMSK                                                 0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_ENABLE_SHFT                                                         29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_STATUS_BMSK                                                 0x10000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_PAUSE_STATUS_SHFT                                                         28
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_LINK_DESCRIPTOR_COUNTER2_THRESHOLD_BMSK                             0xffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_THRESHOLD2_LINK_DESCRIPTOR_COUNTER2_THRESHOLD_SHFT                                    0
+
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x)                                                  ((x) + 0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PHYS(x)                                                  ((x) + 0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OFFS                                                     (0x48c)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_RMSK                                                     0xf3ffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_POR                                                      0x00000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ATTR                                                                  0x3
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_IN(x)            \
+                in_dword(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x))
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x), m)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x),v)
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_ADDR(x),m,v,HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_IN(x))
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_ENABLE_BMSK                                      0x80000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_ENABLE_SHFT                                              31
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_GENERATED_BMSK                                   0x40000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_MESSAGE_GENERATED_SHFT                                           30
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_ENABLE_BMSK                                        0x20000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_ENABLE_SHFT                                                29
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_STATUS_BMSK                                        0x10000000
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_PAUSE_STATUS_SHFT                                                28
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_LINK_DESCRIPTOR_COUNTER_SUM_THRESHOLD_BMSK                0x3ffffff
+#define HWIO_TQM_R0_AGGREGATE_LINK_DESCRIPTOR_THRESHOLD_LINK_DESCRIPTOR_COUNTER_SUM_THRESHOLD_SHFT                        0
+
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x)                                                     ((x) + 0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_PHYS(x)                                                     ((x) + 0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OFFS                                                        (0x490)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_RMSK                                                        0xa3ff17ff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_POR                                                         0x00ff0000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ATTR                                                                     0x3
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_ADDR(x),m,v,HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_IN(x))
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_FW2TQM_BMSK                                    0x80000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_FW2TQM_SHFT                                            31
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_TCL2TQM_BMSK                                   0x20000000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_STATUS_TCL2TQM_SHFT                                           29
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                             0x3ff0000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                    16
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_FW2TQM_BMSK                                               0x1000
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_FW2TQM_SHFT                                                   12
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_TCL2TQM_BMSK                                               0x400
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_BLOCK_TCL2TQM_SHFT                                                  10
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_LINK_DESC_THRESHOLD_BMSK                                         0x3ff
+#define HWIO_TQM_R0_LINK_DESCRIPTOR_PRIORITY_CONTROL_LINK_DESC_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x)                                                                     ((x) + 0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_PHYS(x)                                                                     ((x) + 0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OFFS                                                                        (0x494)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_RMSK                                                                            0xffff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_POR                                                                         0x00001740
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_IN(x)            \
+                in_dword(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x))
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x), m)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x),v)
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DESC_PTR_RELEASE_ADDR(x),m,v,HWIO_TQM_R0_DESC_PTR_RELEASE_IN(x))
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_THRESH_BMSK                                                                     0xff00
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_THRESH_SHFT                                                                          8
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_TIMEOUT_BMSK                                                                      0xff
+#define HWIO_TQM_R0_DESC_PTR_RELEASE_TIMEOUT_SHFT                                                                         0
+
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x)                                                    ((x) + 0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_PHYS(x)                                                    ((x) + 0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_OFFS                                                       (0x498)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_RMSK                                                           0xffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_POR                                                        0x00000000
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ATTR                                                                    0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                              0xffe0
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                   5
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                     0x1e
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                        1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                    0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                      0
+
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x)                                           ((x) + 0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_PHYS(x)                                           ((x) + 0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_OFFS                                              (0x49c)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_RMSK                                                  0xffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR                                               0x00000000
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ATTR                                                           0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                     0xfffe
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                          1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                           0x1
+#define HWIO_TQM_R0_FLOW_QUEUE_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                             0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x)                                               ((x) + 0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_PHYS(x)                                               ((x) + 0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_OFFS                                                  (0x4a0)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_RMSK                                                      0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_POR                                                   0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ATTR                                                               0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                         0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                              5
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                   1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                               0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_HEAD_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                 0
+
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x)                                                     ((x) + 0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_PHYS(x)                                                     ((x) + 0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_OFFS                                                        (0x4a4)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_RMSK                                                            0xffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_POR                                                         0x00000000
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ATTR                                                                     0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                               0xffe0
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                    5
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                      0x1e
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                         1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                     0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                       0
+
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x)                                            ((x) + 0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_PHYS(x)                                            ((x) + 0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_OFFS                                               (0x4a8)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_RMSK                                                   0xffe1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                      0xffe0
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                           5
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                            0x1
+#define HWIO_TQM_R0_MSDU_LINK_DESC_ADD_MSDU_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                              0
+
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_OFFS                                                 (0x4ac)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_0_DESC_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x)                                                   ((x) + 0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_PHYS(x)                                                   ((x) + 0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_OFFS                                                      (0x4b0)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_RMSK                                                          0xffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_POR                                                       0x00000000
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ATTR                                                                   0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                             0xffe0
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                                  5
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LOCK_ID_BMSK                                                    0x1e
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                       1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                                   0x1
+#define HWIO_TQM_R0_MPDU_LINK_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                     0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_OFFS                                                 (0x4b4)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_0_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x)                                              ((x) + 0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_PHYS(x)                                              ((x) + 0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_OFFS                                                 (0x4b8)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_RMSK                                                     0xffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_POR                                                  0x00000000
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ATTR                                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x))
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_BMSK                                        0xffe0
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LINE_ADDRESS_SHFT                                             5
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LOCK_ID_BMSK                                               0x1e
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_LOCK_ID_SHFT                                                  1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_BMSK                                              0x1
+#define HWIO_TQM_R0_MPDU_QUEUE_EXT_DESC_1_CACHE_LINE_STATUS_IS_LOCKED_SHFT                                                0
+
+#define HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x)                                                                       ((x) + 0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_PHYS(x)                                                                       ((x) + 0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OFFS                                                                          (0x4bc)
+#define HWIO_TQM_R0_ERROR_STATUS_1_RMSK                                                                              0x3fff
+#define HWIO_TQM_R0_ERROR_STATUS_1_POR                                                                           0x00000000
+#define HWIO_TQM_R0_ERROR_STATUS_1_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_ERROR_STATUS_1_ATTR                                                                                       0x0
+#define HWIO_TQM_R0_ERROR_STATUS_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x))
+#define HWIO_TQM_R0_ERROR_STATUS_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x), m)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x),v)
+#define HWIO_TQM_R0_ERROR_STATUS_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ERROR_STATUS_1_ADDR(x),m,v,HWIO_TQM_R0_ERROR_STATUS_1_IN(x))
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN2_RING_BMSK                                               0x2000
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN2_RING_SHFT                                                   13
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN1_RING_BMSK                                               0x1000
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_TQM2TQM_IN1_RING_SHFT                                                   12
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_1_RING_BMSK                                                   0x800
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_1_RING_SHFT                                                      11
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_0_RING_BMSK                                                   0x400
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_SW_CMD_0_RING_SHFT                                                      10
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_UPDATE_TX_MPDU_COUNT_BMSK                                            0x200
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_UPDATE_TX_MPDU_COUNT_SHFT                                                9
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MSDU_BMSK                                                        0x100
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MSDU_SHFT                                                            8
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ACKED_MPDU_BMSK                                                       0x80
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ACKED_MPDU_SHFT                                                          7
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MPDU_BMSK                                                         0x40
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_REM_MPDU_SHFT                                                            6
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_LIST_MPDU_BMSK                                                        0x20
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_LIST_MPDU_SHFT                                                           5
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_QUEUE_STATS_BMSK                                             0x10
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_QUEUE_STATS_SHFT                                                4
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_FLOW_QUEUE_STATS_BMSK                                              0x8
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_FLOW_QUEUE_STATS_SHFT                                                3
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_HEAD_INFO_BMSK                                                0x4
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GET_MPDU_HEAD_INFO_SHFT                                                  2
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GEN_MPDU_BMSK                                                          0x2
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_GEN_MPDU_SHFT                                                            1
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ADD_MSDU_BMSK                                                          0x1
+#define HWIO_TQM_R0_ERROR_STATUS_1_SW_PROG_ERROR_ADD_MSDU_SHFT                                                            0
+
+#define HWIO_TQM_R0_TLV_IF_ADDR(x)                                                                               ((x) + 0x4c0)
+#define HWIO_TQM_R0_TLV_IF_PHYS(x)                                                                               ((x) + 0x4c0)
+#define HWIO_TQM_R0_TLV_IF_OFFS                                                                                  (0x4c0)
+#define HWIO_TQM_R0_TLV_IF_RMSK                                                                                         0x7
+#define HWIO_TQM_R0_TLV_IF_POR                                                                                   0x00000000
+#define HWIO_TQM_R0_TLV_IF_POR_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R0_TLV_IF_ATTR                                                                                               0x3
+#define HWIO_TQM_R0_TLV_IF_IN(x)            \
+                in_dword(HWIO_TQM_R0_TLV_IF_ADDR(x))
+#define HWIO_TQM_R0_TLV_IF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TLV_IF_ADDR(x), m)
+#define HWIO_TQM_R0_TLV_IF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TLV_IF_ADDR(x),v)
+#define HWIO_TQM_R0_TLV_IF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TLV_IF_ADDR(x),m,v,HWIO_TQM_R0_TLV_IF_IN(x))
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_2_SYNC_RESET_BMSK                                                              0x4
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_2_SYNC_RESET_SHFT                                                                2
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_1_SYNC_RESET_BMSK                                                              0x2
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_1_SYNC_RESET_SHFT                                                                1
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_0_SYNC_RESET_BMSK                                                              0x1
+#define HWIO_TQM_R0_TLV_IF_ASYNC_GP_FIFO_0_SYNC_RESET_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x)                                                              ((x) + 0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_PHYS(x)                                                              ((x) + 0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_OFFS                                                                 (0x4c4)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x))
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_TQM_REFERENCE_TIMESTAMP_BMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM_REFERENCE_TIMESTAMP_TQM_REFERENCE_TIMESTAMP_SHFT                                                  0
+
+#define HWIO_TQM_R0_SPARE_ADDR(x)                                                                                ((x) + 0x4c8)
+#define HWIO_TQM_R0_SPARE_PHYS(x)                                                                                ((x) + 0x4c8)
+#define HWIO_TQM_R0_SPARE_OFFS                                                                                   (0x4c8)
+#define HWIO_TQM_R0_SPARE_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R0_SPARE_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_SPARE_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_SPARE_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_SPARE_IN(x)            \
+                in_dword(HWIO_TQM_R0_SPARE_ADDR(x))
+#define HWIO_TQM_R0_SPARE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SPARE_ADDR(x), m)
+#define HWIO_TQM_R0_SPARE_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SPARE_ADDR(x),v)
+#define HWIO_TQM_R0_SPARE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SPARE_ADDR(x),m,v,HWIO_TQM_R0_SPARE_IN(x))
+#define HWIO_TQM_R0_SPARE_SPAREBITS_BMSK                                                                         0xffffffff
+#define HWIO_TQM_R0_SPARE_SPAREBITS_SHFT                                                                                  0
+
+#define HWIO_TQM_R0_SPEAR_ADDR(x)                                                                                ((x) + 0x4cc)
+#define HWIO_TQM_R0_SPEAR_PHYS(x)                                                                                ((x) + 0x4cc)
+#define HWIO_TQM_R0_SPEAR_OFFS                                                                                   (0x4cc)
+#define HWIO_TQM_R0_SPEAR_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R0_SPEAR_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_SPEAR_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_SPEAR_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_SPEAR_IN(x)            \
+                in_dword(HWIO_TQM_R0_SPEAR_ADDR(x))
+#define HWIO_TQM_R0_SPEAR_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_SPEAR_ADDR(x), m)
+#define HWIO_TQM_R0_SPEAR_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_SPEAR_ADDR(x),v)
+#define HWIO_TQM_R0_SPEAR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_SPEAR_ADDR(x),m,v,HWIO_TQM_R0_SPEAR_IN(x))
+#define HWIO_TQM_R0_SPEAR_SPEAR_BMSK                                                                             0xffffffff
+#define HWIO_TQM_R0_SPEAR_SPEAR_SHFT                                                                                      0
+
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x)                                                              ((x) + 0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_PHYS(x)                                                              ((x) + 0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OFFS                                                                 (0x4d0)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_RMSK                                                                       0x1f
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_POR                                                                  0x00000001
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ATTR                                                                              0x3
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_IN(x)            \
+                in_dword(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x))
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x), m)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x),v)
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_ADDR(x),m,v,HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_IN(x))
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MPDU_BMSK                                                          0x10
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MPDU_SHFT                                                             4
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MSDU_BMSK                                                           0x8
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_REM_MSDU_SHFT                                                             3
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MSDU_FLOW_BMSK                                                   0x4
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MSDU_FLOW_SHFT                                                     2
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MPDU_QUEUE_BMSK                                                  0x2
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_UPDATE_MPDU_QUEUE_SHFT                                                    1
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_GEN_MPDUS_BMSK                                                          0x1
+#define HWIO_TQM_R0_ENABLE_NON_POSTED_FLUSH_FOR_GEN_MPDUS_SHFT                                                            0
+
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x)                                                                ((x) + 0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_PHYS(x)                                                                ((x) + 0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OFFS                                                                   (0x4d4)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_POR                                                                    0x00150000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ATTR                                                                                0x3
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_BAR_ASSIST_BMSK                                                          0x300000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_BAR_ASSIST_SHFT                                                                20
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_LIST_MPDU_BMSK                                                            0xc0000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_LIST_MPDU_SHFT                                                                 18
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_MISC_TRANSFERS_BMSK                                                       0x30000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_MISC_TRANSFERS_SHFT                                                            16
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS1_RING_BMSK                                                          0xc000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS1_RING_SHFT                                                              14
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS_RING_BMSK                                                           0x3000
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_STATUS_RING_SHFT                                                               12
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_RELEASE_RING_BMSK                                                  0xc00
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_RELEASE_RING_SHFT                                                     10
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_FETCH_RING_BMSK                                                    0x300
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_DESC_PTR_FETCH_RING_SHFT                                                        8
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD1_RING_BMSK                                                            0xc0
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD1_RING_SHFT                                                               6
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD_RING_BMSK                                                             0x30
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_SW_CMD_RING_SHFT                                                                4
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_FW2TQM_ENTRANCE_RING_BMSK                                                     0xc
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_FW2TQM_ENTRANCE_RING_SHFT                                                       2
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_TCL2TQM_ENTRANCE_RING_BMSK                                                    0x3
+#define HWIO_TQM_R0_GXI_TRANSFER_PRIORITY_TCL2TQM_ENTRANCE_RING_SHFT                                                      0
+
+#define HWIO_TQM_R0_VC_ID_ADDR(x)                                                                                ((x) + 0x4d8)
+#define HWIO_TQM_R0_VC_ID_PHYS(x)                                                                                ((x) + 0x4d8)
+#define HWIO_TQM_R0_VC_ID_OFFS                                                                                   (0x4d8)
+#define HWIO_TQM_R0_VC_ID_RMSK                                                                                         0x3f
+#define HWIO_TQM_R0_VC_ID_POR                                                                                    0x00000000
+#define HWIO_TQM_R0_VC_ID_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R0_VC_ID_ATTR                                                                                                0x3
+#define HWIO_TQM_R0_VC_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_VC_ID_ADDR(x))
+#define HWIO_TQM_R0_VC_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_VC_ID_ADDR(x), m)
+#define HWIO_TQM_R0_VC_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_VC_ID_ADDR(x),v)
+#define HWIO_TQM_R0_VC_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_VC_ID_ADDR(x),m,v,HWIO_TQM_R0_VC_ID_IN(x))
+#define HWIO_TQM_R0_VC_ID_WBM2TQM_C_SRNG_BMSK                                                                          0x20
+#define HWIO_TQM_R0_VC_ID_WBM2TQM_C_SRNG_SHFT                                                                             5
+#define HWIO_TQM_R0_VC_ID_SW_CMD1_C_SRNG_BMSK                                                                          0x10
+#define HWIO_TQM_R0_VC_ID_SW_CMD1_C_SRNG_SHFT                                                                             4
+#define HWIO_TQM_R0_VC_ID_SW_CMD_C_SRNG_BMSK                                                                            0x8
+#define HWIO_TQM_R0_VC_ID_SW_CMD_C_SRNG_SHFT                                                                              3
+#define HWIO_TQM_R0_VC_ID_FW2TQM_ENTRANCE_C_SRNG_BMSK                                                                   0x4
+#define HWIO_TQM_R0_VC_ID_FW2TQM_ENTRANCE_C_SRNG_SHFT                                                                     2
+#define HWIO_TQM_R0_VC_ID_TCL2TQM_ENTRANCE_C_SRNG_BMSK                                                                  0x2
+#define HWIO_TQM_R0_VC_ID_TCL2TQM_ENTRANCE_C_SRNG_SHFT                                                                    1
+#define HWIO_TQM_R0_VC_ID_MISC_TRANSFER_BMSK                                                                            0x1
+#define HWIO_TQM_R0_VC_ID_MISC_TRANSFER_SHFT                                                                              0
+
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x)                                                                     ((x) + 0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_PHYS(x)                                                                     ((x) + 0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OFFS                                                                        (0x4dc)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_POR                                                                         0x00000000
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x), m)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x),v)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_BARRIER_RD_CTL_0_ADDR(x),m,v,HWIO_TQM_R0_BARRIER_RD_CTL_0_IN(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_LSB_BMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_0_LSB_SHFT                                                                             0
+
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x)                                                                     ((x) + 0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_PHYS(x)                                                                     ((x) + 0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OFFS                                                                        (0x4e0)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_RMSK                                                                              0xff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_POR                                                                         0x00000000
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_POR_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_ATTR                                                                                     0x3
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x), m)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x),v)
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_BARRIER_RD_CTL_1_ADDR(x),m,v,HWIO_TQM_R0_BARRIER_RD_CTL_1_IN(x))
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_MSB_BMSK                                                                          0xff
+#define HWIO_TQM_R0_BARRIER_RD_CTL_1_MSB_SHFT                                                                             0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x)                                                                   ((x) + 0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_PHYS(x)                                                                   ((x) + 0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OFFS                                                                      (0x4e4)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_POR                                                                       0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_ATTR                                                                                   0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_COUNT_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_COUNT_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VALUE_BMSK                                                                0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VALUE_SHFT                                                                         0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x)                                                            ((x) + 0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_PHYS(x)                                                            ((x) + 0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OFFS                                                               (0x4e8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_POR                                                                0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ATTR                                                                            0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_0_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x)                                                            ((x) + 0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_PHYS(x)                                                            ((x) + 0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OFFS                                                               (0x4ec)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_POR                                                                0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ATTR                                                                            0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_VALUE_BMSK                                                         0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_1_VALUE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x)                                                  ((x) + 0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_PHYS(x)                                                  ((x) + 0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OFFS                                                     (0x4f0)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_POR                                                      0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_POR_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ATTR                                                                  0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_VALUE_BMSK                                               0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_COUNT_VDEV_ID_MISMATCH_VALUE_SHFT                                                        0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x)                                           ((x) + 0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_PHYS(x)                                           ((x) + 0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OFFS                                              (0x4f4)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_POR                                               0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ATTR                                                           0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_VALUE_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_0_VALUE_SHFT                                                 0
+
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x)                                           ((x) + 0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_PHYS(x)                                           ((x) + 0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OFFS                                              (0x4f8)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_RMSK                                              0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_POR                                               0x00000000
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_POR_RMSK                                          0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ATTR                                                           0x3
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x), m)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x),v)
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_ADDR(x),m,v,HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_IN(x))
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_VALUE_BMSK                                        0xffffffff
+#define HWIO_TQM_R0_DROPPED_MSDU_BYTE_COUNT_VDEV_ID_MISMATCH_1_VALUE_SHFT                                                 0
+
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x)                                                                 ((x) + 0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_PHYS(x)                                                                 ((x) + 0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OFFS                                                                    (0x4fc)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_RMSK                                                                          0xff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_POR                                                                     0x00000000
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x))
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_ADDR(x),m,v,HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_IN(x))
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_VALUE_BMSK                                                                    0xff
+#define HWIO_TQM_R0_ADD_MSDU_CMD_NUM_MSB_VALUE_SHFT                                                                       0
+
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x)                                                                 ((x) + 0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_PHYS(x)                                                                 ((x) + 0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OFFS                                                                    (0x500)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_RMSK                                                                    0x3fffffff
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_POR                                                                     0x00000000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_IN(x)            \
+                in_dword(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x))
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x), m)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x),v)
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ADDR(x),m,v,HWIO_TQM_R0_UNLOCKED_CONCURRENCY_IN(x))
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_MSDU_PREF_BMSK                                                      0x20000000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_MSDU_PREF_SHFT                                                              29
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MPDU_COUNT_BMSK                                                         0x1ffe0000
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MPDU_COUNT_SHFT                                                                 17
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MSDU_COUNT_BMSK                                                            0x1fffe
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_MSDU_COUNT_SHFT                                                                  1
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_BMSK                                                                       0x1
+#define HWIO_TQM_R0_UNLOCKED_CONCURRENCY_ENB_SHFT                                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OFFS                                                               (0x504)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OFFS                                                               (0x508)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x)                                                                  ((x) + 0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_PHYS(x)                                                                  ((x) + 0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OFFS                                                                     (0x50c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_RMSK                                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x)                                                              ((x) + 0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_PHYS(x)                                                              ((x) + 0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_OFFS                                                                 (0x510)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x)                                                                ((x) + 0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_PHYS(x)                                                                ((x) + 0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OFFS                                                                   (0x514)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OFFS                                                            (0x520)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OFFS                                                            (0x524)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x534)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x538)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x53c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x540)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x544)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x548)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OFFS                                                          (0x54c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OFFS                                                          (0x550)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OFFS                                                              (0x554)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x574)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x)                                                        ((x) + 0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_PHYS(x)                                                        ((x) + 0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OFFS                                                           (0x578)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                            0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                15
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                     0x7e00
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                          9
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                 0x180
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                     7
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                       0x70
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                          4
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                     0xf
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                         ((x) + 0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                         ((x) + 0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                            (0x57c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                     ((x) + 0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                     ((x) + 0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                        (0x580)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                     ((x) + 0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                     ((x) + 0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                        (0x584)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                      ((x) + 0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                      ((x) + 0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                         (0x588)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                      ((x) + 0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                      ((x) + 0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                         (0x58c)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                         0xff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x)                                                              ((x) + 0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_PHYS(x)                                                              ((x) + 0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OFFS                                                                 (0x590)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM2TQM_IN1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OFFS                                                               (0x594)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OFFS                                                               (0x598)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x)                                                                  ((x) + 0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_PHYS(x)                                                                  ((x) + 0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OFFS                                                                     (0x59c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_RMSK                                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_POR                                                                      0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x)                                                              ((x) + 0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_PHYS(x)                                                              ((x) + 0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_OFFS                                                                 (0x5a0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x)                                                                ((x) + 0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_PHYS(x)                                                                ((x) + 0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OFFS                                                                   (0x5a4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OFFS                                                            (0x5b0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OFFS                                                            (0x5b4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x5c4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x5c8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x5cc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x5d0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x5d4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x5d8)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OFFS                                                          (0x5dc)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OFFS                                                          (0x5e0)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OFFS                                                              (0x5e4)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x604)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x)                                                        ((x) + 0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_PHYS(x)                                                        ((x) + 0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OFFS                                                           (0x608)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                        16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                            0x8000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                                15
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                     0x7e00
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                          9
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_BMSK                                                 0x180
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_SRNG_SM_STATE3_SHFT                                                     7
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                       0x70
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                          4
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                     0xf
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x)                                         ((x) + 0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_PHYS(x)                                         ((x) + 0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OFFS                                            (0x60c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_RMSK                                                0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR                                             0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_POR_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ATTR                                                         0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                     ((x) + 0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                     ((x) + 0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OFFS                                        (0x610)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                     ((x) + 0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                     ((x) + 0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OFFS                                        (0x614)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x)                                      ((x) + 0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_PHYS(x)                                      ((x) + 0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OFFS                                         (0x618)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_RMSK                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x)                                      ((x) + 0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_PHYS(x)                                      ((x) + 0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OFFS                                         (0x61c)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_RMSK                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_POR_RMSK                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ATTR                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                         0xff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_CONSUMER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x)                                                              ((x) + 0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_PHYS(x)                                                              ((x) + 0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OFFS                                                                 (0x620)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TQM_R0_TQM2TQM_IN2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OFFS                                                              (0x624)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OFFS                                                              (0x628)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x)                                                                 ((x) + 0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_PHYS(x)                                                                 ((x) + 0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OFFS                                                                    (0x62c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x)                                                             ((x) + 0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_PHYS(x)                                                             ((x) + 0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_OFFS                                                                (0x630)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x)                                                               ((x) + 0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_PHYS(x)                                                               ((x) + 0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OFFS                                                                  (0x634)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OFFS                                                           (0x638)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OFFS                                                           (0x63c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OFFS                                                    (0x648)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_OFFS                                                   (0x64c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0x650)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OFFS                                                         (0x66c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OFFS                                                         (0x670)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OFFS                                                             (0x674)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0x678)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OFFS                                                         (0x67c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OFFS                                                         (0x680)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OFFS                                                             (0x684)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x694)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x)                                                       ((x) + 0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_PHYS(x)                                                       ((x) + 0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OFFS                                                          (0x698)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                           (0x69c)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x6a0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x6a4)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                        (0x6a8)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                        (0x6ac)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OFFS                                                                (0x6b0)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_TQM2TQM_OUT1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OFFS                                                              (0x6b4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OFFS                                                              (0x6b8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x)                                                                 ((x) + 0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_PHYS(x)                                                                 ((x) + 0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OFFS                                                                    (0x6bc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_POR                                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x)                                                             ((x) + 0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_PHYS(x)                                                             ((x) + 0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_OFFS                                                                (0x6c0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x)                                                               ((x) + 0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_PHYS(x)                                                               ((x) + 0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OFFS                                                                  (0x6c4)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OFFS                                                           (0x6c8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OFFS                                                           (0x6cc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OFFS                                                    (0x6d8)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_OFFS                                                   (0x6dc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0x6e0)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OFFS                                                         (0x6fc)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OFFS                                                         (0x700)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OFFS                                                             (0x704)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0x708)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OFFS                                                         (0x70c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OFFS                                                         (0x710)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OFFS                                                             (0x714)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x724)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x)                                                       ((x) + 0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_PHYS(x)                                                       ((x) + 0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OFFS                                                          (0x728)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_RMSK                                                          0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_POR                                                           0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ATTR                                                                       0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_BMSK                               0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_TIME_THRESHOLD_TO_DOORBELL_SHFT                                       16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_BMSK                           0x8000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_ERR_INT_REG_CLR_SHFT                               15
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_BMSK                                    0x7e00
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_NUM_THRESHOLD_TO_DOORBELL_SHFT                                         9
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_BMSK                                                0x180
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_SRNG_SM_STATE3_SHFT                                                    7
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_BMSK                                      0x70
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_INTERVAL_OF_FETCH_POINTER_SHFT                                         4
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_BMSK                                    0xf
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_FETCH_SAME_POINTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x)                                        ((x) + 0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_PHYS(x)                                        ((x) + 0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OFFS                                           (0x72c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_RMSK                                               0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR                                            0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_POR_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ATTR                                                        0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_BMSK                                       0xffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_MLO_DOORBELL_PRESS_MESSAGE_SHFT                                            0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x)                                    ((x) + 0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_PHYS(x)                                    ((x) + 0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OFFS                                       (0x730)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_RMSK                                       0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_BMSK                                 0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_LSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x)                                    ((x) + 0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_PHYS(x)                                    ((x) + 0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OFFS                                       (0x734)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_RMSK                                             0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR                                        0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_POR_RMSK                                   0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ATTR                                                    0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_BMSK                                       0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_DOORBELL_RING_ADDR_MSB_VALUE_SHFT                                          0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x)                                     ((x) + 0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_PHYS(x)                                     ((x) + 0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OFFS                                        (0x738)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_RMSK                                        0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_BMSK                                  0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_LSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x)                                     ((x) + 0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_PHYS(x)                                     ((x) + 0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OFFS                                        (0x73c)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_RMSK                                              0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR                                         0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_POR_RMSK                                    0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ATTR                                                     0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_BMSK                                        0xff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_PRODUCER_POINTER_READ_ADDR_MSB_VALUE_SHFT                                           0
+
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OFFS                                                                (0x740)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_ADDR(x),m,v,HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_IN(x))
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TQM_R0_TQM2TQM_OUT2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x)                                                          ((x) + 0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_PHYS(x)                                                          ((x) + 0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OFFS                                                             (0x744)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_POR                                                              0x01df0190
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_A_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x)                                                          ((x) + 0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_PHYS(x)                                                          ((x) + 0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OFFS                                                             (0x748)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_POR                                                              0x022f01e0
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_B_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x)                                                          ((x) + 0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_PHYS(x)                                                          ((x) + 0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OFFS                                                             (0x74c)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_POR                                                              0x027f0230
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_C_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x)                                                          ((x) + 0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_PHYS(x)                                                          ((x) + 0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OFFS                                                             (0x750)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_POR                                                              0x02cf0280
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_D_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x)                                                          ((x) + 0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_PHYS(x)                                                          ((x) + 0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OFFS                                                             (0x754)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_POR                                                              0x02e702d0
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_E_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x)                                                          ((x) + 0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_PHYS(x)                                                          ((x) + 0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OFFS                                                             (0x758)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_RMSK                                                              0x3ff03ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_POR                                                              0x02ff02e8
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ATTR                                                                          0x3
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_IN(x)            \
+                in_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x), m)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x),v)
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_ADDR(x),m,v,HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_IN(x))
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_END_ADDR_BMSK                                                     0x3ff0000
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_END_ADDR_SHFT                                                            16
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_START_ADDR_BMSK                                                       0x3ff
+#define HWIO_TQM_R0_PREFETCH_MEMORY_PARTITION_F_START_ADDR_SHFT                                                           0
+
+#define HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x)                                                                          ((x) + 0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_PHYS(x)                                                                          ((x) + 0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OFFS                                                                             (0x75c)
+#define HWIO_TQM_R0_MLO_CHIP_ID_RMSK                                                                                    0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_POR                                                                              0x00000000
+#define HWIO_TQM_R0_MLO_CHIP_ID_POR_RMSK                                                                         0xffffffff
+#define HWIO_TQM_R0_MLO_CHIP_ID_ATTR                                                                                          0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x))
+#define HWIO_TQM_R0_MLO_CHIP_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_CHIP_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_CHIP_ID_ADDR(x),m,v,HWIO_TQM_R0_MLO_CHIP_ID_IN(x))
+#define HWIO_TQM_R0_MLO_CHIP_ID_VALUE_BMSK                                                                              0x3
+#define HWIO_TQM_R0_MLO_CHIP_ID_VALUE_SHFT                                                                                0
+
+#define HWIO_TQM_R0_MLO_VC_ID_ADDR(x)                                                                            ((x) + 0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_PHYS(x)                                                                            ((x) + 0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_OFFS                                                                               (0x760)
+#define HWIO_TQM_R0_MLO_VC_ID_RMSK                                                                                      0xf
+#define HWIO_TQM_R0_MLO_VC_ID_POR                                                                                0x00000000
+#define HWIO_TQM_R0_MLO_VC_ID_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R0_MLO_VC_ID_ATTR                                                                                            0x3
+#define HWIO_TQM_R0_MLO_VC_ID_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_VC_ID_ADDR(x))
+#define HWIO_TQM_R0_MLO_VC_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_VC_ID_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_VC_ID_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_VC_ID_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_VC_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_VC_ID_ADDR(x),m,v,HWIO_TQM_R0_MLO_VC_ID_IN(x))
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT2_MLO_P_SRNG_BMSK                                                              0x8
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT2_MLO_P_SRNG_SHFT                                                                3
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT1_MLO_P_SRNG_BMSK                                                              0x4
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_OUT1_MLO_P_SRNG_SHFT                                                                2
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN2_MLO_C_SRNG_BMSK                                                               0x2
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN2_MLO_C_SRNG_SHFT                                                                 1
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN1_MLO_C_SRNG_BMSK                                                               0x1
+#define HWIO_TQM_R0_MLO_VC_ID_TQM2TQM_IN1_MLO_C_SRNG_SHFT                                                                 0
+
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x)                                                            ((x) + 0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_PHYS(x)                                                            ((x) + 0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OFFS                                                               (0x764)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_RMSK                                                                     0xff
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_POR                                                                0x00000000
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ATTR                                                                            0x3
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x))
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_ADDR(x),m,v,HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_IN(x))
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT2_SRNG_P_MLO_BMSK                                             0xc0
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT2_SRNG_P_MLO_SHFT                                                6
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT1_SRNG_P_MLO_BMSK                                             0x30
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_OUT1_SRNG_P_MLO_SHFT                                                4
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN2_SRNG_C_MLO_BMSK                                               0xc
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN2_SRNG_C_MLO_SHFT                                                 2
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN1_SRNG_C_MLO_BMSK                                               0x3
+#define HWIO_TQM_R0_MLO_GXI_TRANSFER_PRIORITY_TQM2TQM_IN1_SRNG_C_MLO_SHFT                                                 0
+
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x)                                                                ((x) + 0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_PHYS(x)                                                                ((x) + 0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OFFS                                                                   (0x768)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_RMSK                                                                          0x3
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_POR                                                                    0x00000000
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ATTR                                                                                0x3
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_IN(x))
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT2_BMSK                                                             0x2
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT2_SHFT                                                               1
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT1_BMSK                                                             0x1
+#define HWIO_TQM_R0_MLO_POSTED_WRITE_CTRL_TQM2TQM_OUT1_SHFT                                                               0
+
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x)                                                                ((x) + 0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_PHYS(x)                                                                ((x) + 0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OFFS                                                                   (0x76c)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_RMSK                                                                        0xfff
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_POR                                                                    0x00000003
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ATTR                                                                                0x3
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x))
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x), m)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x),v)
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ADDR(x),m,v,HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_IN(x))
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_WRITE_THRESHOLD_BMSK                                           0xf00
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_WRITE_THRESHOLD_SHFT                                               8
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_WRITE_THRESHOLD_BMSK                                            0xf0
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_WRITE_THRESHOLD_SHFT                                               4
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_ISSUE_MULTIPLE_TLVS_BMSK                                         0x8
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT2_ISSUE_MULTIPLE_TLVS_SHFT                                           3
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_ISSUE_MULTIPLE_TLVS_BMSK                                         0x4
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_TQM2TQM_OUT1_ISSUE_MULTIPLE_TLVS_SHFT                                           2
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT2_BMSK                                                         0x2
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT2_SHFT                                                           1
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT1_BMSK                                                         0x1
+#define HWIO_TQM_R0_MLO_STATUS_WRITE_CTRL_ENB_TQM2TQM_OUT1_SHFT                                                           0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x)                                                              ((x) + 0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_PHYS(x)                                                              ((x) + 0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OFFS                                                                 (0x2000)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_RMSK                                                                     0x1fff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_POR                                                                  0x00001000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_POR_RMSK                                                             0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ATTR                                                                              0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_BMSK                                                  0x1000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_ACK_SHFT                                                      12
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_BMSK                                                       0x800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_CACHE_CMD_HOLD_SHFT                                                          11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_BMSK                                                     0x400
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_UPDATE_SHFT                                                        10
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_BMSK                                                        0x3ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_CONTROL_TAG_TABLE_SEL_SHFT                                                            0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x)                                                            ((x) + 0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_PHYS(x)                                                            ((x) + 0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OFFS                                                               (0x2004)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_RMSK                                                               0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ATTR                                                                            0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_BMSK                                               0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HIT_COUNT_CACHE_HIT_COUNT_SHFT                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x)                                                           ((x) + 0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_PHYS(x)                                                           ((x) + 0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OFFS                                                              (0x2008)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_RMSK                                                                0xffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ATTR                                                                           0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_BMSK                                               0xffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_MISS_COUNT_CACHE_MISS_COUNT_SHFT                                                      0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x)                                                        ((x) + 0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_PHYS(x)                                                        ((x) + 0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OFFS                                                           (0x200c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_BMSK                                                 0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_LOW_OVERWRITE_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x)                                                       ((x) + 0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_PHYS(x)                                                       ((x) + 0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OFFS                                                          (0x2010)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR                                                           0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_POR_RMSK                                                      0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ATTR                                                                       0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_BMSK                                                0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_TAG_TABLE_HIGH_OVERWRITE_SHFT                                                         0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x)                                                                  ((x) + 0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_PHYS(x)                                                                  ((x) + 0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_OFFS                                                                     (0x2014)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_RMSK                                                                      0x1ffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_POR                                                                      0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_STATE_BMSK                                                                0x1ffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_STM_STATE_SHFT                                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x)                                                            ((x) + 0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_PHYS(x)                                                            ((x) + 0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_OFFS                                                               (0x2018)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_RMSK                                                                 0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_POR                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_POR_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ATTR                                                                            0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_BMSK                                                        0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_MRU_FLAG_SHFT                                                              11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_BMSK                                                           0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST_LRU_FLAG_SHFT                                                               0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x)                                                           ((x) + 0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_PHYS(x)                                                           ((x) + 0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_OFFS                                                              (0x201c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_BMSK                                                      0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_HEAD_FLAG_SHFT                                                            11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_BMSK                                                         0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST1_TAIL_FLAG_SHFT                                                             0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x)                                                           ((x) + 0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_PHYS(x)                                                           ((x) + 0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_OFFS                                                              (0x2020)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_BMSK                                                  0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_MRU_FLAG_SET2_SHFT                                                        11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_BMSK                                                     0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST2_LRU_FLAG_SET2_SHFT                                                         0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x)                                                           ((x) + 0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_PHYS(x)                                                           ((x) + 0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_OFFS                                                              (0x2024)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_RMSK                                                                0x3fffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR                                                               0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_POR_RMSK                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ATTR                                                                           0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_BMSK                                                 0x3ff800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_HEAD_FLAG_SET2_SHFT                                                       11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_BMSK                                                    0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_LINK_LIST3_TAIL_FLAG_SET2_SHFT                                                        0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x)                                                      ((x) + 0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_PHYS(x)                                                      ((x) + 0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_OFFS                                                         (0x2028)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR                                                          0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ATTR                                                                      0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_LOW_VALUE_SHFT                                                            0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x)                                                     ((x) + 0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_PHYS(x)                                                     ((x) + 0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_OFFS                                                        (0x202c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_RMSK                                                        0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR                                                         0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_POR_RMSK                                                    0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ATTR                                                                     0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_BMSK                                                  0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_HW_ERR_INFO_HIGH_VALUE_SHFT                                                           0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x)                                                   ((x) + 0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_PHYS(x)                                                   ((x) + 0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_OFFS                                                      (0x2030)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_RMSK                                                         0xfffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR                                                       0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ATTR                                                                   0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_BMSK                                                    0xffc00
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET2_SHFT                                                         10
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_BMSK                                                      0x3ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_EMPTY_LINE_COUNTER_SET1_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x)                                                          ((x) + 0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_PHYS(x)                                                          ((x) + 0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OFFS                                                             (0x2034)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_RMSK                                                                    0x1
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_POR                                                              0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ATTR                                                                          0x3
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                             0x1
+#define HWIO_TQM_R1_CACHE_CTL_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                               0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x)                                                        ((x) + 0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_PHYS(x)                                                        ((x) + 0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OFFS                                                           (0x2038)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_RMSK                                                                0x7ff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_BMSK                                                         0x7f8
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_BACKUP_SHFT                                                             3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_BMSK                                         0x4
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_WITHOUT_INVALIDATE_SHFT                                           2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_BMSK                                               0x2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_ENTIRE_CACHE_SHFT                                                 1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_BMSK                                                        0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG1_FLUSH_REQ_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x)                                                        ((x) + 0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_PHYS(x)                                                        ((x) + 0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OFFS                                                           (0x203c)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_RMSK                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_BMSK                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG2_FLUSH_ADDR_31_0_SHFT                                                    0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x)                                                        ((x) + 0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_PHYS(x)                                                        ((x) + 0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OFFS                                                           (0x2040)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_RMSK                                                                 0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR                                                            0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_POR_RMSK                                                       0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ATTR                                                                        0x3
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_ADDR(x),m,v,HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_IN(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_BMSK                                                0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_CONFIG3_FLUSH_ADDR_39_32_SHFT                                                   0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x)                                                         ((x) + 0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_PHYS(x)                                                         ((x) + 0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_OFFS                                                            (0x2044)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_RMSK                                                            0x3fffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR                                                             0x00000001
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ATTR                                                                         0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_BMSK                                                     0x3fc00000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_BACKUP_SHFT                                                             22
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_BMSK                                                  0x3ff000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_COUNT_SHFT                                                        12
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_BMSK                                         0x800
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HW_IF_BUSY_SHFT                                            11
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_BMSK                                              0x600
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_ERROR_SHFT                                                  9
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_BMSK                                          0x1e0
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_CLIENT_ID_SHFT                                              5
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_BMSK                                           0x1c
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_DESC_TYPE_SHFT                                              2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_BMSK                                                  0x2
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_STATUS_HIT_SHFT                                                    1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_BMSK                                                        0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_FLUSH_STATUS_FLUSH_DONE_SHFT                                                          0
+
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x)                                                          ((x) + 0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_PHYS(x)                                                          ((x) + 0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_OFFS                                                             (0x2048)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_RMSK                                                                   0xff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR                                                              0x00000000
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_POR_RMSK                                                         0xffffffff
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ATTR                                                                          0x1
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x))
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_BMSK                                                          0xf0
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_ACT_ADDR_SHFT                                                             4
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_BMSK                                                           0xf
+#define HWIO_TQM_R1_CACHE_CTL_DEBUG_OWNER_CHECK_EXP_ADDR_SHFT                                                             0
+
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR(x)                                                                         ((x) + 0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_PHYS(x)                                                                         ((x) + 0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_OFFS                                                                            (0x204c)
+#define HWIO_TQM_R1_PREFETCH_BUF_RMSK                                                                                 0x7ff
+#define HWIO_TQM_R1_PREFETCH_BUF_POR                                                                             0x00000000
+#define HWIO_TQM_R1_PREFETCH_BUF_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_ATTR                                                                                         0x3
+#define HWIO_TQM_R1_PREFETCH_BUF_IN(x)            \
+                in_dword(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x), m)
+#define HWIO_TQM_R1_PREFETCH_BUF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x),v)
+#define HWIO_TQM_R1_PREFETCH_BUF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_PREFETCH_BUF_ADDR(x),m,v,HWIO_TQM_R1_PREFETCH_BUF_IN(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR_BMSK                                                                            0x7ff
+#define HWIO_TQM_R1_PREFETCH_BUF_ADDR_SHFT                                                                                0
+
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x)                                                                    ((x) + 0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_PHYS(x)                                                                    ((x) + 0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_OFFS                                                                       (0x2050)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_POR                                                                        0x00000000
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x))
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_PREFETCH_BUF_DATA_ADDR(x), m)
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_VALUE_BMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_PREFETCH_BUF_DATA_VALUE_SHFT                                                                          0
+
+#define HWIO_TQM_R1_CACHE_BUF_ADDR(x)                                                                            ((x) + 0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_PHYS(x)                                                                            ((x) + 0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_OFFS                                                                               (0x2054)
+#define HWIO_TQM_R1_CACHE_BUF_RMSK                                                                                   0x7fff
+#define HWIO_TQM_R1_CACHE_BUF_POR                                                                                0x00000000
+#define HWIO_TQM_R1_CACHE_BUF_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_CACHE_BUF_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_BUF_ADDR(x))
+#define HWIO_TQM_R1_CACHE_BUF_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_BUF_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_BUF_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_CACHE_BUF_ADDR(x),v)
+#define HWIO_TQM_R1_CACHE_BUF_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_CACHE_BUF_ADDR(x),m,v,HWIO_TQM_R1_CACHE_BUF_IN(x))
+#define HWIO_TQM_R1_CACHE_BUF_ADDR_BMSK                                                                              0x7fff
+#define HWIO_TQM_R1_CACHE_BUF_ADDR_SHFT                                                                                   0
+
+#define HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x)                                                                       ((x) + 0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_PHYS(x)                                                                       ((x) + 0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_OFFS                                                                          (0x2058)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_POR                                                                           0x00000000
+#define HWIO_TQM_R1_CACHE_BUF_DATA_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_ATTR                                                                                       0x1
+#define HWIO_TQM_R1_CACHE_BUF_DATA_IN(x)            \
+                in_dword(HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x))
+#define HWIO_TQM_R1_CACHE_BUF_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CACHE_BUF_DATA_ADDR(x), m)
+#define HWIO_TQM_R1_CACHE_BUF_DATA_VALUE_BMSK                                                                    0xffffffff
+#define HWIO_TQM_R1_CACHE_BUF_DATA_VALUE_SHFT                                                                             0
+
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x)                                                                      ((x) + 0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_PHYS(x)                                                                      ((x) + 0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OFFS                                                                         (0x205c)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_RMSK                                                                                0x3
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_POR                                                                          0x00000000
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_ATTR                                                                                      0x3
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IN(x)            \
+                in_dword(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x))
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x), m)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x),v)
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_MISC_DEBUG_CTRL_ADDR(x),m,v,HWIO_TQM_R1_MISC_DEBUG_CTRL_IN(x))
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_BMSK                                                                       0x2
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_SHFT                                                                         1
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_DONE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_MISC_DEBUG_CTRL_IDLE_REQ_DONE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_LOG_ADDR(x)                                                                                  ((x) + 0x2060)
+#define HWIO_TQM_R1_LOG_PHYS(x)                                                                                  ((x) + 0x2060)
+#define HWIO_TQM_R1_LOG_OFFS                                                                                     (0x2060)
+#define HWIO_TQM_R1_LOG_RMSK                                                                                      0xfffffff
+#define HWIO_TQM_R1_LOG_POR                                                                                      0x0fffffff
+#define HWIO_TQM_R1_LOG_POR_RMSK                                                                                 0xffffffff
+#define HWIO_TQM_R1_LOG_ATTR                                                                                                  0x1
+#define HWIO_TQM_R1_LOG_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADDR(x))
+#define HWIO_TQM_R1_LOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_CURR_CMD_IDX_BMSK                                                                         0xf000000
+#define HWIO_TQM_R1_LOG_CURR_CMD_IDX_SHFT                                                                                24
+#define HWIO_TQM_R1_LOG_CURR_CMD_NUM_BMSK                                                                          0xffffff
+#define HWIO_TQM_R1_LOG_CURR_CMD_NUM_SHFT                                                                                 0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x)                                                                   ((x) + 0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_PHYS(x)                                                                   ((x) + 0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_OFFS                                                                      (0x2064)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_RMSK                                                                      0x3fffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_QUEUE_STATS_SM_BMSK                                                   0x3e000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_QUEUE_STATS_SM_SHFT                                                           25
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_BMSK                                                 0x1e00000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GET_MPDU_HEAD_INFO_SM_SHFT                                                        21
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_BMSK                                             0x180000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_FLUSH_AND_UNBLOCK_CACHE_SM_SHFT                                                   19
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MPDU_LINK_SM_BMSK                                                        0x78000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MPDU_LINK_SM_SHFT                                                             15
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_CREATE_MPDU_SM_BMSK                                                           0x7c00
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_CREATE_MPDU_SM_SHFT                                                               10
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GEN_MPDU_SM_BMSK                                                               0x3e0
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_GEN_MPDU_SM_SHFT                                                                   5
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MSDU_SM_BMSK                                                                0x1f
+#define HWIO_TQM_R1_BANK_SM_STATES_IX0_ADD_MSDU_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x)                                                                   ((x) + 0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_PHYS(x)                                                                   ((x) + 0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_OFFS                                                                      (0x2068)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK1_SM_BMSK                                                   0xc0000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK1_SM_SHFT                                                           30
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK0_SM_BMSK                                                   0x30000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_ARB_STATUS_BLK0_SM_SHFT                                                           28
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_BMSK                                               0xf800000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_UPDATE_TX_MPDU_COUNT_SM_SHFT                                                      23
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MSDU_SM_BMSK                                                            0x7c0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MSDU_SM_SHFT                                                                  18
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MPDU_SM_BMSK                                                             0x3f000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_REM_MPDU_SM_SHFT                                                                  12
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_WRITE_CMD_SM_BMSK                                                              0xe00
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_WRITE_CMD_SM_SHFT                                                                  9
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_MPDU_MAIN_SM_BMSK                                                         0x1f0
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_MPDU_MAIN_SM_SHFT                                                             4
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_TLV_SM_BMSK                                                                 0xf
+#define HWIO_TQM_R1_BANK_SM_STATES_IX1_LIST_TLV_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x)                                                                   ((x) + 0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PHYS(x)                                                                   ((x) + 0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_OFFS                                                                      (0x206c)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX2_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_ASYNC_SM_BMSK                                                         0x80000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_ASYNC_SM_SHFT                                                                 31
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_MSDU_ENT_SM_BMSK                                                      0x70000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_MSDU_ENT_SM_SHFT                                                              28
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_SW_CMD_SM_BMSK                                                         0xf000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_SW_CMD_SM_SHFT                                                                24
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_HWSCH_CMD_SM_BMSK                                                       0xf00000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_ARB_HWSCH_CMD_SM_SHFT                                                             20
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_READ_SM_BMSK                                                        0xc0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_READ_SM_SHFT                                                             18
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_SM_BMSK                                                             0x3ffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX2_PREFETCH_SM_SHFT                                                                   0
+
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x)                                                                   ((x) + 0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PHYS(x)                                                                   ((x) + 0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_OFFS                                                                      (0x2070)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_RMSK                                                                        0xffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_POR                                                                       0x00000000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x))
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_BANK_SM_STATES_IX3_ADDR(x), m)
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PREFETCH_SM_BMSK                                                            0xff0000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_PREFETCH_SM_SHFT                                                                  16
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_BMSK                                                    0xc000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT2_SM_STATE_SHFT                                                        14
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_BMSK                                                    0x3000
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_TQM2TQM_OUT1_SM_STATE_SHFT                                                        12
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_BMSK                                                      0xf80
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_UPDATE_QUEUE_DESC_SM_SHFT                                                          7
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_AXI_TO_TLV_SM_BMSK                                                              0x60
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_AXI_TO_TLV_SM_SHFT                                                                 5
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_LIST_TLV_STATE_BMSK                                                             0x1c
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_LIST_TLV_STATE_SHFT                                                                2
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_DATA_ALIGN_SM_BMSK                                                               0x3
+#define HWIO_TQM_R1_BANK_SM_STATES_IX3_DATA_ALIGN_SM_SHFT                                                                 0
+
+#define HWIO_TQM_R1_CCMN_IDLE_ADDR(x)                                                                            ((x) + 0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_PHYS(x)                                                                            ((x) + 0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_OFFS                                                                               (0x2074)
+#define HWIO_TQM_R1_CCMN_IDLE_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_POR                                                                                0x00000000
+#define HWIO_TQM_R1_CCMN_IDLE_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_ATTR                                                                                            0x1
+#define HWIO_TQM_R1_CCMN_IDLE_IN(x)            \
+                in_dword(HWIO_TQM_R1_CCMN_IDLE_ADDR(x))
+#define HWIO_TQM_R1_CCMN_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CCMN_IDLE_ADDR(x), m)
+#define HWIO_TQM_R1_CCMN_IDLE_SOURCES_BMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_CCMN_IDLE_SOURCES_SHFT                                                                                0
+
+#define HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x)                                                                      ((x) + 0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_PHYS(x)                                                                      ((x) + 0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_OFFS                                                                         (0x2078)
+#define HWIO_TQM_R1_CURRENT_COMMAND_RMSK                                                                         0xffffffff
+#define HWIO_TQM_R1_CURRENT_COMMAND_POR                                                                          0x00000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_CURRENT_COMMAND_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_CURRENT_COMMAND_IN(x)            \
+                in_dword(HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x))
+#define HWIO_TQM_R1_CURRENT_COMMAND_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CURRENT_COMMAND_ADDR(x), m)
+#define HWIO_TQM_R1_CURRENT_COMMAND_POINTER_BMSK                                                                 0xf0000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_POINTER_SHFT                                                                         28
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_6_BMSK                                                                  0xf000000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_6_SHFT                                                                         24
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_5_BMSK                                                                   0xf00000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_5_SHFT                                                                         20
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_4_BMSK                                                                    0xf0000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_4_SHFT                                                                         16
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_3_BMSK                                                                     0xf000
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_3_SHFT                                                                         12
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_2_BMSK                                                                      0xf00
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_2_SHFT                                                                          8
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_1_BMSK                                                                       0xf0
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_1_SHFT                                                                          4
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_0_BMSK                                                                        0xf
+#define HWIO_TQM_R1_CURRENT_COMMAND_INDEX_0_SHFT                                                                          0
+
+#define HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x)                                                                         ((x) + 0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_PHYS(x)                                                                         ((x) + 0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_OFFS                                                                            (0x207c)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_RMSK                                                                              0xffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_POR                                                                             0x00ffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_POR_RMSK                                                                        0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_ATTR                                                                                         0x1
+#define HWIO_TQM_R1_LOG_ADD_MSDU_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x))
+#define HWIO_TQM_R1_LOG_ADD_MSDU_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADD_MSDU_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_CURR_CMD_NUM_BMSK                                                                 0xffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_CURR_CMD_NUM_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x)                                                                    ((x) + 0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_PHYS(x)                                                                    ((x) + 0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_OFFS                                                                       (0x2080)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_RMSK                                                                       0x3fffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_2_BMSK                                                               0x3ff00000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_2_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_1_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_1_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_0_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX0_INDEX_0_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x)                                                                    ((x) + 0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_PHYS(x)                                                                    ((x) + 0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_OFFS                                                                       (0x2084)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_RMSK                                                                       0x3fffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_5_BMSK                                                               0x3ff00000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_5_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_4_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_4_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_3_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX1_INDEX_3_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x)                                                                    ((x) + 0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_PHYS(x)                                                                    ((x) + 0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_OFFS                                                                       (0x2088)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_RMSK                                                                         0x7fffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX2_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POINTER_BMSK                                                                 0x700000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_POINTER_SHFT                                                                       20
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_7_BMSK                                                                  0xffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_7_SHFT                                                                       10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_6_BMSK                                                                    0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX2_INDEX_6_SHFT                                                                        0
+
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x)                                                                    ((x) + 0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_PHYS(x)                                                                    ((x) + 0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_OFFS                                                                       (0x208c)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_RMSK                                                                       0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_POR                                                                        0x00000000
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x))
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_TIMESTAMP_IX3_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_WATCHDOG_SNAPSHOT_BMSK                                                     0xfffffc00
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_WATCHDOG_SNAPSHOT_SHFT                                                             10
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_TIMESTAMP_BMSK                                                                  0x3ff
+#define HWIO_TQM_R1_LOG_TIMESTAMP_IX3_TIMESTAMP_SHFT                                                                      0
+
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x)                                                                  ((x) + 0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_PHYS(x)                                                                  ((x) + 0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_OFFS                                                                     (0x2090)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_POR                                                                      0x00000000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x))
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WATCHDOG_STATUS_IX0_ADDR(x), m)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_SW_SM_WATCHDOG_BMSK                                                      0xffff0000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_SW_SM_WATCHDOG_SHFT                                                              16
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_HW_SM_WATCHDOG_BMSK                                                          0xffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX0_HW_SM_WATCHDOG_SHFT                                                               0
+
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x)                                                                  ((x) + 0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_PHYS(x)                                                                  ((x) + 0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_OFFS                                                                     (0x2094)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_RMSK                                                                       0x1fffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_POR                                                                      0x00000000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ATTR                                                                                  0x1
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IN(x)            \
+                in_dword(HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x))
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ADDR(x), m)
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IDLE_SEQUENCE_SM_BMSK                                                      0x1f0000
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_IDLE_SEQUENCE_SM_SHFT                                                            16
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ENTRANCE_SM_WATCHDOG_BMSK                                                    0xffff
+#define HWIO_TQM_R1_WATCHDOG_STATUS_IX1_ENTRANCE_SM_WATCHDOG_SHFT                                                         0
+
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x)                                                                   ((x) + 0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_PHYS(x)                                                                   ((x) + 0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_OFFS                                                                      (0x2098)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_POR                                                                       0x00000000
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x))
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDRESS_BMSK                                                              0xffffffff
+#define HWIO_TQM_R1_LOG_ADD_MSDU_FETCH_ADDRESS_SHFT                                                                       0
+
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x)                                                                   ((x) + 0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_PHYS(x)                                                                   ((x) + 0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_OFFS                                                                      (0x209c)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_POR                                                                       0x00000000
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ATTR                                                                                   0x1
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_IN(x)            \
+                in_dword(HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x))
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDR(x), m)
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDRESS_BMSK                                                              0xffffffff
+#define HWIO_TQM_R1_LOG_GEN_MPDU_FETCH_ADDRESS_SHFT                                                                       0
+
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x)                                                                    ((x) + 0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_PHYS(x)                                                                    ((x) + 0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_OFFS                                                                       (0x20a0)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_RMSK                                                                       0x7fffffff
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_POR                                                                        0x71d1e1a1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ATTR                                                                                    0x1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_IN(x)            \
+                in_dword(HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x))
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_IDLE_SEQUENCE_LOG_ADDR(x), m)
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_1_BMSK                                                               0x7fff0000
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_1_SHFT                                                                       16
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_0_BMSK                                                                   0xfffe
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_TIMER_0_SHFT                                                                        1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INDEX_BMSK                                                                        0x1
+#define HWIO_TQM_R1_IDLE_SEQUENCE_LOG_INDEX_SHFT                                                                          0
+
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x)                                                             ((x) + 0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_PHYS(x)                                                             ((x) + 0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_OFFS                                                                (0x20a4)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_RMSK                                                                 0x3ffff3f
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FREE_SLOTS_BMSK                                                      0x3ff0000
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FREE_SLOTS_SHFT                                                             16
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_CURR_REQ_LEN_BMSK                                                       0xff00
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_CURR_REQ_LEN_SHFT                                                            8
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FLUSH_STATE_BMSK                                                          0x30
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_FLUSH_STATE_SHFT                                                             4
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_SM_STATE_BMSK                                                              0xe
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_SM_STATE_SHFT                                                                1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IDLE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_SCH2TQM0_TLV_INTF_STATUS_IDLE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x)                                                                      ((x) + 0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_PHYS(x)                                                                      ((x) + 0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_OFFS                                                                         (0x20a8)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_RMSK                                                                         0x7fffffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_POR                                                                          0x00000000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM0_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SESSION_ID_BMSK                                                        0x7f800000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SESSION_ID_SHFT                                                                23
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SRC_ID_BMSK                                                              0x700000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_SRC_ID_SHFT                                                                    20
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_STATUS_BMSK                                                               0xf0000
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_FLUSH_STATUS_SHFT                                                                    16
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_HEADER_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_SCH2TQM0_STATUS_HEADER_SHFT                                                                           0
+
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x)                                                             ((x) + 0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_PHYS(x)                                                             ((x) + 0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_OFFS                                                                (0x20ac)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_RMSK                                                                 0x3ffff3f
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_POR                                                                 0x00000000
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ATTR                                                                             0x1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FREE_SLOTS_BMSK                                                      0x3ff0000
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FREE_SLOTS_SHFT                                                             16
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_CURR_REQ_LEN_BMSK                                                       0xff00
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_CURR_REQ_LEN_SHFT                                                            8
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FLUSH_STATE_BMSK                                                          0x30
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_FLUSH_STATE_SHFT                                                             4
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_SM_STATE_BMSK                                                              0xe
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_SM_STATE_SHFT                                                                1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IDLE_BMSK                                                                  0x1
+#define HWIO_TQM_R1_SCH2TQM1_TLV_INTF_STATUS_IDLE_SHFT                                                                    0
+
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x)                                                                      ((x) + 0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_PHYS(x)                                                                      ((x) + 0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_OFFS                                                                         (0x20b0)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_RMSK                                                                         0x7fffffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_POR                                                                          0x00000000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_ATTR                                                                                      0x1
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_IN(x)            \
+                in_dword(HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x))
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_SCH2TQM1_STATUS_ADDR(x), m)
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SESSION_ID_BMSK                                                        0x7f800000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SESSION_ID_SHFT                                                                23
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SRC_ID_BMSK                                                              0x700000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_SRC_ID_SHFT                                                                    20
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_STATUS_BMSK                                                               0xf0000
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_FLUSH_STATUS_SHFT                                                                    16
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_HEADER_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_SCH2TQM1_STATUS_HEADER_SHFT                                                                           0
+
+#define HWIO_TQM_R1_FLUSH_ADDR(x)                                                                                ((x) + 0x20b4)
+#define HWIO_TQM_R1_FLUSH_PHYS(x)                                                                                ((x) + 0x20b4)
+#define HWIO_TQM_R1_FLUSH_OFFS                                                                                   (0x20b4)
+#define HWIO_TQM_R1_FLUSH_RMSK                                                                                   0xffffffff
+#define HWIO_TQM_R1_FLUSH_POR                                                                                    0x00000000
+#define HWIO_TQM_R1_FLUSH_POR_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_FLUSH_ATTR                                                                                                0x3
+#define HWIO_TQM_R1_FLUSH_IN(x)            \
+                in_dword(HWIO_TQM_R1_FLUSH_ADDR(x))
+#define HWIO_TQM_R1_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_FLUSH_ADDR(x), m)
+#define HWIO_TQM_R1_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_FLUSH_ADDR(x),v)
+#define HWIO_TQM_R1_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_FLUSH_ADDR(x),m,v,HWIO_TQM_R1_FLUSH_IN(x))
+#define HWIO_TQM_R1_FLUSH_BACKUP_10_BMSK                                                                         0x80000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_10_SHFT                                                                                 31
+#define HWIO_TQM_R1_FLUSH_BACKUP_9_BMSK                                                                          0x40000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_9_SHFT                                                                                  30
+#define HWIO_TQM_R1_FLUSH_BACKUP_8_BMSK                                                                          0x20000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_8_SHFT                                                                                  29
+#define HWIO_TQM_R1_FLUSH_BACKUP_7_BMSK                                                                          0x10000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_7_SHFT                                                                                  28
+#define HWIO_TQM_R1_FLUSH_BACKUP_6_BMSK                                                                           0x8000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_6_SHFT                                                                                  27
+#define HWIO_TQM_R1_FLUSH_BACKUP_5_BMSK                                                                           0x4000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_5_SHFT                                                                                  26
+#define HWIO_TQM_R1_FLUSH_BACKUP_4_BMSK                                                                           0x2000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_4_SHFT                                                                                  25
+#define HWIO_TQM_R1_FLUSH_BACKUP_3_BMSK                                                                           0x1000000
+#define HWIO_TQM_R1_FLUSH_BACKUP_3_SHFT                                                                                  24
+#define HWIO_TQM_R1_FLUSH_BACKUP_2_BMSK                                                                            0x800000
+#define HWIO_TQM_R1_FLUSH_BACKUP_2_SHFT                                                                                  23
+#define HWIO_TQM_R1_FLUSH_BACKUP_1_BMSK                                                                            0x400000
+#define HWIO_TQM_R1_FLUSH_BACKUP_1_SHFT                                                                                  22
+#define HWIO_TQM_R1_FLUSH_BACKUP_0_BMSK                                                                            0x200000
+#define HWIO_TQM_R1_FLUSH_BACKUP_0_SHFT                                                                                  21
+#define HWIO_TQM_R1_FLUSH_CMD_AND_PTR_PREFETCH_FLUSH_P_BMSK                                                        0x100000
+#define HWIO_TQM_R1_FLUSH_CMD_AND_PTR_PREFETCH_FLUSH_P_SHFT                                                              20
+#define HWIO_TQM_R1_FLUSH_CMD_ARBITER_FLUSH_P_BMSK                                                                  0x80000
+#define HWIO_TQM_R1_FLUSH_CMD_ARBITER_FLUSH_P_SHFT                                                                       19
+#define HWIO_TQM_R1_FLUSH_COMMON_LOGIC_FLUSH_P_BMSK                                                                 0x40000
+#define HWIO_TQM_R1_FLUSH_COMMON_LOGIC_FLUSH_P_SHFT                                                                      18
+#define HWIO_TQM_R1_FLUSH_ADD_MSDU_SM_FLUSH_P_BMSK                                                                  0x20000
+#define HWIO_TQM_R1_FLUSH_ADD_MSDU_SM_FLUSH_P_SHFT                                                                       17
+#define HWIO_TQM_R1_FLUSH_GEN_MPDU_SM_FLUSH_P_BMSK                                                                  0x10000
+#define HWIO_TQM_R1_FLUSH_GEN_MPDU_SM_FLUSH_P_SHFT                                                                       16
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_COUNT_SM_FLUSH_P_BMSK                                                       0x8000
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_COUNT_SM_FLUSH_P_SHFT                                                           15
+#define HWIO_TQM_R1_FLUSH_LIST_MPDU_SM_FLUSH_P_BMSK                                                                  0x4000
+#define HWIO_TQM_R1_FLUSH_LIST_MPDU_SM_FLUSH_P_SHFT                                                                      14
+#define HWIO_TQM_R1_FLUSH_WRITE_CMD_SM_FLUSH_P_BMSK                                                                  0x2000
+#define HWIO_TQM_R1_FLUSH_WRITE_CMD_SM_FLUSH_P_SHFT                                                                      13
+#define HWIO_TQM_R1_FLUSH_ACKED_MPDU_SM_FLUSH_P_BMSK                                                                 0x1000
+#define HWIO_TQM_R1_FLUSH_ACKED_MPDU_SM_FLUSH_P_SHFT                                                                     12
+#define HWIO_TQM_R1_FLUSH_REM_MPDU_SM_FLUSH_P_BMSK                                                                    0x800
+#define HWIO_TQM_R1_FLUSH_REM_MPDU_SM_FLUSH_P_SHFT                                                                       11
+#define HWIO_TQM_R1_FLUSH_REM_MSDU_SM_FLUSH_P_BMSK                                                                    0x400
+#define HWIO_TQM_R1_FLUSH_REM_MSDU_SM_FLUSH_P_SHFT                                                                       10
+#define HWIO_TQM_R1_FLUSH_HWSCH_AXI_IF_FLUSH_P_BMSK                                                                   0x200
+#define HWIO_TQM_R1_FLUSH_HWSCH_AXI_IF_FLUSH_P_SHFT                                                                       9
+#define HWIO_TQM_R1_FLUSH_AXI_TO_TLV_FLUSH_P_BMSK                                                                     0x100
+#define HWIO_TQM_R1_FLUSH_AXI_TO_TLV_FLUSH_P_SHFT                                                                         8
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_HEAD_INFO_SM_FLUSH_P_BMSK                                                           0x80
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_HEAD_INFO_SM_FLUSH_P_SHFT                                                              7
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_QUEUE_STAT_SM_FLUSH_P_BMSK                                                          0x40
+#define HWIO_TQM_R1_FLUSH_GET_MPDU_QUEUE_STAT_SM_FLUSH_P_SHFT                                                             6
+#define HWIO_TQM_R1_FLUSH_GET_MSDU_FLOW_STAT_SM_FLUSH_P_BMSK                                                           0x20
+#define HWIO_TQM_R1_FLUSH_GET_MSDU_FLOW_STAT_SM_FLUSH_P_SHFT                                                              5
+#define HWIO_TQM_R1_FLUSH_FLUSH_CACHE_SM_FLUSH_P_BMSK                                                                  0x10
+#define HWIO_TQM_R1_FLUSH_FLUSH_CACHE_SM_FLUSH_P_SHFT                                                                     4
+#define HWIO_TQM_R1_FLUSH_UNBLOCK_CACHE_SM_FLUSH_P_BMSK                                                                 0x8
+#define HWIO_TQM_R1_FLUSH_UNBLOCK_CACHE_SM_FLUSH_P_SHFT                                                                   3
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_QUEUE_HEAD_SM_FLUSH_P_BMSK                                                     0x4
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MPDU_QUEUE_HEAD_SM_FLUSH_P_SHFT                                                       2
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MSDU_FLOW_SM_FLUSH_P_BMSK                                                           0x2
+#define HWIO_TQM_R1_FLUSH_UPDATE_TX_MSDU_FLOW_SM_FLUSH_P_SHFT                                                             1
+#define HWIO_TQM_R1_FLUSH_TQM_IDLE_SEQUENCE_FLUSH_P_BMSK                                                                0x1
+#define HWIO_TQM_R1_FLUSH_TQM_IDLE_SEQUENCE_FLUSH_P_SHFT                                                                  0
+
+#define HWIO_TQM_R1_WARN_WDG_0_ADDR(x)                                                                           ((x) + 0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_PHYS(x)                                                                           ((x) + 0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_OFFS                                                                              (0x20b8)
+#define HWIO_TQM_R1_WARN_WDG_0_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_0_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_0_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_0_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_0_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_0_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_0_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_0_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_0_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_STATUS_BMSK                                                          0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_STATUS_SHFT                                                                  16
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_LIMIT_BMSK                                                               0xffff
+#define HWIO_TQM_R1_WARN_WDG_0_RELEASE_FIFO_LIMIT_SHFT                                                                    0
+
+#define HWIO_TQM_R1_WARN_WDG_1_ADDR(x)                                                                           ((x) + 0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_PHYS(x)                                                                           ((x) + 0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_OFFS                                                                              (0x20bc)
+#define HWIO_TQM_R1_WARN_WDG_1_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_1_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_1_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_1_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_1_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_1_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_1_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_1_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_1_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_1_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_STATUS_BMSK                                                        0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_STATUS_SHFT                                                                16
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_LIMIT_BMSK                                                             0xffff
+#define HWIO_TQM_R1_WARN_WDG_1_DESC_RING_FIFO_LIMIT_SHFT                                                                  0
+
+#define HWIO_TQM_R1_WARN_WDG_2_ADDR(x)                                                                           ((x) + 0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_PHYS(x)                                                                           ((x) + 0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_OFFS                                                                              (0x20c0)
+#define HWIO_TQM_R1_WARN_WDG_2_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_2_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_2_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_2_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_2_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_2_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_2_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_2_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_2_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_2_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_STATUS_BMSK                                                      0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_STATUS_SHFT                                                              16
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_LIMIT_BMSK                                                           0xffff
+#define HWIO_TQM_R1_WARN_WDG_2_STATUS_RING_FIFO_LIMIT_SHFT                                                                0
+
+#define HWIO_TQM_R1_WARN_WDG_3_ADDR(x)                                                                           ((x) + 0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_PHYS(x)                                                                           ((x) + 0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_OFFS                                                                              (0x20c4)
+#define HWIO_TQM_R1_WARN_WDG_3_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_3_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_3_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_3_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_3_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_3_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_3_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_3_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_3_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_3_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_3_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_3_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_STATUS_BMSK                                                     0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_STATUS_SHFT                                                             16
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_LIMIT_BMSK                                                          0xffff
+#define HWIO_TQM_R1_WARN_WDG_3_STATUS1_RING_FIFO_LIMIT_SHFT                                                               0
+
+#define HWIO_TQM_R1_WARN_WDG_4_ADDR(x)                                                                           ((x) + 0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_PHYS(x)                                                                           ((x) + 0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_OFFS                                                                              (0x20c8)
+#define HWIO_TQM_R1_WARN_WDG_4_RMSK                                                                              0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_4_POR                                                                               0x00000000
+#define HWIO_TQM_R1_WARN_WDG_4_POR_RMSK                                                                          0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_4_ATTR                                                                                           0x3
+#define HWIO_TQM_R1_WARN_WDG_4_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_4_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_4_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_4_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_4_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_4_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_4_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_4_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_STATUS_BMSK                                                              0xffff0000
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_STATUS_SHFT                                                                      16
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_LIMIT_BMSK                                                                   0xffff
+#define HWIO_TQM_R1_WARN_WDG_4_TLV_FIFO_LIMIT_SHFT                                                                        0
+
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x)                                                                    ((x) + 0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_PHYS(x)                                                                    ((x) + 0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OFFS                                                                       (0x20cc)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RMSK                                                                             0x1f
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_POR                                                                        0x00000000
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_ATTR                                                                                    0x0
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x))
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x), m)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x),v)
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_WARN_WDG_STATUS_0_ADDR(x),m,v,HWIO_TQM_R1_WARN_WDG_STATUS_0_IN(x))
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_TLV_FIFO_FULL_INTERRUPT_BMSK                                                     0x10
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_TLV_FIFO_FULL_INTERRUPT_SHFT                                                        4
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS1_RING_FIFO_FULL_INTERRUPT_BMSK                                             0x8
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS1_RING_FIFO_FULL_INTERRUPT_SHFT                                               3
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS_RING_FIFO_FULL_INTERRUPT_BMSK                                              0x4
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_STATUS_RING_FIFO_FULL_INTERRUPT_SHFT                                                2
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_DESC_RING_FIFO_EMPTY_INTERRUPT_BMSK                                               0x2
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_DESC_RING_FIFO_EMPTY_INTERRUPT_SHFT                                                 1
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RELEASE_RING_FIFO_FULL_INTERRUPT_BMSK                                             0x1
+#define HWIO_TQM_R1_WARN_WDG_STATUS_0_RELEASE_RING_FIFO_FULL_INTERRUPT_SHFT                                               0
+
+#define HWIO_TQM_R1_ERR_WDG_0_ADDR(x)                                                                            ((x) + 0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_PHYS(x)                                                                            ((x) + 0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_OFFS                                                                               (0x20d0)
+#define HWIO_TQM_R1_ERR_WDG_0_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_0_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_0_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_0_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_0_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_0_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_0_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_0_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_0_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_STATUS_SHFT                                                                          16
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_LIMIT_BMSK                                                                       0xffff
+#define HWIO_TQM_R1_ERR_WDG_0_HW_SM_LIMIT_SHFT                                                                            0
+
+#define HWIO_TQM_R1_ERR_WDG_1_ADDR(x)                                                                            ((x) + 0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_PHYS(x)                                                                            ((x) + 0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_OFFS                                                                               (0x20d4)
+#define HWIO_TQM_R1_ERR_WDG_1_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_1_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_1_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_1_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_1_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_1_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_1_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_1_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_1_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_1_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_1_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_1_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_STATUS_BMSK                                                                  0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_STATUS_SHFT                                                                          16
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_LIMIT_BMSK                                                                       0xffff
+#define HWIO_TQM_R1_ERR_WDG_1_SW_SM_LIMIT_SHFT                                                                            0
+
+#define HWIO_TQM_R1_ERR_WDG_2_ADDR(x)                                                                            ((x) + 0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_PHYS(x)                                                                            ((x) + 0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_OFFS                                                                               (0x20d8)
+#define HWIO_TQM_R1_ERR_WDG_2_RMSK                                                                               0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_2_POR                                                                                0x00000000
+#define HWIO_TQM_R1_ERR_WDG_2_POR_RMSK                                                                           0xffffffff
+#define HWIO_TQM_R1_ERR_WDG_2_ATTR                                                                                            0x3
+#define HWIO_TQM_R1_ERR_WDG_2_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERR_WDG_2_ADDR(x))
+#define HWIO_TQM_R1_ERR_WDG_2_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERR_WDG_2_ADDR(x), m)
+#define HWIO_TQM_R1_ERR_WDG_2_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERR_WDG_2_ADDR(x),v)
+#define HWIO_TQM_R1_ERR_WDG_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERR_WDG_2_ADDR(x),m,v,HWIO_TQM_R1_ERR_WDG_2_IN(x))
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_STATUS_BMSK                                                                 0xffff0000
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_STATUS_SHFT                                                                         16
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_LIMIT_BMSK                                                                      0xffff
+#define HWIO_TQM_R1_ERR_WDG_2_ENT_SM_LIMIT_SHFT                                                                           0
+
+#define HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x)                                                                       ((x) + 0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_PHYS(x)                                                                       ((x) + 0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OFFS                                                                          (0x20dc)
+#define HWIO_TQM_R1_ERROR_STATUS_0_RMSK                                                                                 0x7
+#define HWIO_TQM_R1_ERROR_STATUS_0_POR                                                                           0x00000000
+#define HWIO_TQM_R1_ERROR_STATUS_0_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R1_ERROR_STATUS_0_ATTR                                                                                       0x0
+#define HWIO_TQM_R1_ERROR_STATUS_0_IN(x)            \
+                in_dword(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x))
+#define HWIO_TQM_R1_ERROR_STATUS_0_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x), m)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OUT(x, v)            \
+                out_dword(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x),v)
+#define HWIO_TQM_R1_ERROR_STATUS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R1_ERROR_STATUS_0_ADDR(x),m,v,HWIO_TQM_R1_ERROR_STATUS_0_IN(x))
+#define HWIO_TQM_R1_ERROR_STATUS_0_MSDU_ENT_SM_INTERRUPT_BMSK                                                           0x4
+#define HWIO_TQM_R1_ERROR_STATUS_0_MSDU_ENT_SM_INTERRUPT_SHFT                                                             2
+#define HWIO_TQM_R1_ERROR_STATUS_0_SW_CMD_SM_INTERRUPT_BMSK                                                             0x2
+#define HWIO_TQM_R1_ERROR_STATUS_0_SW_CMD_SM_INTERRUPT_SHFT                                                               1
+#define HWIO_TQM_R1_ERROR_STATUS_0_HWSCH_SM_INTERRUPT_BMSK                                                              0x1
+#define HWIO_TQM_R1_ERROR_STATUS_0_HWSCH_SM_INTERRUPT_SHFT                                                                0
+
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x)                                                                 ((x) + 0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_PHYS(x)                                                                 ((x) + 0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_OFFS                                                                    (0x20e0)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_RMSK                                                                    0xffffffff
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_POR                                                                     0x00000000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ATTR                                                                                 0x1
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_IN(x)            \
+                in_dword(HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x))
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_ADDR(x), m)
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_TLV_HDR_BMSK                                                            0xffff0000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_TLV_HDR_SHFT                                                                    16
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_3_BMSK                                                                0xf000
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_3_SHFT                                                                    12
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_2_BMSK                                                                 0xf00
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_2_SHFT                                                                     8
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_1_BMSK                                                                  0xf0
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_1_SHFT                                                                     4
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_0_BMSK                                                                   0xf
+#define HWIO_TQM_R1_CORRUPTED_CMD_SOURCE_VALUE_0_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x)                                                                      ((x) + 0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_PHYS(x)                                                                      ((x) + 0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OFFS                                                                         (0x3000)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TCL2TQM_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TCL2TQM_RING_HP_IN(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x)                                                                      ((x) + 0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_PHYS(x)                                                                      ((x) + 0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OFFS                                                                         (0x3004)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TCL2TQM_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TCL2TQM_RING_TP_IN(x))
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_TCL2TQM_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x)                                                                       ((x) + 0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_PHYS(x)                                                                       ((x) + 0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OFFS                                                                          (0x3008)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_FW2TQM_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_FW2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_FW2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_FW2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_FW2TQM_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_FW2TQM_RING_HP_IN(x))
+#define HWIO_TQM_R2_FW2TQM_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x)                                                                       ((x) + 0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_PHYS(x)                                                                       ((x) + 0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OFFS                                                                          (0x300c)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_FW2TQM_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_FW2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_FW2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_FW2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_FW2TQM_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_FW2TQM_RING_TP_IN(x))
+#define HWIO_TQM_R2_FW2TQM_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_FW2TQM_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x)                                                                       ((x) + 0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_PHYS(x)                                                                       ((x) + 0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OFFS                                                                          (0x3010)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_SW_CMD_RING_HP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_SW_CMD_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD_RING_HP_IN(x))
+#define HWIO_TQM_R2_SW_CMD_RING_HP_HEAD_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_HP_HEAD_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x)                                                                       ((x) + 0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_PHYS(x)                                                                       ((x) + 0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OFFS                                                                          (0x3014)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_RMSK                                                                              0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_POR                                                                           0x00000000
+#define HWIO_TQM_R2_SW_CMD_RING_TP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_ATTR                                                                                       0x3
+#define HWIO_TQM_R2_SW_CMD_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD_RING_TP_IN(x))
+#define HWIO_TQM_R2_SW_CMD_RING_TP_TAIL_PTR_BMSK                                                                     0xffff
+#define HWIO_TQM_R2_SW_CMD_RING_TP_TAIL_PTR_SHFT                                                                          0
+
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x)                                                                      ((x) + 0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_PHYS(x)                                                                      ((x) + 0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OFFS                                                                         (0x3018)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD1_RING_HP_IN(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_HEAD_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_HP_HEAD_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x)                                                                      ((x) + 0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_PHYS(x)                                                                      ((x) + 0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OFFS                                                                         (0x301c)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_RMSK                                                                             0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_POR                                                                          0x00000000
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_POR_RMSK                                                                     0xffffffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_ATTR                                                                                      0x3
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_SW_CMD1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_SW_CMD1_RING_TP_IN(x))
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_TAIL_PTR_BMSK                                                                    0xffff
+#define HWIO_TQM_R2_SW_CMD1_RING_TP_TAIL_PTR_SHFT                                                                         0
+
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x)                                                                 ((x) + 0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_PHYS(x)                                                                 ((x) + 0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OFFS                                                                    (0x3020)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_IN(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x)                                                                 ((x) + 0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_PHYS(x)                                                                 ((x) + 0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OFFS                                                                    (0x3024)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_IN(x))
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_WBM2TQM_LINK_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x)                                                                  ((x) + 0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_PHYS(x)                                                                  ((x) + 0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OFFS                                                                     (0x3028)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_RELEASE_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_RELEASE_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x)                                                                  ((x) + 0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_PHYS(x)                                                                  ((x) + 0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OFFS                                                                     (0x302c)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_RELEASE_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_RELEASE_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_RELEASE_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OFFS                                                                      (0x3030)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OFFS                                                                      (0x3034)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_TQM_R2_TQM_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x)                                                                  ((x) + 0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_PHYS(x)                                                                  ((x) + 0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OFFS                                                                     (0x3038)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x)                                                                  ((x) + 0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_PHYS(x)                                                                  ((x) + 0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OFFS                                                                     (0x303c)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM_STATUS1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM_STATUS1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM_STATUS1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x)                                                                  ((x) + 0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_PHYS(x)                                                                  ((x) + 0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OFFS                                                                     (0x3040)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x)                                                                  ((x) + 0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_PHYS(x)                                                                  ((x) + 0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OFFS                                                                     (0x3044)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN1_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x)                                                                  ((x) + 0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_PHYS(x)                                                                  ((x) + 0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OFFS                                                                     (0x3048)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x)                                                                  ((x) + 0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_PHYS(x)                                                                  ((x) + 0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OFFS                                                                     (0x304c)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_POR                                                                      0x00000000
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TQM_R2_TQM2TQM_IN2_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x)                                                                 ((x) + 0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_PHYS(x)                                                                 ((x) + 0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OFFS                                                                    (0x3050)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x)                                                                 ((x) + 0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_PHYS(x)                                                                 ((x) + 0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OFFS                                                                    (0x3054)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x)                                                                 ((x) + 0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_PHYS(x)                                                                 ((x) + 0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OFFS                                                                    (0x3058)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x)                                                                 ((x) + 0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_PHYS(x)                                                                 ((x) + 0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OFFS                                                                    (0x305c)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_POR                                                                     0x00000000
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_IN(x)            \
+                in_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x), m)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x),v)
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_ADDR(x),m,v,HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_IN(x))
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TQM_R2_TQM2TQM_OUT2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+ 
+
+#define MAC_UMCMN_REG_REG_BASE                                                                  (UMAC_BASE      + 0x00040000)
+#define MAC_UMCMN_REG_REG_BASE_SIZE                                                             0x4000
+#define MAC_UMCMN_REG_REG_BASE_USED                                                             0x200c
+#define MAC_UMCMN_REG_REG_BASE_PHYS                                                             (UMAC_BASE_PHYS + 0x00040000)
+#define MAC_UMCMN_REG_REG_BASE_OFFS                                                             0x00040000
+
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x)                                                  ((x) + 0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_PHYS(x)                                                  ((x) + 0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OFFS                                                     (0x0)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_RMSK                                                       0x6ffe22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_POR                                                      0x006ffe22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_MXI_BMSK                                                   0x400000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_MXI_SHFT                                                         22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_UMAC_DBG_BMSK                                              0x200000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_UMAC_DBG_SHFT                                                    21
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_APB_BMSK                                                0x80000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_APB_SHFT                                                     19
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_BMSK                                                    0x40000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TRC_SHFT                                                         18
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_APB_BMSK                                                0x20000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_APB_SHFT                                                     17
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_BMSK                                                    0x10000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_WBM_SHFT                                                         16
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_APB_BMSK                                                 0x8000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_APB_SHFT                                                     15
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_BMSK                                                     0x4000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TQM_SHFT                                                         14
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_APB_BMSK                                                 0x2000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_APB_SHFT                                                     13
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_BMSK                                                     0x1000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_TCL_SHFT                                                         12
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_APB_BMSK                                                  0x800
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_APB_SHFT                                                     11
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_BMSK                                                      0x400
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_REO_SHFT                                                         10
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_DBG_BMSK                                                  0x200
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_DBG_SHFT                                                      9
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_CMEM_BMSK                                                      0x20
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_CMEM_SHFT                                                         5
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_BMSK                                                        0x2
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKEN_NOC_SHFT                                                          1
+
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x)                                        ((x) + 0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_PHYS(x)                                        ((x) + 0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OFFS                                           (0x4)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_RMSK                                             0x6ffc22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_POR                                            0x00000002
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_POR_RMSK                                       0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ATTR                                                        0x3
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_MXI_BMSK                                         0x400000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_MXI_SHFT                                               22
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_UMAC_DBG_BMSK                                    0x200000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_UMAC_DBG_SHFT                                          21
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_APB_BMSK                                      0x80000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_APB_SHFT                                           19
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_BMSK                                          0x40000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TRC_SHFT                                               18
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_APB_BMSK                                      0x20000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_APB_SHFT                                           17
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_BMSK                                          0x10000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_WBM_SHFT                                               16
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_APB_BMSK                                       0x8000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_APB_SHFT                                           15
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TQM_SHFT                                               14
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_APB_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_APB_SHFT                                           13
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_BMSK                                           0x1000
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_TCL_SHFT                                               12
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_APB_BMSK                                        0x800
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_APB_SHFT                                           11
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_BMSK                                            0x400
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_REO_SHFT                                               10
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_CMEM_BMSK                                            0x20
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_CMEM_SHFT                                               5
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_NOC_BMSK                                              0x2
+#define HWIO_UMCMN_R0_UMRCM_ROOT_CLKGATE_DISABLE_NOC_SHFT                                                1
+
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x)                                                   ((x) + 0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_PHYS(x)                                                   ((x) + 0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OFFS                                                      (0x8)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_RMSK                                                           0xdf3
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_SOFTRESET_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_SOFTRESET_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_MXI_BMSK                                                       0x800
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_MXI_SHFT                                                          11
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_UMAC_DBG_BMSK                                                  0x400
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_UMAC_DBG_SHFT                                                     10
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TRC_BMSK                                                       0x100
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TRC_SHFT                                                           8
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_WBM_BMSK                                                        0x80
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_WBM_SHFT                                                           7
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TQM_BMSK                                                        0x40
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TQM_SHFT                                                           6
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TCL_BMSK                                                        0x20
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_TCL_SHFT                                                           5
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_REO_BMSK                                                        0x10
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_REO_SHFT                                                           4
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_CMEM_BMSK                                                        0x2
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_CMEM_SHFT                                                          1
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_NOC_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_UMRCM_SOFTRESET_NOC_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x)                                                 ((x) + 0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_PHYS(x)                                                 ((x) + 0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OFFS                                                    (0xc)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_RMSK                                                          0x7e
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_POR                                                     0x00000000
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ATTR                                                                 0x3
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_CONFIGRESET_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_CONFIGRESET_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_MXI_BMSK                                                      0x40
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_MXI_SHFT                                                         6
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TRC_BMSK                                                      0x20
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TRC_SHFT                                                         5
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_WBM_BMSK                                                      0x10
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_WBM_SHFT                                                         4
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TQM_BMSK                                                       0x8
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TQM_SHFT                                                         3
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TCL_BMSK                                                       0x4
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_TCL_SHFT                                                         2
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_REO_BMSK                                                       0x2
+#define HWIO_UMCMN_R0_UMRCM_CONFIGRESET_REO_SHFT                                                         1
+
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x)                                             ((x) + 0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_PHYS(x)                                             ((x) + 0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OFFS                                                (0x10)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_RMSK                                                  0xcffc22
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_POR                                                 0x00000000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_MXI_BMSK                                              0x800000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_MXI_SHFT                                                    23
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_UMAC_DBG_BMSK                                         0x400000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_UMAC_DBG_SHFT                                               22
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_APB_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_APB_SHFT                                                19
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_BMSK                                               0x40000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TRC_SHFT                                                    18
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_APB_BMSK                                           0x20000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_APB_SHFT                                                17
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_WBM_SHFT                                                    16
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_APB_BMSK                                            0x8000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_APB_SHFT                                                15
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_BMSK                                                0x4000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TQM_SHFT                                                    14
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_APB_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_APB_SHFT                                                13
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_BMSK                                                0x1000
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_TCL_SHFT                                                    12
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_APB_BMSK                                             0x800
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_APB_SHFT                                                11
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_REO_SHFT                                                    10
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_CMEM_BMSK                                                 0x20
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_CMEM_SHFT                                                    5
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_NOC_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_UMRCM_CLKGATE_DISABLE_NOC_SHFT                                                     1
+
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x)                                                  ((x) + 0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_PHYS(x)                                                  ((x) + 0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_OFFS                                                     (0x14)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_ATTR                                                                  0x1
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_RTL_VERSION_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_VAL_BMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_RTL_VERSION_VAL_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x)                                              ((x) + 0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHYS(x)                                              ((x) + 0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OFFS                                                 (0x18)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_RMSK                                                       0x1f
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_POR                                                  0x00000000
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ATTR                                                              0x3
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x))
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x), m)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x),v)
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_ADDR(x),m,v,HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_IN(x))
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY2_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY2_SHFT                                                     4
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY1_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_PHY1_SHFT                                                     3
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC3_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC3_SHFT                                                    2
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC2_BMSK                                                  0x2
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC2_SHFT                                                    1
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC1_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_ASYNC_FIFO_SOFTRESET_WMAC1_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x)                                                  ((x) + 0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PHYS(x)                                                  ((x) + 0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OFFS                                                     (0x1c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_GATE_DISABLE_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_GATE_DISABLE_IN(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_BMSK                                      0x80000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_SHFT                                              31
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_APB_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_CLK_ENS_EXTEND_APB_SHFT                                          30
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_TBD_BMSK                                                 0x3fffff80
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_TBD_SHFT                                                          7
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RRI_BMSK                                                       0x40
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_RRI_SHFT                                                          6
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_APB_VAL_BMSK                                                   0x20
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_APB_VAL_SHFT                                                      5
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INTR_EXTEND_BMSK                                               0x10
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_INTR_EXTEND_SHFT                                                  4
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IND_INTR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_IND_INTR_SHFT                                                     3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PCIE_LOW_POWER_REQ_BMSK                                         0x4
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_PCIE_LOW_POWER_REQ_SHFT                                           2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMAC_IDLE_GENERATE_BMSK                                         0x2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMAC_IDLE_GENERATE_SHFT                                           1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMCMN_TOP_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_UMCMN_TOP_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x)                                                ((x) + 0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_PHYS(x)                                                ((x) + 0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OFFS                                                   (0x20)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_RMSK                                                          0xf
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_POR                                                    0x00000001
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x), m)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x),v)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_ADDR(x),m,v,HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_IN(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_VALUE_BMSK                                                    0xf
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_VALUE_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x)                                             ((x) + 0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_PHYS(x)                                             ((x) + 0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OFFS                                                (0x24)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_RMSK                                                       0x1
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_POR                                                 0x00000001
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x), m)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x),v)
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_ADDR(x),m,v,HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_IN(x))
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_VALUE_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_NOC_PRGMBL_AXCACHE_EN_VALUE_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x)                                                   ((x) + 0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_PHYS(x)                                                   ((x) + 0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OFFS                                                      (0x28)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_0_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x)                                                   ((x) + 0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_PHYS(x)                                                   ((x) + 0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OFFS                                                      (0x2c)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_1_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x)                                                   ((x) + 0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_PHYS(x)                                                   ((x) + 0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OFFS                                                      (0x30)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_RMSK                                                       0xfffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_ADDR(x),m,v,HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_IN(x))
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_SIZE_BMSK                                                  0xfff0000
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_SIZE_SHFT                                                         16
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_BASE_BMSK                                                     0xffff
+#define HWIO_UMCMN_R0_CMEM_SEC_CTRL_2_BASE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_ISR_P_ADDR(x)                                                             ((x) + 0x34)
+#define HWIO_UMCMN_R0_ISR_P_PHYS(x)                                                             ((x) + 0x34)
+#define HWIO_UMCMN_R0_ISR_P_OFFS                                                                (0x34)
+#define HWIO_UMCMN_R0_ISR_P_RMSK                                                                   0x3fffd
+#define HWIO_UMCMN_R0_ISR_P_POR                                                                 0x00000000
+#define HWIO_UMCMN_R0_ISR_P_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_ISR_P_ATTR                                                                             0x0
+#define HWIO_UMCMN_R0_ISR_P_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_P_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_P_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_P_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_P_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_P_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_P_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_P_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_P_IN(x))
+#define HWIO_UMCMN_R0_ISR_P_GXI_BMSK                                                               0x20000
+#define HWIO_UMCMN_R0_ISR_P_GXI_SHFT                                                                    17
+#define HWIO_UMCMN_R0_ISR_P_TQM2_BMSK                                                              0x10000
+#define HWIO_UMCMN_R0_ISR_P_TQM2_SHFT                                                                   16
+#define HWIO_UMCMN_R0_ISR_P_TQM1_BMSK                                                               0x8000
+#define HWIO_UMCMN_R0_ISR_P_TQM1_SHFT                                                                   15
+#define HWIO_UMCMN_R0_ISR_P_TQM0_BMSK                                                               0x4000
+#define HWIO_UMCMN_R0_ISR_P_TQM0_SHFT                                                                   14
+#define HWIO_UMCMN_R0_ISR_P_TCL1_BMSK                                                               0x2000
+#define HWIO_UMCMN_R0_ISR_P_TCL1_SHFT                                                                   13
+#define HWIO_UMCMN_R0_ISR_P_TCL0_BMSK                                                               0x1000
+#define HWIO_UMCMN_R0_ISR_P_TCL0_SHFT                                                                   12
+#define HWIO_UMCMN_R0_ISR_P_REO4_BMSK                                                                0x800
+#define HWIO_UMCMN_R0_ISR_P_REO4_SHFT                                                                   11
+#define HWIO_UMCMN_R0_ISR_P_REO3_BMSK                                                                0x400
+#define HWIO_UMCMN_R0_ISR_P_REO3_SHFT                                                                   10
+#define HWIO_UMCMN_R0_ISR_P_REO2_BMSK                                                                0x200
+#define HWIO_UMCMN_R0_ISR_P_REO2_SHFT                                                                    9
+#define HWIO_UMCMN_R0_ISR_P_REO1_BMSK                                                                0x100
+#define HWIO_UMCMN_R0_ISR_P_REO1_SHFT                                                                    8
+#define HWIO_UMCMN_R0_ISR_P_REO0_BMSK                                                                 0x80
+#define HWIO_UMCMN_R0_ISR_P_REO0_SHFT                                                                    7
+#define HWIO_UMCMN_R0_ISR_P_WBM3_BMSK                                                                 0x40
+#define HWIO_UMCMN_R0_ISR_P_WBM3_SHFT                                                                    6
+#define HWIO_UMCMN_R0_ISR_P_WBM2_BMSK                                                                 0x20
+#define HWIO_UMCMN_R0_ISR_P_WBM2_SHFT                                                                    5
+#define HWIO_UMCMN_R0_ISR_P_WBM1_BMSK                                                                 0x10
+#define HWIO_UMCMN_R0_ISR_P_WBM1_SHFT                                                                    4
+#define HWIO_UMCMN_R0_ISR_P_WBM0_BMSK                                                                  0x8
+#define HWIO_UMCMN_R0_ISR_P_WBM0_SHFT                                                                    3
+#define HWIO_UMCMN_R0_ISR_P_MEM_BMSK                                                                   0x4
+#define HWIO_UMCMN_R0_ISR_P_MEM_SHFT                                                                     2
+#define HWIO_UMCMN_R0_ISR_P_APB_BMSK                                                                   0x1
+#define HWIO_UMCMN_R0_ISR_P_APB_SHFT                                                                     0
+
+#define HWIO_UMCMN_R0_ISR_S0_ADDR(x)                                                            ((x) + 0x38)
+#define HWIO_UMCMN_R0_ISR_S0_PHYS(x)                                                            ((x) + 0x38)
+#define HWIO_UMCMN_R0_ISR_S0_OFFS                                                               (0x38)
+#define HWIO_UMCMN_R0_ISR_S0_RMSK                                                                0x71fffff
+#define HWIO_UMCMN_R0_ISR_S0_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S0_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S0_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S0_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S0_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S0_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S0_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S0_IN(x))
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_RD_INVALID_BMSK                                             0x4000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_RD_INVALID_SHFT                                                    26
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_INVALID_BMSK                                             0x2000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_INVALID_SHFT                                                    25
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_TO_RD_INVALID_BMSK                                       0x1000000
+#define HWIO_UMCMN_R0_ISR_S0_MXI_APB_WR_TO_RD_INVALID_SHFT                                              24
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_RD_INVALID_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_RD_INVALID_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_INVALID_BMSK                                             0x80000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_INVALID_SHFT                                                  19
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_TO_RD_INVALID_BMSK                                       0x40000
+#define HWIO_UMCMN_R0_ISR_S0_UMCMN_APB_WR_TO_RD_INVALID_SHFT                                            18
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_RD_INVALID_BMSK                                               0x20000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_RD_INVALID_SHFT                                                    17
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_INVALID_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_INVALID_SHFT                                                    16
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_TO_RD_INVALID_BMSK                                          0x8000
+#define HWIO_UMCMN_R0_ISR_S0_TQM_APB_WR_TO_RD_INVALID_SHFT                                              15
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_RD_INVALID_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_RD_INVALID_SHFT                                               14
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_INVALID_BMSK                                           0x2000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_INVALID_SHFT                                               13
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_BMSK                                     0x1000
+#define HWIO_UMCMN_R0_ISR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_SHFT                                         12
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_RD_INVALID_BMSK                                                 0x800
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_RD_INVALID_SHFT                                                    11
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_INVALID_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_INVALID_SHFT                                                    10
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_TO_RD_INVALID_BMSK                                           0x200
+#define HWIO_UMCMN_R0_ISR_S0_CCE_APB_WR_TO_RD_INVALID_SHFT                                               9
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_RD_INVALID_BMSK                                                 0x100
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_RD_INVALID_SHFT                                                     8
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_INVALID_BMSK                                                  0x80
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_INVALID_SHFT                                                     7
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_TO_RD_INVALID_BMSK                                            0x40
+#define HWIO_UMCMN_R0_ISR_S0_WBM_APB_WR_TO_RD_INVALID_SHFT                                               6
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_RD_INVALID_BMSK                                                  0x20
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_RD_INVALID_SHFT                                                     5
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_INVALID_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_INVALID_SHFT                                                     4
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_TO_RD_INVALID_BMSK                                             0x8
+#define HWIO_UMCMN_R0_ISR_S0_TCL_APB_WR_TO_RD_INVALID_SHFT                                               3
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_RD_INVALID_BMSK                                                   0x4
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_RD_INVALID_SHFT                                                     2
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_INVALID_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_INVALID_SHFT                                                     1
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_TO_RD_INVALID_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S0_REO_APB_WR_TO_RD_INVALID_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S2_ADDR(x)                                                            ((x) + 0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_PHYS(x)                                                            ((x) + 0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_OFFS                                                               (0x3c)
+#define HWIO_UMCMN_R0_ISR_S2_RMSK                                                                      0xf
+#define HWIO_UMCMN_R0_ISR_S2_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S2_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S2_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S2_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S2_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S2_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S2_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S2_IN(x))
+#define HWIO_UMCMN_R0_ISR_S2_MEM_REMOTE_ACC_ERR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_ISR_S2_MEM_REMOTE_ACC_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_ISR_S2_MEM_ACC_RANGE_ERR_BMSK                                                    0x4
+#define HWIO_UMCMN_R0_ISR_S2_MEM_ACC_RANGE_ERR_SHFT                                                      2
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR2_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR2_SHFT                                                   1
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR1_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_ISR_S2_MEM_NON_SEC_ACC_ERR1_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_ISR_S3_ADDR(x)                                                            ((x) + 0x40)
+#define HWIO_UMCMN_R0_ISR_S3_PHYS(x)                                                            ((x) + 0x40)
+#define HWIO_UMCMN_R0_ISR_S3_OFFS                                                               (0x40)
+#define HWIO_UMCMN_R0_ISR_S3_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S3_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S3_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S3_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S3_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S3_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S3_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S3_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S3_IN(x))
+#define HWIO_UMCMN_R0_ISR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_BMSK                                0x80000000
+#define HWIO_UMCMN_R0_ISR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_SHFT                                        31
+#define HWIO_UMCMN_R0_ISR_S3_REL_PARSER_DUP_DET_EVENT_INTR_BMSK                                 0x40000000
+#define HWIO_UMCMN_R0_ISR_S3_REL_PARSER_DUP_DET_EVENT_INTR_SHFT                                         30
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_DUP_DET_EVENT_INTR_BMSK                                  0x20000000
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_DUP_DET_EVENT_INTR_SHFT                                          29
+#define HWIO_UMCMN_R0_ISR_S3_SW_COOKIE_IDLE_TIMEOUT_BMSK                                        0x10000000
+#define HWIO_UMCMN_R0_ISR_S3_SW_COOKIE_IDLE_TIMEOUT_SHFT                                                28
+#define HWIO_UMCMN_R0_ISR_S3_DELINK_B2B_DUPLI_PTR_INTR_BMSK                                      0x8000000
+#define HWIO_UMCMN_R0_ISR_S3_DELINK_B2B_DUPLI_PTR_INTR_SHFT                                             27
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_B2B_DUPLI_INTR_BMSK                                       0x4000000
+#define HWIO_UMCMN_R0_ISR_S3_LINK_DIST_B2B_DUPLI_INTR_SHFT                                              26
+#define HWIO_UMCMN_R0_ISR_S3_IDLE_SEQUENCE_WD_INTR_BMSK                                          0x2000000
+#define HWIO_UMCMN_R0_ISR_S3_IDLE_SEQUENCE_WD_INTR_SHFT                                                 25
+#define HWIO_UMCMN_R0_ISR_S3_WBM_VA_CONV_ERR_INT_BMSK                                            0x1000000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_VA_CONV_ERR_INT_SHFT                                                   24
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BP_WARN_INT_BMSK                                                 0x800000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BP_WARN_INT_SHFT                                                       23
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW6_BUF_PROD_WDG_BMSK                                            0x400000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW6_BUF_PROD_WDG_SHFT                                                  22
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW5_BUF_PROD_WDG_BMSK                                            0x200000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW5_BUF_PROD_WDG_SHFT                                                  21
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW4_BUF_PROD_WDG_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW4_BUF_PROD_WDG_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S3_WBM_ERROR_BUF_PROD_WDG_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_ERROR_BUF_PROD_WDG_SHFT                                                19
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_PARSER_ERR_BMSK                                              0x70000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_PARSER_ERR_SHFT                                                   16
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                       12
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_PARSE_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_PARSE_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_WDG_BMSK                                                0x400
+#define HWIO_UMCMN_R0_ISR_S3_WBM_MSDU_DELINK_WDG_SHFT                                                   10
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_BMSK                                       0x200
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_SHFT                                           9
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_BMSK                                       0x100
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_SHFT                                           8
+#define HWIO_UMCMN_R0_ISR_S3_WBM_FW_BUF_PROD_WDG_BMSK                                                 0x80
+#define HWIO_UMCMN_R0_ISR_S3_WBM_FW_BUF_PROD_WDG_SHFT                                                    7
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW3_BUF_PROD_WDG_BMSK                                                0x40
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW3_BUF_PROD_WDG_SHFT                                                   6
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW2_BUF_PROD_WDG_BMSK                                                0x20
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW2_BUF_PROD_WDG_SHFT                                                   5
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW1_BUF_PROD_WDG_BMSK                                                0x10
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW1_BUF_PROD_WDG_SHFT                                                   4
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW0_BUF_PROD_WDG_BMSK                                                 0x8
+#define HWIO_UMCMN_R0_ISR_S3_WBM_SW0_BUF_PROD_WDG_SHFT                                                   3
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_BMSK                                           0x4
+#define HWIO_UMCMN_R0_ISR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_SHFT                                             2
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_C_WDG_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_C_WDG_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_P_WDG_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S3_WBM_REL_REQ_PARSER_P_WDG_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S4_ADDR(x)                                                            ((x) + 0x44)
+#define HWIO_UMCMN_R0_ISR_S4_PHYS(x)                                                            ((x) + 0x44)
+#define HWIO_UMCMN_R0_ISR_S4_OFFS                                                               (0x44)
+#define HWIO_UMCMN_R0_ISR_S4_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S4_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S4_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S4_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S4_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S4_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S4_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S4_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S4_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S4_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S4_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S4_IN(x))
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_ISR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_RELEASE_RING_WDG_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_RELEASE_RING_WDG_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_LINK_RING_WDG_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_LINK_RING_WDG_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_BUF_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S4_WBM_IDLE_BUF_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_LINK_RING_WDG_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_LINK_RING_WDG_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_LINK_RING_WDG_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_LINK_RING_WDG_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_ISR_S4_WBM2REO_LINK_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2REO_LINK_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S4_WBM2TQM_LINK_RING_WDG_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2TQM_LINK_RING_WDG_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_ISR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_BUF_RING_WDG_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_ISR_S4_WBM2FW_BUF_RING_WDG_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_BUF_RING_WDG_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_ISR_S4_WBM2SW_BUF_RING_WDG_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_ISR_S4_WBM2PPE_BUF_RING_WDG_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_ISR_S4_WBM2PPE_BUF_RING_WDG_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA2_RELEASE_RING_WDG_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA2_RELEASE_RING_WDG_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA1_RELEASE_RING_WDG_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA1_RELEASE_RING_WDG_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA0_RELEASE_RING_WDG_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_ISR_S4_RXDMA0_RELEASE_RING_WDG_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_ISR_S4_FW_RELEASE_RING_WDG_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_ISR_S4_FW_RELEASE_RING_WDG_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_ISR_S4_SW_RELEASE_RING_WDG_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_ISR_S4_SW_RELEASE_RING_WDG_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_ISR_S4_REO_RELEASE_RING_WDG_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S4_REO_RELEASE_RING_WDG_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S4_TQM_RELEASE_RING_WDG_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S4_TQM_RELEASE_RING_WDG_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S4_PPE_RELEASE_RING_WDG_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S4_PPE_RELEASE_RING_WDG_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S5_ADDR(x)                                                            ((x) + 0x48)
+#define HWIO_UMCMN_R0_ISR_S5_PHYS(x)                                                            ((x) + 0x48)
+#define HWIO_UMCMN_R0_ISR_S5_OFFS                                                               (0x48)
+#define HWIO_UMCMN_R0_ISR_S5_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S5_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S5_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S5_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S5_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S5_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S5_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S5_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S5_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S5_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S5_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S5_IN(x))
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_ISR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_RELEASE_RING_REQ_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_RELEASE_RING_REQ_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_LINK_RING_REQ_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_LINK_RING_REQ_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_BUF_RING_REQ_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S5_WBM_IDLE_BUF_RING_REQ_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_LINK_RING_REQ_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_LINK_RING_REQ_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_LINK_RING_REQ_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_LINK_RING_REQ_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_ISR_S5_WBM2REO_LINK_RING_REQ_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2REO_LINK_RING_REQ_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S5_WBM2TQM_LINK_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2TQM_LINK_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_ISR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_BUF_RING_REQ_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_ISR_S5_WBM2FW_BUF_RING_REQ_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_BUF_RING_REQ_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_ISR_S5_WBM2SW_BUF_RING_REQ_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_ISR_S5_WBM2PPE_BUF_RING_REQ_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_ISR_S5_WBM2PPE_BUF_RING_REQ_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA2_RELEASE_RING_REQ_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA2_RELEASE_RING_REQ_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA1_RELEASE_RING_REQ_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA1_RELEASE_RING_REQ_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA0_RELEASE_RING_REQ_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_ISR_S5_RXDMA0_RELEASE_RING_REQ_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_ISR_S5_FW_RELEASE_RING_REQ_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_ISR_S5_FW_RELEASE_RING_REQ_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_ISR_S5_SW_RELEASE_RING_REQ_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_ISR_S5_SW_RELEASE_RING_REQ_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_ISR_S5_REO_RELEASE_RING_REQ_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S5_REO_RELEASE_RING_REQ_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S5_TQM_RELEASE_RING_REQ_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_ISR_S5_TQM_RELEASE_RING_REQ_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_ISR_S5_PPE_RELEASE_RING_REQ_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_ISR_S5_PPE_RELEASE_RING_REQ_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_ISR_S6_ADDR(x)                                                            ((x) + 0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_PHYS(x)                                                            ((x) + 0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_OFFS                                                               (0x4c)
+#define HWIO_UMCMN_R0_ISR_S6_RMSK                                                                 0x3fffff
+#define HWIO_UMCMN_R0_ISR_S6_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S6_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S6_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S6_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S6_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S6_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S6_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S6_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S6_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S6_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S6_IN(x))
+#define HWIO_UMCMN_R0_ISR_S6_REO2PPE_RING_WDG_BMSK                                                0x200000
+#define HWIO_UMCMN_R0_ISR_S6_REO2PPE_RING_WDG_SHFT                                                      21
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW8_RING_WDG_BMSK                                                0x100000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW8_RING_WDG_SHFT                                                      20
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW7_RING_WDG_BMSK                                                 0x80000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW7_RING_WDG_SHFT                                                      19
+#define HWIO_UMCMN_R0_ISR_S6_REO_STATUS_RING_WDG_BMSK                                              0x40000
+#define HWIO_UMCMN_R0_ISR_S6_REO_STATUS_RING_WDG_SHFT                                                   18
+#define HWIO_UMCMN_R0_ISR_S6_REO_RELEASE_RING_WDG_BMSK                                             0x20000
+#define HWIO_UMCMN_R0_ISR_S6_REO_RELEASE_RING_WDG_SHFT                                                  17
+#define HWIO_UMCMN_R0_ISR_S6_REO2FW_RING_WDG_BMSK                                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S6_REO2FW_RING_WDG_SHFT                                                       16
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW0_RING_WDG_BMSK                                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW0_RING_WDG_SHFT                                                      15
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW6_RING_WDG_BMSK                                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW6_RING_WDG_SHFT                                                      14
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW5_RING_WDG_BMSK                                                  0x2000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW5_RING_WDG_SHFT                                                      13
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW4_RING_WDG_BMSK                                                  0x1000
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW4_RING_WDG_SHFT                                                      12
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW3_RING_WDG_BMSK                                                   0x800
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW3_RING_WDG_SHFT                                                      11
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW2_RING_WDG_BMSK                                                   0x400
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW2_RING_WDG_SHFT                                                      10
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW1_RING_WDG_BMSK                                                   0x200
+#define HWIO_UMCMN_R0_ISR_S6_REO2SW1_RING_WDG_SHFT                                                       9
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO_RING_WDG_BMSK                                                    0x100
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO_RING_WDG_SHFT                                                        8
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO1_RING_WDG_BMSK                                                    0x80
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO1_RING_WDG_SHFT                                                       7
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO2_RING_WDG_BMSK                                                    0x40
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO2_RING_WDG_SHFT                                                       6
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO3_RING_WDG_BMSK                                                    0x20
+#define HWIO_UMCMN_R0_ISR_S6_SW2REO3_RING_WDG_SHFT                                                       5
+#define HWIO_UMCMN_R0_ISR_S6_REO_CMD_RING_WDG_BMSK                                                    0x10
+#define HWIO_UMCMN_R0_ISR_S6_REO_CMD_RING_WDG_SHFT                                                       4
+#define HWIO_UMCMN_R0_ISR_S6_WBM2REO_LINK_RING_WDG_BMSK                                                0x8
+#define HWIO_UMCMN_R0_ISR_S6_WBM2REO_LINK_RING_WDG_SHFT                                                  3
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO2_MLO_RING_WDG_BMSK                                              0x4
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO2_MLO_RING_WDG_SHFT                                                2
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO1_MLO_RING_WDG_BMSK                                              0x2
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO1_MLO_RING_WDG_SHFT                                                1
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO0_RING_WDG_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_ISR_S6_RXDMA2REO0_RING_WDG_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_ISR_S7_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_UMCMN_R0_ISR_S7_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_UMCMN_R0_ISR_S7_OFFS                                                               (0x50)
+#define HWIO_UMCMN_R0_ISR_S7_RMSK                                                               0xffff000f
+#define HWIO_UMCMN_R0_ISR_S7_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S7_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S7_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S7_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S7_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S7_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S7_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S7_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S7_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S7_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S7_IN(x))
+#define HWIO_UMCMN_R0_ISR_S7_REO_CACHE_INT_BMSK                                                 0xffff0000
+#define HWIO_UMCMN_R0_ISR_S7_REO_CACHE_INT_SHFT                                                         16
+#define HWIO_UMCMN_R0_ISR_S7_REO_AC_BUF_OVER_THRESH_BMSK                                               0xf
+#define HWIO_UMCMN_R0_ISR_S7_REO_AC_BUF_OVER_THRESH_SHFT                                                 0
+
+#define HWIO_UMCMN_R0_ISR_S8_ADDR(x)                                                            ((x) + 0x54)
+#define HWIO_UMCMN_R0_ISR_S8_PHYS(x)                                                            ((x) + 0x54)
+#define HWIO_UMCMN_R0_ISR_S8_OFFS                                                               (0x54)
+#define HWIO_UMCMN_R0_ISR_S8_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_ISR_S8_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S8_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S8_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S8_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S8_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S8_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S8_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S8_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S8_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S8_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S8_IN(x))
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RESERVED_BMSK                                         0xfff00000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RESERVED_SHFT                                                 20
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_INVALID_TLV_CMD_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_INVALID_TLV_CMD_SHFT                                          19
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_BMSK                               0x40000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_SHFT                                    18
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_BMSK                                0x20000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_SHFT                                     17
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_BMSK                               0x10000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_SHFT                                    16
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_BMSK                           0x8000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_SHFT                               15
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_BMSK                           0x4000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_SHFT                               14
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_BMSK                                0x2000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_SHFT                                    13
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_BMSK                                      0x1000
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_SHFT                                          12
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_PN_ERR_BMSK                                            0x800
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_SEQ_PN_ERR_SHFT                                               11
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_BMSK                                        0x400
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_SHFT                                           10
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_NONBA_BMSK                                          0x200
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BAR_NONBA_SHFT                                              9
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_BAR_BMSK                                            0x100
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_BAR_SHFT                                                8
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_REG_BMSK                                             0x80
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_OOR_REG_SHFT                                                7
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_BAR_BMSK                                              0x40
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_BAR_SHFT                                                 6
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_REG_BMSK                                              0x20
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_2K_REG_SHFT                                                 5
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_DD_BMSK                                               0x10
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_BA_DD_SHFT                                                  4
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_NONBA_DD_BMSK                                             0x8
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_NONBA_DD_SHFT                                               3
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_BMSK                                          0x4
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_SHFT                                            2
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_QD_NOTVALID_BMSK                                          0x2
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_DD_QD_NOTVALID_SHFT                                            1
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_BMSK                                    0x1
+#define HWIO_UMCMN_R0_ISR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_SHFT                                      0
+
+#define HWIO_UMCMN_R0_ISR_S9_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_UMCMN_R0_ISR_S9_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_UMCMN_R0_ISR_S9_OFFS                                                               (0x58)
+#define HWIO_UMCMN_R0_ISR_S9_RMSK                                                                 0xffffff
+#define HWIO_UMCMN_R0_ISR_S9_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_ISR_S9_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_ISR_S9_ATTR                                                                            0x0
+#define HWIO_UMCMN_R0_ISR_S9_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S9_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S9_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S9_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S9_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S9_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S9_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S9_IN(x))
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_BMSK                                            0xf00000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SHFT                                                  20
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_WARNING_INTR_BMSK                                    0x80000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_WARNING_INTR_SHFT                                         19
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_BMSK                                  0x40000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_SHFT                                       18
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_BMSK                                  0x20000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_SHFT                                       17
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_SHFT                                       16
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_BMSK                                   0x8000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_SHFT                                       15
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_SHFT                                     13
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_BMSK                                    0x1000
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_SHFT                                        12
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_BMSK                                      0x800
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_SHFT                                         11
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_BMSK                                    0x400
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_SHFT                                       10
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_BMSK                                    0x200
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_SHFT                                        9
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_BMSK                                    0x100
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_SHFT                                        8
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_BMSK                                     0x80
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_SHFT                                        7
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_BMSK                                      0x40
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_SHFT                                         6
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REORDER_BMSK                                        0x20
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REORDER_SHFT                                           5
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_BMSK                             0x10
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_SHFT                                4
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_BMSK                                     0x8
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_SHFT                                       3
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_BMSK                                0x4
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_SHFT                                  2
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_BMSK                               0x2
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_SHFT                                 1
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_BMSK                          0x1
+#define HWIO_UMCMN_R0_ISR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_SHFT                            0
+
+#define HWIO_UMCMN_R0_ISR_S10_ADDR(x)                                                           ((x) + 0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_PHYS(x)                                                           ((x) + 0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_OFFS                                                              (0x5c)
+#define HWIO_UMCMN_R0_ISR_S10_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_ISR_S10_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S10_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S10_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S10_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S10_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S10_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S10_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S10_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S10_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S10_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S10_IN(x))
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_BMSK                            0x20000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_SHFT                                 17
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_BMSK                            0x10000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_SHFT                                 16
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_BMSK                              0x4000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_SHFT                                  14
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_BMSK                              0x2000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_SHFT                                  13
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_BMSK                              0x1000
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_SHFT                                  12
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_BMSK                               0x800
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_SHFT                                  11
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_BMSK                               0x400
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_SHFT                                  10
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_BMSK                               0x100
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_SHFT                                   8
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_BMSK                                0x40
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_SHFT                                   6
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_BMSK                              0x20
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_SHFT                                 5
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_BMSK                            0x10
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_SHFT                               4
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_BMSK                                 0x8
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_SHFT                                   3
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_SHFT                                   2
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_BMSK                                 0x2
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_SHFT                                   1
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_ISR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_ISR_S11_ADDR(x)                                                           ((x) + 0x60)
+#define HWIO_UMCMN_R0_ISR_S11_PHYS(x)                                                           ((x) + 0x60)
+#define HWIO_UMCMN_R0_ISR_S11_OFFS                                                              (0x60)
+#define HWIO_UMCMN_R0_ISR_S11_RMSK                                                               0x3ffffff
+#define HWIO_UMCMN_R0_ISR_S11_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S11_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S11_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S11_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S11_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S11_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S11_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S11_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S11_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S11_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S11_IN(x))
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_WDG_ERR_BMSK                                     0x2000000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_WDG_ERR_SHFT                                            25
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_REQ_ERR_BMSK                                     0x1000000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_PPE2TCL1_RING_REQ_ERR_SHFT                                            24
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_BMSK                                0x800000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_SHFT                                      23
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_BMSK                                0x400000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_SHFT                                      22
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_REQ_ERR_BMSK                                       0x100000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL5_RING_REQ_ERR_SHFT                                             20
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_WDG_ERR_BMSK                                        0x80000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_WDG_ERR_SHFT                                             19
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_REQ_ERR_BMSK                                        0x40000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL4_RING_REQ_ERR_SHFT                                             18
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_WDG_ERR_BMSK                                        0x20000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_WDG_ERR_SHFT                                             17
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_REQ_ERR_BMSK                                        0x10000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS2_RING_REQ_ERR_SHFT                                             16
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_STATUS1_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_WDG_ERR_BMSK                                          0x2000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_WDG_ERR_SHFT                                              13
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_REQ_ERR_BMSK                                          0x1000
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2FW_RING_REQ_ERR_SHFT                                              12
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_WDG_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_WDG_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_REQ_ERR_BMSK                                          0x400
+#define HWIO_UMCMN_R0_ISR_S11_TCL_TCL2TQM_RING_REQ_ERR_SHFT                                             10
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_BMSK                                    0x200
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_SHFT                                        9
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_BMSK                                    0x100
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_SHFT                                        8
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_WDG_ERR_BMSK                                           0x80
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_WDG_ERR_SHFT                                              7
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_REQ_ERR_BMSK                                           0x40
+#define HWIO_UMCMN_R0_ISR_S11_TCL_FW2TCL1_RING_REQ_ERR_SHFT                                              6
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_WDG_ERR_BMSK                                           0x20
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_WDG_ERR_SHFT                                              5
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_REQ_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL3_RING_REQ_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_WDG_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_WDG_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_REQ_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL2_RING_REQ_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_WDG_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_WDG_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_REQ_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_ISR_S11_TCL_SW2TCL1_RING_REQ_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_ISR_S12_ADDR(x)                                                           ((x) + 0x64)
+#define HWIO_UMCMN_R0_ISR_S12_PHYS(x)                                                           ((x) + 0x64)
+#define HWIO_UMCMN_R0_ISR_S12_OFFS                                                              (0x64)
+#define HWIO_UMCMN_R0_ISR_S12_RMSK                                                                0x3fffff
+#define HWIO_UMCMN_R0_ISR_S12_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S12_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S12_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S12_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S12_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S12_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S12_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S12_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S12_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S12_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S12_IN(x))
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_BMSK                                     0x200000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_SHFT                                           21
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_BMSK                                      0x100000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_SHFT                                            20
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_BMSK                                 0x80000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_SHFT                                      19
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BUFFER_LENGTH_ERROR_INT_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BUFFER_LENGTH_ERROR_INT_SHFT                                          18
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BANK_ID_ERR_BMSK                                                 0x20000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_BANK_ID_ERR_SHFT                                                      17
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_WARNING_BMSK                                                 0x10000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_WARNING_SHFT                                                      16
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_ERR_CLASSIFY_DIS_BMSK                                         0x2000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_ERR_CLASSIFY_DIS_SHFT                                             13
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_WDG_TO_BMSK                                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CCE_WDG_TO_SHFT                                                       12
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_BMSK                                       0x800
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_SHFT                                          11
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_BMSK                             0x400
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_SHFT                                10
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_BMSK                                         0x200
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_SHFT                                             9
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_ETH_ERR_BMSK                                              0x100
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_ETH_ERR_SHFT                                                  8
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WMAC_ERR_BMSK                                              0x80
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WMAC_ERR_SHFT                                                 7
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WDG_TO_BMSK                                                0x40
+#define HWIO_UMCMN_R0_ISR_S12_TCL_CMN_PRSR_WDG_TO_SHFT                                                   6
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_BMSK                                     0x20
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_SHFT                                        5
+#define HWIO_UMCMN_R0_ISR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_ISR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_ERR_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_ISR_S12_TCL_WDG_ERR_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_ISR_S13_ADDR(x)                                                           ((x) + 0x68)
+#define HWIO_UMCMN_R0_ISR_S13_PHYS(x)                                                           ((x) + 0x68)
+#define HWIO_UMCMN_R0_ISR_S13_OFFS                                                              (0x68)
+#define HWIO_UMCMN_R0_ISR_S13_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_ISR_S13_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S13_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S13_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S13_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S13_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S13_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S13_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S13_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S13_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S13_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S13_IN(x))
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_BMSK                               0x20000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_SHFT                                    17
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_BMSK                               0x10000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_SHFT                                    16
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_ISR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_SHFT                                       12
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_BMSK                                   0x800
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_SHFT                                      11
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_BMSK                                   0x400
+#define HWIO_UMCMN_R0_ISR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_SHFT                                      10
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_BMSK                                      0x100
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_SHFT                                          8
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_BMSK                                       0x40
+#define HWIO_UMCMN_R0_ISR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_SHFT                                          6
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_REQ_ERR_BMSK                                            0x20
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_REQ_ERR_SHFT                                               5
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_WDG_ERR_BMSK                                            0x10
+#define HWIO_UMCMN_R0_ISR_S13_TQM_SW_CMD_RING_WDG_ERR_SHFT                                               4
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_BMSK                                          0x8
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_SHFT                                            3
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_BMSK                                          0x4
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_SHFT                                            2
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_BMSK                                          0x2
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_SHFT                                            1
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_ISR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_ISR_S14_ADDR(x)                                                           ((x) + 0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_PHYS(x)                                                           ((x) + 0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_OFFS                                                              (0x6c)
+#define HWIO_UMCMN_R0_ISR_S14_RMSK                                                               0x7ffffff
+#define HWIO_UMCMN_R0_ISR_S14_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S14_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S14_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S14_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S14_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S14_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S14_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S14_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S14_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S14_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S14_IN(x))
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                 0x4000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        26
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_BMSK                               0x2000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_SHFT                                      25
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_BMSK                          0x1000000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 24
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                  0x800000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        23
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_BMSK                                0x400000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_SHFT                                      22
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_BMSK                           0x200000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 21
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                   0x100000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         20
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_BMSK                                  0x80000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_SHFT                                       19
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_BMSK                             0x40000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  18
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                    0x20000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         17
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_SHFT                                       16
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S14_TQM_CACHE_CTL_ERR_BMSK                                                0x7ff8
+#define HWIO_UMCMN_R0_ISR_S14_TQM_CACHE_CTL_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_ISR_S14_TQM_WARNING_WDG_TIMEOUT_BMSK                                             0x4
+#define HWIO_UMCMN_R0_ISR_S14_TQM_WARNING_WDG_TIMEOUT_SHFT                                               2
+#define HWIO_UMCMN_R0_ISR_S14_TQM_HW_ERROR_INTR_TIMEOUT_BMSK                                           0x2
+#define HWIO_UMCMN_R0_ISR_S14_TQM_HW_ERROR_INTR_TIMEOUT_SHFT                                             1
+#define HWIO_UMCMN_R0_ISR_S14_TQM_SW_PRGM_ERR_BMSK                                                     0x1
+#define HWIO_UMCMN_R0_ISR_S14_TQM_SW_PRGM_ERR_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_ISR_S15_ADDR(x)                                                           ((x) + 0x70)
+#define HWIO_UMCMN_R0_ISR_S15_PHYS(x)                                                           ((x) + 0x70)
+#define HWIO_UMCMN_R0_ISR_S15_OFFS                                                              (0x70)
+#define HWIO_UMCMN_R0_ISR_S15_RMSK                                                                  0x7fff
+#define HWIO_UMCMN_R0_ISR_S15_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S15_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S15_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S15_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S15_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S15_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S15_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S15_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S15_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S15_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S15_IN(x))
+#define HWIO_UMCMN_R0_ISR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                      14
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_HWSCH_CMD_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_HWSCH_CMD_SHFT                                                13
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_SW_CMD_BMSK                                               0x1000
+#define HWIO_UMCMN_R0_ISR_S15_TQM_ILLEGAL_SW_CMD_SHFT                                                   12
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_BMSK                                      0x800
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_SHFT                                         11
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_BMSK                                      0x400
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_SHFT                                         10
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_BMSK                                      0x200
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_SHFT                                          9
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_SATURATE_BMSK                                       0x100
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT2_SATURATE_SHFT                                           8
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_SATURATE_BMSK                                        0x80
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT1_SATURATE_SHFT                                           7
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_SATURATE_BMSK                                        0x40
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_CNT0_SATURATE_SHFT                                           6
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_BMSK                                   0x20
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_SHFT                                      5
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_BMSK                                   0x10
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_SHFT                                      4
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_BMSK                                    0x8
+#define HWIO_UMCMN_R0_ISR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_SHFT                                      3
+#define HWIO_UMCMN_R0_ISR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_BMSK                                0x4
+#define HWIO_UMCMN_R0_ISR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_SHFT                                  2
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_REQ_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_REQ_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_WDG_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_ISR_S15_TQM_SW_CMD1_RING_WDG_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_ISR_S16_ADDR(x)                                                           ((x) + 0x74)
+#define HWIO_UMCMN_R0_ISR_S16_PHYS(x)                                                           ((x) + 0x74)
+#define HWIO_UMCMN_R0_ISR_S16_OFFS                                                              (0x74)
+#define HWIO_UMCMN_R0_ISR_S16_RMSK                                                                    0x1f
+#define HWIO_UMCMN_R0_ISR_S16_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S16_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S16_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S16_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S16_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S16_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S16_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S16_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S16_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S16_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S16_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S16_IN(x))
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_ERR_BMSK                                                   0x10
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_ERR_SHFT                                                      4
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_WR_ERR_BMSK                                                  0x8
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_WR_ERR_SHFT                                                    3
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_RD_ERR_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_AXI_RD_ERR_SHFT                                                    2
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_LAST_WR_ERR_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_LAST_WR_ERR_SHFT                                                   1
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_WAR_BMSK                                                    0x1
+#define HWIO_UMCMN_R0_ISR_S16_MXI_GXI_WDTO_WAR_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_ISR_S17_ADDR(x)                                                           ((x) + 0x78)
+#define HWIO_UMCMN_R0_ISR_S17_PHYS(x)                                                           ((x) + 0x78)
+#define HWIO_UMCMN_R0_ISR_S17_OFFS                                                              (0x78)
+#define HWIO_UMCMN_R0_ISR_S17_RMSK                                                                  0xffff
+#define HWIO_UMCMN_R0_ISR_S17_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_ISR_S17_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_ISR_S17_ATTR                                                                           0x0
+#define HWIO_UMCMN_R0_ISR_S17_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ISR_S17_ADDR(x))
+#define HWIO_UMCMN_R0_ISR_S17_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ISR_S17_ADDR(x), m)
+#define HWIO_UMCMN_R0_ISR_S17_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ISR_S17_ADDR(x),v)
+#define HWIO_UMCMN_R0_ISR_S17_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ISR_S17_ADDR(x),m,v,HWIO_UMCMN_R0_ISR_S17_IN(x))
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x4000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_SHFT                                  14
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_SHFT                                     13
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_BMSK                                 0x1000
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_SHFT                                     12
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_BMSK                               0x800
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_SHFT                                  11
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_BMSK                               0x400
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_SHFT                                  10
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_BMSK                                0x200
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_SHFT                                    9
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_BMSK                                0x100
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_SHFT                                    8
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_BMSK                                    0x80
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_SHFT                                       7
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_BMSK                                    0x40
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_SHFT                                       6
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_BMSK                                0x20
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_SHFT                                   5
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_BMSK                                0x10
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_SHFT                                   4
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_BMSK                                  0x8
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_SHFT                                    3
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_BMSK                                  0x4
+#define HWIO_UMCMN_R0_ISR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_SHFT                                    2
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_BMSK                                     0x2
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_SHFT                                       1
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_BMSK                                  0x1
+#define HWIO_UMCMN_R0_ISR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_SHFT                                    0
+
+#define HWIO_UMCMN_R0_IMR_P_ADDR(x)                                                             ((x) + 0x7c)
+#define HWIO_UMCMN_R0_IMR_P_PHYS(x)                                                             ((x) + 0x7c)
+#define HWIO_UMCMN_R0_IMR_P_OFFS                                                                (0x7c)
+#define HWIO_UMCMN_R0_IMR_P_RMSK                                                                   0x3fffd
+#define HWIO_UMCMN_R0_IMR_P_POR                                                                 0x00000000
+#define HWIO_UMCMN_R0_IMR_P_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_IMR_P_ATTR                                                                             0x3
+#define HWIO_UMCMN_R0_IMR_P_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_P_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_P_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_P_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_P_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_P_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_P_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_P_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_P_IN(x))
+#define HWIO_UMCMN_R0_IMR_P_GXI_BMSK                                                               0x20000
+#define HWIO_UMCMN_R0_IMR_P_GXI_SHFT                                                                    17
+#define HWIO_UMCMN_R0_IMR_P_TQM2_BMSK                                                              0x10000
+#define HWIO_UMCMN_R0_IMR_P_TQM2_SHFT                                                                   16
+#define HWIO_UMCMN_R0_IMR_P_TQM1_BMSK                                                               0x8000
+#define HWIO_UMCMN_R0_IMR_P_TQM1_SHFT                                                                   15
+#define HWIO_UMCMN_R0_IMR_P_TQM0_BMSK                                                               0x4000
+#define HWIO_UMCMN_R0_IMR_P_TQM0_SHFT                                                                   14
+#define HWIO_UMCMN_R0_IMR_P_TCL1_BMSK                                                               0x2000
+#define HWIO_UMCMN_R0_IMR_P_TCL1_SHFT                                                                   13
+#define HWIO_UMCMN_R0_IMR_P_TCL0_BMSK                                                               0x1000
+#define HWIO_UMCMN_R0_IMR_P_TCL0_SHFT                                                                   12
+#define HWIO_UMCMN_R0_IMR_P_REO4_BMSK                                                                0x800
+#define HWIO_UMCMN_R0_IMR_P_REO4_SHFT                                                                   11
+#define HWIO_UMCMN_R0_IMR_P_REO3_BMSK                                                                0x400
+#define HWIO_UMCMN_R0_IMR_P_REO3_SHFT                                                                   10
+#define HWIO_UMCMN_R0_IMR_P_REO2_BMSK                                                                0x200
+#define HWIO_UMCMN_R0_IMR_P_REO2_SHFT                                                                    9
+#define HWIO_UMCMN_R0_IMR_P_REO1_BMSK                                                                0x100
+#define HWIO_UMCMN_R0_IMR_P_REO1_SHFT                                                                    8
+#define HWIO_UMCMN_R0_IMR_P_REO0_BMSK                                                                 0x80
+#define HWIO_UMCMN_R0_IMR_P_REO0_SHFT                                                                    7
+#define HWIO_UMCMN_R0_IMR_P_WBM3_BMSK                                                                 0x40
+#define HWIO_UMCMN_R0_IMR_P_WBM3_SHFT                                                                    6
+#define HWIO_UMCMN_R0_IMR_P_WBM2_BMSK                                                                 0x20
+#define HWIO_UMCMN_R0_IMR_P_WBM2_SHFT                                                                    5
+#define HWIO_UMCMN_R0_IMR_P_WBM1_BMSK                                                                 0x10
+#define HWIO_UMCMN_R0_IMR_P_WBM1_SHFT                                                                    4
+#define HWIO_UMCMN_R0_IMR_P_WBM0_BMSK                                                                  0x8
+#define HWIO_UMCMN_R0_IMR_P_WBM0_SHFT                                                                    3
+#define HWIO_UMCMN_R0_IMR_P_MEM_BMSK                                                                   0x4
+#define HWIO_UMCMN_R0_IMR_P_MEM_SHFT                                                                     2
+#define HWIO_UMCMN_R0_IMR_P_APB_BMSK                                                                   0x1
+#define HWIO_UMCMN_R0_IMR_P_APB_SHFT                                                                     0
+
+#define HWIO_UMCMN_R0_IMR_S0_ADDR(x)                                                            ((x) + 0x80)
+#define HWIO_UMCMN_R0_IMR_S0_PHYS(x)                                                            ((x) + 0x80)
+#define HWIO_UMCMN_R0_IMR_S0_OFFS                                                               (0x80)
+#define HWIO_UMCMN_R0_IMR_S0_RMSK                                                                0x71fffff
+#define HWIO_UMCMN_R0_IMR_S0_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S0_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S0_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S0_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S0_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S0_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S0_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S0_IN(x))
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_RD_INVALID_BMSK                                             0x4000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_RD_INVALID_SHFT                                                    26
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_INVALID_BMSK                                             0x2000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_INVALID_SHFT                                                    25
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_TO_RD_INVALID_BMSK                                       0x1000000
+#define HWIO_UMCMN_R0_IMR_S0_MXI_APB_WR_TO_RD_INVALID_SHFT                                              24
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_RD_INVALID_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_RD_INVALID_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_INVALID_BMSK                                             0x80000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_INVALID_SHFT                                                  19
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_TO_RD_INVALID_BMSK                                       0x40000
+#define HWIO_UMCMN_R0_IMR_S0_UMCMN_APB_WR_TO_RD_INVALID_SHFT                                            18
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_RD_INVALID_BMSK                                               0x20000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_RD_INVALID_SHFT                                                    17
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_INVALID_BMSK                                               0x10000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_INVALID_SHFT                                                    16
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_TO_RD_INVALID_BMSK                                          0x8000
+#define HWIO_UMCMN_R0_IMR_S0_TQM_APB_WR_TO_RD_INVALID_SHFT                                              15
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_RD_INVALID_BMSK                                           0x4000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_RD_INVALID_SHFT                                               14
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_INVALID_BMSK                                           0x2000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_INVALID_SHFT                                               13
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_BMSK                                     0x1000
+#define HWIO_UMCMN_R0_IMR_S0_CMN_PRSR_APB_WR_TO_RD_INVALID_SHFT                                         12
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_RD_INVALID_BMSK                                                 0x800
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_RD_INVALID_SHFT                                                    11
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_INVALID_BMSK                                                 0x400
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_INVALID_SHFT                                                    10
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_TO_RD_INVALID_BMSK                                           0x200
+#define HWIO_UMCMN_R0_IMR_S0_CCE_APB_WR_TO_RD_INVALID_SHFT                                               9
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_RD_INVALID_BMSK                                                 0x100
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_RD_INVALID_SHFT                                                     8
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_INVALID_BMSK                                                  0x80
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_INVALID_SHFT                                                     7
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_TO_RD_INVALID_BMSK                                            0x40
+#define HWIO_UMCMN_R0_IMR_S0_WBM_APB_WR_TO_RD_INVALID_SHFT                                               6
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_RD_INVALID_BMSK                                                  0x20
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_RD_INVALID_SHFT                                                     5
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_INVALID_BMSK                                                  0x10
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_INVALID_SHFT                                                     4
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_TO_RD_INVALID_BMSK                                             0x8
+#define HWIO_UMCMN_R0_IMR_S0_TCL_APB_WR_TO_RD_INVALID_SHFT                                               3
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_RD_INVALID_BMSK                                                   0x4
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_RD_INVALID_SHFT                                                     2
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_INVALID_BMSK                                                   0x2
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_INVALID_SHFT                                                     1
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_TO_RD_INVALID_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S0_REO_APB_WR_TO_RD_INVALID_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S2_ADDR(x)                                                            ((x) + 0x84)
+#define HWIO_UMCMN_R0_IMR_S2_PHYS(x)                                                            ((x) + 0x84)
+#define HWIO_UMCMN_R0_IMR_S2_OFFS                                                               (0x84)
+#define HWIO_UMCMN_R0_IMR_S2_RMSK                                                                      0xf
+#define HWIO_UMCMN_R0_IMR_S2_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S2_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S2_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S2_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S2_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S2_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S2_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S2_IN(x))
+#define HWIO_UMCMN_R0_IMR_S2_MEM_REMOTE_ACC_ERR_BMSK                                                   0x8
+#define HWIO_UMCMN_R0_IMR_S2_MEM_REMOTE_ACC_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_IMR_S2_MEM_ACC_RANGE_ERR_BMSK                                                    0x4
+#define HWIO_UMCMN_R0_IMR_S2_MEM_ACC_RANGE_ERR_SHFT                                                      2
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR2_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR2_SHFT                                                   1
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR1_BMSK                                                 0x1
+#define HWIO_UMCMN_R0_IMR_S2_MEM_NON_SEC_ACC_ERR1_SHFT                                                   0
+
+#define HWIO_UMCMN_R0_IMR_S3_ADDR(x)                                                            ((x) + 0x88)
+#define HWIO_UMCMN_R0_IMR_S3_PHYS(x)                                                            ((x) + 0x88)
+#define HWIO_UMCMN_R0_IMR_S3_OFFS                                                               (0x88)
+#define HWIO_UMCMN_R0_IMR_S3_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S3_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S3_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S3_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S3_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S3_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S3_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S3_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S3_IN(x))
+#define HWIO_UMCMN_R0_IMR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_BMSK                                0x80000000
+#define HWIO_UMCMN_R0_IMR_S3_MSDU_PARSER_DUP_DET_EVENT_INTR_SHFT                                        31
+#define HWIO_UMCMN_R0_IMR_S3_REL_PARSER_DUP_DET_EVENT_INTR_BMSK                                 0x40000000
+#define HWIO_UMCMN_R0_IMR_S3_REL_PARSER_DUP_DET_EVENT_INTR_SHFT                                         30
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_DUP_DET_EVENT_INTR_BMSK                                  0x20000000
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_DUP_DET_EVENT_INTR_SHFT                                          29
+#define HWIO_UMCMN_R0_IMR_S3_SW_COOKIE_IDLE_TIMEOUT_BMSK                                        0x10000000
+#define HWIO_UMCMN_R0_IMR_S3_SW_COOKIE_IDLE_TIMEOUT_SHFT                                                28
+#define HWIO_UMCMN_R0_IMR_S3_DELINK_B2B_DUPLI_PTR_INTR_BMSK                                      0x8000000
+#define HWIO_UMCMN_R0_IMR_S3_DELINK_B2B_DUPLI_PTR_INTR_SHFT                                             27
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_B2B_DUPLI_INTR_BMSK                                       0x4000000
+#define HWIO_UMCMN_R0_IMR_S3_LINK_DIST_B2B_DUPLI_INTR_SHFT                                              26
+#define HWIO_UMCMN_R0_IMR_S3_IDLE_SEQUENCE_WD_INTR_BMSK                                          0x2000000
+#define HWIO_UMCMN_R0_IMR_S3_IDLE_SEQUENCE_WD_INTR_SHFT                                                 25
+#define HWIO_UMCMN_R0_IMR_S3_WBM_VA_CONV_ERR_INT_BMSK                                            0x1000000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_VA_CONV_ERR_INT_SHFT                                                   24
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BP_WARN_INT_BMSK                                                 0x800000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BP_WARN_INT_SHFT                                                       23
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW6_BUF_PROD_WDG_BMSK                                            0x400000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW6_BUF_PROD_WDG_SHFT                                                  22
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW5_BUF_PROD_WDG_BMSK                                            0x200000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW5_BUF_PROD_WDG_SHFT                                                  21
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW4_BUF_PROD_WDG_BMSK                                            0x100000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW4_BUF_PROD_WDG_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S3_WBM_ERROR_BUF_PROD_WDG_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_ERROR_BUF_PROD_WDG_SHFT                                                19
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_PARSER_ERR_BMSK                                              0x70000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_PARSER_ERR_SHFT                                                   16
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LINK_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S3_WBM_BUF_IDLE_LIST_SCAT_SRNG_WDG_SHFT                                       12
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_PARSE_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_PARSE_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_WDG_BMSK                                                0x400
+#define HWIO_UMCMN_R0_IMR_S3_WBM_MSDU_DELINK_WDG_SHFT                                                   10
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_BMSK                                       0x200
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_C_WDG_SHFT                                           9
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_BMSK                                       0x100
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_DIST_P_WDG_SHFT                                           8
+#define HWIO_UMCMN_R0_IMR_S3_WBM_FW_BUF_PROD_WDG_BMSK                                                 0x80
+#define HWIO_UMCMN_R0_IMR_S3_WBM_FW_BUF_PROD_WDG_SHFT                                                    7
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW3_BUF_PROD_WDG_BMSK                                                0x40
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW3_BUF_PROD_WDG_SHFT                                                   6
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW2_BUF_PROD_WDG_BMSK                                                0x20
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW2_BUF_PROD_WDG_SHFT                                                   5
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW1_BUF_PROD_WDG_BMSK                                                0x10
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW1_BUF_PROD_WDG_SHFT                                                   4
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW0_BUF_PROD_WDG_BMSK                                                 0x8
+#define HWIO_UMCMN_R0_IMR_S3_WBM_SW0_BUF_PROD_WDG_SHFT                                                   3
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_BMSK                                           0x4
+#define HWIO_UMCMN_R0_IMR_S3_WBM_LNK_IDLE_LIST_PROD_WDG_SHFT                                             2
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_C_WDG_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_C_WDG_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_P_WDG_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S3_WBM_REL_REQ_PARSER_P_WDG_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S4_ADDR(x)                                                            ((x) + 0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_PHYS(x)                                                            ((x) + 0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_OFFS                                                               (0x8c)
+#define HWIO_UMCMN_R0_IMR_S4_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S4_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S4_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S4_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S4_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S4_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S4_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S4_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S4_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S4_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S4_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S4_IN(x))
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW6_RELEASE_RING_WDG_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW5_RELEASE_RING_WDG_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_IMR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2ERROR_RELEASE_RING_WDG_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW4_RELEASE_RING_WDG_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW3_RELEASE_RING_WDG_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW2_RELEASE_RING_WDG_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW1_RELEASE_RING_WDG_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW0_RELEASE_RING_WDG_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_RELEASE_RING_WDG_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_RELEASE_RING_WDG_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_LINK_RING_WDG_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_LINK_RING_WDG_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_BUF_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S4_WBM_IDLE_BUF_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_LINK_RING_WDG_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_LINK_RING_WDG_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_LINK_RING_WDG_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_LINK_RING_WDG_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_LINK_RING_WDG_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_LINK_RING_WDG_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_LINK_RING_WDG_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_IMR_S4_WBM2REO_LINK_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2REO_LINK_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S4_WBM2TQM_LINK_RING_WDG_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2TQM_LINK_RING_WDG_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA2_BUF_RING_WDG_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA1_BUF_RING_WDG_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_IMR_S4_WBM2RXDMA0_BUF_RING_WDG_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_BUF_RING_WDG_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_IMR_S4_WBM2FW_BUF_RING_WDG_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_BUF_RING_WDG_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_IMR_S4_WBM2SW_BUF_RING_WDG_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_IMR_S4_WBM2PPE_BUF_RING_WDG_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_IMR_S4_WBM2PPE_BUF_RING_WDG_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA2_RELEASE_RING_WDG_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA2_RELEASE_RING_WDG_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA1_RELEASE_RING_WDG_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA1_RELEASE_RING_WDG_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA0_RELEASE_RING_WDG_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_IMR_S4_RXDMA0_RELEASE_RING_WDG_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_IMR_S4_FW_RELEASE_RING_WDG_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_IMR_S4_FW_RELEASE_RING_WDG_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_IMR_S4_SW_RELEASE_RING_WDG_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_IMR_S4_SW_RELEASE_RING_WDG_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_IMR_S4_REO_RELEASE_RING_WDG_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S4_REO_RELEASE_RING_WDG_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S4_TQM_RELEASE_RING_WDG_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S4_TQM_RELEASE_RING_WDG_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S4_PPE_RELEASE_RING_WDG_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S4_PPE_RELEASE_RING_WDG_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S5_ADDR(x)                                                            ((x) + 0x90)
+#define HWIO_UMCMN_R0_IMR_S5_PHYS(x)                                                            ((x) + 0x90)
+#define HWIO_UMCMN_R0_IMR_S5_OFFS                                                               (0x90)
+#define HWIO_UMCMN_R0_IMR_S5_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S5_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S5_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S5_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S5_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S5_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S5_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S5_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S5_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S5_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S5_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S5_IN(x))
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_BMSK                                  0x80000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW6_RELEASE_RING_REQ_ERR_SHFT                                          31
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_BMSK                                  0x40000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW5_RELEASE_RING_REQ_ERR_SHFT                                          30
+#define HWIO_UMCMN_R0_IMR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_BMSK                                0x20000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2ERROR_RELEASE_RING_REQ_ERR_SHFT                                        29
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_BMSK                                  0x10000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW4_RELEASE_RING_REQ_ERR_SHFT                                          28
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_BMSK                                   0x8000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW3_RELEASE_RING_REQ_ERR_SHFT                                          27
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_BMSK                                   0x4000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW2_RELEASE_RING_REQ_ERR_SHFT                                          26
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_BMSK                                   0x2000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW1_RELEASE_RING_REQ_ERR_SHFT                                          25
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_BMSK                                   0x1000000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW0_RELEASE_RING_REQ_ERR_SHFT                                          24
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_RELEASE_RING_REQ_ERR_BMSK                                     0x800000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_RELEASE_RING_REQ_ERR_SHFT                                           23
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_LINK_RING_REQ_ERR_BMSK                                      0x400000
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_LINK_RING_REQ_ERR_SHFT                                            22
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_BUF_RING_REQ_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S5_WBM_IDLE_BUF_RING_REQ_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_BMSK                                    0x100000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_LINK_RING_REQ_ERR_SHFT                                          20
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_LINK_RING_REQ_ERR_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_LINK_RING_REQ_ERR_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_LINK_RING_REQ_ERR_BMSK                                         0x20000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_LINK_RING_REQ_ERR_SHFT                                              17
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_LINK_RING_REQ_ERR_BMSK                                         0x10000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_LINK_RING_REQ_ERR_SHFT                                              16
+#define HWIO_UMCMN_R0_IMR_S5_WBM2REO_LINK_RING_REQ_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2REO_LINK_RING_REQ_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S5_WBM2TQM_LINK_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2TQM_LINK_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_BMSK                                       0x2000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA2_BUF_RING_REQ_ERR_SHFT                                           13
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_BMSK                                       0x1000
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA1_BUF_RING_REQ_ERR_SHFT                                           12
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_BMSK                                        0x800
+#define HWIO_UMCMN_R0_IMR_S5_WBM2RXDMA0_BUF_RING_REQ_ERR_SHFT                                           11
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_BUF_RING_REQ_ERR_BMSK                                            0x400
+#define HWIO_UMCMN_R0_IMR_S5_WBM2FW_BUF_RING_REQ_ERR_SHFT                                               10
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_BUF_RING_REQ_ERR_BMSK                                            0x200
+#define HWIO_UMCMN_R0_IMR_S5_WBM2SW_BUF_RING_REQ_ERR_SHFT                                                9
+#define HWIO_UMCMN_R0_IMR_S5_WBM2PPE_BUF_RING_REQ_ERR_BMSK                                           0x100
+#define HWIO_UMCMN_R0_IMR_S5_WBM2PPE_BUF_RING_REQ_ERR_SHFT                                               8
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA2_RELEASE_RING_REQ_ERR_BMSK                                         0x80
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA2_RELEASE_RING_REQ_ERR_SHFT                                            7
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA1_RELEASE_RING_REQ_ERR_BMSK                                         0x40
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA1_RELEASE_RING_REQ_ERR_SHFT                                            6
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA0_RELEASE_RING_REQ_ERR_BMSK                                         0x20
+#define HWIO_UMCMN_R0_IMR_S5_RXDMA0_RELEASE_RING_REQ_ERR_SHFT                                            5
+#define HWIO_UMCMN_R0_IMR_S5_FW_RELEASE_RING_REQ_ERR_BMSK                                             0x10
+#define HWIO_UMCMN_R0_IMR_S5_FW_RELEASE_RING_REQ_ERR_SHFT                                                4
+#define HWIO_UMCMN_R0_IMR_S5_SW_RELEASE_RING_REQ_ERR_BMSK                                              0x8
+#define HWIO_UMCMN_R0_IMR_S5_SW_RELEASE_RING_REQ_ERR_SHFT                                                3
+#define HWIO_UMCMN_R0_IMR_S5_REO_RELEASE_RING_REQ_ERR_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S5_REO_RELEASE_RING_REQ_ERR_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S5_TQM_RELEASE_RING_REQ_ERR_BMSK                                             0x2
+#define HWIO_UMCMN_R0_IMR_S5_TQM_RELEASE_RING_REQ_ERR_SHFT                                               1
+#define HWIO_UMCMN_R0_IMR_S5_PPE_RELEASE_RING_REQ_ERR_BMSK                                             0x1
+#define HWIO_UMCMN_R0_IMR_S5_PPE_RELEASE_RING_REQ_ERR_SHFT                                               0
+
+#define HWIO_UMCMN_R0_IMR_S6_ADDR(x)                                                            ((x) + 0x94)
+#define HWIO_UMCMN_R0_IMR_S6_PHYS(x)                                                            ((x) + 0x94)
+#define HWIO_UMCMN_R0_IMR_S6_OFFS                                                               (0x94)
+#define HWIO_UMCMN_R0_IMR_S6_RMSK                                                                 0x3fffff
+#define HWIO_UMCMN_R0_IMR_S6_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S6_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S6_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S6_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S6_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S6_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S6_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S6_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S6_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S6_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S6_IN(x))
+#define HWIO_UMCMN_R0_IMR_S6_REO2PPE_RING_WDG_BMSK                                                0x200000
+#define HWIO_UMCMN_R0_IMR_S6_REO2PPE_RING_WDG_SHFT                                                      21
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW8_RING_WDG_BMSK                                                0x100000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW8_RING_WDG_SHFT                                                      20
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW7_RING_WDG_BMSK                                                 0x80000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW7_RING_WDG_SHFT                                                      19
+#define HWIO_UMCMN_R0_IMR_S6_REO_STATUS_RING_WDG_BMSK                                              0x40000
+#define HWIO_UMCMN_R0_IMR_S6_REO_STATUS_RING_WDG_SHFT                                                   18
+#define HWIO_UMCMN_R0_IMR_S6_REO_RELEASE_RING_WDG_BMSK                                             0x20000
+#define HWIO_UMCMN_R0_IMR_S6_REO_RELEASE_RING_WDG_SHFT                                                  17
+#define HWIO_UMCMN_R0_IMR_S6_REO2FW_RING_WDG_BMSK                                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S6_REO2FW_RING_WDG_SHFT                                                       16
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW0_RING_WDG_BMSK                                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW0_RING_WDG_SHFT                                                      15
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW6_RING_WDG_BMSK                                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW6_RING_WDG_SHFT                                                      14
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW5_RING_WDG_BMSK                                                  0x2000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW5_RING_WDG_SHFT                                                      13
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW4_RING_WDG_BMSK                                                  0x1000
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW4_RING_WDG_SHFT                                                      12
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW3_RING_WDG_BMSK                                                   0x800
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW3_RING_WDG_SHFT                                                      11
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW2_RING_WDG_BMSK                                                   0x400
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW2_RING_WDG_SHFT                                                      10
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW1_RING_WDG_BMSK                                                   0x200
+#define HWIO_UMCMN_R0_IMR_S6_REO2SW1_RING_WDG_SHFT                                                       9
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO_RING_WDG_BMSK                                                    0x100
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO_RING_WDG_SHFT                                                        8
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO1_RING_WDG_BMSK                                                    0x80
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO1_RING_WDG_SHFT                                                       7
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO2_RING_WDG_BMSK                                                    0x40
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO2_RING_WDG_SHFT                                                       6
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO3_RING_WDG_BMSK                                                    0x20
+#define HWIO_UMCMN_R0_IMR_S6_SW2REO3_RING_WDG_SHFT                                                       5
+#define HWIO_UMCMN_R0_IMR_S6_REO_CMD_RING_WDG_BMSK                                                    0x10
+#define HWIO_UMCMN_R0_IMR_S6_REO_CMD_RING_WDG_SHFT                                                       4
+#define HWIO_UMCMN_R0_IMR_S6_WBM2REO_LINK_RING_WDG_BMSK                                                0x8
+#define HWIO_UMCMN_R0_IMR_S6_WBM2REO_LINK_RING_WDG_SHFT                                                  3
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO2_MLO_RING_WDG_BMSK                                              0x4
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO2_MLO_RING_WDG_SHFT                                                2
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO1_MLO_RING_WDG_BMSK                                              0x2
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO1_MLO_RING_WDG_SHFT                                                1
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO0_RING_WDG_BMSK                                                  0x1
+#define HWIO_UMCMN_R0_IMR_S6_RXDMA2REO0_RING_WDG_SHFT                                                    0
+
+#define HWIO_UMCMN_R0_IMR_S7_ADDR(x)                                                            ((x) + 0x98)
+#define HWIO_UMCMN_R0_IMR_S7_PHYS(x)                                                            ((x) + 0x98)
+#define HWIO_UMCMN_R0_IMR_S7_OFFS                                                               (0x98)
+#define HWIO_UMCMN_R0_IMR_S7_RMSK                                                               0xffff000f
+#define HWIO_UMCMN_R0_IMR_S7_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S7_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S7_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S7_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S7_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S7_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S7_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S7_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S7_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S7_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S7_IN(x))
+#define HWIO_UMCMN_R0_IMR_S7_REO_CACHE_INT_BMSK                                                 0xffff0000
+#define HWIO_UMCMN_R0_IMR_S7_REO_CACHE_INT_SHFT                                                         16
+#define HWIO_UMCMN_R0_IMR_S7_REO_AC_BUF_OVER_THRESH_BMSK                                               0xf
+#define HWIO_UMCMN_R0_IMR_S7_REO_AC_BUF_OVER_THRESH_SHFT                                                 0
+
+#define HWIO_UMCMN_R0_IMR_S8_ADDR(x)                                                            ((x) + 0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_PHYS(x)                                                            ((x) + 0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_OFFS                                                               (0x9c)
+#define HWIO_UMCMN_R0_IMR_S8_RMSK                                                               0xffffffff
+#define HWIO_UMCMN_R0_IMR_S8_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S8_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S8_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S8_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S8_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S8_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S8_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S8_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S8_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S8_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S8_IN(x))
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RESERVED_BMSK                                         0xfff00000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RESERVED_SHFT                                                 20
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_INVALID_TLV_CMD_BMSK                                     0x80000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_INVALID_TLV_CMD_SHFT                                          19
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_BMSK                               0x40000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_RX_QUEUE_NUM_MISMATCH_SHFT                                    18
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_BMSK                                0x20000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_SW_ZERO_DESC_SHFT                                     17
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_BMSK                               0x10000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_AGE_ZERO_DESC_SHFT                                    16
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_BMSK                           0x8000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MSDU_LINK_PTR_SHFT                               15
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_BMSK                           0x4000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_ZERO_MPDU_LINK_PTR_SHFT                               14
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_BMSK                                0x2000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_ZERO_MSDU_BUF_PTR_SHFT                                    13
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_BMSK                                      0x1000
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_NON_AMPDU_SHFT                                          12
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_PN_ERR_BMSK                                            0x800
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_SEQ_PN_ERR_SHFT                                               11
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_BMSK                                        0x400
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_SNEQUAL_SHFT                                           10
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_NONBA_BMSK                                          0x200
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BAR_NONBA_SHFT                                              9
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_BAR_BMSK                                            0x100
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_BAR_SHFT                                                8
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_REG_BMSK                                             0x80
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_OOR_REG_SHFT                                                7
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_BAR_BMSK                                              0x40
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_BAR_SHFT                                                 6
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_REG_BMSK                                              0x20
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_2K_REG_SHFT                                                 5
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_DD_BMSK                                               0x10
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_BA_DD_SHFT                                                  4
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_NONBA_DD_BMSK                                             0x8
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_NONBA_DD_SHFT                                               3
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_BMSK                                          0x4
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_AMPDU_NONBA_SHFT                                            2
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_QD_NOTVALID_BMSK                                          0x2
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_DD_QD_NOTVALID_SHFT                                            1
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_BMSK                                    0x1
+#define HWIO_UMCMN_R0_IMR_S8_REO_ERR_INTR_REORDER_QD_ADDR_ZERO_SHFT                                      0
+
+#define HWIO_UMCMN_R0_IMR_S9_ADDR(x)                                                            ((x) + 0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_PHYS(x)                                                            ((x) + 0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_OFFS                                                               (0xa0)
+#define HWIO_UMCMN_R0_IMR_S9_RMSK                                                                 0xffffff
+#define HWIO_UMCMN_R0_IMR_S9_POR                                                                0x00000000
+#define HWIO_UMCMN_R0_IMR_S9_POR_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_IMR_S9_ATTR                                                                            0x3
+#define HWIO_UMCMN_R0_IMR_S9_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S9_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S9_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S9_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S9_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S9_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S9_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S9_IN(x))
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_BMSK                                            0xf00000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SHFT                                                  20
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_WARNING_INTR_BMSK                                    0x80000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_WARNING_INTR_SHFT                                         19
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_BMSK                                  0x40000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST7_PROD_SHFT                                       18
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_BMSK                                  0x20000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST6_PROD_SHFT                                       17
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST5_PROD_SHFT                                       16
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_BMSK                                   0x8000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST4_PROD_SHFT                                       15
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_STATUS_PROD_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_RELEASE_PROD_SHFT                                     13
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_BMSK                                    0x1000
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_WIFI_PROD_SHFT                                        12
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_BMSK                                      0x800
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_TCL_PROD_SHFT                                         11
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_BMSK                                    0x400
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST3_PROD_SHFT                                       10
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_BMSK                                    0x200
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST2_PROD_SHFT                                        9
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_BMSK                                    0x100
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST1_PROD_SHFT                                        8
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_BMSK                                     0x80
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_HOST0_PROD_SHFT                                        7
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_BMSK                                      0x40
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_SEQUENCER_SHFT                                         6
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REORDER_BMSK                                        0x20
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REORDER_SHFT                                           5
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_BMSK                             0x10
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_MPDU_LINK_PREFETCH_SHFT                                4
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_BMSK                                     0x8
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_TLV_SHFT                                       3
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_BMSK                                0x4
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_CMD_PREFETCH_SHFT                                  2
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_BMSK                               0x2
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_SHFT                                 1
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_BMSK                          0x1
+#define HWIO_UMCMN_R0_IMR_S9_REO_RESERVED_WDG_ERR_REO_RING_PREFETCH_READ_SHFT                            0
+
+#define HWIO_UMCMN_R0_IMR_S10_ADDR(x)                                                           ((x) + 0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_PHYS(x)                                                           ((x) + 0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_OFFS                                                              (0xa4)
+#define HWIO_UMCMN_R0_IMR_S10_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_IMR_S10_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S10_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S10_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S10_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S10_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S10_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S10_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S10_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S10_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S10_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S10_IN(x))
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_BMSK                            0x20000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG11_REQ_ERR_SHFT                                 17
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_BMSK                            0x10000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG10_REQ_ERR_SHFT                                 16
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG9_REQ_ERR_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_BMSK                              0x4000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG8_REQ_ERR_SHFT                                  14
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_BMSK                              0x2000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG7_REQ_ERR_SHFT                                  13
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_BMSK                              0x1000
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG6_REQ_ERR_SHFT                                  12
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_BMSK                               0x800
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG5_REQ_ERR_SHFT                                  11
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_BMSK                               0x400
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG4_REQ_ERR_SHFT                                  10
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG3_REQ_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_BMSK                               0x100
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG2_REQ_ERR_SHFT                                   8
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG1_REQ_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_BMSK                                0x40
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_HOST_SRNG0_REQ_ERR_SHFT                                   6
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_BMSK                              0x20
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_REO_CMD_SRNG_REQ_ERR_SHFT                                 5
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_BMSK                            0x10
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_LINK_DESC_SRNG_REQ_ERR_SHFT                               4
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_BMSK                                 0x8
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG3_REQ_ERR_SHFT                                   3
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG2_REQ_ERR_SHFT                                   2
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_BMSK                                 0x2
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG1_REQ_ERR_SHFT                                   1
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_IMR_S10_REO_RESERVED_INT_ENTR_SRNG0_REQ_ERR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_IMR_S11_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_OFFS                                                              (0xa8)
+#define HWIO_UMCMN_R0_IMR_S11_RMSK                                                               0x3ffffff
+#define HWIO_UMCMN_R0_IMR_S11_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S11_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S11_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S11_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S11_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S11_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S11_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S11_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S11_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S11_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S11_IN(x))
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_WDG_ERR_BMSK                                     0x2000000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_WDG_ERR_SHFT                                            25
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_REQ_ERR_BMSK                                     0x1000000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_PPE2TCL1_RING_REQ_ERR_SHFT                                            24
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_BMSK                                0x800000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_WDG_ERR_SHFT                                      23
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_BMSK                                0x400000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT2_RING_REQ_ERR_SHFT                                      22
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_WDG_ERR_BMSK                                       0x200000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_WDG_ERR_SHFT                                             21
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_REQ_ERR_BMSK                                       0x100000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL5_RING_REQ_ERR_SHFT                                             20
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_WDG_ERR_BMSK                                        0x80000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_WDG_ERR_SHFT                                             19
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_REQ_ERR_BMSK                                        0x40000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL4_RING_REQ_ERR_SHFT                                             18
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_WDG_ERR_BMSK                                        0x20000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_WDG_ERR_SHFT                                             17
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_REQ_ERR_BMSK                                        0x10000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS2_RING_REQ_ERR_SHFT                                             16
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_WDG_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_WDG_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_REQ_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_STATUS1_RING_REQ_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_WDG_ERR_BMSK                                          0x2000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_WDG_ERR_SHFT                                              13
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_REQ_ERR_BMSK                                          0x1000
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2FW_RING_REQ_ERR_SHFT                                              12
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_WDG_ERR_BMSK                                          0x800
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_WDG_ERR_SHFT                                             11
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_REQ_ERR_BMSK                                          0x400
+#define HWIO_UMCMN_R0_IMR_S11_TCL_TCL2TQM_RING_REQ_ERR_SHFT                                             10
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_BMSK                                    0x200
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_WDG_ERR_SHFT                                        9
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_BMSK                                    0x100
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL_CREDIT_RING_REQ_ERR_SHFT                                        8
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_WDG_ERR_BMSK                                           0x80
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_WDG_ERR_SHFT                                              7
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_REQ_ERR_BMSK                                           0x40
+#define HWIO_UMCMN_R0_IMR_S11_TCL_FW2TCL1_RING_REQ_ERR_SHFT                                              6
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_WDG_ERR_BMSK                                           0x20
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_WDG_ERR_SHFT                                              5
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_REQ_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL3_RING_REQ_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_WDG_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_WDG_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_REQ_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL2_RING_REQ_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_WDG_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_WDG_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_REQ_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_IMR_S11_TCL_SW2TCL1_RING_REQ_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_IMR_S12_ADDR(x)                                                           ((x) + 0xac)
+#define HWIO_UMCMN_R0_IMR_S12_PHYS(x)                                                           ((x) + 0xac)
+#define HWIO_UMCMN_R0_IMR_S12_OFFS                                                              (0xac)
+#define HWIO_UMCMN_R0_IMR_S12_RMSK                                                                0x3fffff
+#define HWIO_UMCMN_R0_IMR_S12_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S12_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S12_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S12_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S12_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S12_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S12_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S12_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S12_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S12_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S12_IN(x))
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_BMSK                                     0x200000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PARSER_OUT_TLV_SEQ_ERR_SHFT                                           21
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_BMSK                                      0x100000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_PPE2TCL1_ZERO_LEN_ERR_SHFT                                            20
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_BMSK                                 0x80000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT2_ZERO_LEN_ERR_SHFT                                      19
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BUFFER_LENGTH_ERROR_INT_BMSK                                     0x40000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BUFFER_LENGTH_ERROR_INT_SHFT                                          18
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BANK_ID_ERR_BMSK                                                 0x20000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_BANK_ID_ERR_SHFT                                                      17
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_WARNING_BMSK                                                 0x10000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_WARNING_SHFT                                                      16
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_BMSK                                         0x8000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL5_ZERO_LEN_ERR_SHFT                                             15
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_BMSK                                         0x4000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL4_ZERO_LEN_ERR_SHFT                                             14
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_ERR_CLASSIFY_DIS_BMSK                                         0x2000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_ERR_CLASSIFY_DIS_SHFT                                             13
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_WDG_TO_BMSK                                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CCE_WDG_TO_SHFT                                                       12
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_BMSK                                       0x800
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_JUMBOGRAM_SHFT                                          11
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_BMSK                             0x400
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_IPV6_EXT_HD_BYTES_EXCEED_SHFT                                10
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_BMSK                                         0x200
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_MSDU_LEN_ERR_SHFT                                             9
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_ETH_ERR_BMSK                                              0x100
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_ETH_ERR_SHFT                                                  8
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WMAC_ERR_BMSK                                              0x80
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WMAC_ERR_SHFT                                                 7
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WDG_TO_BMSK                                                0x40
+#define HWIO_UMCMN_R0_IMR_S12_TCL_CMN_PRSR_WDG_TO_SHFT                                                   6
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_BMSK                                     0x20
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL_CREDIT_ZERO_LEN_ERR_SHFT                                        5
+#define HWIO_UMCMN_R0_IMR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_BMSK                                           0x10
+#define HWIO_UMCMN_R0_IMR_S12_TCL_FW2TCL1_ZERO_LEN_ERR_SHFT                                              4
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_BMSK                                            0x8
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL3_ZERO_LEN_ERR_SHFT                                              3
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_BMSK                                            0x4
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL2_ZERO_LEN_ERR_SHFT                                              2
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S12_TCL_SW2TCL1_ZERO_LEN_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_ERR_BMSK                                                         0x1
+#define HWIO_UMCMN_R0_IMR_S12_TCL_WDG_ERR_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_IMR_S13_ADDR(x)                                                           ((x) + 0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_PHYS(x)                                                           ((x) + 0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_OFFS                                                              (0xb0)
+#define HWIO_UMCMN_R0_IMR_S13_RMSK                                                                 0x3ffff
+#define HWIO_UMCMN_R0_IMR_S13_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S13_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S13_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S13_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S13_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S13_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S13_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S13_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S13_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S13_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S13_IN(x))
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_BMSK                               0x20000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_REQ_ERR_SHFT                                    17
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_BMSK                               0x10000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_RELEASE_RING_WDG_ERR_SHFT                                    16
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_BMSK                                  0x8000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_REQ_ERR_SHFT                                      15
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS1_UPDATE_RING_WDG_ERR_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_BMSK                                   0x2000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_REQ_ERR_SHFT                                       13
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_BMSK                                   0x1000
+#define HWIO_UMCMN_R0_IMR_S13_TQM_STATUS_UPDATE_RING_WDG_ERR_SHFT                                       12
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_BMSK                                   0x800
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_REQ_ERR_SHFT                                      11
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_BMSK                                   0x400
+#define HWIO_UMCMN_R0_IMR_S13_TQM_DESC_PTR_FETCH_RING_WDG_ERR_SHFT                                      10
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_BMSK                               0x200
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_LINK_ID_MISMATCH_ERR_SHFT                                   9
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_BMSK                                      0x100
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV1_FLUSH_REQ_ERR_SHFT                                          8
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_BMSK                                0x80
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_LINK_ID_MISMATCH_ERR_SHFT                                   7
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_BMSK                                       0x40
+#define HWIO_UMCMN_R0_IMR_S13_TQM_HWSCH_TLV0_FLUSH_REQ_ERR_SHFT                                          6
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_REQ_ERR_BMSK                                            0x20
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_REQ_ERR_SHFT                                               5
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_WDG_ERR_BMSK                                            0x10
+#define HWIO_UMCMN_R0_IMR_S13_TQM_SW_CMD_RING_WDG_ERR_SHFT                                               4
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_BMSK                                          0x8
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_REQ_ERR_SHFT                                            3
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_BMSK                                          0x4
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT3_RING_WDG_ERR_SHFT                                            2
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_BMSK                                          0x2
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_REQ_ERR_SHFT                                            1
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_IMR_S13_TQM_MSDU_ENT1_RING_WDG_ERR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_IMR_S14_ADDR(x)                                                           ((x) + 0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_PHYS(x)                                                           ((x) + 0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_OFFS                                                              (0xb4)
+#define HWIO_UMCMN_R0_IMR_S14_RMSK                                                               0x7ffffff
+#define HWIO_UMCMN_R0_IMR_S14_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S14_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S14_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S14_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S14_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S14_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S14_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S14_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S14_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S14_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S14_IN(x))
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                 0x4000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        26
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_BMSK                               0x2000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_REQ_ERR_INT_SHFT                                      25
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_BMSK                          0x1000000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT2_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 24
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_BMSK                  0x800000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_FETCH_POLLING_TIMEOUT_INT_SHFT                        23
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_BMSK                                0x400000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_REQ_ERR_INT_SHFT                                      22
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_BMSK                           0x200000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_OUT1_SRNG_P_WATCHDOG_ERR_INT_SHFT                                 21
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                   0x100000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         20
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_BMSK                                  0x80000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_REQ_ERR_INT_SHFT                                       19
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_BMSK                             0x40000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN2_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  18
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_BMSK                    0x20000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_FETCH_POLLING_TIMEOUT_INT_SHFT                         17
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_BMSK                                  0x10000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_REQ_ERR_INT_SHFT                                       16
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S14_TQM2TQM_IN1_SRNG_C_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S14_TQM_CACHE_CTL_ERR_BMSK                                                0x7ff8
+#define HWIO_UMCMN_R0_IMR_S14_TQM_CACHE_CTL_ERR_SHFT                                                     3
+#define HWIO_UMCMN_R0_IMR_S14_TQM_WARNING_WDG_TIMEOUT_BMSK                                             0x4
+#define HWIO_UMCMN_R0_IMR_S14_TQM_WARNING_WDG_TIMEOUT_SHFT                                               2
+#define HWIO_UMCMN_R0_IMR_S14_TQM_HW_ERROR_INTR_TIMEOUT_BMSK                                           0x2
+#define HWIO_UMCMN_R0_IMR_S14_TQM_HW_ERROR_INTR_TIMEOUT_SHFT                                             1
+#define HWIO_UMCMN_R0_IMR_S14_TQM_SW_PRGM_ERR_BMSK                                                     0x1
+#define HWIO_UMCMN_R0_IMR_S14_TQM_SW_PRGM_ERR_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_IMR_S15_ADDR(x)                                                           ((x) + 0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_PHYS(x)                                                           ((x) + 0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_OFFS                                                              (0xb8)
+#define HWIO_UMCMN_R0_IMR_S15_RMSK                                                                  0x7fff
+#define HWIO_UMCMN_R0_IMR_S15_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S15_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S15_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S15_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S15_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S15_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S15_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S15_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S15_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S15_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S15_IN(x))
+#define HWIO_UMCMN_R0_IMR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_BMSK                                  0x4000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_UNPAUSE_LINK_DESC_THRESHOLD_SHFT                                      14
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_HWSCH_CMD_BMSK                                            0x2000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_HWSCH_CMD_SHFT                                                13
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_SW_CMD_BMSK                                               0x1000
+#define HWIO_UMCMN_R0_IMR_S15_TQM_ILLEGAL_SW_CMD_SHFT                                                   12
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_BMSK                                      0x800
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_DEC_EMPTY_SHFT                                         11
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_BMSK                                      0x400
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_DEC_EMPTY_SHFT                                         10
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_BMSK                                      0x200
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_DEC_EMPTY_SHFT                                          9
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_SATURATE_BMSK                                       0x100
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT2_SATURATE_SHFT                                           8
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_SATURATE_BMSK                                        0x80
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT1_SATURATE_SHFT                                           7
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_SATURATE_BMSK                                        0x40
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_CNT0_SATURATE_SHFT                                           6
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_BMSK                                   0x20
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD2_REACHED_SHFT                                      5
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_BMSK                                   0x10
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD1_REACHED_SHFT                                      4
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_BMSK                                    0x8
+#define HWIO_UMCMN_R0_IMR_S15_TQM_LINK_DESC_THRESHOLD0_REACHED_SHFT                                      3
+#define HWIO_UMCMN_R0_IMR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_BMSK                                0x4
+#define HWIO_UMCMN_R0_IMR_S15_TQM_AGGR_LINK_DESC_THRESHOLD_REACHED_SHFT                                  2
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_REQ_ERR_BMSK                                            0x2
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_REQ_ERR_SHFT                                              1
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_WDG_ERR_BMSK                                            0x1
+#define HWIO_UMCMN_R0_IMR_S15_TQM_SW_CMD1_RING_WDG_ERR_SHFT                                              0
+
+#define HWIO_UMCMN_R0_IMR_S16_ADDR(x)                                                           ((x) + 0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_PHYS(x)                                                           ((x) + 0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_OFFS                                                              (0xbc)
+#define HWIO_UMCMN_R0_IMR_S16_RMSK                                                                    0x1f
+#define HWIO_UMCMN_R0_IMR_S16_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S16_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S16_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S16_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S16_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S16_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S16_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S16_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S16_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S16_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S16_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S16_IN(x))
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_ERR_BMSK                                                   0x10
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_ERR_SHFT                                                      4
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_WR_ERR_BMSK                                                  0x8
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_WR_ERR_SHFT                                                    3
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_RD_ERR_BMSK                                                  0x4
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_AXI_RD_ERR_SHFT                                                    2
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_LAST_WR_ERR_BMSK                                                 0x2
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_LAST_WR_ERR_SHFT                                                   1
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_WAR_BMSK                                                    0x1
+#define HWIO_UMCMN_R0_IMR_S16_MXI_GXI_WDTO_WAR_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_IMR_S17_ADDR(x)                                                           ((x) + 0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_PHYS(x)                                                           ((x) + 0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_OFFS                                                              (0xc0)
+#define HWIO_UMCMN_R0_IMR_S17_RMSK                                                                  0xffff
+#define HWIO_UMCMN_R0_IMR_S17_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_IMR_S17_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_IMR_S17_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_IMR_S17_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IMR_S17_ADDR(x))
+#define HWIO_UMCMN_R0_IMR_S17_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IMR_S17_ADDR(x), m)
+#define HWIO_UMCMN_R0_IMR_S17_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IMR_S17_ADDR(x),v)
+#define HWIO_UMCMN_R0_IMR_S17_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IMR_S17_ADDR(x),m,v,HWIO_UMCMN_R0_IMR_S17_IN(x))
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x8000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_MLO_P_WATCHDOG_ERR_INT_SHFT                                  15
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_BMSK                              0x4000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_MLO_P_WATCHDOG_ERR_INT_SHFT                                  14
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_BMSK                                 0x2000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_REQ_ERROR_INTR_SHFT                                     13
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_BMSK                                 0x1000
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_REQ_ERROR_INTR_SHFT                                     12
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_BMSK                               0x800
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_RING_WATCHDOG_ERR_INTR_SHFT                                  11
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_BMSK                               0x400
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_RING_WATCHDOG_ERR_INTR_SHFT                                  10
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_BMSK                                0x200
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_WATCHDOG_ERR_INTR_SHFT                                    9
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_BMSK                                0x100
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_WATCHDOG_ERR_INTR_SHFT                                    8
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_BMSK                                    0x80
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_RING_REQ_ERROR_INTR_SHFT                                       7
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_BMSK                                    0x40
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_RING_REQ_ERROR_INTR_SHFT                                       6
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_BMSK                                0x20
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT2_FETCH_POINTER_ERR_INTR_SHFT                                   5
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_BMSK                                0x10
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_OUT1_FETCH_POINTER_ERR_INTR_SHFT                                   4
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_BMSK                                  0x8
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN2_FETCH_POINTER_ERR_INTR_SHFT                                    3
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_BMSK                                  0x4
+#define HWIO_UMCMN_R0_IMR_S17_WBM2WBM_IN1_FETCH_POINTER_ERR_INTR_SHFT                                    2
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_BMSK                                     0x2
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_REQ_ERROR_INTR_SHFT                                       1
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_BMSK                                  0x1
+#define HWIO_UMCMN_R0_IMR_S17_SW1_RELEASE_RING_WATCHDOG_ERR_INTR_SHFT                                    0
+
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x)                                                    ((x) + 0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_PHYS(x)                                                    ((x) + 0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OFFS                                                       (0xc4)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_RMSK                                                              0x1
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_POR                                                        0x00000000
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_POR_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ATTR                                                                    0x3
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x))
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x), m)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x),v)
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_WOCLR_ISR_P_EN_ADDR(x),m,v,HWIO_UMCMN_R0_WOCLR_ISR_P_EN_IN(x))
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_VAL_BMSK                                                          0x1
+#define HWIO_UMCMN_R0_WOCLR_ISR_P_EN_VAL_SHFT                                                            0
+
+#define HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x)                                                     ((x) + 0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_PHYS(x)                                                     ((x) + 0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_OFFS                                                        (0xc8)
+#define HWIO_UMCMN_R0_UMAC_REVISION_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_POR                                                         0x20030000
+#define HWIO_UMCMN_R0_UMAC_REVISION_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_ATTR                                                                     0x1
+#define HWIO_UMCMN_R0_UMAC_REVISION_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_REVISION_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_REVISION_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_REVISION_MAJOR_BMSK                                                  0xf0000000
+#define HWIO_UMCMN_R0_UMAC_REVISION_MAJOR_SHFT                                                          28
+#define HWIO_UMCMN_R0_UMAC_REVISION_MINOR_BMSK                                                   0xfff0000
+#define HWIO_UMCMN_R0_UMAC_REVISION_MINOR_SHFT                                                          16
+#define HWIO_UMCMN_R0_UMAC_REVISION_STEP_BMSK                                                       0xffff
+#define HWIO_UMCMN_R0_UMAC_REVISION_STEP_SHFT                                                            0
+
+#define HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x)                                                        ((x) + 0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_PHYS(x)                                                        ((x) + 0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OFFS                                                           (0xcc)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_RMSK                                                             0x3bffff
+#define HWIO_UMCMN_R0_IDLE_CTRL0_POR                                                            0x000007de
+#define HWIO_UMCMN_R0_IDLE_CTRL0_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_IDLE_CTRL0_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x))
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x), m)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x),v)
+#define HWIO_UMCMN_R0_IDLE_CTRL0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_IDLE_CTRL0_ADDR(x),m,v,HWIO_UMCMN_R0_IDLE_CTRL0_IN(x))
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_NOC_IDLE_REQ_BMSK                                          0x200000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_NOC_IDLE_REQ_SHFT                                                21
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_WBM_IDLE_REQ_BMSK                                          0x100000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_WBM_IDLE_REQ_SHFT                                                20
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TQM_IDLE_REQ_BMSK                                           0x80000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TQM_IDLE_REQ_SHFT                                                19
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_REO_IDLE_REQ_BMSK                                           0x20000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_REO_IDLE_REQ_SHFT                                                17
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TCL_IDLE_REQ_BMSK                                           0x10000
+#define HWIO_UMCMN_R0_IDLE_CTRL0_BLOCK_TCL_IDLE_REQ_SHFT                                                16
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INTER_STATE_DLY_BMSK                                               0xffc0
+#define HWIO_UMCMN_R0_IDLE_CTRL0_INTER_STATE_DLY_SHFT                                                    6
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IDLE_INTG_CHK_DLY_BMSK                                               0x3e
+#define HWIO_UMCMN_R0_IDLE_CTRL0_IDLE_INTG_CHK_DLY_SHFT                                                  1
+#define HWIO_UMCMN_R0_IDLE_CTRL0_SW_IDLE_REQ_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_IDLE_CTRL0_SW_IDLE_REQ_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x)                                              ((x) + 0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_PHYS(x)                                              ((x) + 0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OFFS                                                 (0xd0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_RMSK                                                     0x1f9f
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_POR                                                  0x00000000
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ATTR                                                              0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_DATA_BMSK                                0x1000
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_DATA_SHFT                                    12
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_OVR_BMSK                                  0x800
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_NOC_IDLE_REQ_SW_OVR_SHFT                                     11
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_DATA_BMSK                                 0x400
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_DATA_SHFT                                    10
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_OVR_BMSK                                  0x200
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_WBM_IDLE_REQ_SW_OVR_SHFT                                      9
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_DATA_BMSK                                 0x100
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_DATA_SHFT                                     8
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_OVR_BMSK                                   0x80
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TQM_IDLE_REQ_SW_OVR_SHFT                                      7
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_DATA_BMSK                                  0x10
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_DATA_SHFT                                     4
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_OVR_BMSK                                    0x8
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_REO_IDLE_REQ_SW_OVR_SHFT                                      3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_DATA_BMSK                                   0x4
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_DATA_SHFT                                     2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_OVR_BMSK                                    0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_TCL_IDLE_REQ_SW_OVR_SHFT                                      1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_GLOBAL_SW_OVR_BMSK                                          0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_SW_OVR_GLOBAL_SW_OVR_SHFT                                            0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x)                                             ((x) + 0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_PHYS(x)                                             ((x) + 0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OFFS                                                (0xd4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_RMSK                                                   0x3ffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_POR                                                 0x00000001
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ATTR                                                             0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_WAIT_IN_STATE_BMSK                                 0x3fffc
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_WAIT_IN_STATE_SHFT                                       2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_FORCE_IDLE_BMSK                                        0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_FORCE_IDLE_SHFT                                          1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_EN_BMSK                                                0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_GEN_FSM_CTL_FSM_EN_SHFT                                                  0
+
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x)                                                       ((x) + 0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_PHYS(x)                                                       ((x) + 0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_OFFS                                                          (0xd8)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_RMSK                                                                0x1f
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_POR                                                           0x0000001f
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_POR_RMSK                                                      0xffffffff
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_ATTR                                                                       0x1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x))
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_IDLE_SIGNAL_ADDR(x), m)
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_MXI_BMSK                                                            0x10
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_MXI_SHFT                                                               4
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_REO_BMSK                                                             0x8
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_REO_SHFT                                                               3
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TCL_BMSK                                                             0x4
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TCL_SHFT                                                               2
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_WBM_BMSK                                                             0x2
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_WBM_SHFT                                                               1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TQM_BMSK                                                             0x1
+#define HWIO_UMCMN_R0_IDLE_SIGNAL_TQM_SHFT                                                               0
+
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x)                                             ((x) + 0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_PHYS(x)                                             ((x) + 0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_OFFS                                                (0xdc)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_RMSK                                                      0x1e
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_POR                                                 0x00000000
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ATTR                                                             0x1
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x))
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_WBM_REL_RING_BMSK                                         0x10
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_WBM_REL_RING_SHFT                                            4
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TQM_CMD_RING_BMSK                                          0x8
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TQM_CMD_RING_SHFT                                            3
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_REO_CMD_RING_BMSK                                          0x4
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_REO_CMD_RING_SHFT                                            2
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TCL_CMD_RING_BMSK                                          0x2
+#define HWIO_UMCMN_R0_RING_NOT_EMPTY_STATUS_TCL_CMD_RING_SHFT                                            1
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x)                                      ((x) + 0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_PHYS(x)                                      ((x) + 0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OFFS                                         (0xe0)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_RMSK                                              0xfcf
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_POR                                          0x00000000
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_POR_RMSK                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ATTR                                                      0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_DATA_BMSK                          0x800
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_DATA_SHFT                             11
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_BMSK                               0x400
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_NOC_IDLE_SWOVR_SHFT                                  10
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_DATA_BMSK                          0x200
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_DATA_SHFT                              9
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_BMSK                               0x100
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_WBM_IDLE_SWOVR_SHFT                                   8
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_DATA_BMSK                           0x80
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_DATA_SHFT                              7
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_BMSK                                0x40
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TQM_IDLE_SWOVR_SHFT                                   6
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_DATA_BMSK                            0x8
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_DATA_SHFT                              3
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_BMSK                                 0x4
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_REO_IDLE_SWOVR_SHFT                                   2
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_DATA_BMSK                            0x2
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_DATA_SHFT                              1
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_BMSK                                 0x1
+#define HWIO_UMCMN_R0_UMAC_IDLE_ACK_AND_RESP_SWOVR_TCL_IDLE_SWOVR_SHFT                                   0
+
+#define HWIO_UMCMN_R0_S_PARE_0_ADDR(x)                                                          ((x) + 0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_PHYS(x)                                                          ((x) + 0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_OFFS                                                             (0xe4)
+#define HWIO_UMCMN_R0_S_PARE_0_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_0_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_0_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_0_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_0_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_0_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_0_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_0_S_PARE_0_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_0_S_PARE_0_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_1_ADDR(x)                                                          ((x) + 0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_PHYS(x)                                                          ((x) + 0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_OFFS                                                             (0xe8)
+#define HWIO_UMCMN_R0_S_PARE_1_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_1_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_1_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_1_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_1_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_1_S_PARE_1_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_1_S_PARE_1_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_2_ADDR(x)                                                          ((x) + 0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_PHYS(x)                                                          ((x) + 0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_OFFS                                                             (0xec)
+#define HWIO_UMCMN_R0_S_PARE_2_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_2_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_2_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_2_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_2_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_2_S_PARE_2_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_2_S_PARE_2_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_S_PARE_3_ADDR(x)                                                          ((x) + 0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_PHYS(x)                                                          ((x) + 0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_OFFS                                                             (0xf0)
+#define HWIO_UMCMN_R0_S_PARE_3_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_S_PARE_3_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_S_PARE_3_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_S_PARE_3_ADDR(x))
+#define HWIO_UMCMN_R0_S_PARE_3_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_S_PARE_3_ADDR(x), m)
+#define HWIO_UMCMN_R0_S_PARE_3_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_S_PARE_3_ADDR(x),v)
+#define HWIO_UMCMN_R0_S_PARE_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_S_PARE_3_ADDR(x),m,v,HWIO_UMCMN_R0_S_PARE_3_IN(x))
+#define HWIO_UMCMN_R0_S_PARE_3_S_PARE_3_BITS_BMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_S_PARE_3_S_PARE_3_BITS_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x)                                                  ((x) + 0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_PHYS(x)                                                  ((x) + 0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OFFS                                                     (0xf4)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_RMSK                                                         0xffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_POR                                                      0x00000008
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ATTR                                                                  0x3
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_IN(x))
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_VALUE_BMSK                                                   0xffff
+#define HWIO_UMCMN_R0_UMAC_IDLE_LENGTH_VALUE_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x)                                               ((x) + 0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_PHYS(x)                                               ((x) + 0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OFFS                                                  (0xfc)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_RMSK                                                         0xf
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_POR                                                   0x00000000
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_POR_RMSK                                              0xffffffff
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ATTR                                                               0x3
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_IN(x))
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_SUBSYSTEM_ID_BMSK                                            0xc
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_SUBSYSTEM_ID_SHFT                                              2
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_TESTBUS_VALID_CONTROL_BMSK                                   0x3
+#define HWIO_UMCMN_R0_UMAC_TRACER_CONTROL_TESTBUS_VALID_CONTROL_SHFT                                     0
+
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x)                                                  ((x) + 0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_PHYS(x)                                                  ((x) + 0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_OFFS                                                     (0x100)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_RMSK                                                           0x3f
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_POR                                                      0x00000000
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_POR_RMSK                                                 0xffffffff
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ATTR                                                                  0x1
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_NOC_MONITOR_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKON_OUT_BMSK                                    0x20
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKON_OUT_SHFT                                       5
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKDIV_BMSK                                       0x1f
+#define HWIO_UMCMN_R0_UMAC_NOC_MONITOR_UMAC_NOC_DCD_CLKDIV_SHFT                                          0
+
+#define HWIO_UMCMN_R0_BUF_INIT_ADDR(x)                                                          ((x) + 0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_PHYS(x)                                                          ((x) + 0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_OFFS                                                             (0x104)
+#define HWIO_UMCMN_R0_BUF_INIT_RMSK                                                                    0x1
+#define HWIO_UMCMN_R0_BUF_INIT_POR                                                              0x00000000
+#define HWIO_UMCMN_R0_BUF_INIT_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_BUF_INIT_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_BUF_INIT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_BUF_INIT_ADDR(x))
+#define HWIO_UMCMN_R0_BUF_INIT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_BUF_INIT_ADDR(x), m)
+#define HWIO_UMCMN_R0_BUF_INIT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_BUF_INIT_ADDR(x),v)
+#define HWIO_UMCMN_R0_BUF_INIT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_BUF_INIT_ADDR(x),m,v,HWIO_UMCMN_R0_BUF_INIT_IN(x))
+#define HWIO_UMCMN_R0_BUF_INIT_VALUE_BMSK                                                              0x1
+#define HWIO_UMCMN_R0_BUF_INIT_VALUE_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_CONTROL_ADDR(x)                                                           ((x) + 0x108)
+#define HWIO_UMCMN_R0_CONTROL_PHYS(x)                                                           ((x) + 0x108)
+#define HWIO_UMCMN_R0_CONTROL_OFFS                                                              (0x108)
+#define HWIO_UMCMN_R0_CONTROL_RMSK                                                                     0x1
+#define HWIO_UMCMN_R0_CONTROL_POR                                                               0x00000000
+#define HWIO_UMCMN_R0_CONTROL_POR_RMSK                                                          0xffffffff
+#define HWIO_UMCMN_R0_CONTROL_ATTR                                                                           0x3
+#define HWIO_UMCMN_R0_CONTROL_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CONTROL_ADDR(x))
+#define HWIO_UMCMN_R0_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CONTROL_ADDR(x), m)
+#define HWIO_UMCMN_R0_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CONTROL_ADDR(x),v)
+#define HWIO_UMCMN_R0_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CONTROL_ADDR(x),m,v,HWIO_UMCMN_R0_CONTROL_IN(x))
+#define HWIO_UMCMN_R0_CONTROL_ENABLE_VALUE_BMSK                                                        0x1
+#define HWIO_UMCMN_R0_CONTROL_ENABLE_VALUE_SHFT                                                          0
+
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x)                                                ((x) + 0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_PHYS(x)                                                ((x) + 0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OFFS                                                   (0x10c)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_POR                                                    0x00000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_IN(x))
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_BMSK                                    0x80000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_SHFT                                            31
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_APB_BMSK                                0x40000000
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_CLK_ENS_EXTEND_APB_SHFT                                        30
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_TBD_BMSK                                               0x3ffffffc
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_TBD_SHFT                                                        2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_APB_VAL_BMSK                                                  0x2
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_APB_VAL_SHFT                                                    1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_VAL_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_CLK_GATE_DISABLE_1_VAL_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x)                                ((x) + 0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_PHYS(x)                                ((x) + 0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OFFS                                   (0x110)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_RMSK                                         0x7f
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_POR                                    0x00000000
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_POR_RMSK                               0xffffffff
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ATTR                                                0x3
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x))
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x), m)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x),v)
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_ADDR(x),m,v,HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_IN(x))
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_UMAC_BMSK                                    0x40
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_UMAC_SHFT                                       6
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WCMN_MISC_EVENT_BMSK                     0x20
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WCMN_MISC_EVENT_SHFT                        5
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WCMN_MISC_EVENT_BMSK                         0x10
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WCMN_MISC_EVENT_SHFT                            4
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC2_BMSK                                0x8
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC2_SHFT                                  3
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC1_BMSK                                0x4
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_CLK_WMAC1_SHFT                                  2
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC2_BMSK                                    0x2
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC2_SHFT                                      1
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC1_BMSK                                    0x1
+#define HWIO_UMCMN_R0_ASYNC_ISYNC_FIFO_SOFTRESET_AND_CLK_WMAC1_SHFT                                      0
+
+#define HWIO_UMCMN_R0_VID0_ADDR(x)                                                              ((x) + 0x114)
+#define HWIO_UMCMN_R0_VID0_PHYS(x)                                                              ((x) + 0x114)
+#define HWIO_UMCMN_R0_VID0_OFFS                                                                 (0x114)
+#define HWIO_UMCMN_R0_VID0_RMSK                                                                 0x1ffffff1
+#define HWIO_UMCMN_R0_VID0_POR                                                                  0x0d314830
+#define HWIO_UMCMN_R0_VID0_POR_RMSK                                                             0xffffffff
+#define HWIO_UMCMN_R0_VID0_ATTR                                                                              0x3
+#define HWIO_UMCMN_R0_VID0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_VID0_ADDR(x))
+#define HWIO_UMCMN_R0_VID0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_VID0_ADDR(x), m)
+#define HWIO_UMCMN_R0_VID0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_VID0_ADDR(x),v)
+#define HWIO_UMCMN_R0_VID0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_VID0_ADDR(x),m,v,HWIO_UMCMN_R0_VID0_IN(x))
+#define HWIO_UMCMN_R0_VID0_MXI_BMSK                                                             0x1f000000
+#define HWIO_UMCMN_R0_VID0_MXI_SHFT                                                                     24
+#define HWIO_UMCMN_R0_VID0_TCL_BMSK                                                               0xf80000
+#define HWIO_UMCMN_R0_VID0_TCL_SHFT                                                                     19
+#define HWIO_UMCMN_R0_VID0_WBM_BMSK                                                                0x7c000
+#define HWIO_UMCMN_R0_VID0_WBM_SHFT                                                                     14
+#define HWIO_UMCMN_R0_VID0_TQM_BMSK                                                                 0x3e00
+#define HWIO_UMCMN_R0_VID0_TQM_SHFT                                                                      9
+#define HWIO_UMCMN_R0_VID0_REO_BMSK                                                                  0x1f0
+#define HWIO_UMCMN_R0_VID0_REO_SHFT                                                                      4
+#define HWIO_UMCMN_R0_VID0_MODULE_EN_BMSK                                                              0x1
+#define HWIO_UMCMN_R0_VID0_MODULE_EN_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_VID0_EXT_ADDR(x)                                                          ((x) + 0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_PHYS(x)                                                          ((x) + 0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_OFFS                                                             (0x118)
+#define HWIO_UMCMN_R0_VID0_EXT_RMSK                                                                0xfffff
+#define HWIO_UMCMN_R0_VID0_EXT_POR                                                              0x0005a928
+#define HWIO_UMCMN_R0_VID0_EXT_POR_RMSK                                                         0xffffffff
+#define HWIO_UMCMN_R0_VID0_EXT_ATTR                                                                          0x3
+#define HWIO_UMCMN_R0_VID0_EXT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_VID0_EXT_ADDR(x))
+#define HWIO_UMCMN_R0_VID0_EXT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_VID0_EXT_ADDR(x), m)
+#define HWIO_UMCMN_R0_VID0_EXT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_VID0_EXT_ADDR(x),v)
+#define HWIO_UMCMN_R0_VID0_EXT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_VID0_EXT_ADDR(x),m,v,HWIO_UMCMN_R0_VID0_EXT_IN(x))
+#define HWIO_UMCMN_R0_VID0_EXT_TQM2_BMSK                                                           0xf8000
+#define HWIO_UMCMN_R0_VID0_EXT_TQM2_SHFT                                                                15
+#define HWIO_UMCMN_R0_VID0_EXT_REO2_BMSK                                                            0x7c00
+#define HWIO_UMCMN_R0_VID0_EXT_REO2_SHFT                                                                10
+#define HWIO_UMCMN_R0_VID0_EXT_WBM2_BMSK                                                             0x3e0
+#define HWIO_UMCMN_R0_VID0_EXT_WBM2_SHFT                                                                 5
+#define HWIO_UMCMN_R0_VID0_EXT_TCL_1_BMSK                                                             0x1f
+#define HWIO_UMCMN_R0_VID0_EXT_TCL_1_SHFT                                                                0
+
+#define HWIO_UMCMN_R0_SS_ID_ADDR(x)                                                             ((x) + 0x11c)
+#define HWIO_UMCMN_R0_SS_ID_PHYS(x)                                                             ((x) + 0x11c)
+#define HWIO_UMCMN_R0_SS_ID_OFFS                                                                (0x11c)
+#define HWIO_UMCMN_R0_SS_ID_RMSK                                                                     0x7e1
+#define HWIO_UMCMN_R0_SS_ID_POR                                                                 0x000001e0
+#define HWIO_UMCMN_R0_SS_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_UMCMN_R0_SS_ID_ATTR                                                                             0x3
+#define HWIO_UMCMN_R0_SS_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_SS_ID_ADDR(x))
+#define HWIO_UMCMN_R0_SS_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_SS_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_SS_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_SS_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_SS_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_SS_ID_ADDR(x),m,v,HWIO_UMCMN_R0_SS_ID_IN(x))
+#define HWIO_UMCMN_R0_SS_ID_WCMN_MISC_BMSK                                                           0x600
+#define HWIO_UMCMN_R0_SS_ID_WCMN_MISC_SHFT                                                               9
+#define HWIO_UMCMN_R0_SS_ID_UMAC_DBG_BMSK                                                            0x180
+#define HWIO_UMCMN_R0_SS_ID_UMAC_DBG_SHFT                                                                7
+#define HWIO_UMCMN_R0_SS_ID_UMAC_BMSK                                                                 0x60
+#define HWIO_UMCMN_R0_SS_ID_UMAC_SHFT                                                                    5
+#define HWIO_UMCMN_R0_SS_ID_ENABLE_BMSK                                                                0x1
+#define HWIO_UMCMN_R0_SS_ID_ENABLE_SHFT                                                                  0
+
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x)                                                   ((x) + 0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_PHYS(x)                                                   ((x) + 0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OFFS                                                      (0x120)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_RMSK                                                             0x1
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_POR                                                       0x00000000
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_POR_RMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ATTR                                                                   0x3
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x))
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x), m)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x),v)
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ADDR(x),m,v,HWIO_UMCMN_R0_CLK_TESTBUS_OUT_IN(x))
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ENABLE_BMSK                                                      0x1
+#define HWIO_UMCMN_R0_CLK_TESTBUS_OUT_ENABLE_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n)                                            ((base) + 0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_PHYS(base,n)                                            ((base) + 0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OFFS(n)                                                 (0X124 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_RMSK                                                        0x7c1f
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_MAXn                                                             7
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_POR                                                     0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ATTR                                                                 0x3
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n), HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_RMSK)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n), mask)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OUTI(base,n,val)        \
+                out_dword(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n),val)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_ADDR(base,n),mask,val,HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_INI(base,n))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_BLK_SEL_BMSK                                                0x7c00
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_BLK_SEL_SHFT                                                    10
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_SIG_SEL_BMSK                                                  0x1f
+#define HWIO_UMCMN_R0_RRI_INT_LUT_SEL_n_SIG_SEL_SHFT                                                     0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n)                              ((base) + 0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_PHYS(base,n)                              ((base) + 0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_OFFS(n)                                   (0X144 + (0x4*(n)))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_RMSK                                      0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_MAXn                                               7
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_POR                                       0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_POR_RMSK                                  0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ATTR                                                   0x1
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_INI(base,n)                \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n), HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_RMSK)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_ADDR(base,n), mask)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_VALUE_BMSK                                0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_TIME_STAMP_n_VALUE_SHFT                                         0
+
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x)                                                ((x) + 0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_PHYS(x)                                                ((x) + 0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OFFS                                                   (0x164)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_POR                                                    0x00000000
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ATTR                                                                0x3
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x),v)
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_ADDR(x),m,v,HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_IN(x))
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_VALUE_BMSK                                             0xffffffff
+#define HWIO_UMCMN_R0_RRI_INT_LUT_STATUS_VALUE_SHFT                                                      0
+
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x)                                    ((x) + 0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_PHYS(x)                                    ((x) + 0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OFFS                                       (0x168)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_RMSK                                              0xf
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_POR                                        0x0000000a
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_POR_RMSK                                   0xffffffff
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ATTR                                                    0x3
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x))
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x), m)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x),v)
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_ADDR(x),m,v,HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_IN(x))
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_VALUE_BMSK                                        0xf
+#define HWIO_UMCMN_R0_TX_TIMESTAMP_RESOLUTION_SELECT_VALUE_SHFT                                          0
+
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x)                                                      ((x) + 0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_PHYS(x)                                                      ((x) + 0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OFFS                                                         (0x16c)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_RMSK                                                            0x3ffff
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_POR                                                          0x0002c688
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_POR_RMSK                                                     0xffffffff
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_ATTR                                                                      0x3
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x))
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_UMAC_LINK_ID_ADDR(x),m,v,HWIO_UMCMN_R0_UMAC_LINK_ID_IN(x))
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_5_BMSK                                                  0x38000
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_5_SHFT                                                       15
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_4_BMSK                                                   0x7000
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_4_SHFT                                                       12
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_3_BMSK                                                    0xe00
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_3_SHFT                                                        9
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_2_BMSK                                                    0x1c0
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_2_SHFT                                                        6
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_1_BMSK                                                     0x38
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_1_SHFT                                                        3
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_0_BMSK                                                      0x7
+#define HWIO_UMCMN_R0_UMAC_LINK_ID_LINK_ID_0_SHFT                                                        0
+
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x)                                                    ((x) + 0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_PHYS(x)                                                    ((x) + 0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OFFS                                                       (0x170)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_RMSK                                                             0x3f
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_POR                                                        0x0000003f
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_POR_RMSK                                                   0xffffffff
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_ATTR                                                                    0x3
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x))
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x), m)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x),v)
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_ENABLE_LINK_ID_ADDR(x),m,v,HWIO_UMCMN_R0_ENABLE_LINK_ID_IN(x))
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_5_BMSK                                        0x20
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_5_SHFT                                           5
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_4_BMSK                                        0x10
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_4_SHFT                                           4
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_3_BMSK                                         0x8
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_3_SHFT                                           3
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_2_BMSK                                         0x4
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_2_SHFT                                           2
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_1_BMSK                                         0x2
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_1_SHFT                                           1
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_0_BMSK                                         0x1
+#define HWIO_UMCMN_R0_ENABLE_LINK_ID_TQM_ENABLE_LINK_ID_0_SHFT                                           0
+
+#define HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x)                                                        ((x) + 0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_PHYS(x)                                                        ((x) + 0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OFFS                                                           (0x174)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_RMSK                                                           0x7fffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_POR                                                            0x00000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_TRC_CTRL_1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x), m)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x),v)
+#define HWIO_UMCMN_R0_TRC_CTRL_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TRC_CTRL_1_ADDR(x),m,v,HWIO_UMCMN_R0_TRC_CTRL_1_IN(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTBUS_VALID_BMSK                                         0x40000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTBUS_VALID_SHFT                                                 30
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_MODULE_ID_BMSK                                              0x3c000000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_MODULE_ID_SHFT                                                      26
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENT_ID_BMSK                                                0x3f00000
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENT_ID_SHFT                                                       20
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTDATA_BMSK                                                 0xfffff
+#define HWIO_UMCMN_R0_TRC_CTRL_1_SW_EVENTDATA_SHFT                                                       0
+
+#define HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x)                                                        ((x) + 0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_PHYS(x)                                                        ((x) + 0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OFFS                                                           (0x178)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_RMSK                                                           0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_POR                                                            0x00000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_POR_RMSK                                                       0xffffffff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_ATTR                                                                        0x3
+#define HWIO_UMCMN_R0_TRC_CTRL_2_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_2_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x), m)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x),v)
+#define HWIO_UMCMN_R0_TRC_CTRL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_TRC_CTRL_2_ADDR(x),m,v,HWIO_UMCMN_R0_TRC_CTRL_2_IN(x))
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_EVENT_SEL_BMSK                                             0x80000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_EVENT_SEL_SHFT                                                     31
+#define HWIO_UMCMN_R0_TRC_CTRL_2_SUB_SYS_TESTBUS_SEL_BMSK                                       0x70000000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_SUB_SYS_TESTBUS_SEL_SHFT                                               28
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_1_BMSK                                       0xff00000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_1_SHFT                                              20
+#define HWIO_UMCMN_R0_TRC_CTRL_2_UMAC_MISC_TRC_EVENT_SEL_BMSK                                      0x80000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_UMAC_MISC_TRC_EVENT_SEL_SHFT                                           19
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_BUS_MUX_SEL_BMSK                                              0x78000
+#define HWIO_UMCMN_R0_TRC_CTRL_2_TRC_BUS_MUX_SEL_SHFT                                                   15
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_2_BMSK                                          0x7fff
+#define HWIO_UMCMN_R0_TRC_CTRL_2_EVENT_BLK_MASK_BIT_2_SHFT                                               0
+
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x)                                                     ((x) + 0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_PHYS(x)                                                     ((x) + 0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OFFS                                                        (0x17c)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_POR                                                         0x00000000
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_ATTR                                                                     0x3
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x), m)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x),v)
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_EVENTMASK_IX0_ADDR(x),m,v,HWIO_UMCMN_R0_EVENTMASK_IX0_IN(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX0_VALUE_SHFT                                                           0
+
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x)                                                     ((x) + 0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_PHYS(x)                                                     ((x) + 0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OFFS                                                        (0x180)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_POR                                                         0x00000000
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_POR_RMSK                                                    0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_ATTR                                                                     0x3
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_IN(x)            \
+                in_dword(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x), m)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x),v)
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R0_EVENTMASK_IX1_ADDR(x),m,v,HWIO_UMCMN_R0_EVENTMASK_IX1_IN(x))
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_VALUE_BMSK                                                  0xffffffff
+#define HWIO_UMCMN_R0_EVENTMASK_IX1_VALUE_SHFT                                                           0
+
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x)                                              ((x) + 0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_PHYS(x)                                              ((x) + 0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_OFFS                                                 (0x2000)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_RMSK                                                      0xfff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_POR                                                  0x00000000
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_POR_RMSK                                             0xffffffff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ATTR                                                              0x1
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                0xfff
+#define HWIO_UMCMN_R1_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                    0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x)                                                         ((x) + 0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_PHYS(x)                                                         ((x) + 0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_OFFS                                                            (0x2004)
+#define HWIO_UMCMN_R1_UMAC_IDLE_RMSK                                                                  0x1f
+#define HWIO_UMCMN_R1_UMAC_IDLE_POR                                                             0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_POR_RMSK                                                        0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_ATTR                                                                         0x1
+#define HWIO_UMCMN_R1_UMAC_IDLE_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_UMAC_IDLE_GEN_MOD_BUSY_BMSK                                           0x10
+#define HWIO_UMCMN_R1_UMAC_IDLE_UMAC_IDLE_GEN_MOD_BUSY_SHFT                                              4
+#define HWIO_UMCMN_R1_UMAC_IDLE_MAIN_SM_CS_BMSK                                                        0xf
+#define HWIO_UMCMN_R1_UMAC_IDLE_MAIN_SM_CS_SHFT                                                          0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x)                                         ((x) + 0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_PHYS(x)                                         ((x) + 0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_OFFS                                            (0x2008)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_RMSK                                              0xffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_POR                                             0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_POR_RMSK                                        0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ATTR                                                         0x1
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_VALUE_BMSK                                        0xffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_INTF_STATUS_VALUE_SHFT                                               0
+
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x)                                                 ((x) + 0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_PHYS(x)                                                 ((x) + 0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OFFS                                                    (0x200c)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_RMSK                                                         0x7df
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_POR                                                     0x00000000
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_POR_RMSK                                                0xffffffff
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ATTR                                                                 0x3
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IN(x)            \
+                in_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x), m)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OUT(x, v)            \
+                out_dword(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x),v)
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_ADDR(x),m,v,HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IN(x))
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IDLE_ERR_STATUS_SW_WDATA_BMSK                                0x7c0
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_IDLE_ERR_STATUS_SW_WDATA_SHFT                                    6
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_STATUS_BMSK                                                   0x1f
+#define HWIO_UMCMN_R1_UMAC_IDLE_GEN_ERR_STATUS_SHFT                                                      0
+
+ 
+
+#define MAC_TCL_REG_REG_BASE                                                                                (UMAC_BASE      + 0x00044000)
+#define MAC_TCL_REG_REG_BASE_SIZE                                                                           0x3000
+#define MAC_TCL_REG_REG_BASE_USED                                                                           0x205c
+#define MAC_TCL_REG_REG_BASE_PHYS                                                                           (UMAC_BASE_PHYS + 0x00044000)
+#define MAC_TCL_REG_REG_BASE_OFFS                                                                           0x00044000
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OFFS                                                                  (0x0)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL1_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OFFS                                                                  (0x4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL2_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x)                                                               ((x) + 0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_PHYS(x)                                                               ((x) + 0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OFFS                                                                  (0x8)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL3_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OFFS                                                                  (0xc)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL4_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_ADDR(x)                                                               ((x) + 0x10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_PHYS(x)                                                               ((x) + 0x10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_OFFS                                                                  (0x10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_SW2TCL5_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x)                                                               ((x) + 0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_PHYS(x)                                                               ((x) + 0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OFFS                                                                  (0x14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RMSK                                                                     0x3ffe0
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_TIMEOUT_VAL_BMSK                                                         0x3ffc0
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_TIMEOUT_VAL_SHFT                                                               6
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RNG_PRTY_BMSK                                                               0x20
+#define HWIO_TCL_R0_FW2TCL1_RING_CTRL_RNG_PRTY_SHFT                                                                  5
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x)                                                         ((x) + 0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_PHYS(x)                                                         ((x) + 0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OFFS                                                            (0x18)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RMSK                                                               0x3ffe0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_POR                                                             0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ATTR                                                                         0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_TIMEOUT_VAL_BMSK                                                   0x3ffc0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_TIMEOUT_VAL_SHFT                                                         6
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RNG_PRTY_BMSK                                                         0x20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CTRL_RNG_PRTY_SHFT                                                            5
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ADDR(x)                                                              ((x) + 0x1c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_PHYS(x)                                                              ((x) + 0x1c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_OFFS                                                                 (0x1c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_RMSK                                                                    0x3ffe0
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_POR                                                                  0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ATTR                                                                              0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_TIMEOUT_VAL_BMSK                                                        0x3ffc0
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_TIMEOUT_VAL_SHFT                                                              6
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_RNG_PRTY_BMSK                                                              0x20
+#define HWIO_TCL_R0_PPE2TCL1_RING_CTRL_RNG_PRTY_SHFT                                                                 5
+
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OFFS                                                             (0x20)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_RMSK                                                              0xfffffff
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_POR                                                              0x0b700000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x))
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x), m)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x),v)
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(x),m,v,HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_IN(x))
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE_RING_EN_BMSK                                                  0x8000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE_RING_EN_SHFT                                                         27
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_VLAN_LLC_SEL_BMSK                                                 0x4000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_VLAN_LLC_SEL_SHFT                                                        26
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INSERT_VLAN_EN_BMSK                                               0x2000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_INSERT_VLAN_EN_SHFT                                                      25
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_STOP_META_RD_AT_8B_BDRY_BMSK                                      0x1000000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_STOP_META_RD_AT_8B_BDRY_SHFT                                             24
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_DSCP_TID_MAP_PROGRAM_EN_BMSK                                       0x800000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_DSCP_TID_MAP_PROGRAM_EN_SHFT                                             23
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_EXTN_NUM_BUF_RD_BMSK                                          0x700000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_EXTN_NUM_BUF_RD_SHFT                                                20
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_TCL_IDLE_BMSK                                                       0x80000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_TCL_IDLE_SHFT                                                            19
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE2TCL1_RNG_HALT_STAT_BMSK                                         0x40000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE2TCL1_RNG_HALT_STAT_SHFT                                              18
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_STAT_BMSK                                   0x20000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_STAT_SHFT                                        17
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_STAT_BMSK                                          0x10000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_STAT_SHFT                                               16
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL5_RNG_HALT_STAT_BMSK                                           0x8000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL5_RNG_HALT_STAT_SHFT                                               15
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_STAT_BMSK                                           0x4000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_STAT_SHFT                                               14
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_STAT_BMSK                                           0x2000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_STAT_SHFT                                               13
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_STAT_BMSK                                           0x1000
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_STAT_SHFT                                               12
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_STAT_BMSK                                            0x800
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_STAT_SHFT                                               11
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE2TCL1_RNG_HALT_BMSK                                                0x400
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_PPE2TCL1_RNG_HALT_SHFT                                                   10
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_BMSK                                          0x200
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL_CREDIT_RING_HALT_SHFT                                              9
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_BMSK                                                 0x100
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_FW2TCL1_RNG_HALT_SHFT                                                     8
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL5_RNG_HALT_BMSK                                                  0x80
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL5_RNG_HALT_SHFT                                                     7
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_BMSK                                                  0x40
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL4_RNG_HALT_SHFT                                                     6
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_BMSK                                                  0x20
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL3_RNG_HALT_SHFT                                                     5
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_BMSK                                                  0x10
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL2_RNG_HALT_SHFT                                                     4
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_BMSK                                                   0x8
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_SW2TCL1_RNG_HALT_SHFT                                                     3
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_HDR_FWD_EN_BMSK                                                         0x4
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_HDR_FWD_EN_SHFT                                                           2
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_HDR_LEN_SEL_BMSK                                                   0x2
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_MSDU_HDR_LEN_SEL_SHFT                                                     1
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_CLFY_DIS_BMSK                                                           0x1
+#define HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_CLFY_DIS_SHFT                                                             0
+
+#define HWIO_TCL_R0_CMN_CONFIG_ADDR(x)                                                                      ((x) + 0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_PHYS(x)                                                                      ((x) + 0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_OFFS                                                                         (0x24)
+#define HWIO_TCL_R0_CMN_CONFIG_RMSK                                                                          0xfffffff
+#define HWIO_TCL_R0_CMN_CONFIG_POR                                                                          0x067993a2
+#define HWIO_TCL_R0_CMN_CONFIG_POR_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R0_CMN_CONFIG_ATTR                                                                                      0x3
+#define HWIO_TCL_R0_CMN_CONFIG_IN(x)            \
+                in_dword(HWIO_TCL_R0_CMN_CONFIG_ADDR(x))
+#define HWIO_TCL_R0_CMN_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CMN_CONFIG_ADDR(x), m)
+#define HWIO_TCL_R0_CMN_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CMN_CONFIG_ADDR(x),v)
+#define HWIO_TCL_R0_CMN_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CMN_CONFIG_ADDR(x),m,v,HWIO_TCL_R0_CMN_CONFIG_IN(x))
+#define HWIO_TCL_R0_CMN_CONFIG_VDEV_ID_MISMATCH_DROP_REASON_EN_BMSK                                          0x8000000
+#define HWIO_TCL_R0_CMN_CONFIG_VDEV_ID_MISMATCH_DROP_REASON_EN_SHFT                                                 27
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_PPE_DESC_BMSK                                                0x4000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_PPE_DESC_SHFT                                                       26
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_BANK_ID_BMSK                                                 0x2000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_INVALID_BANK_ID_SHFT                                                        25
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_MIN_BUFFER_LEN_ERR_BMSK                                              0x1000000
+#define HWIO_TCL_R0_CMN_CONFIG_CLFY_DIS_MIN_BUFFER_LEN_ERR_SHFT                                                     24
+#define HWIO_TCL_R0_CMN_CONFIG_ASE_SKIP_SEARCH_EN_BMSK                                                        0x800000
+#define HWIO_TCL_R0_CMN_CONFIG_ASE_SKIP_SEARCH_EN_SHFT                                                              23
+#define HWIO_TCL_R0_CMN_CONFIG_MCAST_CMN_PN_SN_MLO_REINJECT_ENABLE_BMSK                                       0x400000
+#define HWIO_TCL_R0_CMN_CONFIG_MCAST_CMN_PN_SN_MLO_REINJECT_ENABLE_SHFT                                             22
+#define HWIO_TCL_R0_CMN_CONFIG_VDEVID_MISMATCH_EXCEPTION_BMSK                                                 0x200000
+#define HWIO_TCL_R0_CMN_CONFIG_VDEVID_MISMATCH_EXCEPTION_SHFT                                                       21
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_POINTER_NULL_EXCEPTION_BMSK                                               0x100000
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_POINTER_NULL_EXCEPTION_SHFT                                                     20
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_OVERRIDE_EXCEPTION_BMSK                                                    0x80000
+#define HWIO_TCL_R0_CMN_CONFIG_FLOW_OVERRIDE_EXCEPTION_SHFT                                                         19
+#define HWIO_TCL_R0_CMN_CONFIG_TX_NOTIFY_PRIORITY_BMSK                                                         0x40000
+#define HWIO_TCL_R0_CMN_CONFIG_TX_NOTIFY_PRIORITY_SHFT                                                              18
+#define HWIO_TCL_R0_CMN_CONFIG_PMAC_ID_SEL_BMSK                                                                0x20000
+#define HWIO_TCL_R0_CMN_CONFIG_PMAC_ID_SEL_SHFT                                                                     17
+#define HWIO_TCL_R0_CMN_CONFIG_C9D1_8870_VALUE_BMSK                                                            0x1fffe
+#define HWIO_TCL_R0_CMN_CONFIG_C9D1_8870_VALUE_SHFT                                                                  1
+#define HWIO_TCL_R0_CMN_CONFIG_ENABLE_C9D1_8870_BMSK                                                               0x1
+#define HWIO_TCL_R0_CMN_CONFIG_ENABLE_C9D1_8870_SHFT                                                                 0
+
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_ADDR(x)                                                                  ((x) + 0x28)
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_PHYS(x)                                                                  ((x) + 0x28)
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_OFFS                                                                     (0x28)
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_RMSK                                                                     0x7fffffff
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_POR                                                                      0x120c3fe8
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_IN(x)            \
+                in_dword(HWIO_TCL_R0_CMN_CONFIG_PPE_ADDR(x))
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CMN_CONFIG_PPE_ADDR(x), m)
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CMN_CONFIG_PPE_ADDR(x),v)
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CMN_CONFIG_PPE_ADDR(x),m,v,HWIO_TCL_R0_CMN_CONFIG_PPE_IN(x))
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_PPE_MAX_DATA_LENGTH_BMSK                                                 0x7ffe0000
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_PPE_MAX_DATA_LENGTH_SHFT                                                         17
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_PPE_MAX_DATA_OFFSET_BMSK                                                    0x1ffe0
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_PPE_MAX_DATA_OFFSET_SHFT                                                          5
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_L3_L4_CSUM_ERR_EXCEPTION_BMSK                                                  0x10
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_L3_L4_CSUM_ERR_EXCEPTION_SHFT                                                     4
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_DATA_BUF_ERR_EXCEPTION_BMSK                                                     0x8
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_DATA_BUF_ERR_EXCEPTION_SHFT                                                       3
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_CPU_CODE_VALID_EXCEPTION_BMSK                                                   0x4
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_CPU_CODE_VALID_EXCEPTION_SHFT                                                     2
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_FAKE_MAC_HDR_EXCEPTION_BMSK                                                     0x2
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_FAKE_MAC_HDR_EXCEPTION_SHFT                                                       1
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_DROP_PREC_ERR_EXCEPTION_BMSK                                                    0x1
+#define HWIO_TCL_R0_CMN_CONFIG_PPE_DROP_PREC_ERR_EXCEPTION_SHFT                                                      0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x)                                                               ((x) + 0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_PHYS(x)                                                               ((x) + 0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OFFS                                                                  (0x2c)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_RMSK                                                                      0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_POR                                                                   0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_ATTR                                                                               0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_DROP_NO_DROP_PRIORITY_BMSK                                                0xc000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_DROP_NO_DROP_PRIORITY_SHFT                                                    14
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_RING_BMSK                                                      0x2000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_RING_SHFT                                                          13
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_REQUIRED_BMSK                                                  0x1000
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TQM_STATUS_REQUIRED_SHFT                                                      12
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TIMEOUT_VAL_BMSK                                                           0xfff
+#define HWIO_TCL_R0_TCL2TQM_RING_CTRL_TIMEOUT_VAL_SHFT                                                               0
+
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x)                                                                ((x) + 0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_PHYS(x)                                                                ((x) + 0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OFFS                                                                   (0x30)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_RMSK                                                                        0xfff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_POR                                                                    0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_ATTR                                                                                0x3
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_TIMEOUT_VAL_BMSK                                                            0xfff
+#define HWIO_TCL_R0_TCL2FW_RING_CTRL_TIMEOUT_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x)                                                           ((x) + 0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_PHYS(x)                                                           ((x) + 0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OFFS                                                              (0x34)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_RMSK                                                                   0xfff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_TIMEOUT_VAL_BMSK                                                       0xfff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_CTRL_TIMEOUT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_GEN_CTRL_ADDR(x)                                                                        ((x) + 0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_PHYS(x)                                                                        ((x) + 0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_OFFS                                                                           (0x3c)
+#define HWIO_TCL_R0_GEN_CTRL_RMSK                                                                           0xffffe1fb
+#define HWIO_TCL_R0_GEN_CTRL_POR                                                                            0x00000000
+#define HWIO_TCL_R0_GEN_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_TCL_R0_GEN_CTRL_ATTR                                                                                        0x3
+#define HWIO_TCL_R0_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_GEN_CTRL_ADDR(x))
+#define HWIO_TCL_R0_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_GEN_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_GEN_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_GEN_CTRL_ADDR(x),m,v,HWIO_TCL_R0_GEN_CTRL_IN(x))
+#define HWIO_TCL_R0_GEN_CTRL_WHO_CLASSIFY_INFO_OFFSET_BMSK                                                  0xffff0000
+#define HWIO_TCL_R0_GEN_CTRL_WHO_CLASSIFY_INFO_OFFSET_SHFT                                                          16
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_L4_BMSK                                                        0x8000
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_L4_SHFT                                                            15
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_ESP_BMSK                                                       0x4000
+#define HWIO_TCL_R0_GEN_CTRL_PROTOCOL_FROM_AH_OR_ESP_SHFT                                                           14
+#define HWIO_TCL_R0_GEN_CTRL_FLOW_TOEPLITZ_5_SEL_BMSK                                                           0x2000
+#define HWIO_TCL_R0_GEN_CTRL_FLOW_TOEPLITZ_5_SEL_SHFT                                                               13
+#define HWIO_TCL_R0_GEN_CTRL_CCE_UPDATE_DIS_BMSK                                                                 0x100
+#define HWIO_TCL_R0_GEN_CTRL_CCE_UPDATE_DIS_SHFT                                                                     8
+#define HWIO_TCL_R0_GEN_CTRL_FSE_UPDATE_DIS_BMSK                                                                  0x80
+#define HWIO_TCL_R0_GEN_CTRL_FSE_UPDATE_DIS_SHFT                                                                     7
+#define HWIO_TCL_R0_GEN_CTRL_ADDRY_UPDATE_DIS_BMSK                                                                0x40
+#define HWIO_TCL_R0_GEN_CTRL_ADDRY_UPDATE_DIS_SHFT                                                                   6
+#define HWIO_TCL_R0_GEN_CTRL_ADDRX_UPDATE_DIS_BMSK                                                                0x20
+#define HWIO_TCL_R0_GEN_CTRL_ADDRX_UPDATE_DIS_SHFT                                                                   5
+#define HWIO_TCL_R0_GEN_CTRL_FSE_EN_BMSK                                                                          0x10
+#define HWIO_TCL_R0_GEN_CTRL_FSE_EN_SHFT                                                                             4
+#define HWIO_TCL_R0_GEN_CTRL_CCE_EN_BMSK                                                                           0x8
+#define HWIO_TCL_R0_GEN_CTRL_CCE_EN_SHFT                                                                             3
+#define HWIO_TCL_R0_GEN_CTRL_TO_FW_BMSK                                                                            0x2
+#define HWIO_TCL_R0_GEN_CTRL_TO_FW_SHFT                                                                              1
+#define HWIO_TCL_R0_GEN_CTRL_EN_11AH_BMSK                                                                          0x1
+#define HWIO_TCL_R0_GEN_CTRL_EN_11AH_SHFT                                                                            0
+
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n)                                        ((base) + 0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_PHYS(base,n)                                        ((base) + 0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OFFS(n)                                             (0X40 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_MAXn                                                         1
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_POR                                                 0x005a0060
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ATTR                                                             0x3
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RMSK)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),mask,val,HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_INI(base,n))
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_NATIVE_WIFI_BMSK                                    0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_NATIVE_WIFI_SHFT                                            16
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RAW_WIFI_BMSK                                           0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_OPTIMUM_HEADER_LENGTH_n_RAW_WIFI_SHFT                                                0
+
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n)                                        ((base) + 0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_PHYS(base,n)                                        ((base) + 0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OFFS(n)                                             (0X48 + (0x4*(n)))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_MAXn                                                         1
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_POR                                                 0x004a004a
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ATTR                                                             0x3
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_RMSK)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ADDR(base,n),mask,val,HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_INI(base,n))
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_IEEE_802_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_IEEE_802_SHFT                                               16
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ETHERNET_II_BMSK                                        0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_OPTIMUM_HEADER_LENGTH_n_ETHERNET_II_SHFT                                             0
+
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x)                                               ((x) + 0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_PHYS(x)                                               ((x) + 0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OFFS                                                  (0x50)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_POR                                                   0x00300036
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ATTR                                                               0x3
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x))
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_ADDR(x),m,v,HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_IN(x))
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_NATIVE_WIFI_BMSK                                      0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_NATIVE_WIFI_SHFT                                              16
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RAW_WIFI_BMSK                                             0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE0_MIN_BUFFER_LENGTH_ERR_RAW_WIFI_SHFT                                                  0
+
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x)                                               ((x) + 0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_PHYS(x)                                               ((x) + 0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OFFS                                                  (0x54)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_POR                                                   0x001a001a
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ATTR                                                               0x3
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x))
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ADDR(x),m,v,HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IN(x))
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IEEE_802_BMSK                                         0xffff0000
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_IEEE_802_SHFT                                                 16
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ETHERNET_II_BMSK                                          0xffff
+#define HWIO_TCL_R0_ENCAP_TYPE1_MIN_BUFFER_LENGTH_ERR_ETHERNET_II_SHFT                                               0
+
+#define HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x)                                                                  ((x) + 0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PHYS(x)                                                                  ((x) + 0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OFFS                                                                     (0x58)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_RMSK                                                                     0xff3fffff
+#define HWIO_TCL_R0_UMXI_PRIORITY0_POR                                                                      0x55000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_UMXI_PRIORITY0_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY0_IN(x)            \
+                in_dword(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x), m)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x),v)
+#define HWIO_TCL_R0_UMXI_PRIORITY0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_UMXI_PRIORITY0_ADDR(x),m,v,HWIO_TCL_R0_UMXI_PRIORITY0_IN(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY0_METADATA_FETCH_GXI_RD_BMSK                                               0xc0000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_METADATA_FETCH_GXI_RD_SHFT                                                       30
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PEER_TABLE_FETCH_GXI_RD_BMSK                                             0x30000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PEER_TABLE_FETCH_GXI_RD_SHFT                                                     28
+#define HWIO_TCL_R0_UMXI_PRIORITY0_DATA_FETCH_GXI_RD_BMSK                                                    0xc000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_DATA_FETCH_GXI_RD_SHFT                                                           26
+#define HWIO_TCL_R0_UMXI_PRIORITY0_EXTN_DESC_GXI_RD_BMSK                                                     0x3000000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_EXTN_DESC_GXI_RD_SHFT                                                            24
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL_STATUS1_RING_BMSK                                                      0x300000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL_STATUS1_RING_SHFT                                                            20
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2FW_RING_BMSK                                                            0xc0000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2FW_RING_SHFT                                                                 18
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2TQM_RING_BMSK                                                           0x30000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_TCL2TQM_RING_SHFT                                                                16
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PPE2TCL1_RING_BMSK                                                           0xc000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_PPE2TCL1_RING_SHFT                                                               14
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL_CREDIT_RING_BMSK                                                      0x3000
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL_CREDIT_RING_SHFT                                                          12
+#define HWIO_TCL_R0_UMXI_PRIORITY0_FW2TCL_RING_BMSK                                                              0xc00
+#define HWIO_TCL_R0_UMXI_PRIORITY0_FW2TCL_RING_SHFT                                                                 10
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL5_RING_BMSK                                                             0x300
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL5_RING_SHFT                                                                 8
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL4_RING_BMSK                                                              0xc0
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL4_RING_SHFT                                                                 6
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL3_RING_BMSK                                                              0x30
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL3_RING_SHFT                                                                 4
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL2_RING_BMSK                                                               0xc
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL2_RING_SHFT                                                                 2
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL1_RING_BMSK                                                               0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY0_SW2TCL1_RING_SHFT                                                                 0
+
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OFFS                                                                     (0x5c)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_RMSK                                                                            0xf
+#define HWIO_TCL_R0_UMXI_PRIORITY1_POR                                                                      0x00000005
+#define HWIO_TCL_R0_UMXI_PRIORITY1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY1_IN(x)            \
+                in_dword(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x), m)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x),v)
+#define HWIO_TCL_R0_UMXI_PRIORITY1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_UMXI_PRIORITY1_ADDR(x),m,v,HWIO_TCL_R0_UMXI_PRIORITY1_IN(x))
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_STAT_GXI_WR_BMSK                                                            0xc
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_STAT_GXI_WR_SHFT                                                              2
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_LOOKUP_GXI_RD_BMSK                                                          0x3
+#define HWIO_TCL_R0_UMXI_PRIORITY1_ASE_LOOKUP_GXI_RD_SHFT                                                            0
+
+#define HWIO_TCL_R0_VC_ID_MAP_ADDR(x)                                                                       ((x) + 0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_PHYS(x)                                                                       ((x) + 0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_OFFS                                                                          (0x60)
+#define HWIO_TCL_R0_VC_ID_MAP_RMSK                                                                               0xfff
+#define HWIO_TCL_R0_VC_ID_MAP_POR                                                                           0x00000f00
+#define HWIO_TCL_R0_VC_ID_MAP_POR_RMSK                                                                      0xffffffff
+#define HWIO_TCL_R0_VC_ID_MAP_ATTR                                                                                       0x3
+#define HWIO_TCL_R0_VC_ID_MAP_IN(x)            \
+                in_dword(HWIO_TCL_R0_VC_ID_MAP_ADDR(x))
+#define HWIO_TCL_R0_VC_ID_MAP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_VC_ID_MAP_ADDR(x), m)
+#define HWIO_TCL_R0_VC_ID_MAP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_VC_ID_MAP_ADDR(x),v)
+#define HWIO_TCL_R0_VC_ID_MAP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_VC_ID_MAP_ADDR(x),m,v,HWIO_TCL_R0_VC_ID_MAP_IN(x))
+#define HWIO_TCL_R0_VC_ID_MAP_METADATA_FETCH_GXI_RD_BMSK                                                         0x800
+#define HWIO_TCL_R0_VC_ID_MAP_METADATA_FETCH_GXI_RD_SHFT                                                            11
+#define HWIO_TCL_R0_VC_ID_MAP_PEER_TABLE_FETCH_GXI_RD_BMSK                                                       0x400
+#define HWIO_TCL_R0_VC_ID_MAP_PEER_TABLE_FETCH_GXI_RD_SHFT                                                          10
+#define HWIO_TCL_R0_VC_ID_MAP_DATA_FETCH_GXI_RD_BMSK                                                             0x200
+#define HWIO_TCL_R0_VC_ID_MAP_DATA_FETCH_GXI_RD_SHFT                                                                 9
+#define HWIO_TCL_R0_VC_ID_MAP_EXTN_DESC_GXI_RD_BMSK                                                              0x100
+#define HWIO_TCL_R0_VC_ID_MAP_EXTN_DESC_GXI_RD_SHFT                                                                  8
+#define HWIO_TCL_R0_VC_ID_MAP_PPE2TCL1_RING_BMSK                                                                  0x80
+#define HWIO_TCL_R0_VC_ID_MAP_PPE2TCL1_RING_SHFT                                                                     7
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL_CREDIT_RING_BMSK                                                             0x40
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL_CREDIT_RING_SHFT                                                                6
+#define HWIO_TCL_R0_VC_ID_MAP_FW2TCL_RING_BMSK                                                                    0x20
+#define HWIO_TCL_R0_VC_ID_MAP_FW2TCL_RING_SHFT                                                                       5
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL5_RING_BMSK                                                                   0x10
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL5_RING_SHFT                                                                      4
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL4_RING_BMSK                                                                    0x8
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL4_RING_SHFT                                                                      3
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL3_RING_BMSK                                                                    0x4
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL3_RING_SHFT                                                                      2
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL2_RING_BMSK                                                                    0x2
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL2_RING_SHFT                                                                      1
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL1_RING_BMSK                                                                    0x1
+#define HWIO_TCL_R0_VC_ID_MAP_SW2TCL1_RING_SHFT                                                                      0
+
+#define HWIO_TCL_R0_GSE_PORT_CTRL_ADDR(x)                                                                   ((x) + 0x64)
+#define HWIO_TCL_R0_GSE_PORT_CTRL_PHYS(x)                                                                   ((x) + 0x64)
+#define HWIO_TCL_R0_GSE_PORT_CTRL_OFFS                                                                      (0x64)
+#define HWIO_TCL_R0_GSE_PORT_CTRL_RMSK                                                                             0xf
+#define HWIO_TCL_R0_GSE_PORT_CTRL_POR                                                                       0x0000000c
+#define HWIO_TCL_R0_GSE_PORT_CTRL_POR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_GSE_PORT_CTRL_ATTR                                                                                   0x3
+#define HWIO_TCL_R0_GSE_PORT_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_GSE_PORT_CTRL_ADDR(x))
+#define HWIO_TCL_R0_GSE_PORT_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_GSE_PORT_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_GSE_PORT_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_GSE_PORT_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_GSE_PORT_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_GSE_PORT_CTRL_ADDR(x),m,v,HWIO_TCL_R0_GSE_PORT_CTRL_IN(x))
+#define HWIO_TCL_R0_GSE_PORT_CTRL_FLUSH_PIPE_ID_BMSK                                                               0xc
+#define HWIO_TCL_R0_GSE_PORT_CTRL_FLUSH_PIPE_ID_SHFT                                                                 2
+#define HWIO_TCL_R0_GSE_PORT_CTRL_PIPE_ID_BMSK                                                                     0x3
+#define HWIO_TCL_R0_GSE_PORT_CTRL_PIPE_ID_SHFT                                                                       0
+
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OFFS                                                                    (0x68)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_POR                                                                     0x00000009
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL1_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x)                                                                 ((x) + 0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_PHYS(x)                                                                 ((x) + 0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OFFS                                                                    (0x6c)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_POR                                                                     0x00000009
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL2_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x)                                                                 ((x) + 0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_PHYS(x)                                                                 ((x) + 0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OFFS                                                                    (0x70)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_POR                                                                     0x00000009
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL3_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x)                                                                 ((x) + 0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_PHYS(x)                                                                 ((x) + 0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OFFS                                                                    (0x74)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_POR                                                                     0x00000009
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL4_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_ADDR(x)                                                                 ((x) + 0x78)
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_PHYS(x)                                                                 ((x) + 0x78)
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_OFFS                                                                    (0x78)
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_RMSK                                                                        0x1fff
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_POR                                                                     0x00000009
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_TIMEOUT_LIMIT_BMSK                                                          0x1fe0
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_TIMEOUT_LIMIT_SHFT                                                               5
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_BUNCH_COUNT_BMSK                                                              0x1f
+#define HWIO_TCL_R0_SW2TCL5_DESC_RD_BUNCH_COUNT_SHFT                                                                 0
+
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x)                                                                  ((x) + 0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_PHYS(x)                                                                  ((x) + 0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OFFS                                                                     (0x7c)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_RMSK                                                                         0x1fff
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_POR                                                                      0x00000009
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL_DESC_RD_IN(x))
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_TIMEOUT_LIMIT_BMSK                                                           0x1fe0
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_TIMEOUT_LIMIT_SHFT                                                                5
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_BUNCH_COUNT_BMSK                                                               0x1f
+#define HWIO_TCL_R0_FW2TCL_DESC_RD_BUNCH_COUNT_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x)                                                           ((x) + 0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_PHYS(x)                                                           ((x) + 0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OFFS                                                              (0x80)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_RMSK                                                                  0x1fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_POR                                                               0x00000009
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_TIMEOUT_LIMIT_BMSK                                                    0x1fe0
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_TIMEOUT_LIMIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_BUNCH_COUNT_BMSK                                                        0x1f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_DESC_RD_BUNCH_COUNT_SHFT                                                           0
+
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_ADDR(x)                                                                ((x) + 0x84)
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_PHYS(x)                                                                ((x) + 0x84)
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_OFFS                                                                   (0x84)
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_RMSK                                                                       0x1fff
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_POR                                                                    0x00000009
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_ATTR                                                                                0x3
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_DESC_RD_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_TIMEOUT_LIMIT_BMSK                                                         0x1fe0
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_TIMEOUT_LIMIT_SHFT                                                              5
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_BUNCH_COUNT_BMSK                                                             0x1f
+#define HWIO_TCL_R0_PPE2TCL1_DESC_RD_BUNCH_COUNT_SHFT                                                                0
+
+#define HWIO_TCL_R0_RBM_MAPPING0_ADDR(x)                                                                    ((x) + 0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_PHYS(x)                                                                    ((x) + 0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_OFFS                                                                       (0x88)
+#define HWIO_TCL_R0_RBM_MAPPING0_RMSK                                                                       0xffffffff
+#define HWIO_TCL_R0_RBM_MAPPING0_POR                                                                        0x00000000
+#define HWIO_TCL_R0_RBM_MAPPING0_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_RBM_MAPPING0_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_RBM_MAPPING0_IN(x)            \
+                in_dword(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x))
+#define HWIO_TCL_R0_RBM_MAPPING0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x), m)
+#define HWIO_TCL_R0_RBM_MAPPING0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x),v)
+#define HWIO_TCL_R0_RBM_MAPPING0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_RBM_MAPPING0_ADDR(x),m,v,HWIO_TCL_R0_RBM_MAPPING0_IN(x))
+#define HWIO_TCL_R0_RBM_MAPPING0_PPE2TCL1_RING_BMSK                                                         0xf0000000
+#define HWIO_TCL_R0_RBM_MAPPING0_PPE2TCL1_RING_SHFT                                                                 28
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL_CREDIT_RING_BMSK                                                     0xf000000
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL_CREDIT_RING_SHFT                                                            24
+#define HWIO_TCL_R0_RBM_MAPPING0_FW2TCL_RING_BMSK                                                             0xf00000
+#define HWIO_TCL_R0_RBM_MAPPING0_FW2TCL_RING_SHFT                                                                   20
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL5_RING_BMSK                                                             0xf0000
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL5_RING_SHFT                                                                  16
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL4_RING_BMSK                                                              0xf000
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL4_RING_SHFT                                                                  12
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL3_RING_BMSK                                                               0xf00
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL3_RING_SHFT                                                                   8
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL2_RING_BMSK                                                                0xf0
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL2_RING_SHFT                                                                   4
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL1_RING_BMSK                                                                 0xf
+#define HWIO_TCL_R0_RBM_MAPPING0_SW2TCL1_RING_SHFT                                                                   0
+
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n)                                                           ((base) + 0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PHYS(base,n)                                                           ((base) + 0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OFFS(n)                                                                (0X8C + (0x4*(n)))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_RMSK                                                                     0x7fffff
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MAXn                                                                           47
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_POR                                                                    0x00000038
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ATTR                                                                                0x3
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n), HWIO_TCL_R0_SW_CONFIG_BANK_n_RMSK)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDR(base,n),mask,val,HWIO_TCL_R0_SW_CONFIG_BANK_n_INI(base,n))
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_DSCP_TID_TABLE_NUM_BMSK                                                  0x7e0000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_DSCP_TID_TABLE_NUM_SHFT                                                        17
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PMAC_ID_BMSK                                                              0x18000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_PMAC_ID_SHFT                                                                   15
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_VDEV_ID_CHECK_EN_BMSK                                                      0x4000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_VDEV_ID_CHECK_EN_SHFT                                                          14
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MESH_ENABLE_BMSK                                                           0x3000
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_MESH_ENABLE_SHFT                                                               12
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRY_EN_BMSK                                                               0x800
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRY_EN_SHFT                                                                  11
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRX_EN_BMSK                                                               0x400
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ADDRX_EN_SHFT                                                                  10
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INDEX_LOOKUP_ENABLE_BMSK                                                    0x200
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_INDEX_LOOKUP_ENABLE_SHFT                                                        9
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_LINK_META_SWAP_BMSK                                                         0x100
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_LINK_META_SWAP_SHFT                                                             8
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_SRC_BUFFER_SWAP_BMSK                                                         0x80
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_SRC_BUFFER_SWAP_SHFT                                                            7
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCRYPT_TYPE_BMSK                                                            0x78
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCRYPT_TYPE_SHFT                                                               3
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCAP_TYPE_BMSK                                                               0x6
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_ENCAP_TYPE_SHFT                                                                 1
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_EPD_BMSK                                                                      0x1
+#define HWIO_TCL_R0_SW_CONFIG_BANK_n_EPD_SHFT                                                                        0
+
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n)                                               ((base) + 0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_PHYS(base,n)                                               ((base) + 0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OFFS(n)                                                    (0X14C + (0x4*(n)))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_MAXn                                                               15
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_POR                                                        0x00000000
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ATTR                                                                    0x3
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n), HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_RMSK)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_ADDR(base,n),mask,val,HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_INI(base,n))
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_VDEV_MCAST_PACKET_CTRL_MAP_n_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x)                                                                ((x) + 0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_PHYS(x)                                                                ((x) + 0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OFFS                                                                   (0x18c)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_POR                                                                    0x00000064
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_ATTR                                                                                0x3
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x))
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x), m)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x),v)
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_MCAST_ECHO_CHECK_ADDR(x),m,v,HWIO_TCL_R0_MCAST_ECHO_CHECK_IN(x))
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_TIMESTAMP_AGEING_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_MCAST_ECHO_CHECK_TIMESTAMP_AGEING_SHFT                                                           0
+
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ADDR(x)                                                         ((x) + 0x190)
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_PHYS(x)                                                         ((x) + 0x190)
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_OFFS                                                            (0x190)
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_RMSK                                                                   0xf
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_POR                                                             0x00000002
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ATTR                                                                         0x3
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ADDR(x))
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ADDR(x), m)
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ADDR(x),v)
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_ADDR(x),m,v,HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_IN(x))
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_MSB_BMSK                                                               0xf
+#define HWIO_TCL_R0_PPE_DESC_DST_INFO_VALID_MSB_SHFT                                                                 0
+
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ADDR(base,n)                                                      ((base) + 0X194 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_PHYS(base,n)                                                      ((base) + 0X194 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_OFFS(n)                                                           (0X194 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_RMSK                                                              0x3fffffff
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_MAXn                                                                      31
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_POR                                                               0x20000000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ATTR                                                                           0x3
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ADDR(base,n), HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_RMSK)
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_ADDR(base,n),mask,val,HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_INI(base,n))
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_DROP_PREC_ENABLE_BMSK                                             0x20000000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_DROP_PREC_ENABLE_SHFT                                                     29
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_TO_FW_BMSK                                                        0x10000000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_TO_FW_SHFT                                                                28
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_USE_PPE_INT_PRI_FOR_TID_BMSK                                       0x8000000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_USE_PPE_INT_PRI_FOR_TID_SHFT                                              27
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_SEARCH_INDEX_REG_NUM_BMSK                                          0x7000000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_SEARCH_INDEX_REG_NUM_SHFT                                                 24
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_VDEV_ID_BMSK                                                        0xff0000
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_VDEV_ID_SHFT                                                              16
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_BANK_ID_BMSK                                                          0xfc00
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_BANK_ID_SHFT                                                              10
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_PMAC_ID_BMSK                                                           0x300
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_PMAC_ID_SHFT                                                               8
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_VP_NUM_BMSK                                                             0xff
+#define HWIO_TCL_R0_PPE_VP_CONFIG_TABLE_n_VP_NUM_SHFT                                                                0
+
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ADDR(base,n)                                                  ((base) + 0X214 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_PHYS(base,n)                                                  ((base) + 0X214 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_OFFS(n)                                                       (0X214 + (0x4*(n)))
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_RMSK                                                            0xffffff
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_MAXn                                                                   7
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_POR                                                           0x00000000
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ATTR                                                                       0x3
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ADDR(base,n), HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_RMSK)
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_ADDR(base,n),mask,val,HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_INI(base,n))
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_CACHE_SET_BMSK                                                  0xf00000
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_CACHE_SET_SHFT                                                        20
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_SEARCH_INDEX_BMSK                                                0xfffff
+#define HWIO_TCL_R0_PPE_INDEX_MAPPING_TABLE_n_SEARCH_INDEX_SHFT                                                      0
+
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ADDR(x)                                                            ((x) + 0x234)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_PHYS(x)                                                            ((x) + 0x234)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_OFFS                                                               (0x234)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_RMSK                                                               0x3fffffff
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_POR                                                                0x00000000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ATTR                                                                            0x3
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ADDR(x))
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ADDR(x), m)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ADDR(x),v)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_ADDR(x),m,v,HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_IN(x))
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_9_BMSK                                                     0x38000000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_9_SHFT                                                             27
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_8_BMSK                                                      0x7000000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_8_SHFT                                                             24
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_7_BMSK                                                       0xe00000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_7_SHFT                                                             21
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_6_BMSK                                                       0x1c0000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_6_SHFT                                                             18
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_5_BMSK                                                        0x38000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_5_SHFT                                                             15
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_4_BMSK                                                         0x7000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_4_SHFT                                                             12
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_3_BMSK                                                          0xe00
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_3_SHFT                                                              9
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_2_BMSK                                                          0x1c0
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_2_SHFT                                                              6
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_1_BMSK                                                           0x38
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_1_SHFT                                                              3
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_0_BMSK                                                            0x7
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP0_INT_PRI_0_SHFT                                                              0
+
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ADDR(x)                                                            ((x) + 0x238)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_PHYS(x)                                                            ((x) + 0x238)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_OFFS                                                               (0x238)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_RMSK                                                                  0x3ffff
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_POR                                                                0x00000000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ATTR                                                                            0x3
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ADDR(x))
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ADDR(x), m)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ADDR(x),v)
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_ADDR(x),m,v,HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_IN(x))
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_15_BMSK                                                       0x38000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_15_SHFT                                                            15
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_14_BMSK                                                        0x7000
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_14_SHFT                                                            12
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_13_BMSK                                                         0xe00
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_13_SHFT                                                             9
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_12_BMSK                                                         0x1c0
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_12_SHFT                                                             6
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_11_BMSK                                                          0x38
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_11_SHFT                                                             3
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_10_BMSK                                                           0x7
+#define HWIO_TCL_R0_PPE_INT_PRI_TID_MAP1_INT_PRI_10_SHFT                                                             0
+
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ADDR(x)                                                           ((x) + 0x23c)
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_PHYS(x)                                                           ((x) + 0x23c)
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_OFFS                                                              (0x23c)
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_RMSK                                                                    0x3f
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_POR                                                               0x00000039
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ATTR                                                                           0x3
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ADDR(x))
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ADDR(x), m)
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ADDR(x),v)
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_ADDR(x),m,v,HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_IN(x))
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_RED_2_BMSK                                                              0x30
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_RED_2_SHFT                                                                 4
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_YELLOW_1_BMSK                                                            0xc
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_YELLOW_1_SHFT                                                              2
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_GREEN_0_BMSK                                                             0x3
+#define HWIO_TCL_R0_PPE_DROP_PREC_MAPPING_GREEN_0_SHFT                                                               0
+
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n)                                                             ((base) + 0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_PHYS(base,n)                                                             ((base) + 0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OFFS(n)                                                                  (0X240 + (0x4*(n)))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_MAXn                                                                            287
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_POR                                                                      0x00000000
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n), HWIO_TCL_R0_DSCP_TID_MAP_n_RMSK)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n), mask)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OUTI(base,n,val)        \
+                out_dword(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n),val)
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_TCL_R0_DSCP_TID_MAP_n_ADDR(base,n),mask,val,HWIO_TCL_R0_DSCP_TID_MAP_n_INI(base,n))
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_DSCP_TID_MAP_n_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R0_PCP_TID_MAP_ADDR(x)                                                                     ((x) + 0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_PHYS(x)                                                                     ((x) + 0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_OFFS                                                                        (0x6c0)
+#define HWIO_TCL_R0_PCP_TID_MAP_RMSK                                                                          0xffffff
+#define HWIO_TCL_R0_PCP_TID_MAP_POR                                                                         0x00000000
+#define HWIO_TCL_R0_PCP_TID_MAP_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R0_PCP_TID_MAP_ATTR                                                                                     0x3
+#define HWIO_TCL_R0_PCP_TID_MAP_IN(x)            \
+                in_dword(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x))
+#define HWIO_TCL_R0_PCP_TID_MAP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x), m)
+#define HWIO_TCL_R0_PCP_TID_MAP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x),v)
+#define HWIO_TCL_R0_PCP_TID_MAP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PCP_TID_MAP_ADDR(x),m,v,HWIO_TCL_R0_PCP_TID_MAP_IN(x))
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_7_BMSK                                                                    0xe00000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_7_SHFT                                                                          21
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_6_BMSK                                                                    0x1c0000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_6_SHFT                                                                          18
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_5_BMSK                                                                     0x38000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_5_SHFT                                                                          15
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_4_BMSK                                                                      0x7000
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_4_SHFT                                                                          12
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_3_BMSK                                                                       0xe00
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_3_SHFT                                                                           9
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_2_BMSK                                                                       0x1c0
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_2_SHFT                                                                           6
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_1_BMSK                                                                        0x38
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_1_SHFT                                                                           3
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_0_BMSK                                                                         0x7
+#define HWIO_TCL_R0_PCP_TID_MAP_PCP_0_SHFT                                                                           0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x)                                                               ((x) + 0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_PHYS(x)                                                               ((x) + 0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OFFS                                                                  (0x6c4)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_POR                                                                   0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_ATTR                                                                               0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_31_0_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_31_0_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_VAL_BMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_31_0_VAL_SHFT                                                                       0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x)                                                              ((x) + 0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_PHYS(x)                                                              ((x) + 0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OFFS                                                                 (0x6c8)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_POR                                                                  0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_ATTR                                                                              0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_63_32_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_63_32_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_VAL_BMSK                                                             0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_63_32_VAL_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x)                                                                 ((x) + 0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_PHYS(x)                                                                 ((x) + 0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OFFS                                                                    (0x6cc)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_RMSK                                                                           0x1
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_POR                                                                     0x00000000
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_HASH_KEY_64_ADDR(x),m,v,HWIO_TCL_R0_ASE_HASH_KEY_64_IN(x))
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_VAL_BMSK                                                                       0x1
+#define HWIO_TCL_R0_ASE_HASH_KEY_64_VAL_SHFT                                                                         0
+
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x)                                                             ((x) + 0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PHYS(x)                                                             ((x) + 0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OFFS                                                                (0x6d0)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_RMSK                                                                  0xfffdfc
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_POR                                                                 0x00840014
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ATTR                                                                             0x3
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x), m)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x),v)
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ADDR(x),m,v,HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_IN(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_MSDU_LEN_ERR_TO_FW_EN_BMSK                                            0x800000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_MSDU_LEN_ERR_TO_FW_EN_SHFT                                                  23
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_M0_FW_SEL_BMSK                                                    0x700000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_M0_FW_SEL_SHFT                                                          20
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ASE_M0_FW_SEL_BMSK                                                     0xe0000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_ASE_M0_FW_SEL_SHFT                                                          17
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_M0_FW_SEL_BMSK                                                     0x1c000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_M0_FW_SEL_SHFT                                                          14
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_DROP_BMSK                                                      0x2000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_DROP_SHFT                                                          13
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_DROP_BMSK                                                      0x1000
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_DROP_SHFT                                                          12
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_LOOP_BMSK                                                       0x800
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_LOOP_SHFT                                                          11
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_LOOP_BMSK                                                       0x400
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_LOOP_SHFT                                                          10
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PRIORITY_BMSK                                                            0x1c0
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_PRIORITY_SHFT                                                                6
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_HANDLER_BMSK                                                     0x30
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_CCE_FAIL_HANDLER_SHFT                                                        4
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_HANDLER_BMSK                                                      0xc
+#define HWIO_TCL_R0_CONFIG_SEARCH_QUEUE_FSE_FAIL_HANDLER_SHFT                                                        2
+
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x)                                                          ((x) + 0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_PHYS(x)                                                          ((x) + 0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OFFS                                                             (0x6d4)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_POR                                                              0x00000000
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ATTR                                                                          0x3
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_ADDR(x),m,v,HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_IN(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_VAL_BMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_LOW_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x)                                                         ((x) + 0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_PHYS(x)                                                         ((x) + 0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OFFS                                                            (0x6d8)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_RMSK                                                                  0xff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_POR                                                             0x00000000
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ATTR                                                                         0x3
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_ADDR(x),m,v,HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_IN(x))
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_VAL_BMSK                                                              0xff
+#define HWIO_TCL_R0_FSE_FAIL_QUEUE_NUM_HIGH_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x)                                                          ((x) + 0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_PHYS(x)                                                          ((x) + 0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OFFS                                                             (0x6dc)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_POR                                                              0x00000000
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_ADDR(x),m,v,HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_IN(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_VAL_BMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_LOW_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x)                                                         ((x) + 0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_PHYS(x)                                                         ((x) + 0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OFFS                                                            (0x6e0)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_RMSK                                                                  0xff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_POR                                                             0x00000000
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ATTR                                                                         0x3
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_ADDR(x),m,v,HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_IN(x))
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_VAL_BMSK                                                              0xff
+#define HWIO_TCL_R0_CCE_FAIL_QUEUE_NUM_HIGH_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x)                                                          ((x) + 0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_PHYS(x)                                                          ((x) + 0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OFFS                                                             (0x6e4)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x), m)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x),v)
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CONFIG_SEARCH_METADATA_ADDR(x),m,v,HWIO_TCL_R0_CONFIG_SEARCH_METADATA_IN(x))
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_FSE_FAIL_NUM_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_FSE_FAIL_NUM_SHFT                                                        16
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_CCE_FAIL_NUM_BMSK                                                    0xffff
+#define HWIO_TCL_R0_CONFIG_SEARCH_METADATA_CCE_FAIL_NUM_SHFT                                                         0
+
+#define HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x)                                                                    ((x) + 0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_PHYS(x)                                                                    ((x) + 0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OFFS                                                                       (0x6e8)
+#define HWIO_TCL_R0_TID_MAP_PRTY_RMSK                                                                             0xef
+#define HWIO_TCL_R0_TID_MAP_PRTY_POR                                                                        0x00000000
+#define HWIO_TCL_R0_TID_MAP_PRTY_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_TID_MAP_PRTY_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_TID_MAP_PRTY_IN(x)            \
+                in_dword(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x))
+#define HWIO_TCL_R0_TID_MAP_PRTY_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x), m)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x),v)
+#define HWIO_TCL_R0_TID_MAP_PRTY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TID_MAP_PRTY_ADDR(x),m,v,HWIO_TCL_R0_TID_MAP_PRTY_IN(x))
+#define HWIO_TCL_R0_TID_MAP_PRTY_TID_DEF_BMSK                                                                     0xe0
+#define HWIO_TCL_R0_TID_MAP_PRTY_TID_DEF_SHFT                                                                        5
+#define HWIO_TCL_R0_TID_MAP_PRTY_VAL_BMSK                                                                          0xf
+#define HWIO_TCL_R0_TID_MAP_PRTY_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x)                                                            ((x) + 0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_PHYS(x)                                                            ((x) + 0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_OFFS                                                               (0x6ec)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_POR                                                                0x00000000
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ATTR                                                                            0x1
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword(HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x))
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_VAL_BMSK                                                           0xffffffff
+#define HWIO_TCL_R0_INVALID_APB_ACC_ADDR_VAL_SHFT                                                                    0
+
+#define HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x)                                                                ((x) + 0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_PHYS(x)                                                                ((x) + 0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OFFS                                                                   (0x6f0)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_ATTR                                                                                0x3
+#define HWIO_TCL_R0_WATCHDOG_WARNING_IN(x)            \
+                in_dword(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x))
+#define HWIO_TCL_R0_WATCHDOG_WARNING_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x), m)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x),v)
+#define HWIO_TCL_R0_WATCHDOG_WARNING_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_WATCHDOG_WARNING_ADDR(x),m,v,HWIO_TCL_R0_WATCHDOG_WARNING_IN(x))
+#define HWIO_TCL_R0_WATCHDOG_WARNING_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_WATCHDOG_WARNING_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_WATCHDOG_WARNING_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_WATCHDOG_WARNING_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x)                                                               ((x) + 0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_PHYS(x)                                                               ((x) + 0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OFFS                                                                  (0x6f4)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_POR                                                                   0x0000ffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_ATTR                                                                               0x3
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_IN(x)            \
+                in_dword(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x))
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x), m)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x),v)
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_WATCHDOG_HW_ERROR_ADDR(x),m,v,HWIO_TCL_R0_WATCHDOG_HW_ERROR_IN(x))
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_STATUS_BMSK                                                           0xffff0000
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_STATUS_SHFT                                                                   16
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_LIMIT_BMSK                                                                0xffff
+#define HWIO_TCL_R0_WATCHDOG_HW_ERROR_LIMIT_SHFT                                                                     0
+
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x)                                           ((x) + 0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_PHYS(x)                                           ((x) + 0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OFFS                                              (0x6f8)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_RMSK                                                  0xffff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_POR                                               0x0000000a
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ATTR                                                           0x3
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x))
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_ADDR(x),m,v,HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_IN(x))
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_STATUS_BMSK                                           0xff00
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_STATUS_SHFT                                                8
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_LIMIT_BMSK                                              0xff
+#define HWIO_TCL_R0_EXTERNAL_BACKPRESSURE_EVENT_GEN_TIMER_LIMIT_SHFT                                                 0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x)                                                                ((x) + 0x89c)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PHYS(x)                                                                ((x) + 0x89c)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OFFS                                                                   (0x89c)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_POR                                                                    0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ATTR                                                                                0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE0_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE0_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TQM_SRNG_BUNCH_BMSK                                                    0x80000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TQM_SRNG_BUNCH_SHFT                                                            31
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_APB_CLK_BMSK                                                           0x40000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_APB_CLK_SHFT                                                                   30
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CLFY_RES_MEM_BMSK                                                      0x20000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CLFY_RES_MEM_SHFT                                                              29
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CTRL_BMSK                                                          0x10000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CTRL_SHFT                                                                  28
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CCE_RES_BMSK                                                        0x8000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_GSE_CCE_RES_SHFT                                                               27
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS2_PROD_RING_BMSK                                             0x4000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS2_PROD_RING_SHFT                                                    26
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS1_PROD_RING_BMSK                                             0x2000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2_STATUS1_PROD_RING_SHFT                                                    25
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2FW_PROD_RING_BMSK                                                   0x1000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2FW_PROD_RING_SHFT                                                          24
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2TQM_PROD_RING_BMSK                                                   0x800000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL2TQM_PROD_RING_SHFT                                                         23
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PROD_RING_CTRL_BMSK                                                      0x400000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PROD_RING_CTRL_SHFT                                                            22
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_DECODE_BMSK                                                          0x200000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_DECODE_SHFT                                                                21
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_GEN_BMSK                                                             0x100000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TLV_GEN_SHFT                                                                   20
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_FETCH_BMSK                                                           0x80000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_FETCH_SHFT                                                                19
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_BUF_BMSK                                                             0x40000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DATA_BUF_SHFT                                                                  18
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_BUF_BMSK                                                             0x20000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_BUF_SHFT                                                                  17
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_RD_BMSK                                                              0x10000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_DESC_RD_SHFT                                                                   16
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ASE_BMSK                                                                   0x8000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_ASE_SHFT                                                                       15
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_3_BMSK                                                              0x4000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_3_SHFT                                                                  14
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_2_BMSK                                                              0x2000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_2_SHFT                                                                  13
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_1_BMSK                                                              0x1000
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_1_SHFT                                                                  12
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_0_BMSK                                                               0x800
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_P_0_SHFT                                                                  11
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_6_BMSK                                                               0x400
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_6_SHFT                                                                  10
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_5_BMSK                                                               0x200
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_5_SHFT                                                                   9
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_4_BMSK                                                               0x100
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_4_SHFT                                                                   8
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_3_BMSK                                                                0x80
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_3_SHFT                                                                   7
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_2_BMSK                                                                0x40
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_2_SHFT                                                                   6
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_1_BMSK                                                                0x20
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_1_SHFT                                                                   5
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_0_BMSK                                                                0x10
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_SRNG_C_0_SHFT                                                                   4
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL_IDLE_REQ_SM_BMSK                                                          0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_TCL_IDLE_REQ_SM_SHFT                                                            3
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CCE_BMSK                                                                      0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_CCE_SHFT                                                                        2
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_LCE_BMSK                                                                      0x2
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_LCE_SHFT                                                                        1
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PARSER_BMSK                                                                   0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE0_PARSER_SHFT                                                                     0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x)                                                                ((x) + 0x8a0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_PHYS(x)                                                                ((x) + 0x8a0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OFFS                                                                   (0x8a0)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_RMSK                                                                         0x1f
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_POR                                                                    0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ATTR                                                                                0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE1_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE1_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CLK_ENS_EXTEND_BMSK                                                          0x10
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CLK_ENS_EXTEND_SHFT                                                             4
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CPU_IF_EXTEND_BMSK                                                            0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_CPU_IF_EXTEND_SHFT                                                              3
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ERR_RECOV_BMSK                                                                0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_ERR_RECOV_SHFT                                                                  2
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_SRNG_C_7_BMSK                                                                 0x2
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_SRNG_C_7_SHFT                                                                   1
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_FW_SRNG_BUNCH_BMSK                                                            0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE1_FW_SRNG_BUNCH_SHFT                                                              0
+
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x)                                                         ((x) + 0x8a4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_PHYS(x)                                                         ((x) + 0x8a4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OFFS                                                            (0x8a4)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RMSK                                                                 0x7ff
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_POR                                                             0x00000000
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ATTR                                                                         0x3
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_IN(x)            \
+                in_dword(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x), m)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x),v)
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_ADDR(x),m,v,HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_IN(x))
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RING_ARB_BMSK                                                        0x400
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_RING_ARB_SHFT                                                           10
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_FIFO_BMSK                                                            0x200
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_FIFO_SHFT                                                                9
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_STR_CTRL_BMSK                                                        0x100
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_STR_CTRL_SHFT                                                            8
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING7_BMSK                                                       0x80
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING7_SHFT                                                          7
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING6_BMSK                                                       0x40
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING6_SHFT                                                          6
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING5_BMSK                                                       0x20
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING5_SHFT                                                          5
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING4_BMSK                                                       0x10
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING4_SHFT                                                          4
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING3_BMSK                                                        0x8
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING3_SHFT                                                          3
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING2_BMSK                                                        0x4
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING2_SHFT                                                          2
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING1_BMSK                                                        0x2
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING1_SHFT                                                          1
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING0_BMSK                                                        0x1
+#define HWIO_TCL_R0_CLKGATE_DISABLE_DESC_RD_CONS_RING0_SHFT                                                          0
+
+#define HWIO_TCL_R0_CREDIT_COUNT_ADDR(x)                                                                    ((x) + 0x8a8)
+#define HWIO_TCL_R0_CREDIT_COUNT_PHYS(x)                                                                    ((x) + 0x8a8)
+#define HWIO_TCL_R0_CREDIT_COUNT_OFFS                                                                       (0x8a8)
+#define HWIO_TCL_R0_CREDIT_COUNT_RMSK                                                                          0x1ffff
+#define HWIO_TCL_R0_CREDIT_COUNT_POR                                                                        0x00000000
+#define HWIO_TCL_R0_CREDIT_COUNT_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_CREDIT_COUNT_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_CREDIT_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x))
+#define HWIO_TCL_R0_CREDIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_CREDIT_COUNT_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x),v)
+#define HWIO_TCL_R0_CREDIT_COUNT_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CREDIT_COUNT_ADDR(x),m,v,HWIO_TCL_R0_CREDIT_COUNT_IN(x))
+#define HWIO_TCL_R0_CREDIT_COUNT_ENABLE_BMSK                                                                   0x10000
+#define HWIO_TCL_R0_CREDIT_COUNT_ENABLE_SHFT                                                                        16
+#define HWIO_TCL_R0_CREDIT_COUNT_VAL_BMSK                                                                       0xffff
+#define HWIO_TCL_R0_CREDIT_COUNT_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x)                                                            ((x) + 0x8ac)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_PHYS(x)                                                            ((x) + 0x8ac)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_OFFS                                                               (0x8ac)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_RMSK                                                                   0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_POR                                                                0x00000000
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ATTR                                                                            0x1
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x))
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CURRENT_CREDIT_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_VAL_BMSK                                                               0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT_VAL_SHFT                                                                    0
+
+#define HWIO_TCL_R0_CREDIT_COUNT2_ADDR(x)                                                                   ((x) + 0x8b0)
+#define HWIO_TCL_R0_CREDIT_COUNT2_PHYS(x)                                                                   ((x) + 0x8b0)
+#define HWIO_TCL_R0_CREDIT_COUNT2_OFFS                                                                      (0x8b0)
+#define HWIO_TCL_R0_CREDIT_COUNT2_RMSK                                                                         0x1ffff
+#define HWIO_TCL_R0_CREDIT_COUNT2_POR                                                                       0x00000000
+#define HWIO_TCL_R0_CREDIT_COUNT2_POR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R0_CREDIT_COUNT2_ATTR                                                                                   0x3
+#define HWIO_TCL_R0_CREDIT_COUNT2_IN(x)            \
+                in_dword(HWIO_TCL_R0_CREDIT_COUNT2_ADDR(x))
+#define HWIO_TCL_R0_CREDIT_COUNT2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CREDIT_COUNT2_ADDR(x), m)
+#define HWIO_TCL_R0_CREDIT_COUNT2_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_CREDIT_COUNT2_ADDR(x),v)
+#define HWIO_TCL_R0_CREDIT_COUNT2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_CREDIT_COUNT2_ADDR(x),m,v,HWIO_TCL_R0_CREDIT_COUNT2_IN(x))
+#define HWIO_TCL_R0_CREDIT_COUNT2_ENABLE_BMSK                                                                  0x10000
+#define HWIO_TCL_R0_CREDIT_COUNT2_ENABLE_SHFT                                                                       16
+#define HWIO_TCL_R0_CREDIT_COUNT2_VAL_BMSK                                                                      0xffff
+#define HWIO_TCL_R0_CREDIT_COUNT2_VAL_SHFT                                                                           0
+
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_ADDR(x)                                                           ((x) + 0x8b4)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_PHYS(x)                                                           ((x) + 0x8b4)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_OFFS                                                              (0x8b4)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_RMSK                                                                  0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_POR                                                               0x00000000
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_ATTR                                                                           0x1
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_IN(x)            \
+                in_dword(HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_ADDR(x))
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_ADDR(x), m)
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_VAL_BMSK                                                              0xffff
+#define HWIO_TCL_R0_CURRENT_CREDIT_COUNT2_VAL_SHFT                                                                   0
+
+#define HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x)                                                                  ((x) + 0x8b8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_PHYS(x)                                                                  ((x) + 0x8b8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OFFS                                                                     (0x8b8)
+#define HWIO_TCL_R0_ERR_RECOV_READ_RMSK                                                                            0x1
+#define HWIO_TCL_R0_ERR_RECOV_READ_POR                                                                      0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_READ_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_READ_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_ERR_RECOV_READ_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_READ_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x),v)
+#define HWIO_TCL_R0_ERR_RECOV_READ_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ERR_RECOV_READ_ADDR(x),m,v,HWIO_TCL_R0_ERR_RECOV_READ_IN(x))
+#define HWIO_TCL_R0_ERR_RECOV_READ_ENABLE_BMSK                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_READ_ENABLE_SHFT                                                                       0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x)                                                      ((x) + 0x8bc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_PHYS(x)                                                      ((x) + 0x8bc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_OFFS                                                         (0x8bc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_RMSK                                                               0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_POR                                                          0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ATTR                                                                      0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_VAL_BMSK                                                           0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_COUNT_VAL_SHFT                                                              0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x)                                                 ((x) + 0x8c0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_PHYS(x)                                                 ((x) + 0x8c0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_OFFS                                                    (0x8c0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_RMSK                                                          0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_POR                                                     0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ATTR                                                                 0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_VAL_BMSK                                                      0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_COUNT_VAL_SHFT                                                         0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x)                                                   ((x) + 0x8c4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_PHYS(x)                                                   ((x) + 0x8c4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_OFFS                                                      (0x8c4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_RMSK                                                            0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_VAL_BMSK                                                        0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_COUNT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x)                                                  ((x) + 0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_PHYS(x)                                                  ((x) + 0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_OFFS                                                     (0x8c8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_RMSK                                                           0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_POR                                                      0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ATTR                                                                  0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_VAL_BMSK                                                       0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_COUNT_VAL_SHFT                                                          0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x)                                                   ((x) + 0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_PHYS(x)                                                   ((x) + 0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_OFFS                                                      (0x8cc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_RMSK                                                            0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_VAL_BMSK                                                        0xff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_COUNT_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x)                                                        ((x) + 0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_PHYS(x)                                                        ((x) + 0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_OFFS                                                           (0x8d0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ATTR                                                                        0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_VAL_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_LSB_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x)                                                        ((x) + 0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_PHYS(x)                                                        ((x) + 0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_OFFS                                                           (0x8d4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ATTR                                                                        0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_VAL_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FETCH_MSB_VAL_SHFT                                                                0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x)                                                   ((x) + 0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_PHYS(x)                                                   ((x) + 0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_OFFS                                                      (0x8d8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_VAL_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_LSB_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x)                                                   ((x) + 0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_PHYS(x)                                                   ((x) + 0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_OFFS                                                      (0x8dc)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_POR                                                       0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ATTR                                                                   0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_VAL_BMSK                                                  0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DIRECT_BUF_MSB_VAL_SHFT                                                           0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x)                                                     ((x) + 0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_PHYS(x)                                                     ((x) + 0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_OFFS                                                        (0x8e0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_LSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x)                                                     ((x) + 0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_PHYS(x)                                                     ((x) + 0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_OFFS                                                        (0x8e4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_DATA_BUF_MSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x)                                                    ((x) + 0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_PHYS(x)                                                    ((x) + 0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_OFFS                                                       (0x8e8)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ATTR                                                                    0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_LSB_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x)                                                    ((x) + 0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_PHYS(x)                                                    ((x) + 0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_OFFS                                                       (0x8ec)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ATTR                                                                    0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_VAL_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_TQM_BUNCH_MSB_VAL_SHFT                                                            0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x)                                                     ((x) + 0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_PHYS(x)                                                     ((x) + 0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_OFFS                                                        (0x8f0)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_LSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x)                                                     ((x) + 0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_PHYS(x)                                                     ((x) + 0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_OFFS                                                        (0x8f4)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ATTR                                                                     0x1
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x))
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_VAL_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_ERR_RECOV_DESC_FW_BUNCH_MSB_VAL_SHFT                                                             0
+
+#define HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x)                                                                 ((x) + 0x8f8)
+#define HWIO_TCL_R0_S_PARE_REGISTER_PHYS(x)                                                                 ((x) + 0x8f8)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OFFS                                                                    (0x8f8)
+#define HWIO_TCL_R0_S_PARE_REGISTER_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_POR                                                                     0x00000000
+#define HWIO_TCL_R0_S_PARE_REGISTER_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_S_PARE_REGISTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x))
+#define HWIO_TCL_R0_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_TCL_R0_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_S_PARE_REGISTER_ADDR(x),m,v,HWIO_TCL_R0_S_PARE_REGISTER_IN(x))
+#define HWIO_TCL_R0_S_PARE_REGISTER_VAL_BMSK                                                                0xffffffff
+#define HWIO_TCL_R0_S_PARE_REGISTER_VAL_SHFT                                                                         0
+
+#define HWIO_TCL_R0_MISC_CTRL_ADDR(x)                                                                       ((x) + 0x8fc)
+#define HWIO_TCL_R0_MISC_CTRL_PHYS(x)                                                                       ((x) + 0x8fc)
+#define HWIO_TCL_R0_MISC_CTRL_OFFS                                                                          (0x8fc)
+#define HWIO_TCL_R0_MISC_CTRL_RMSK                                                                                 0x3
+#define HWIO_TCL_R0_MISC_CTRL_POR                                                                           0x00000000
+#define HWIO_TCL_R0_MISC_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_TCL_R0_MISC_CTRL_ATTR                                                                                       0x3
+#define HWIO_TCL_R0_MISC_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_MISC_CTRL_ADDR(x))
+#define HWIO_TCL_R0_MISC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_MISC_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_MISC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_MISC_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_MISC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_MISC_CTRL_ADDR(x),m,v,HWIO_TCL_R0_MISC_CTRL_IN(x))
+#define HWIO_TCL_R0_MISC_CTRL_DATA_CORRUPT_FIX_DISABLE_CHK_BIT_BMSK                                                0x2
+#define HWIO_TCL_R0_MISC_CTRL_DATA_CORRUPT_FIX_DISABLE_CHK_BIT_SHFT                                                  1
+#define HWIO_TCL_R0_MISC_CTRL_MSI_DISABLE_CHK_BIT_BMSK                                                             0x1
+#define HWIO_TCL_R0_MISC_CTRL_MSI_DISABLE_CHK_BIT_SHFT                                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x900)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x900)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OFFS                                                              (0x900)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x904)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x904)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OFFS                                                              (0x904)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x)                                                                 ((x) + 0x908)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_PHYS(x)                                                                 ((x) + 0x908)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OFFS                                                                    (0x908)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x)                                                             ((x) + 0x90c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_PHYS(x)                                                             ((x) + 0x90c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_OFFS                                                                (0x90c)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x)                                                               ((x) + 0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_PHYS(x)                                                               ((x) + 0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OFFS                                                                  (0x910)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OFFS                                                           (0x91c)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OFFS                                                           (0x920)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x930)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x934)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x934)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x934)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x938)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x938)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x938)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x93c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x93c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x93c)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x940)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x944)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OFFS                                                         (0x948)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OFFS                                                         (0x94c)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OFFS                                                             (0x950)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x970)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x970)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x970)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x)                                                             ((x) + 0x974)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_PHYS(x)                                                             ((x) + 0x974)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OFFS                                                                (0x974)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x978)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x978)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OFFS                                                              (0x978)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x97c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x97c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OFFS                                                              (0x97c)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x)                                                                 ((x) + 0x980)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_PHYS(x)                                                                 ((x) + 0x980)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OFFS                                                                    (0x980)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x)                                                             ((x) + 0x984)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_PHYS(x)                                                             ((x) + 0x984)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_OFFS                                                                (0x984)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x)                                                               ((x) + 0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_PHYS(x)                                                               ((x) + 0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OFFS                                                                  (0x988)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OFFS                                                           (0x994)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OFFS                                                           (0x998)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0x9a8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0x9ac)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0x9ac)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0x9ac)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0x9b0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0x9b0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_OFFS                                                   (0x9b0)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0x9b4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0x9b4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0x9b4)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0x9b8)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0x9bc)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL2_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OFFS                                                         (0x9c0)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OFFS                                                         (0x9c4)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OFFS                                                             (0x9c8)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0x9e8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0x9e8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OFFS                                                       (0x9e8)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL2_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x)                                                             ((x) + 0x9ec)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_PHYS(x)                                                             ((x) + 0x9ec)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OFFS                                                                (0x9ec)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL2_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL2_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL2_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0x9f0)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0x9f0)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OFFS                                                              (0x9f0)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0x9f4)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0x9f4)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OFFS                                                              (0x9f4)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x)                                                                 ((x) + 0x9f8)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_PHYS(x)                                                                 ((x) + 0x9f8)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OFFS                                                                    (0x9f8)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x)                                                             ((x) + 0x9fc)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_PHYS(x)                                                             ((x) + 0x9fc)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_OFFS                                                                (0x9fc)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x)                                                               ((x) + 0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_PHYS(x)                                                               ((x) + 0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OFFS                                                                  (0xa00)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OFFS                                                           (0xa0c)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OFFS                                                           (0xa10)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xa20)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xa24)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xa24)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xa24)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xa28)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xa28)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xa28)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xa2c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xa2c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xa2c)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xa30)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xa34)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL3_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OFFS                                                         (0xa38)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OFFS                                                         (0xa3c)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OFFS                                                             (0xa40)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xa60)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xa60)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xa60)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL3_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x)                                                             ((x) + 0xa64)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_PHYS(x)                                                             ((x) + 0xa64)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OFFS                                                                (0xa64)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL3_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL3_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL3_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xa68)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xa68)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OFFS                                                              (0xa68)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xa6c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xa6c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OFFS                                                              (0xa6c)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x)                                                                 ((x) + 0xa70)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_PHYS(x)                                                                 ((x) + 0xa70)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OFFS                                                                    (0xa70)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x)                                                             ((x) + 0xa74)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_PHYS(x)                                                             ((x) + 0xa74)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_OFFS                                                                (0xa74)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x)                                                               ((x) + 0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_PHYS(x)                                                               ((x) + 0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OFFS                                                                  (0xa78)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OFFS                                                           (0xa84)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OFFS                                                           (0xa88)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xa98)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xa9c)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xa9c)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xa9c)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xaa0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xaa0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xaa0)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xaa4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xaa4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xaa4)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xaa8)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xaac)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL4_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OFFS                                                         (0xab0)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OFFS                                                         (0xab4)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OFFS                                                             (0xab8)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xad8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xad8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xad8)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL4_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x)                                                             ((x) + 0xadc)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_PHYS(x)                                                             ((x) + 0xadc)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OFFS                                                                (0xadc)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL4_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL4_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL4_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xae0)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xae0)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_OFFS                                                              (0xae0)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xae4)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xae4)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_OFFS                                                              (0xae4)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_RMSK                                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_RING_SIZE_BMSK                                                     0xfffff00
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_ADDR(x)                                                                 ((x) + 0xae8)
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_PHYS(x)                                                                 ((x) + 0xae8)
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_OFFS                                                                    (0xae8)
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_ADDR(x)                                                             ((x) + 0xaec)
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_PHYS(x)                                                             ((x) + 0xaec)
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_OFFS                                                                (0xaec)
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL5_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_ADDR(x)                                                               ((x) + 0xaf0)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_PHYS(x)                                                               ((x) + 0xaf0)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_OFFS                                                                  (0xaf0)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xafc)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xafc)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_OFFS                                                           (0xafc)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xb00)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xb00)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_OFFS                                                           (0xb00)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xb10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xb10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xb10)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xb14)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xb14)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xb14)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xb18)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xb18)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xb18)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xb1c)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xb1c)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xb1c)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xb20)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xb20)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xb20)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xb24)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xb24)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xb24)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_RMSK                                               0xfffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                0xff00000
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       20
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                               0xfffff
+#define HWIO_TCL_R0_SW2TCL5_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xb28)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xb28)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_OFFS                                                         (0xb28)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xb2c)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xb2c)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_OFFS                                                         (0xb2c)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xb30)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xb30)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_OFFS                                                             (0xb30)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xb50)
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xb50)
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xb50)
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_SW2TCL5_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ADDR(x)                                                             ((x) + 0xb54)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_PHYS(x)                                                             ((x) + 0xb54)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_OFFS                                                                (0xb54)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL5_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL5_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_SW2TCL5_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x)                                                     ((x) + 0xb58)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_PHYS(x)                                                     ((x) + 0xb58)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OFFS                                                        (0xb58)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                              0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x)                                                     ((x) + 0xb5c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_PHYS(x)                                                     ((x) + 0xb5c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OFFS                                                        (0xb5c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RMSK                                                         0xfffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_SIZE_BMSK                                               0xfffff00
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_SIZE_SHFT                                                       8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                           0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                              0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x)                                                           ((x) + 0xb60)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_PHYS(x)                                                           ((x) + 0xb60)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OFFS                                                              (0xb60)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_RMSK                                                                    0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_POR                                                               0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ATTR                                                                           0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ENTRY_SIZE_BMSK                                                         0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_ID_ENTRY_SIZE_SHFT                                                            0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x)                                                       ((x) + 0xb64)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_PHYS(x)                                                       ((x) + 0xb64)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_OFFS                                                          (0xb64)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_POR                                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ATTR                                                                       0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                          0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                  16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_VALID_WORDS_BMSK                                              0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_STATUS_NUM_VALID_WORDS_SHFT                                                   0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x)                                                         ((x) + 0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_PHYS(x)                                                         ((x) + 0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OFFS                                                            (0xb68)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RMSK                                                              0x3fffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_POR                                                             0x00000080
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ATTR                                                                         0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SPARE_CONTROL_BMSK                                                0x3fc000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SPARE_CONTROL_SHFT                                                      14
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE2_BMSK                                                 0x3000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE2_SHFT                                                     12
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE1_BMSK                                                  0xf00
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_SM_STATE1_SHFT                                                      8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_IS_IDLE_BMSK                                                     0x80
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_IS_IDLE_SHFT                                                        7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_ENABLE_BMSK                                                      0x40
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SRNG_ENABLE_SHFT                                                         6
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                0x20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                   5
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                 0x10
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                    4
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_MSI_SWAP_BIT_BMSK                                                      0x8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_MSI_SWAP_BIT_SHFT                                                        3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SECURITY_BIT_BMSK                                                      0x4
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_SECURITY_BIT_SHFT                                                        2
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_LOOPCNT_DISABLE_BMSK                                                   0x2
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_LOOPCNT_DISABLE_SHFT                                                     1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RING_ID_DISABLE_BMSK                                                   0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_RING_ID_DISABLE_SHFT                                                     0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x)                                                  ((x) + 0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_PHYS(x)                                                  ((x) + 0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OFFS                                                     (0xb74)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x)                                                  ((x) + 0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_PHYS(x)                                                  ((x) + 0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OFFS                                                     (0xb78)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_RMSK                                                           0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                      0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                       ((x) + 0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                       ((x) + 0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OFFS                                          (0xb88)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                        16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                            0x8000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                15
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                      0x7fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                           0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                       ((x) + 0xb8c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                       ((x) + 0xb8c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OFFS                                          (0xb8c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_RMSK                                              0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                     0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x)                                          ((x) + 0xb90)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_PHYS(x)                                          ((x) + 0xb90)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_OFFS                                             (0xb90)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_POR                                              0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ATTR                                                          0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK               0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                       16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                          0x8000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                              15
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                    0x7fff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                         0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                       ((x) + 0xb94)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                       ((x) + 0xb94)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OFFS                                          (0xb94)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RMSK                                               0x3ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_POR                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                            0x3ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                      ((x) + 0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                      ((x) + 0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OFFS                                         (0xb98)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                0x7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_POR                                          0x00000003
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                     0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                      0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                           0x7
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                             0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                     ((x) + 0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                     ((x) + 0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_OFFS                                        (0xb9c)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_RMSK                                         0xfffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_POR                                         0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                    0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                     0x1
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                          0xff00000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                 20
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                         0xfffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                               0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x)                                                ((x) + 0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_PHYS(x)                                                ((x) + 0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OFFS                                                   (0xba0)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ATTR                                                                0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR_BMSK                                              0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_LSB_ADDR_SHFT                                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x)                                                ((x) + 0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_PHYS(x)                                                ((x) + 0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OFFS                                                   (0xba4)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_RMSK                                                        0x1ff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_POR                                                    0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ATTR                                                                0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                            0x100
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                8
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR_BMSK                                                    0xff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_BASE_MSB_ADDR_SHFT                                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x)                                                    ((x) + 0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_PHYS(x)                                                    ((x) + 0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OFFS                                                       (0xba8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_POR                                                        0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ATTR                                                                    0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_VALUE_BMSK                                                 0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MSI1_DATA_VALUE_SHFT                                                          0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x)                                              ((x) + 0xbc8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_PHYS(x)                                              ((x) + 0xbc8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OFFS                                                 (0xbc8)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_RMSK                                                     0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_POR                                                  0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ATTR                                                              0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                  0xffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                       0
+
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x)                                                       ((x) + 0xbcc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_PHYS(x)                                                       ((x) + 0xbcc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OFFS                                                          (0xbcc)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_RMSK                                                          0xffff003f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_POR                                                           0x00000000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ATTR                                                                       0x3
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                 0xffff0000
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                         16
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                        0x3f
+#define HWIO_TCL_R0_SW2TCL_CREDIT_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xbd0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xbd0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OFFS                                                              (0xbd0)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xbd4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xbd4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OFFS                                                              (0xbd4)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x)                                                                 ((x) + 0xbd8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_PHYS(x)                                                                 ((x) + 0xbd8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OFFS                                                                    (0xbd8)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_RMSK                                                                          0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_ID_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x)                                                             ((x) + 0xbdc)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_PHYS(x)                                                             ((x) + 0xbdc)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_OFFS                                                                (0xbdc)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x)                                                               ((x) + 0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_PHYS(x)                                                               ((x) + 0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OFFS                                                                  (0xbe0)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RMSK                                                                    0x3fffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OFFS                                                           (0xbec)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OFFS                                                           (0xbf0)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                             ((x) + 0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                             ((x) + 0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                (0xc00)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                             ((x) + 0xc04)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                             ((x) + 0xc04)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                (0xc04)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                    0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                      0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                           0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x)                                                ((x) + 0xc08)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_PHYS(x)                                                ((x) + 0xc08)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_OFFS                                                   (0xc08)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                0x8000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                    15
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                             ((x) + 0xc0c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                             ((x) + 0xc0c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                (0xc0c)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                     0x3ff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                  0x3ff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                      0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                            ((x) + 0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                            ((x) + 0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                               (0xc10)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                      0x7
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR                                                0x00000003
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                            0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                 0x7
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                   0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                           ((x) + 0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                           ((x) + 0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                              (0xc14)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                0xffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR                                               0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                           0x1
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                 0xff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                       16
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                     0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OFFS                                                         (0xc18)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OFFS                                                         (0xc1c)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OFFS                                                             (0xc20)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xc40)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xc40)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xc40)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_FW2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x)                                                             ((x) + 0xc44)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_PHYS(x)                                                             ((x) + 0xc44)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OFFS                                                                (0xc44)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_FW2TCL1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_FW2TCL1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_FW2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ADDR(x)                                                          ((x) + 0xc48)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_PHYS(x)                                                          ((x) + 0xc48)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_OFFS                                                             (0xc48)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_POR                                                              0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                   0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ADDR(x)                                                          ((x) + 0xc4c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_PHYS(x)                                                          ((x) + 0xc4c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_OFFS                                                             (0xc4c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_RMSK                                                              0xfffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_POR                                                              0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_RING_SIZE_BMSK                                                    0xfffff00
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_RING_SIZE_SHFT                                                            8
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                   0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_ADDR(x)                                                                ((x) + 0xc50)
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_PHYS(x)                                                                ((x) + 0xc50)
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_OFFS                                                                   (0xc50)
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_RMSK                                                                         0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_POR                                                                    0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_ATTR                                                                                0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_ID_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_ENTRY_SIZE_BMSK                                                              0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_ID_ENTRY_SIZE_SHFT                                                                 0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_ADDR(x)                                                            ((x) + 0xc54)
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_PHYS(x)                                                            ((x) + 0xc54)
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_OFFS                                                               (0xc54)
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_POR                                                                0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_ATTR                                                                            0x1
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                               0xffff0000
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                       16
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                   0xffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                        0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_ADDR(x)                                                              ((x) + 0xc58)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_PHYS(x)                                                              ((x) + 0xc58)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_OFFS                                                                 (0xc58)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_RMSK                                                                   0x3fffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_POR                                                                  0x00000080
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_ATTR                                                                              0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SPARE_CONTROL_BMSK                                                     0x3fc000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SPARE_CONTROL_SHFT                                                           14
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_SM_STATE2_BMSK                                                      0x3000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_SM_STATE2_SHFT                                                          12
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_SM_STATE1_BMSK                                                       0xf00
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_SM_STATE1_SHFT                                                           8
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_IS_IDLE_BMSK                                                          0x80
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_IS_IDLE_SHFT                                                             7
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_ENABLE_BMSK                                                           0x40
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SRNG_ENABLE_SHFT                                                              6
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                     0x20
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                        5
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                      0x10
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                         4
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_MSI_SWAP_BIT_BMSK                                                           0x8
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_MSI_SWAP_BIT_SHFT                                                             3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SECURITY_BIT_BMSK                                                           0x4
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_SECURITY_BIT_SHFT                                                             2
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                        0x2
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                          1
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_RING_ID_DISABLE_BMSK                                                        0x1
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_RING_ID_DISABLE_SHFT                                                          0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ADDR(x)                                                       ((x) + 0xc64)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_PHYS(x)                                                       ((x) + 0xc64)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_OFFS                                                          (0xc64)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                     0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                              0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ADDR(x)                                                       ((x) + 0xc68)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_PHYS(x)                                                       ((x) + 0xc68)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_OFFS                                                          (0xc68)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_RMSK                                                                0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                           0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                              0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                            ((x) + 0xc78)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                            ((x) + 0xc78)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_OFFS                                               (0xc78)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR                                                0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                            0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                     0xffff0000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                             16
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                 0x8000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                     15
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                           0x7fff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                            ((x) + 0xc7c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                            ((x) + 0xc7c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_OFFS                                               (0xc7c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                   0xffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR                                                0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                            0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                     0xffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                          0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x)                                               ((x) + 0xc80)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_PHYS(x)                                               ((x) + 0xc80)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_OFFS                                                  (0xc80)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_POR                                                   0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_ATTR                                                               0x1
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                    0xffff0000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                            16
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                         0x7fff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                              0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                            ((x) + 0xc84)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                            ((x) + 0xc84)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_OFFS                                               (0xc84)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                    0x3ff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR                                                0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                            0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                 0x3ff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                     0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                           ((x) + 0xc88)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                           ((x) + 0xc88)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_OFFS                                              (0xc88)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                     0x7
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR                                               0x00000003
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                           0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                0x7
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                  0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                          ((x) + 0xc8c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                          ((x) + 0xc8c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_OFFS                                             (0xc8c)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_RMSK                                              0xfffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR                                              0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                         0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                          0x1
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                               0xff00000
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                      20
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                              0xfffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                    0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR(x)                                                     ((x) + 0xc90)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_PHYS(x)                                                     ((x) + 0xc90)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_OFFS                                                        (0xc90)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                            0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR(x)                                                     ((x) + 0xc94)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_PHYS(x)                                                     ((x) + 0xc94)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_OFFS                                                        (0xc94)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_RMSK                                                             0x1ff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_POR                                                         0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ATTR                                                                     0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                 0x100
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                     8
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                         0xff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                            0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ADDR(x)                                                         ((x) + 0xc98)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_PHYS(x)                                                         ((x) + 0xc98)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_OFFS                                                            (0xc98)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_POR                                                             0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ATTR                                                                         0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_VALUE_BMSK                                                      0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MSI1_DATA_VALUE_SHFT                                                               0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                   ((x) + 0xcb8)
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                   ((x) + 0xcb8)
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_OFFS                                                      (0xcb8)
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_RMSK                                                          0xffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_POR                                                       0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ATTR                                                                   0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                       0xffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                            0
+
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ADDR(x)                                                            ((x) + 0xcbc)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_PHYS(x)                                                            ((x) + 0xcbc)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_OFFS                                                               (0xcbc)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_RMSK                                                               0xffff003f
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_POR                                                                0x00000000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ATTR                                                                            0x3
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                      0xffff0000
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                              16
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                             0x3f
+#define HWIO_TCL_R0_PPE2TCL1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x)                                                           ((x) + 0xcc0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_PHYS(x)                                                           ((x) + 0xcc0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OFFS                                                              (0xcc0)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x)                                                           ((x) + 0xcc4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_PHYS(x)                                                           ((x) + 0xcc4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OFFS                                                              (0xcc4)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RMSK                                                                0xffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_BMSK                                                      0xffff00
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_SIZE_SHFT                                                             8
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                 0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                    0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x)                                                                 ((x) + 0xcc8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_PHYS(x)                                                                 ((x) + 0xcc8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OFFS                                                                    (0xcc8)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RMSK                                                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_POR                                                                     0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RING_ID_BMSK                                                                0xff00
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_RING_ID_SHFT                                                                     8
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ENTRY_SIZE_BMSK                                                               0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_ID_ENTRY_SIZE_SHFT                                                                  0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x)                                                             ((x) + 0xccc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_PHYS(x)                                                             ((x) + 0xccc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_OFFS                                                                (0xccc)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_ATTR                                                                             0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                        16
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_BMSK                                                    0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_STATUS_NUM_VALID_WORDS_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x)                                                               ((x) + 0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_PHYS(x)                                                               ((x) + 0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OFFS                                                                  (0xcd0)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RMSK                                                                   0x7ffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_POR                                                                   0x00000080
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ATTR                                                                               0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                           0x4000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                  26
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOP_CNT_BMSK                                                          0x3c00000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOP_CNT_SHFT                                                                 22
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_BMSK                                                      0x3fc000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SPARE_CONTROL_SHFT                                                            14
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_BMSK                                                       0x3000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE2_SHFT                                                           12
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_BMSK                                                        0xf00
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_SM_STATE1_SHFT                                                            8
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_BMSK                                                           0x80
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_IS_IDLE_SHFT                                                              7
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_BMSK                                                            0x40
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SRNG_ENABLE_SHFT                                                               6
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                      0x20
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                         5
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                       0x10
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                          4
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_BMSK                                                            0x8
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_MSI_SWAP_BIT_SHFT                                                              3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SECURITY_BIT_BMSK                                                            0x4
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_SECURITY_BIT_SHFT                                                              2
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_BMSK                                                         0x2
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_LOOPCNT_DISABLE_SHFT                                                           1
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_BMSK                                                         0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_RING_ID_DISABLE_SHFT                                                           0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x)                                                        ((x) + 0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_PHYS(x)                                                        ((x) + 0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OFFS                                                           (0xcd4)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                      0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x)                                                        ((x) + 0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_PHYS(x)                                                        ((x) + 0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OFFS                                                           (0xcd8)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_RMSK                                                                 0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_POR                                                            0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ATTR                                                                        0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                            0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x)                                                 ((x) + 0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_PHYS(x)                                                 ((x) + 0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OFFS                                                    (0xce4)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ATTR                                                                 0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x)                                                ((x) + 0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_PHYS(x)                                                ((x) + 0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_OFFS                                                   (0xce8)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ATTR                                                                0x1
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                     0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                             16
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                             0x8000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                 15
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                          0x7fff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                               0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                              ((x) + 0xcec)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                              ((x) + 0xcec)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OFFS                                                 (0xcec)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RMSK                                                      0x3ff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_POR                                                  0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ATTR                                                              0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                    0x3ff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                        0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x)                                                      ((x) + 0xd08)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_PHYS(x)                                                      ((x) + 0xd08)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OFFS                                                         (0xd08)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x)                                                      ((x) + 0xd0c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_PHYS(x)                                                      ((x) + 0xd0c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OFFS                                                         (0xd0c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x)                                                          ((x) + 0xd10)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_PHYS(x)                                                          ((x) + 0xd10)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OFFS                                                             (0xd10)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI1_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                ((x) + 0xd14)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                ((x) + 0xd14)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OFFS                                                   (0xd14)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_RMSK                                                   0xffc0ffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ATTR                                                                0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                        0xff000000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                24
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                         0x800000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                               23
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                       0x400000
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                             22
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x)                                                      ((x) + 0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_PHYS(x)                                                      ((x) + 0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OFFS                                                         (0xd18)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR_BMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_LSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x)                                                      ((x) + 0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_PHYS(x)                                                      ((x) + 0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OFFS                                                         (0xd1c)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_RMSK                                                              0x1ff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                  0x100
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                      8
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR_BMSK                                                          0xff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_BASE_MSB_ADDR_SHFT                                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x)                                                          ((x) + 0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_PHYS(x)                                                          ((x) + 0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OFFS                                                             (0xd20)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_POR                                                              0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ATTR                                                                          0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_VALUE_BMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MSI2_DATA_VALUE_SHFT                                                                0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x)                                                    ((x) + 0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_PHYS(x)                                                    ((x) + 0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OFFS                                                       (0xd30)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_RMSK                                                           0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                        0xffff
+#define HWIO_TCL_R0_TCL2TQM_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x)                                                             ((x) + 0xd34)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_PHYS(x)                                                             ((x) + 0xd34)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OFFS                                                                (0xd34)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_RMSK                                                                0xffff003f
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ATTR                                                                             0x3
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2TQM_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL2TQM_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                       0xffff0000
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                               16
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                              0x3f
+#define HWIO_TCL_R0_TCL2TQM_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                 0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x)                                                       ((x) + 0xd38)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_PHYS(x)                                                       ((x) + 0xd38)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OFFS                                                          (0xd38)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x)                                                       ((x) + 0xd3c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_PHYS(x)                                                       ((x) + 0xd3c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OFFS                                                          (0xd3c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RMSK                                                            0xffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_SIZE_BMSK                                                  0xffff00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_SIZE_SHFT                                                         8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                             0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x)                                                             ((x) + 0xd40)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_PHYS(x)                                                             ((x) + 0xd40)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OFFS                                                                (0xd40)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RMSK                                                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_POR                                                                 0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ATTR                                                                             0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RING_ID_BMSK                                                            0xff00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_RING_ID_SHFT                                                                 8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ENTRY_SIZE_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_ID_ENTRY_SIZE_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x)                                                         ((x) + 0xd44)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_PHYS(x)                                                         ((x) + 0xd44)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_OFFS                                                            (0xd44)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ATTR                                                                         0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                            0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                    16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_VALID_WORDS_BMSK                                                0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_STATUS_NUM_VALID_WORDS_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x)                                                           ((x) + 0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_PHYS(x)                                                           ((x) + 0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OFFS                                                              (0xd48)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RMSK                                                               0x7ffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_POR                                                               0x00000080
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                       0x4000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                              26
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOP_CNT_BMSK                                                      0x3c00000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOP_CNT_SHFT                                                             22
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SPARE_CONTROL_BMSK                                                  0x3fc000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SPARE_CONTROL_SHFT                                                        14
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE2_BMSK                                                   0x3000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE2_SHFT                                                       12
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE1_BMSK                                                    0xf00
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_SM_STATE1_SHFT                                                        8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_IS_IDLE_BMSK                                                       0x80
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_IS_IDLE_SHFT                                                          7
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_ENABLE_BMSK                                                        0x40
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SRNG_ENABLE_SHFT                                                           6
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                  0x20
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                     5
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                   0x10
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                      4
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_MSI_SWAP_BIT_BMSK                                                        0x8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_MSI_SWAP_BIT_SHFT                                                          3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SECURITY_BIT_BMSK                                                        0x4
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_SECURITY_BIT_SHFT                                                          2
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOPCNT_DISABLE_BMSK                                                     0x2
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_LOOPCNT_DISABLE_SHFT                                                       1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RING_ID_DISABLE_BMSK                                                     0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_RING_ID_DISABLE_SHFT                                                       0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x)                                                    ((x) + 0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_PHYS(x)                                                    ((x) + 0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OFFS                                                       (0xd4c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_RMSK                                                       0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                  0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x)                                                    ((x) + 0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_PHYS(x)                                                    ((x) + 0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OFFS                                                       (0xd50)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_RMSK                                                             0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_POR                                                        0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ATTR                                                                    0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                        0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x)                                             ((x) + 0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_PHYS(x)                                             ((x) + 0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OFFS                                                (0xd5c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_POR                                                 0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ATTR                                                             0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                      0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                              16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                  0x8000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                      15
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                            0x7fff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                 0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x)                                            ((x) + 0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_PHYS(x)                                            ((x) + 0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_OFFS                                               (0xd60)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_POR                                                0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ATTR                                                            0x1
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                 0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                         16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                         0x8000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                             15
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                      0x7fff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                           0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                          ((x) + 0xd64)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                          ((x) + 0xd64)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OFFS                                             (0xd64)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RMSK                                                  0x3ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_POR                                              0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ATTR                                                          0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                0x3ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                    0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x)                                                  ((x) + 0xd80)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_PHYS(x)                                                  ((x) + 0xd80)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OFFS                                                     (0xd80)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x)                                                  ((x) + 0xd84)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_PHYS(x)                                                  ((x) + 0xd84)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OFFS                                                     (0xd84)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                              0x100
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                  8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x)                                                      ((x) + 0xd88)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_PHYS(x)                                                      ((x) + 0xd88)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OFFS                                                         (0xd88)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI1_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x)                                            ((x) + 0xd8c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_PHYS(x)                                            ((x) + 0xd8c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OFFS                                               (0xd8c)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_RMSK                                               0xffc0ffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_POR                                                0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_POR_RMSK                                           0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ATTR                                                            0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                    0xff000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                            24
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                     0x800000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                           23
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                   0x400000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                         22
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x)                                                  ((x) + 0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_PHYS(x)                                                  ((x) + 0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OFFS                                                     (0xd90)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR_BMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_LSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x)                                                  ((x) + 0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_PHYS(x)                                                  ((x) + 0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OFFS                                                     (0xd94)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_RMSK                                                          0x1ff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                              0x100
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                  8
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR_BMSK                                                      0xff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_BASE_MSB_ADDR_SHFT                                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x)                                                      ((x) + 0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_PHYS(x)                                                      ((x) + 0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OFFS                                                         (0xd98)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_POR                                                          0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_POR_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ATTR                                                                      0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_VALUE_BMSK                                                   0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MSI2_DATA_VALUE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x)                                                ((x) + 0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_PHYS(x)                                                ((x) + 0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OFFS                                                   (0xda8)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_RMSK                                                       0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_POR                                                    0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ATTR                                                                0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                    0xffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x)                                                         ((x) + 0xdac)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_PHYS(x)                                                         ((x) + 0xdac)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OFFS                                                            (0xdac)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_RMSK                                                            0xffff003f
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                   0xffff0000
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                           16
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                          0x3f
+#define HWIO_TCL_R0_TCL_STATUS1_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                             0
+
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0xe28)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0xe28)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OFFS                                                               (0xe28)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0xe2c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0xe2c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OFFS                                                               (0xe2c)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_TCL_R0_TCL2FW_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x)                                                                  ((x) + 0xe30)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_PHYS(x)                                                                  ((x) + 0xe30)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OFFS                                                                     (0xe30)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RMSK                                                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_POR                                                                      0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ATTR                                                                                  0x3
+#define HWIO_TCL_R0_TCL2FW_RING_ID_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_ID_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_ID_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_TCL_R0_TCL2FW_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_TCL_R0_TCL2FW_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x)                                                              ((x) + 0xe34)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_PHYS(x)                                                              ((x) + 0xe34)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_OFFS                                                                 (0xe34)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x)                                                                ((x) + 0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_PHYS(x)                                                                ((x) + 0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OFFS                                                                   (0xe38)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RMSK                                                                    0x7ffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_POR                                                                    0x00000080
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ATTR                                                                                0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MISC_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MISC_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_BMSK                                            0x4000000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_ADD_8_ENTRIES_FOR_DEBUG_SHFT                                                   26
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OFFS                                                            (0xe3c)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OFFS                                                            (0xe40)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OFFS                                                     (0xe4c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_OFFS                                                    (0xe50)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0xe54)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0xe54)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0xe54)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xe70)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xe70)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OFFS                                                          (0xe70)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xe74)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xe74)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OFFS                                                          (0xe74)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xe78)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xe78)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OFFS                                                              (0xe78)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x)                                                 ((x) + 0xe7c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_PHYS(x)                                                 ((x) + 0xe7c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OFFS                                                    (0xe7c)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_RMSK                                                    0xffc0ffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_POR                                                     0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ATTR                                                                 0x3
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_BMSK                         0xff000000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_INTERRUPT2_TIMER_THRESHOLD_SHFT                                 24
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_BMSK                          0x800000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_CURRENT_SW_INTR2_WIRE_VALUE_SHFT                                23
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_BMSK                                        0x400000
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_SW_INTR2_MODE_SHFT                                              22
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_BMSK                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_PRODUCER_INT2_SETUP_HIGH_THRESHOLD_SHFT                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x)                                                       ((x) + 0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_PHYS(x)                                                       ((x) + 0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OFFS                                                          (0xe80)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x)                                                       ((x) + 0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_PHYS(x)                                                       ((x) + 0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OFFS                                                          (0xe84)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_POR                                                           0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_BMSK                                                   0x100
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_MSI2_ENABLE_SHFT                                                       8
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x)                                                           ((x) + 0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_PHYS(x)                                                           ((x) + 0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OFFS                                                              (0xe88)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_POR                                                               0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ATTR                                                                           0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MSI2_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xe98)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_TCL_R0_TCL2FW_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x)                                                              ((x) + 0xe9c)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_PHYS(x)                                                              ((x) + 0xe9c)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OFFS                                                                 (0xe9c)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_RMSK                                                                 0xffff003f
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_POR                                                                  0x00000000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_POR_RMSK                                                             0xffffffff
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_ATTR                                                                              0x3
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_IN(x)            \
+                in_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x), m)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x),v)
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_TCL2FW_RING_MISC_1_ADDR(x),m,v,HWIO_TCL_R0_TCL2FW_RING_MISC_1_IN(x))
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_BMSK                                        0xffff0000
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_TIME_THRESHOLD_TO_UPDATE_SHFT                                                16
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_BMSK                                               0x3f
+#define HWIO_TCL_R0_TCL2FW_RING_MISC_1_NUM_THRESHOLD_TO_UPDATE_SHFT                                                  0
+
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x)                                                           ((x) + 0xea0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_PHYS(x)                                                           ((x) + 0xea0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OFFS                                                              (0xea0)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_RMSK                                                              0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_POR                                                               0x00000000
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ATTR                                                                           0x3
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_IN(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_VAL_BMSK                                                          0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_LOW_VAL_SHFT                                                                   0
+
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x)                                                          ((x) + 0xea4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_PHYS(x)                                                          ((x) + 0xea4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OFFS                                                             (0xea4)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_RMSK                                                                   0xff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_POR                                                              0x00000000
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ATTR                                                                          0x3
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_IN(x))
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_VAL_BMSK                                                               0xff
+#define HWIO_TCL_R0_ASE_GST_BASE_ADDR_HIGH_VAL_SHFT                                                                  0
+
+#define HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x)                                                                    ((x) + 0xea8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_PHYS(x)                                                                    ((x) + 0xea8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OFFS                                                                       (0xea8)
+#define HWIO_TCL_R0_ASE_GST_SIZE_RMSK                                                                          0xfffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_POR                                                                        0x00000000
+#define HWIO_TCL_R0_ASE_GST_SIZE_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_ATTR                                                                                    0x3
+#define HWIO_TCL_R0_ASE_GST_SIZE_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x))
+#define HWIO_TCL_R0_ASE_GST_SIZE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_GST_SIZE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_GST_SIZE_ADDR(x),m,v,HWIO_TCL_R0_ASE_GST_SIZE_IN(x))
+#define HWIO_TCL_R0_ASE_GST_SIZE_VAL_BMSK                                                                      0xfffff
+#define HWIO_TCL_R0_ASE_GST_SIZE_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x)                                                                 ((x) + 0xeac)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_PHYS(x)                                                                 ((x) + 0xeac)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OFFS                                                                    (0xeac)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_RMSK                                                                    0xffff3fff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_POR                                                                     0x00003806
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_ATTR                                                                                 0x3
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x))
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_SEARCH_CTRL_ADDR(x),m,v,HWIO_TCL_R0_ASE_SEARCH_CTRL_IN(x))
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_TIMEOUT_THRESH_BMSK                                                     0xffff0000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_TIMEOUT_THRESH_SHFT                                                             16
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_CMD_READ_BYPASS_EN_BMSK                                               0x2000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_CMD_READ_BYPASS_EN_SHFT                                                   13
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_WRITE_BACK_FIX_EN_BMSK                                                0x1000
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_WRITE_BACK_FIX_EN_SHFT                                                    12
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_ONLY_ENTRY_CMD_FIX_EN_BMSK                                             0x800
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_ONLY_ENTRY_CMD_FIX_EN_SHFT                                                11
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_FAILURES_ENABLE_BMSK                                                   0x400
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_FAILURES_ENABLE_SHFT                                                      10
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_DISABLE_BMSK                                                           0x200
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_CACHE_DISABLE_SHFT                                                               9
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_SEARCH_SWAP_BMSK                                                             0x100
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_SEARCH_SWAP_SHFT                                                                 8
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_MAX_SEARCH_BMSK                                                               0xff
+#define HWIO_TCL_R0_ASE_SEARCH_CTRL_MAX_SEARCH_SHFT                                                                  0
+
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x)                                                                ((x) + 0xeb0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_PHYS(x)                                                                ((x) + 0xeb0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OFFS                                                                   (0xeb0)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_RMSK                                                                          0x3
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_POR                                                                    0x00000000
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x))
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_PCIE_VC_CTRL_ADDR(x),m,v,HWIO_TCL_R0_ASE_PCIE_VC_CTRL_IN(x))
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_1_BMSK                                                            0x2
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_1_SHFT                                                              1
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_0_BMSK                                                            0x1
+#define HWIO_TCL_R0_ASE_PCIE_VC_CTRL_GXI_RD_VCID_0_SHFT                                                              0
+
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x)                                                                ((x) + 0xeb4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_PHYS(x)                                                                ((x) + 0xeb4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OFFS                                                                   (0xeb4)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_WATCHDOG_WAR_ADDR(x),m,v,HWIO_TCL_R0_ASE_WATCHDOG_WAR_IN(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_WAR_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x)                                                                ((x) + 0xeb8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_PHYS(x)                                                                ((x) + 0xeb8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OFFS                                                                   (0xeb8)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_POR                                                                    0x0000ffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_ATTR                                                                                0x3
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_WATCHDOG_ERR_ADDR(x),m,v,HWIO_TCL_R0_ASE_WATCHDOG_ERR_IN(x))
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_STATUS_BMSK                                                            0xffff0000
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_STATUS_SHFT                                                                    16
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_LIMIT_BMSK                                                                 0xffff
+#define HWIO_TCL_R0_ASE_WATCHDOG_ERR_LIMIT_SHFT                                                                      0
+
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x)                                                             ((x) + 0xebc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_PHYS(x)                                                             ((x) + 0xebc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OFFS                                                                (0xebc)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_RMSK                                                                0xffffffff
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_POR                                                                 0x00000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ATTR                                                                             0x3
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R0_ASE_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_TCL_R0_ASE_CLKGATE_DISABLE_IN(x))
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CLK_EXTEND_BMSK                                                     0x80000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CLK_EXTEND_SHFT                                                             31
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CPU_IF_EXTEND_BMSK                                                  0x40000000
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CPU_IF_EXTEND_SHFT                                                          30
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_RSRVD_BMSK                                                      0x3ffffe00
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_RSRVD_SHFT                                                               9
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_TOP_BMSK                                                             0x100
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_TOP_SHFT                                                                 8
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CACHE_BMSK                                                                0x80
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_CACHE_SHFT                                                                   7
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_SLOTS_ARRAY_HASH_BMSK                                                     0x40
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_SLOTS_ARRAY_HASH_SHFT                                                        6
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_APP_RETURN_BMSK                                                           0x20
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_APP_RETURN_SHFT                                                              5
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP2_BMSK                                                            0x10
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP2_SHFT                                                               4
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP1_BMSK                                                             0x8
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_RESP1_SHFT                                                               3
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS2_BMSK                                                              0x4
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS2_SHFT                                                                2
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS1_BMSK                                                              0x2
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_MEM_ISS1_SHFT                                                                1
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_CTL_BMSK                                                               0x1
+#define HWIO_TCL_R0_ASE_CLKGATE_DISABLE_GSE_CTL_SHFT                                                                 0
+
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x)                                                          ((x) + 0xec0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_PHYS(x)                                                          ((x) + 0xec0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_OFFS                                                             (0xec0)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_RMSK                                                                    0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_POR                                                              0x00000000
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_POR_RMSK                                                         0xffffffff
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ATTR                                                                          0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_IN(x)            \
+                in_dword(HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x))
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_ADDR(x), m)
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_STATUS_BMSK                                                             0x1
+#define HWIO_TCL_R0_ASE_WRITE_BACK_PENDING_STATUS_SHFT                                                               0
+
+#define HWIO_TCL_R1_CACHE_FLUSH_ADDR(x)                                                                     ((x) + 0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_PHYS(x)                                                                     ((x) + 0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_OFFS                                                                        (0x1000)
+#define HWIO_TCL_R1_CACHE_FLUSH_RMSK                                                                               0x3
+#define HWIO_TCL_R1_CACHE_FLUSH_POR                                                                         0x00000000
+#define HWIO_TCL_R1_CACHE_FLUSH_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_CACHE_FLUSH_ATTR                                                                                     0x3
+#define HWIO_TCL_R1_CACHE_FLUSH_IN(x)            \
+                in_dword(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x))
+#define HWIO_TCL_R1_CACHE_FLUSH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x), m)
+#define HWIO_TCL_R1_CACHE_FLUSH_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x),v)
+#define HWIO_TCL_R1_CACHE_FLUSH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_CACHE_FLUSH_ADDR(x),m,v,HWIO_TCL_R1_CACHE_FLUSH_IN(x))
+#define HWIO_TCL_R1_CACHE_FLUSH_STATUS_BMSK                                                                        0x2
+#define HWIO_TCL_R1_CACHE_FLUSH_STATUS_SHFT                                                                          1
+#define HWIO_TCL_R1_CACHE_FLUSH_ENABLE_BMSK                                                                        0x1
+#define HWIO_TCL_R1_CACHE_FLUSH_ENABLE_SHFT                                                                          0
+
+#define HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x)                                                                  ((x) + 0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_PHYS(x)                                                                  ((x) + 0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_OFFS                                                                     (0x1004)
+#define HWIO_TCL_R1_SM_STATES_IX_0_RMSK                                                                     0x7fffffff
+#define HWIO_TCL_R1_SM_STATES_IX_0_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_0_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_0_TLV_GEN_BMSK                                                             0x78000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_TLV_GEN_SHFT                                                                     27
+#define HWIO_TCL_R1_SM_STATES_IX_0_EXTN_DESC_FETCH_BMSK                                                      0x7000000
+#define HWIO_TCL_R1_SM_STATES_IX_0_EXTN_DESC_FETCH_SHFT                                                             24
+#define HWIO_TCL_R1_SM_STATES_IX_0_MSDU_FETCH_BMSK                                                            0xe00000
+#define HWIO_TCL_R1_SM_STATES_IX_0_MSDU_FETCH_SHFT                                                                  21
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL_CREDIT_RING_BMSK                                                    0x1c0000
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL_CREDIT_RING_SHFT                                                          18
+#define HWIO_TCL_R1_SM_STATES_IX_0_FW2TCL1_RING_BMSK                                                           0x38000
+#define HWIO_TCL_R1_SM_STATES_IX_0_FW2TCL1_RING_SHFT                                                                15
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL5_RING_BMSK                                                            0x7000
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL5_RING_SHFT                                                                12
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL4_RING_BMSK                                                             0xe00
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL4_RING_SHFT                                                                 9
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL3_RING_BMSK                                                             0x1c0
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL3_RING_SHFT                                                                 6
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL2_RING_BMSK                                                              0x38
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL2_RING_SHFT                                                                 3
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL1_RING_BMSK                                                               0x7
+#define HWIO_TCL_R1_SM_STATES_IX_0_SW2TCL1_RING_SHFT                                                                 0
+
+#define HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x)                                                                  ((x) + 0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_PHYS(x)                                                                  ((x) + 0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_OFFS                                                                     (0x1008)
+#define HWIO_TCL_R1_SM_STATES_IX_1_RMSK                                                                     0xfffe3fff
+#define HWIO_TCL_R1_SM_STATES_IX_1_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_1_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_BMSK                                                   0xe0000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_SHFT                                                           29
+#define HWIO_TCL_R1_SM_STATES_IX_1_DSCP_TABLE_ACC_BMSK                                                      0x1c000000
+#define HWIO_TCL_R1_SM_STATES_IX_1_DSCP_TABLE_ACC_SHFT                                                              26
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_RING_FW_CTRL_BMSK                                                    0x3800000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_RING_FW_CTRL_SHFT                                                           23
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_METADATA_BMSK                                                    0x700000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_METADATA_SHFT                                                          20
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_BMSK                                                              0xe0000
+#define HWIO_TCL_R1_SM_STATES_IX_1_PROD_CTRL_SHFT                                                                   17
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_STATUS1_BMSK                                                             0x3800
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL_STATUS1_SHFT                                                                 11
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2FW_BMSK                                                                   0x700
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2FW_SHFT                                                                       8
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2TQM_BMSK                                                                   0xe0
+#define HWIO_TCL_R1_SM_STATES_IX_1_TCL2TQM_SHFT                                                                      5
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_RES_WR_BMSK                                                           0x18
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_RES_WR_SHFT                                                              3
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_BMSK                                                                   0x7
+#define HWIO_TCL_R1_SM_STATES_IX_1_GSE_CTRL_SHFT                                                                     0
+
+#define HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x)                                                                  ((x) + 0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_PHYS(x)                                                                  ((x) + 0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_OFFS                                                                     (0x100c)
+#define HWIO_TCL_R1_SM_STATES_IX_2_RMSK                                                                          0x3ff
+#define HWIO_TCL_R1_SM_STATES_IX_2_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SM_STATES_IX_2_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SM_STATES_IX_2_ATTR                                                                                  0x1
+#define HWIO_TCL_R1_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x))
+#define HWIO_TCL_R1_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_BMSK                                                     0x380
+#define HWIO_TCL_R1_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_SHFT                                                         7
+#define HWIO_TCL_R1_SM_STATES_IX_2_PPE2TCL1_RING_BMSK                                                             0x70
+#define HWIO_TCL_R1_SM_STATES_IX_2_PPE2TCL1_RING_SHFT                                                                4
+#define HWIO_TCL_R1_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_BMSK                                                       0xc
+#define HWIO_TCL_R1_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_SHFT                                                         2
+#define HWIO_TCL_R1_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_BMSK                                                           0x3
+#define HWIO_TCL_R1_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_SHFT                                                             0
+
+#define HWIO_TCL_R1_STATUS_ADDR(x)                                                                          ((x) + 0x1010)
+#define HWIO_TCL_R1_STATUS_PHYS(x)                                                                          ((x) + 0x1010)
+#define HWIO_TCL_R1_STATUS_OFFS                                                                             (0x1010)
+#define HWIO_TCL_R1_STATUS_RMSK                                                                             0xfffdffff
+#define HWIO_TCL_R1_STATUS_POR                                                                              0x00000000
+#define HWIO_TCL_R1_STATUS_POR_RMSK                                                                         0xffffffff
+#define HWIO_TCL_R1_STATUS_ATTR                                                                                          0x1
+#define HWIO_TCL_R1_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_STATUS_ADDR(x))
+#define HWIO_TCL_R1_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_STATUS_ASE_SKIP_RES_HANDLER_IDLE_BMSK                                                   0x80000000
+#define HWIO_TCL_R1_STATUS_ASE_SKIP_RES_HANDLER_IDLE_SHFT                                                           31
+#define HWIO_TCL_R1_STATUS_HDR_BUF_EMPTY_BMSK                                                               0x40000000
+#define HWIO_TCL_R1_STATUS_HDR_BUF_EMPTY_SHFT                                                                       30
+#define HWIO_TCL_R1_STATUS_DESC_BUF_EMPTY_BMSK                                                              0x20000000
+#define HWIO_TCL_R1_STATUS_DESC_BUF_EMPTY_SHFT                                                                      29
+#define HWIO_TCL_R1_STATUS_GSE_CCE_RES_IDLE_BMSK                                                            0x10000000
+#define HWIO_TCL_R1_STATUS_GSE_CCE_RES_IDLE_SHFT                                                                    28
+#define HWIO_TCL_R1_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_BMSK                                                  0x8000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_SHFT                                                         27
+#define HWIO_TCL_R1_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_BMSK                                               0x4000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_SHFT                                                      26
+#define HWIO_TCL_R1_STATUS_PROD_RING_CTRL_IDLE_BMSK                                                          0x2000000
+#define HWIO_TCL_R1_STATUS_PROD_RING_CTRL_IDLE_SHFT                                                                 25
+#define HWIO_TCL_R1_STATUS_TLV_DECODER_IDLE_BMSK                                                             0x1000000
+#define HWIO_TCL_R1_STATUS_TLV_DECODER_IDLE_SHFT                                                                    24
+#define HWIO_TCL_R1_STATUS_TLV_GEN_IDLE_BMSK                                                                  0x800000
+#define HWIO_TCL_R1_STATUS_TLV_GEN_IDLE_SHFT                                                                        23
+#define HWIO_TCL_R1_STATUS_GSE_CTRL_IDLE_BMSK                                                                 0x400000
+#define HWIO_TCL_R1_STATUS_GSE_CTRL_IDLE_SHFT                                                                       22
+#define HWIO_TCL_R1_STATUS_CLFY_WRAP_IDLE_BMSK                                                                0x200000
+#define HWIO_TCL_R1_STATUS_CLFY_WRAP_IDLE_SHFT                                                                      21
+#define HWIO_TCL_R1_STATUS_CCE_OR_LCE_IDLE_BMSK                                                               0x100000
+#define HWIO_TCL_R1_STATUS_CCE_OR_LCE_IDLE_SHFT                                                                     20
+#define HWIO_TCL_R1_STATUS_ASE_IDLE_BMSK                                                                       0x80000
+#define HWIO_TCL_R1_STATUS_ASE_IDLE_SHFT                                                                            19
+#define HWIO_TCL_R1_STATUS_PARSER_IDLE_BMSK                                                                    0x40000
+#define HWIO_TCL_R1_STATUS_PARSER_IDLE_SHFT                                                                         18
+#define HWIO_TCL_R1_STATUS_TCL_STATUS1_PROD_IDLE_BMSK                                                          0x10000
+#define HWIO_TCL_R1_STATUS_TCL_STATUS1_PROD_IDLE_SHFT                                                               16
+#define HWIO_TCL_R1_STATUS_TCL2FW_PROD_IDLE_BMSK                                                                0x8000
+#define HWIO_TCL_R1_STATUS_TCL2FW_PROD_IDLE_SHFT                                                                    15
+#define HWIO_TCL_R1_STATUS_TCL2TQM_PROD_IDLE_BMSK                                                               0x4000
+#define HWIO_TCL_R1_STATUS_TCL2TQM_PROD_IDLE_SHFT                                                                   14
+#define HWIO_TCL_R1_STATUS_PPE2TCL1_CONS_IDLE_BMSK                                                              0x2000
+#define HWIO_TCL_R1_STATUS_PPE2TCL1_CONS_IDLE_SHFT                                                                  13
+#define HWIO_TCL_R1_STATUS_SW2TCL_CREDIT_CONS_IDLE_BMSK                                                         0x1000
+#define HWIO_TCL_R1_STATUS_SW2TCL_CREDIT_CONS_IDLE_SHFT                                                             12
+#define HWIO_TCL_R1_STATUS_FW2TCL1_CONS_IDLE_BMSK                                                                0x800
+#define HWIO_TCL_R1_STATUS_FW2TCL1_CONS_IDLE_SHFT                                                                   11
+#define HWIO_TCL_R1_STATUS_SW2TCL5_CONS_IDLE_BMSK                                                                0x400
+#define HWIO_TCL_R1_STATUS_SW2TCL5_CONS_IDLE_SHFT                                                                   10
+#define HWIO_TCL_R1_STATUS_SW2TCL4_CONS_IDLE_BMSK                                                                0x200
+#define HWIO_TCL_R1_STATUS_SW2TCL4_CONS_IDLE_SHFT                                                                    9
+#define HWIO_TCL_R1_STATUS_SW2TCL3_CONS_IDLE_BMSK                                                                0x100
+#define HWIO_TCL_R1_STATUS_SW2TCL3_CONS_IDLE_SHFT                                                                    8
+#define HWIO_TCL_R1_STATUS_SW2TCL2_CONS_IDLE_BMSK                                                                 0x80
+#define HWIO_TCL_R1_STATUS_SW2TCL2_CONS_IDLE_SHFT                                                                    7
+#define HWIO_TCL_R1_STATUS_SW2TCL1_CONS_IDLE_BMSK                                                                 0x40
+#define HWIO_TCL_R1_STATUS_SW2TCL1_CONS_IDLE_SHFT                                                                    6
+#define HWIO_TCL_R1_STATUS_GXI_IDLE_BMSK                                                                          0x20
+#define HWIO_TCL_R1_STATUS_GXI_IDLE_SHFT                                                                             5
+#define HWIO_TCL_R1_STATUS_DESC_RD_IDLE_BMSK                                                                      0x10
+#define HWIO_TCL_R1_STATUS_DESC_RD_IDLE_SHFT                                                                         4
+#define HWIO_TCL_R1_STATUS_SDU_HDR_FETCH_IDLE_BMSK                                                                 0x8
+#define HWIO_TCL_R1_STATUS_SDU_HDR_FETCH_IDLE_SHFT                                                                   3
+#define HWIO_TCL_R1_STATUS_LINK_DESC_FETCH_IDLE_BMSK                                                               0x4
+#define HWIO_TCL_R1_STATUS_LINK_DESC_FETCH_IDLE_SHFT                                                                 2
+#define HWIO_TCL_R1_STATUS_DATA_FETCH_IDLE_BMSK                                                                    0x2
+#define HWIO_TCL_R1_STATUS_DATA_FETCH_IDLE_SHFT                                                                      1
+#define HWIO_TCL_R1_STATUS_TCL_INT_IDLE_BMSK                                                                       0x1
+#define HWIO_TCL_R1_STATUS_TCL_INT_IDLE_SHFT                                                                         0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x)                                                             ((x) + 0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_PHYS(x)                                                             ((x) + 0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_OFFS                                                                (0x1014)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_RMSK                                                                0x7fffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_TLV_GEN_BMSK                                                        0x78000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_TLV_GEN_SHFT                                                                27
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_EXTN_DESC_FETCH_BMSK                                                 0x7000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_EXTN_DESC_FETCH_SHFT                                                        24
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_MSDU_FETCH_BMSK                                                       0xe00000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_MSDU_FETCH_SHFT                                                             21
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL_CREDIT_RING_BMSK                                               0x1c0000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL_CREDIT_RING_SHFT                                                     18
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_FW2TCL1_RING_BMSK                                                      0x38000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_FW2TCL1_RING_SHFT                                                           15
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL5_RING_BMSK                                                       0x7000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL5_RING_SHFT                                                           12
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL4_RING_BMSK                                                        0xe00
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL4_RING_SHFT                                                            9
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL3_RING_BMSK                                                        0x1c0
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL3_RING_SHFT                                                            6
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL2_RING_BMSK                                                         0x38
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL2_RING_SHFT                                                            3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL1_RING_BMSK                                                          0x7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_0_SW2TCL1_RING_SHFT                                                            0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x)                                                             ((x) + 0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PHYS(x)                                                             ((x) + 0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_OFFS                                                                (0x1018)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_RMSK                                                                0xfffe3fff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_BMSK                                              0xe0000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_IDLE_SEQUENCE_SHFT                                                      29
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_DSCP_TABLE_ACC_BMSK                                                 0x1c000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_DSCP_TABLE_ACC_SHFT                                                         26
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_RING_FW_CTRL_BMSK                                               0x3800000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_RING_FW_CTRL_SHFT                                                      23
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_METADATA_BMSK                                               0x700000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_METADATA_SHFT                                                     20
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_BMSK                                                         0xe0000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_PROD_CTRL_SHFT                                                              17
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_STATUS1_BMSK                                                        0x3800
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL_STATUS1_SHFT                                                            11
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2FW_BMSK                                                              0x700
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2FW_SHFT                                                                  8
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2TQM_BMSK                                                              0xe0
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_TCL2TQM_SHFT                                                                 5
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_RES_WR_BMSK                                                      0x18
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_RES_WR_SHFT                                                         3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_BMSK                                                              0x7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_1_GSE_CTRL_SHFT                                                                0
+
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x)                                                             ((x) + 0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_PHYS(x)                                                             ((x) + 0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_OFFS                                                                (0x101c)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_RMSK                                                                     0x3ff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_POR                                                                 0x00000000
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ATTR                                                                             0x1
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x))
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_BMSK                                                0x380
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_ASE_SKIP_RES_HANDLER_SHFT                                                    7
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_PPE2TCL1_RING_BMSK                                                        0x70
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_PPE2TCL1_RING_SHFT                                                           4
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_BMSK                                                  0xc
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_GSE_CCE_RES_CLFY_DIS_SHFT                                                    2
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_BMSK                                                      0x3
+#define HWIO_TCL_R1_WDOG_SM_STATES_IX_2_TLV_DEC_CLFY_DIS_SHFT                                                        0
+
+#define HWIO_TCL_R1_WDOG_STATUS_ADDR(x)                                                                     ((x) + 0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_PHYS(x)                                                                     ((x) + 0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_OFFS                                                                        (0x1020)
+#define HWIO_TCL_R1_WDOG_STATUS_RMSK                                                                        0xfffdffff
+#define HWIO_TCL_R1_WDOG_STATUS_POR                                                                         0x00000000
+#define HWIO_TCL_R1_WDOG_STATUS_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_WDOG_STATUS_ATTR                                                                                     0x1
+#define HWIO_TCL_R1_WDOG_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_WDOG_STATUS_ADDR(x))
+#define HWIO_TCL_R1_WDOG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_WDOG_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_SKIP_RES_HANDLER_IDLE_BMSK                                              0x80000000
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_SKIP_RES_HANDLER_IDLE_SHFT                                                      31
+#define HWIO_TCL_R1_WDOG_STATUS_HDR_BUF_EMPTY_BMSK                                                          0x40000000
+#define HWIO_TCL_R1_WDOG_STATUS_HDR_BUF_EMPTY_SHFT                                                                  30
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_BUF_EMPTY_BMSK                                                         0x20000000
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_BUF_EMPTY_SHFT                                                                 29
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CCE_RES_IDLE_BMSK                                                       0x10000000
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CCE_RES_IDLE_SHFT                                                               28
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_BMSK                                             0x8000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_FW_FIFO_CTRL_IDLE_SHFT                                                    27
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_BMSK                                          0x4000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_BUNCH_FIFO_CTRL_IDLE_SHFT                                                 26
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_CTRL_IDLE_BMSK                                                     0x2000000
+#define HWIO_TCL_R1_WDOG_STATUS_PROD_RING_CTRL_IDLE_SHFT                                                            25
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_DECODER_IDLE_BMSK                                                        0x1000000
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_DECODER_IDLE_SHFT                                                               24
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_GEN_IDLE_BMSK                                                             0x800000
+#define HWIO_TCL_R1_WDOG_STATUS_TLV_GEN_IDLE_SHFT                                                                   23
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CTRL_IDLE_BMSK                                                            0x400000
+#define HWIO_TCL_R1_WDOG_STATUS_GSE_CTRL_IDLE_SHFT                                                                  22
+#define HWIO_TCL_R1_WDOG_STATUS_CLFY_WRAP_IDLE_BMSK                                                           0x200000
+#define HWIO_TCL_R1_WDOG_STATUS_CLFY_WRAP_IDLE_SHFT                                                                 21
+#define HWIO_TCL_R1_WDOG_STATUS_CCE_OR_LCE_IDLE_BMSK                                                          0x100000
+#define HWIO_TCL_R1_WDOG_STATUS_CCE_OR_LCE_IDLE_SHFT                                                                20
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_IDLE_BMSK                                                                  0x80000
+#define HWIO_TCL_R1_WDOG_STATUS_ASE_IDLE_SHFT                                                                       19
+#define HWIO_TCL_R1_WDOG_STATUS_PARSER_IDLE_BMSK                                                               0x40000
+#define HWIO_TCL_R1_WDOG_STATUS_PARSER_IDLE_SHFT                                                                    18
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_STATUS1_PROD_IDLE_BMSK                                                     0x10000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_STATUS1_PROD_IDLE_SHFT                                                          16
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2FW_PROD_IDLE_BMSK                                                           0x8000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2FW_PROD_IDLE_SHFT                                                               15
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2TQM_PROD_IDLE_BMSK                                                          0x4000
+#define HWIO_TCL_R1_WDOG_STATUS_TCL2TQM_PROD_IDLE_SHFT                                                              14
+#define HWIO_TCL_R1_WDOG_STATUS_PPE2TCL1_CONS_IDLE_BMSK                                                         0x2000
+#define HWIO_TCL_R1_WDOG_STATUS_PPE2TCL1_CONS_IDLE_SHFT                                                             13
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL_CREDIT_CONS_IDLE_BMSK                                                    0x1000
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL_CREDIT_CONS_IDLE_SHFT                                                        12
+#define HWIO_TCL_R1_WDOG_STATUS_FW2TCL1_CONS_IDLE_BMSK                                                           0x800
+#define HWIO_TCL_R1_WDOG_STATUS_FW2TCL1_CONS_IDLE_SHFT                                                              11
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL5_CONS_IDLE_BMSK                                                           0x400
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL5_CONS_IDLE_SHFT                                                              10
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL4_CONS_IDLE_BMSK                                                           0x200
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL4_CONS_IDLE_SHFT                                                               9
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL3_CONS_IDLE_BMSK                                                           0x100
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL3_CONS_IDLE_SHFT                                                               8
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL2_CONS_IDLE_BMSK                                                            0x80
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL2_CONS_IDLE_SHFT                                                               7
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL1_CONS_IDLE_BMSK                                                            0x40
+#define HWIO_TCL_R1_WDOG_STATUS_SW2TCL1_CONS_IDLE_SHFT                                                               6
+#define HWIO_TCL_R1_WDOG_STATUS_GXI_IDLE_BMSK                                                                     0x20
+#define HWIO_TCL_R1_WDOG_STATUS_GXI_IDLE_SHFT                                                                        5
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_RD_IDLE_BMSK                                                                 0x10
+#define HWIO_TCL_R1_WDOG_STATUS_DESC_RD_IDLE_SHFT                                                                    4
+#define HWIO_TCL_R1_WDOG_STATUS_SDU_HDR_FETCH_IDLE_BMSK                                                            0x8
+#define HWIO_TCL_R1_WDOG_STATUS_SDU_HDR_FETCH_IDLE_SHFT                                                              3
+#define HWIO_TCL_R1_WDOG_STATUS_LINK_DESC_FETCH_IDLE_BMSK                                                          0x4
+#define HWIO_TCL_R1_WDOG_STATUS_LINK_DESC_FETCH_IDLE_SHFT                                                            2
+#define HWIO_TCL_R1_WDOG_STATUS_DATA_FETCH_IDLE_BMSK                                                               0x2
+#define HWIO_TCL_R1_WDOG_STATUS_DATA_FETCH_IDLE_SHFT                                                                 1
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_INT_IDLE_BMSK                                                                  0x1
+#define HWIO_TCL_R1_WDOG_STATUS_TCL_INT_IDLE_SHFT                                                                    0
+
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x)                                                    ((x) + 0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PHYS(x)                                                    ((x) + 0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_OFFS                                                       (0x1024)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_RMSK                                                          0x3f7ff
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_POR                                                        0x00000000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ATTR                                                                    0x1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x))
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PARSER_BMSK                                                   0x20000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PARSER_SHFT                                                        17
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ASE_BMSK                                                      0x10000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_ASE_SHFT                                                           16
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_METADATA_FETCH_BMSK                                            0x8000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_METADATA_FETCH_SHFT                                                15
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PEER_DATA_FETCH_BMSK                                           0x4000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PEER_DATA_FETCH_SHFT                                               14
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_HDR_DATA_FETCH_BMSK                                            0x2000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_HDR_DATA_FETCH_SHFT                                                13
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_LINK_EXTN_FETCH_BMSK                                           0x1000
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_LINK_EXTN_FETCH_SHFT                                               12
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL_STATUS1_BMSK                                                0x400
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL_STATUS1_SHFT                                                   10
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2FW_BMSK                                                     0x200
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2FW_SHFT                                                         9
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2TQM_BMSK                                                    0x100
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_TCL2TQM_SHFT                                                        8
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PPE2TCL1_BMSK                                                    0x80
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_PPE2TCL1_SHFT                                                       7
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL_CREDIT_BMSK                                               0x40
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL_CREDIT_SHFT                                                  6
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_FW2TCL1_BMSK                                                     0x20
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_FW2TCL1_SHFT                                                        5
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL5_BMSK                                                     0x10
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL5_SHFT                                                        4
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL4_BMSK                                                      0x8
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL4_SHFT                                                        3
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL3_BMSK                                                      0x4
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL3_SHFT                                                        2
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL2_BMSK                                                      0x2
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL2_SHFT                                                        1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL1_BMSK                                                      0x1
+#define HWIO_TCL_R1_EXTERNAL_BACKPRESSURE_STATUS_SW2TCL1_SHFT                                                        0
+
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x)                                                            ((x) + 0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_PHYS(x)                                                            ((x) + 0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_OFFS                                                               (0x1028)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_RMSK                                                                     0xff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_POR                                                                0x00000000
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_POR_RMSK                                                           0xffffffff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ATTR                                                                            0x1
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_IN(x)            \
+                in_dword(HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x))
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_ADDR(x), m)
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_REQ_RESP_TIME_BMSK                                                       0xff
+#define HWIO_TCL_R1_IDLE_SEQUENCE_STATUS_REQ_RESP_TIME_SHFT                                                          0
+
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x)                                                                  ((x) + 0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PHYS(x)                                                                  ((x) + 0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OFFS                                                                     (0x102c)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_RMSK                                                                     0x3fffffff
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_POR                                                                      0x00000000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x),v)
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_TESTBUS_CTRL_0_ADDR(x),m,v,HWIO_TCL_R1_TESTBUS_CTRL_0_IN(x))
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                0x20000000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                        29
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_TCL_MAIN_SELECT_BMSK                                                     0x1f800000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_TCL_MAIN_SELECT_SHFT                                                             23
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_GXI_SELECT_BMSK                                                            0x7c0000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_GXI_SELECT_SHFT                                                                  18
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_FSE_SELECT_BMSK                                                             0x3c000
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_FSE_SELECT_SHFT                                                                  14
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ASE_SELECT_BMSK                                                              0x3c00
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_ASE_SELECT_SHFT                                                                  10
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PARSER_SELECT_BMSK                                                            0x3e0
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_PARSER_SELECT_SHFT                                                                5
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_CCE_SELECT_BMSK                                                                0x1f
+#define HWIO_TCL_R1_TESTBUS_CTRL_0_CCE_SELECT_SHFT                                                                   0
+
+#define HWIO_TCL_R1_TESTBUS_LOW_ADDR(x)                                                                     ((x) + 0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_PHYS(x)                                                                     ((x) + 0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_OFFS                                                                        (0x1030)
+#define HWIO_TCL_R1_TESTBUS_LOW_RMSK                                                                        0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_POR                                                                         0x00000000
+#define HWIO_TCL_R1_TESTBUS_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_ATTR                                                                                     0x1
+#define HWIO_TCL_R1_TESTBUS_LOW_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_LOW_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_LOW_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_LOW_VAL_BMSK                                                                    0xffffffff
+#define HWIO_TCL_R1_TESTBUS_LOW_VAL_SHFT                                                                             0
+
+#define HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x)                                                                    ((x) + 0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_PHYS(x)                                                                    ((x) + 0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_OFFS                                                                       (0x1034)
+#define HWIO_TCL_R1_TESTBUS_HIGH_RMSK                                                                             0xff
+#define HWIO_TCL_R1_TESTBUS_HIGH_POR                                                                        0x00000000
+#define HWIO_TCL_R1_TESTBUS_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_TCL_R1_TESTBUS_HIGH_ATTR                                                                                    0x1
+#define HWIO_TCL_R1_TESTBUS_HIGH_IN(x)            \
+                in_dword(HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x))
+#define HWIO_TCL_R1_TESTBUS_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_TESTBUS_HIGH_ADDR(x), m)
+#define HWIO_TCL_R1_TESTBUS_HIGH_VAL_BMSK                                                                         0xff
+#define HWIO_TCL_R1_TESTBUS_HIGH_VAL_SHFT                                                                            0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x)                                                                  ((x) + 0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_PHYS(x)                                                                  ((x) + 0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OFFS                                                                     (0x1038)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_0_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_0_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x)                                                                  ((x) + 0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_PHYS(x)                                                                  ((x) + 0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OFFS                                                                     (0x103c)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_1_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_1_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x)                                                                  ((x) + 0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_PHYS(x)                                                                  ((x) + 0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OFFS                                                                     (0x1040)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_2_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_2_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_2_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_2_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x)                                                                  ((x) + 0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_PHYS(x)                                                                  ((x) + 0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OFFS                                                                     (0x1044)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_POR                                                                      0x0000ffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_EVENTMASK_IX_3_IN(x)            \
+                in_dword(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x), m)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x),v)
+#define HWIO_TCL_R1_EVENTMASK_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_EVENTMASK_IX_3_ADDR(x),m,v,HWIO_TCL_R1_EVENTMASK_IX_3_IN(x))
+#define HWIO_TCL_R1_EVENTMASK_IX_3_VAL_BMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_EVENTMASK_IX_3_VAL_SHFT                                                                          0
+
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                       ((x) + 0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                       ((x) + 0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                          (0x1048)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                          0xffffffff
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                           0x7ffe0002
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                      0xffffffff
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                       0x3
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                        0xfffe0000
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                                17
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                         0x1fffc
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                               2
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                      0x2
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                        1
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                       0x1
+#define HWIO_TCL_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                         0
+
+#define HWIO_TCL_R1_SPARE_REGISTER_ADDR(x)                                                                  ((x) + 0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_PHYS(x)                                                                  ((x) + 0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_OFFS                                                                     (0x104c)
+#define HWIO_TCL_R1_SPARE_REGISTER_RMSK                                                                     0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_POR                                                                      0x00000000
+#define HWIO_TCL_R1_SPARE_REGISTER_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_ATTR                                                                                  0x3
+#define HWIO_TCL_R1_SPARE_REGISTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x))
+#define HWIO_TCL_R1_SPARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x), m)
+#define HWIO_TCL_R1_SPARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x),v)
+#define HWIO_TCL_R1_SPARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_SPARE_REGISTER_ADDR(x),m,v,HWIO_TCL_R1_SPARE_REGISTER_IN(x))
+#define HWIO_TCL_R1_SPARE_REGISTER_TCL_SPARE_FIELD_32_BMSK                                                  0xffffffff
+#define HWIO_TCL_R1_SPARE_REGISTER_TCL_SPARE_FIELD_32_SHFT                                                           0
+
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x)                                                               ((x) + 0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_PHYS(x)                                                               ((x) + 0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OFFS                                                                  (0x1050)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_RMSK                                                                         0x1
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_POR                                                                   0x00000000
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_POR_RMSK                                                              0xffffffff
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_ATTR                                                                               0x3
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TCL_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                                  0x1
+#define HWIO_TCL_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                    0
+
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x)                                                           ((x) + 0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_PHYS(x)                                                           ((x) + 0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OFFS                                                              (0x1054)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_RMSK                                                                     0x1
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_POR                                                               0x00000000
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ATTR                                                                           0x3
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_IN(x))
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                              0x1
+#define HWIO_TCL_R1_ASE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                0
+
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x)                                                        ((x) + 0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_PHYS(x)                                                        ((x) + 0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OFFS                                                           (0x1058)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_RMSK                                                                  0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_POR                                                            0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_POR_RMSK                                                       0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ATTR                                                                        0x3
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_ADDR(x),m,v,HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_IN(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_EN_BMSK                                                               0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CLEAR_COUNTERS_EN_SHFT                                                                 0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x)                                                ((x) + 0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_PHYS(x)                                                ((x) + 0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_OFFS                                                   (0x105c)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_POR                                                    0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ATTR                                                                0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_VAL_BMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_VAL_SHFT                                                        0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x)                                                  ((x) + 0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_PHYS(x)                                                  ((x) + 0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_OFFS                                                     (0x1060)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_RMSK                                                     0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_POR                                                      0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_POR_RMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ATTR                                                                  0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_VAL_BMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_VAL_SHFT                                                          0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x)                                             ((x) + 0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_PHYS(x)                                             ((x) + 0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_OFFS                                                (0x1064)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_RMSK                                                0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_POR                                                 0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_POR_RMSK                                            0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ATTR                                                             0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_VAL_BMSK                                            0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_VAL_SHFT                                                     0
+
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x)                                               ((x) + 0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PHYS(x)                                               ((x) + 0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_OFFS                                                  (0x1068)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_RMSK                                                     0xfffff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_POR                                                   0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ATTR                                                               0x1
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PEAK_BMSK                                                0xffc00
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_PEAK_SHFT                                                     10
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_CURR_BMSK                                                  0x3ff
+#define HWIO_TCL_R1_ASE_DEBUG_CACHE_OCCUPANCY_COUNTER_CURR_SHFT                                                      0
+
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x)                                                   ((x) + 0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PHYS(x)                                                   ((x) + 0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_OFFS                                                      (0x106c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_RMSK                                                       0x3ffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_POR                                                       0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_POR_RMSK                                                  0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ATTR                                                                   0x1
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_SQUARE_OCCUPANCY_BMSK                                      0x3fffc00
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_SQUARE_OCCUPANCY_SHFT                                             10
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PEAK_NUM_SEARCH_PENDING_BMSK                                   0x3e0
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_PEAK_NUM_SEARCH_PENDING_SHFT                                       5
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_NUM_SEARCH_PENDING_BMSK                                         0x1f
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_NUM_SEARCH_PENDING_SHFT                                            0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x)                                              ((x) + 0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_PHYS(x)                                              ((x) + 0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_OFFS                                                 (0x1070)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_RMSK                                                 0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_POR                                                  0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_POR_RMSK                                             0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ATTR                                                              0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_VAL_BMSK                                             0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_CACHE_HITS_COUNTER_1_VAL_SHFT                                                      0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x)                                                ((x) + 0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_PHYS(x)                                                ((x) + 0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_OFFS                                                   (0x1074)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_RMSK                                                   0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_POR                                                    0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_POR_RMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ATTR                                                                0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_VAL_BMSK                                               0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SEARCHES_COUNTER_1_VAL_SHFT                                                        0
+
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x)                                           ((x) + 0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_PHYS(x)                                           ((x) + 0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_OFFS                                              (0x1078)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_RMSK                                              0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_POR                                               0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_POR_RMSK                                          0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ATTR                                                           0x1
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_VAL_BMSK                                          0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_NUM_SKIP_SEARCHES_COUNTER_1_VAL_SHFT                                                   0
+
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x)                                                 ((x) + 0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PHYS(x)                                                 ((x) + 0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_OFFS                                                    (0x107c)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_RMSK                                                         0x3ff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_POR                                                     0x00000000
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_POR_RMSK                                                0xffffffff
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ATTR                                                                 0x1
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x))
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PEAK_NUM_SEARCH_PENDING_BMSK                                 0x3e0
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_PEAK_NUM_SEARCH_PENDING_SHFT                                     5
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_NUM_SEARCH_PENDING_BMSK                                       0x1f
+#define HWIO_TCL_R1_ASE_DEBUG_SEARCH_STAT_COUNTER_1_NUM_SEARCH_PENDING_SHFT                                          0
+
+#define HWIO_TCL_R1_ASE_SM_STATES_ADDR(x)                                                                   ((x) + 0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_PHYS(x)                                                                   ((x) + 0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_OFFS                                                                      (0x1080)
+#define HWIO_TCL_R1_ASE_SM_STATES_RMSK                                                                        0x3fff0f
+#define HWIO_TCL_R1_ASE_SM_STATES_POR                                                                       0x00000000
+#define HWIO_TCL_R1_ASE_SM_STATES_POR_RMSK                                                                  0xffffffff
+#define HWIO_TCL_R1_ASE_SM_STATES_ATTR                                                                                   0x1
+#define HWIO_TCL_R1_ASE_SM_STATES_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_SM_STATES_ADDR(x))
+#define HWIO_TCL_R1_ASE_SM_STATES_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_SM_STATES_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_SM_STATES_GSE_CTRL_STATE_BMSK                                                         0x300000
+#define HWIO_TCL_R1_ASE_SM_STATES_GSE_CTRL_STATE_SHFT                                                               20
+#define HWIO_TCL_R1_ASE_SM_STATES_CACHE_CHK_STATE_BMSK                                                         0xc0000
+#define HWIO_TCL_R1_ASE_SM_STATES_CACHE_CHK_STATE_SHFT                                                              18
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS1_STATE_BMSK                                                          0x30000
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS1_STATE_SHFT                                                               16
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS2_STATE_BMSK                                                           0xc000
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_ISS2_STATE_SHFT                                                               14
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP1_STATE_BMSK                                                          0x3800
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP1_STATE_SHFT                                                              11
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP2_STATE_BMSK                                                           0x700
+#define HWIO_TCL_R1_ASE_SM_STATES_MEM_RESP2_STATE_SHFT                                                               8
+#define HWIO_TCL_R1_ASE_SM_STATES_APP_RETURN_STATE_BMSK                                                            0xf
+#define HWIO_TCL_R1_ASE_SM_STATES_APP_RETURN_STATE_SHFT                                                              0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x)                                                                 ((x) + 0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_PHYS(x)                                                                 ((x) + 0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OFFS                                                                    (0x1084)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_RMSK                                                                         0x3ff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_POR                                                                     0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ATTR                                                                                 0x3
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OUT(x, v)            \
+                out_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x),v)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R1_ASE_CACHE_DEBUG_ADDR(x),m,v,HWIO_TCL_R1_ASE_CACHE_DEBUG_IN(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_READ_IDX_BMSK                                                                0x3ff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_READ_IDX_SHFT                                                                    0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x)                                                     ((x) + 0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_PHYS(x)                                                     ((x) + 0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_OFFS                                                        (0x1088)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_RMSK                                                          0x7fffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_POR                                                         0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_POR_RMSK                                                    0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ATTR                                                                     0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_IN(x)            \
+                in_dword(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_ADDR(x), m)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_GST_IDX_BMSK                                                  0x7ffff8
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_GST_IDX_SHFT                                                         3
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_CACHE_ONLY_BMSK                                                    0x4
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_CACHE_ONLY_SHFT                                                      2
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_DIRTY_BMSK                                                         0x2
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_DIRTY_SHFT                                                           1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_VALID_BMSK                                                         0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_STATS_VALID_SHFT                                                           0
+
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n)                                                    ((base) + 0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_PHYS(base,n)                                                    ((base) + 0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_OFFS(n)                                                         (0X108C + (0x4*(n)))
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_RMSK                                                            0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_MAXn                                                                    31
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_POR                                                             0x00000000
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_POR_RMSK                                                        0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ATTR                                                                         0x1
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_INI(base,n)                \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n), HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_RMSK)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_ADDR(base,n), mask)
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_VAL_BMSK                                                        0xffffffff
+#define HWIO_TCL_R1_ASE_CACHE_DEBUG_ENTRY_n_VAL_SHFT                                                                 0
+
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x)                                                                 ((x) + 0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_PHYS(x)                                                                 ((x) + 0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OFFS                                                                    (0x2000)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL1_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x)                                                                 ((x) + 0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_PHYS(x)                                                                 ((x) + 0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OFFS                                                                    (0x2004)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL1_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x)                                                                 ((x) + 0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_PHYS(x)                                                                 ((x) + 0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OFFS                                                                    (0x2008)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL2_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL2_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x)                                                                 ((x) + 0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_PHYS(x)                                                                 ((x) + 0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OFFS                                                                    (0x200c)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL2_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL2_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL2_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x)                                                                 ((x) + 0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_PHYS(x)                                                                 ((x) + 0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OFFS                                                                    (0x2010)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL3_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL3_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x)                                                                 ((x) + 0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_PHYS(x)                                                                 ((x) + 0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OFFS                                                                    (0x2014)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL3_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL3_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL3_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x)                                                                 ((x) + 0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_PHYS(x)                                                                 ((x) + 0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OFFS                                                                    (0x2018)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL4_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL4_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x)                                                                 ((x) + 0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_PHYS(x)                                                                 ((x) + 0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OFFS                                                                    (0x201c)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL4_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL4_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL4_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_ADDR(x)                                                                 ((x) + 0x2020)
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_PHYS(x)                                                                 ((x) + 0x2020)
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_OFFS                                                                    (0x2020)
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL5_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL5_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL5_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL5_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL5_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_HEAD_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL5_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_ADDR(x)                                                                 ((x) + 0x2024)
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_PHYS(x)                                                                 ((x) + 0x2024)
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_OFFS                                                                    (0x2024)
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_RMSK                                                                       0xfffff
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL5_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL5_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL5_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL5_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL5_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_TAIL_PTR_BMSK                                                              0xfffff
+#define HWIO_TCL_R2_SW2TCL5_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x)                                                           ((x) + 0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_PHYS(x)                                                           ((x) + 0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OFFS                                                              (0x2028)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_RMSK                                                                 0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_POR                                                               0x00000000
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ATTR                                                                           0x3
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_IN(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_HEAD_PTR_BMSK                                                        0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_HP_HEAD_PTR_SHFT                                                              0
+
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x)                                                           ((x) + 0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_PHYS(x)                                                           ((x) + 0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OFFS                                                              (0x202c)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_RMSK                                                                 0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_POR                                                               0x00000000
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_POR_RMSK                                                          0xffffffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ATTR                                                                           0x3
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_IN(x))
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_TAIL_PTR_BMSK                                                        0xfffff
+#define HWIO_TCL_R2_SW2TCL_CREDIT_RING_TP_TAIL_PTR_SHFT                                                              0
+
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x)                                                                 ((x) + 0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_PHYS(x)                                                                 ((x) + 0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OFFS                                                                    (0x2030)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_FW2TCL1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_FW2TCL1_RING_HP_IN(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x)                                                                 ((x) + 0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_PHYS(x)                                                                 ((x) + 0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OFFS                                                                    (0x2034)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_FW2TCL1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_FW2TCL1_RING_TP_IN(x))
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_FW2TCL1_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_ADDR(x)                                                                ((x) + 0x2038)
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_PHYS(x)                                                                ((x) + 0x2038)
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_OFFS                                                                   (0x2038)
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_RMSK                                                                      0xfffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_POR                                                                    0x00000000
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_ATTR                                                                                0x3
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_PPE2TCL1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_PPE2TCL1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_PPE2TCL1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_PPE2TCL1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_PPE2TCL1_RING_HP_IN(x))
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_HEAD_PTR_BMSK                                                             0xfffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_HP_HEAD_PTR_SHFT                                                                   0
+
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_ADDR(x)                                                                ((x) + 0x203c)
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_PHYS(x)                                                                ((x) + 0x203c)
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_OFFS                                                                   (0x203c)
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_RMSK                                                                      0xfffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_POR                                                                    0x00000000
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_POR_RMSK                                                               0xffffffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_ATTR                                                                                0x3
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_PPE2TCL1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_PPE2TCL1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_PPE2TCL1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_PPE2TCL1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_PPE2TCL1_RING_TP_IN(x))
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_TAIL_PTR_BMSK                                                             0xfffff
+#define HWIO_TCL_R2_PPE2TCL1_RING_TP_TAIL_PTR_SHFT                                                                   0
+
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x)                                                                 ((x) + 0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_PHYS(x)                                                                 ((x) + 0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OFFS                                                                    (0x2040)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2TQM_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL2TQM_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_HEAD_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_HP_HEAD_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x)                                                                 ((x) + 0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_PHYS(x)                                                                 ((x) + 0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OFFS                                                                    (0x2044)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_RMSK                                                                        0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_POR                                                                     0x00000000
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_POR_RMSK                                                                0xffffffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_ATTR                                                                                 0x3
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2TQM_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL2TQM_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_TAIL_PTR_BMSK                                                               0xffff
+#define HWIO_TCL_R2_TCL2TQM_RING_TP_TAIL_PTR_SHFT                                                                    0
+
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x)                                                             ((x) + 0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_PHYS(x)                                                             ((x) + 0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OFFS                                                                (0x2048)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_RMSK                                                                    0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_POR                                                                 0x00000000
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_ATTR                                                                             0x3
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL_STATUS1_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL_STATUS1_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_HEAD_PTR_BMSK                                                           0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_HP_HEAD_PTR_SHFT                                                                0
+
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x)                                                             ((x) + 0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_PHYS(x)                                                             ((x) + 0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OFFS                                                                (0x204c)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_RMSK                                                                    0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_POR                                                                 0x00000000
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_POR_RMSK                                                            0xffffffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_ATTR                                                                             0x3
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL_STATUS1_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL_STATUS1_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_TAIL_PTR_BMSK                                                           0xffff
+#define HWIO_TCL_R2_TCL_STATUS1_RING_TP_TAIL_PTR_SHFT                                                                0
+
+#define HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x)                                                                  ((x) + 0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_PHYS(x)                                                                  ((x) + 0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OFFS                                                                     (0x2058)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_RMSK                                                                         0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_POR                                                                      0x00000000
+#define HWIO_TCL_R2_TCL2FW_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_ATTR                                                                                  0x3
+#define HWIO_TCL_R2_TCL2FW_RING_HP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x))
+#define HWIO_TCL_R2_TCL2FW_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2FW_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2FW_RING_HP_ADDR(x),m,v,HWIO_TCL_R2_TCL2FW_RING_HP_IN(x))
+#define HWIO_TCL_R2_TCL2FW_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x)                                                                  ((x) + 0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_PHYS(x)                                                                  ((x) + 0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OFFS                                                                     (0x205c)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_RMSK                                                                         0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_POR                                                                      0x00000000
+#define HWIO_TCL_R2_TCL2FW_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_ATTR                                                                                  0x3
+#define HWIO_TCL_R2_TCL2FW_RING_TP_IN(x)            \
+                in_dword(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x))
+#define HWIO_TCL_R2_TCL2FW_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x), m)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x),v)
+#define HWIO_TCL_R2_TCL2FW_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_TCL_R2_TCL2FW_RING_TP_ADDR(x),m,v,HWIO_TCL_R2_TCL2FW_RING_TP_IN(x))
+#define HWIO_TCL_R2_TCL2FW_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_TCL_R2_TCL2FW_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define MAC_CMN_PARSER_REG_REG_BASE                                                        (UMAC_BASE      + 0x00047000)
+#define MAC_CMN_PARSER_REG_REG_BASE_SIZE                                                   0x3000
+#define MAC_CMN_PARSER_REG_REG_BASE_USED                                                   0x1008
+#define MAC_CMN_PARSER_REG_REG_BASE_PHYS                                                   (UMAC_BASE_PHYS + 0x00047000)
+#define MAC_CMN_PARSER_REG_REG_BASE_OFFS                                                   0x00047000
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x)                                              ((x) + 0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_PHYS(x)                                              ((x) + 0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_OFFS                                                 (0x0)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_0_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x)                                              ((x) + 0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_PHYS(x)                                              ((x) + 0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_OFFS                                                 (0x4)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_POR                                                  0x0000002b
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_1_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x)                                              ((x) + 0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_PHYS(x)                                              ((x) + 0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_OFFS                                                 (0x8)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_POR                                                  0x0000003c
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_2_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x)                                              ((x) + 0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_PHYS(x)                                              ((x) + 0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_OFFS                                                 (0xc)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_POR                                                  0x00000033
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_3_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x)                                              ((x) + 0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_PHYS(x)                                              ((x) + 0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_OFFS                                                 (0x10)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_POR                                                  0x00000887
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_4_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x)                                              ((x) + 0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_PHYS(x)                                              ((x) + 0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_OFFS                                                 (0x14)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_POR                                                  0x0000082c
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ATTR                                                              0x1
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_5_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x)                                              ((x) + 0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_PHYS(x)                                              ((x) + 0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OFFS                                                 (0x18)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_6_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x)                                              ((x) + 0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_PHYS(x)                                              ((x) + 0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OFFS                                                 (0x1c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_7_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x)                                              ((x) + 0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_PHYS(x)                                              ((x) + 0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OFFS                                                 (0x20)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_8_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x)                                              ((x) + 0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_PHYS(x)                                              ((x) + 0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OFFS                                                 (0x24)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_RMSK                                                    0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_POR                                                  0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_POR_RMSK                                             0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ATTR                                                              0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_LEN_BMSK                                            0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_LEN_SHFT                                                  8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_ID_BMSK                                                0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_9_HDR_ID_SHFT                                                   0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x)                                             ((x) + 0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_PHYS(x)                                             ((x) + 0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OFFS                                                (0x28)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_10_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x)                                             ((x) + 0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_PHYS(x)                                             ((x) + 0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OFFS                                                (0x2c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_11_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x)                                             ((x) + 0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_PHYS(x)                                             ((x) + 0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OFFS                                                (0x30)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_12_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x)                                             ((x) + 0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_PHYS(x)                                             ((x) + 0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OFFS                                                (0x34)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_13_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x)                                             ((x) + 0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_PHYS(x)                                             ((x) + 0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OFFS                                                (0x38)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_14_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x)                                             ((x) + 0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_PHYS(x)                                             ((x) + 0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OFFS                                                (0x3c)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_RMSK                                                   0xfffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_ADDR(x),m,v,HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_IN(x))
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_LEN_BMSK                                           0xfff00
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_LEN_SHFT                                                 8
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_ID_BMSK                                               0xff
+#define HWIO_CP_R0_IPV6_EXTN_HDR_IX_15_HDR_ID_SHFT                                                  0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OFFS                                                (0x40)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_RMSK                                                      0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_POR                                                 0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_POR_RMSK                                            0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ATTR                                                             0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS1_BMSK                                             0xf0
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS1_SHFT                                                4
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS0_BMSK                                              0xf
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_EN_HEADERS0_SHFT                                                0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x)                                   ((x) + 0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_PHYS(x)                                   ((x) + 0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OFFS                                      (0x44)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_RMSK                                      0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_POR                                       0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_POR_RMSK                                  0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ATTR                                                   0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL3_BMSK                                 0xff000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL3_SHFT                                         24
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL2_BMSK                                   0xff0000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL2_SHFT                                         16
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL1_BMSK                                     0xff00
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL1_SHFT                                          8
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL0_BMSK                                       0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_0_SEL0_SHFT                                          0
+
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x)                                   ((x) + 0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_PHYS(x)                                   ((x) + 0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OFFS                                      (0x48)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_RMSK                                      0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_POR                                       0x00000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_POR_RMSK                                  0xffffffff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ATTR                                                   0x3
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_ADDR(x),m,v,HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_IN(x))
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL7_BMSK                                 0xff000000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL7_SHFT                                         24
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL6_BMSK                                   0xff0000
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL6_SHFT                                         16
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL5_BMSK                                     0xff00
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL5_SHFT                                          8
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL4_BMSK                                       0xff
+#define HWIO_CP_R0_IPV6_CRC_OPTIONS_HEADERS_IX_1_SEL4_SHFT                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_1_ADDR(x)                                                   ((x) + 0x4c)
+#define HWIO_CP_R0_L4_DPORT_IX_1_PHYS(x)                                                   ((x) + 0x4c)
+#define HWIO_CP_R0_L4_DPORT_IX_1_OFFS                                                      (0x4c)
+#define HWIO_CP_R0_L4_DPORT_IX_1_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_1_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_1_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_1_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_1_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_1_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_1_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_1_SEL1_BMSK                                                 0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_1_SEL1_SHFT                                                         16
+#define HWIO_CP_R0_L4_DPORT_IX_1_SEL0_BMSK                                                     0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_1_SEL0_SHFT                                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_2_ADDR(x)                                                   ((x) + 0x50)
+#define HWIO_CP_R0_L4_DPORT_IX_2_PHYS(x)                                                   ((x) + 0x50)
+#define HWIO_CP_R0_L4_DPORT_IX_2_OFFS                                                      (0x50)
+#define HWIO_CP_R0_L4_DPORT_IX_2_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_2_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_2_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_2_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_2_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_2_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_2_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_2_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_2_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_2_SEL3_BMSK                                                 0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_2_SEL3_SHFT                                                         16
+#define HWIO_CP_R0_L4_DPORT_IX_2_SEL2_BMSK                                                     0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_2_SEL2_SHFT                                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_3_ADDR(x)                                                   ((x) + 0x54)
+#define HWIO_CP_R0_L4_DPORT_IX_3_PHYS(x)                                                   ((x) + 0x54)
+#define HWIO_CP_R0_L4_DPORT_IX_3_OFFS                                                      (0x54)
+#define HWIO_CP_R0_L4_DPORT_IX_3_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_3_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_3_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_3_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_3_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_3_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_3_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_3_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_3_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_3_SEL5_BMSK                                                 0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_3_SEL5_SHFT                                                         16
+#define HWIO_CP_R0_L4_DPORT_IX_3_SEL4_BMSK                                                     0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_3_SEL4_SHFT                                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_4_ADDR(x)                                                   ((x) + 0x58)
+#define HWIO_CP_R0_L4_DPORT_IX_4_PHYS(x)                                                   ((x) + 0x58)
+#define HWIO_CP_R0_L4_DPORT_IX_4_OFFS                                                      (0x58)
+#define HWIO_CP_R0_L4_DPORT_IX_4_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_4_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_4_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_4_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_4_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_4_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_4_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_4_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_4_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_4_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_4_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_4_SEL7_BMSK                                                 0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_4_SEL7_SHFT                                                         16
+#define HWIO_CP_R0_L4_DPORT_IX_4_SEL6_BMSK                                                     0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_4_SEL6_SHFT                                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_5_ADDR(x)                                                   ((x) + 0x5c)
+#define HWIO_CP_R0_L4_DPORT_IX_5_PHYS(x)                                                   ((x) + 0x5c)
+#define HWIO_CP_R0_L4_DPORT_IX_5_OFFS                                                      (0x5c)
+#define HWIO_CP_R0_L4_DPORT_IX_5_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_5_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_5_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_5_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_5_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_5_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_5_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_5_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_5_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_5_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_5_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_5_SEL9_BMSK                                                 0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_5_SEL9_SHFT                                                         16
+#define HWIO_CP_R0_L4_DPORT_IX_5_SEL8_BMSK                                                     0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_5_SEL8_SHFT                                                          0
+
+#define HWIO_CP_R0_L4_DPORT_IX_6_ADDR(x)                                                   ((x) + 0x60)
+#define HWIO_CP_R0_L4_DPORT_IX_6_PHYS(x)                                                   ((x) + 0x60)
+#define HWIO_CP_R0_L4_DPORT_IX_6_OFFS                                                      (0x60)
+#define HWIO_CP_R0_L4_DPORT_IX_6_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_6_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_6_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_6_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_6_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_6_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_6_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_6_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_6_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_6_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_6_SEL11_BMSK                                                0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_6_SEL11_SHFT                                                        16
+#define HWIO_CP_R0_L4_DPORT_IX_6_SEL10_BMSK                                                    0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_6_SEL10_SHFT                                                         0
+
+#define HWIO_CP_R0_L4_DPORT_IX_7_ADDR(x)                                                   ((x) + 0x64)
+#define HWIO_CP_R0_L4_DPORT_IX_7_PHYS(x)                                                   ((x) + 0x64)
+#define HWIO_CP_R0_L4_DPORT_IX_7_OFFS                                                      (0x64)
+#define HWIO_CP_R0_L4_DPORT_IX_7_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_7_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_7_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_7_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_7_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_7_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_7_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_7_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_7_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_7_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_7_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_7_SEL13_BMSK                                                0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_7_SEL13_SHFT                                                        16
+#define HWIO_CP_R0_L4_DPORT_IX_7_SEL12_BMSK                                                    0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_7_SEL12_SHFT                                                         0
+
+#define HWIO_CP_R0_L4_DPORT_IX_8_ADDR(x)                                                   ((x) + 0x68)
+#define HWIO_CP_R0_L4_DPORT_IX_8_PHYS(x)                                                   ((x) + 0x68)
+#define HWIO_CP_R0_L4_DPORT_IX_8_OFFS                                                      (0x68)
+#define HWIO_CP_R0_L4_DPORT_IX_8_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_8_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_8_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_8_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_8_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_8_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_8_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_8_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_8_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_8_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_8_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_8_SEL15_BMSK                                                0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_8_SEL15_SHFT                                                        16
+#define HWIO_CP_R0_L4_DPORT_IX_8_SEL14_BMSK                                                    0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_8_SEL14_SHFT                                                         0
+
+#define HWIO_CP_R0_L4_DPORT_IX_9_ADDR(x)                                                   ((x) + 0x6c)
+#define HWIO_CP_R0_L4_DPORT_IX_9_PHYS(x)                                                   ((x) + 0x6c)
+#define HWIO_CP_R0_L4_DPORT_IX_9_OFFS                                                      (0x6c)
+#define HWIO_CP_R0_L4_DPORT_IX_9_RMSK                                                      0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_9_POR                                                       0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_9_POR_RMSK                                                  0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_9_ATTR                                                                   0x3
+#define HWIO_CP_R0_L4_DPORT_IX_9_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_9_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_9_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_9_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_9_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_9_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_9_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_9_SEL17_BMSK                                                0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_9_SEL17_SHFT                                                        16
+#define HWIO_CP_R0_L4_DPORT_IX_9_SEL16_BMSK                                                    0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_9_SEL16_SHFT                                                         0
+
+#define HWIO_CP_R0_L4_DPORT_IX_10_ADDR(x)                                                  ((x) + 0x70)
+#define HWIO_CP_R0_L4_DPORT_IX_10_PHYS(x)                                                  ((x) + 0x70)
+#define HWIO_CP_R0_L4_DPORT_IX_10_OFFS                                                     (0x70)
+#define HWIO_CP_R0_L4_DPORT_IX_10_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_10_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_10_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_10_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_10_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_10_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_10_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_10_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_10_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_10_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_10_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_10_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_10_SEL19_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_10_SEL19_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_10_SEL18_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_10_SEL18_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_11_ADDR(x)                                                  ((x) + 0x74)
+#define HWIO_CP_R0_L4_DPORT_IX_11_PHYS(x)                                                  ((x) + 0x74)
+#define HWIO_CP_R0_L4_DPORT_IX_11_OFFS                                                     (0x74)
+#define HWIO_CP_R0_L4_DPORT_IX_11_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_11_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_11_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_11_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_11_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_11_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_11_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_11_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_11_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_11_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_11_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_11_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_11_SEL21_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_11_SEL21_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_11_SEL20_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_11_SEL20_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_12_ADDR(x)                                                  ((x) + 0x78)
+#define HWIO_CP_R0_L4_DPORT_IX_12_PHYS(x)                                                  ((x) + 0x78)
+#define HWIO_CP_R0_L4_DPORT_IX_12_OFFS                                                     (0x78)
+#define HWIO_CP_R0_L4_DPORT_IX_12_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_12_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_12_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_12_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_12_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_12_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_12_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_12_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_12_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_12_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_12_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_12_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_12_SEL23_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_12_SEL23_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_12_SEL22_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_12_SEL22_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_13_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_CP_R0_L4_DPORT_IX_13_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_CP_R0_L4_DPORT_IX_13_OFFS                                                     (0x7c)
+#define HWIO_CP_R0_L4_DPORT_IX_13_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_13_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_13_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_13_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_13_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_13_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_13_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_13_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_13_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_13_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_13_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_13_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_13_SEL25_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_13_SEL25_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_13_SEL24_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_13_SEL24_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_14_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_CP_R0_L4_DPORT_IX_14_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_CP_R0_L4_DPORT_IX_14_OFFS                                                     (0x80)
+#define HWIO_CP_R0_L4_DPORT_IX_14_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_14_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_14_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_14_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_14_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_14_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_14_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_14_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_14_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_14_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_14_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_14_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_14_SEL27_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_14_SEL27_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_14_SEL26_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_14_SEL26_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_15_ADDR(x)                                                  ((x) + 0x84)
+#define HWIO_CP_R0_L4_DPORT_IX_15_PHYS(x)                                                  ((x) + 0x84)
+#define HWIO_CP_R0_L4_DPORT_IX_15_OFFS                                                     (0x84)
+#define HWIO_CP_R0_L4_DPORT_IX_15_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_15_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_15_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_15_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_15_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_15_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_15_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_15_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_15_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_15_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_15_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_15_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_15_SEL29_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_15_SEL29_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_15_SEL28_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_15_SEL28_SHFT                                                        0
+
+#define HWIO_CP_R0_L4_DPORT_IX_16_ADDR(x)                                                  ((x) + 0x88)
+#define HWIO_CP_R0_L4_DPORT_IX_16_PHYS(x)                                                  ((x) + 0x88)
+#define HWIO_CP_R0_L4_DPORT_IX_16_OFFS                                                     (0x88)
+#define HWIO_CP_R0_L4_DPORT_IX_16_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_16_POR                                                      0x00000000
+#define HWIO_CP_R0_L4_DPORT_IX_16_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_L4_DPORT_IX_16_ATTR                                                                  0x3
+#define HWIO_CP_R0_L4_DPORT_IX_16_IN(x)            \
+                in_dword(HWIO_CP_R0_L4_DPORT_IX_16_ADDR(x))
+#define HWIO_CP_R0_L4_DPORT_IX_16_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_L4_DPORT_IX_16_ADDR(x), m)
+#define HWIO_CP_R0_L4_DPORT_IX_16_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_L4_DPORT_IX_16_ADDR(x),v)
+#define HWIO_CP_R0_L4_DPORT_IX_16_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_L4_DPORT_IX_16_ADDR(x),m,v,HWIO_CP_R0_L4_DPORT_IX_16_IN(x))
+#define HWIO_CP_R0_L4_DPORT_IX_16_SEL31_BMSK                                               0xffff0000
+#define HWIO_CP_R0_L4_DPORT_IX_16_SEL31_SHFT                                                       16
+#define HWIO_CP_R0_L4_DPORT_IX_16_SEL30_BMSK                                                   0xffff
+#define HWIO_CP_R0_L4_DPORT_IX_16_SEL30_SHFT                                                        0
+
+#define HWIO_CP_R0_IPV6_CONFIG_ADDR(x)                                                     ((x) + 0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_PHYS(x)                                                     ((x) + 0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_OFFS                                                        (0x8c)
+#define HWIO_CP_R0_IPV6_CONFIG_RMSK                                                             0xfff
+#define HWIO_CP_R0_IPV6_CONFIG_POR                                                         0x00000080
+#define HWIO_CP_R0_IPV6_CONFIG_POR_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_IPV6_CONFIG_ATTR                                                                     0x3
+#define HWIO_CP_R0_IPV6_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_IPV6_CONFIG_ADDR(x))
+#define HWIO_CP_R0_IPV6_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_IPV6_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_IPV6_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_IPV6_CONFIG_ADDR(x),v)
+#define HWIO_CP_R0_IPV6_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_IPV6_CONFIG_ADDR(x),m,v,HWIO_CP_R0_IPV6_CONFIG_IN(x))
+#define HWIO_CP_R0_IPV6_CONFIG_USE_AH_FOR_FLOW_ID_BMSK                                          0x800
+#define HWIO_CP_R0_IPV6_CONFIG_USE_AH_FOR_FLOW_ID_SHFT                                             11
+#define HWIO_CP_R0_IPV6_CONFIG_SPI_FROM_AH_OR_ESP_BMSK                                          0x400
+#define HWIO_CP_R0_IPV6_CONFIG_SPI_FROM_AH_OR_ESP_SHFT                                             10
+#define HWIO_CP_R0_IPV6_CONFIG_L4_BYTES_EXCEEDED_256_BMSK                                       0x200
+#define HWIO_CP_R0_IPV6_CONFIG_L4_BYTES_EXCEEDED_256_SHFT                                           9
+#define HWIO_CP_R0_IPV6_CONFIG_L3_BYTES_EXCEEDED_256_BMSK                                       0x100
+#define HWIO_CP_R0_IPV6_CONFIG_L3_BYTES_EXCEEDED_256_SHFT                                           8
+#define HWIO_CP_R0_IPV6_CONFIG_EXT_HEADER_BYTES_BMSK                                             0xff
+#define HWIO_CP_R0_IPV6_CONFIG_EXT_HEADER_BYTES_SHFT                                                0
+
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x)                                               ((x) + 0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_PHYS(x)                                               ((x) + 0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_OFFS                                                  (0x90)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_RMSK                                                     0x1ffff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_POR                                                   0x00010040
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_POR_RMSK                                              0xffffffff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_ATTR                                                               0x1
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x))
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_COMMIT_TLV_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_DONE_NUM_BMSK                                     0x1ff00
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_DONE_NUM_SHFT                                           8
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_NUM_BMSK                                             0xff
+#define HWIO_CP_R0_COMMIT_TLV_CONFIG_COMMIT_NUM_SHFT                                                0
+
+#define HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x)                                                 ((x) + 0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_PHYS(x)                                                 ((x) + 0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OFFS                                                    (0x94)
+#define HWIO_CP_R0_CLKGATE_DISABLE_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_CLKGATE_DISABLE_POR                                                     0x00000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_POR_RMSK                                                0xffffffff
+#define HWIO_CP_R0_CLKGATE_DISABLE_ATTR                                                                 0x3
+#define HWIO_CP_R0_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_CP_R0_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_CP_R0_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_CP_R0_CLKGATE_DISABLE_IN(x))
+#define HWIO_CP_R0_CLKGATE_DISABLE_CLK_EXTEND_BMSK                                         0x80000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_CLK_EXTEND_SHFT                                                 31
+#define HWIO_CP_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_BMSK                                      0x40000000
+#define HWIO_CP_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_SHFT                                              30
+#define HWIO_CP_R0_CLKGATE_DISABLE_CP_RSRVD_BMSK                                           0x3fffff00
+#define HWIO_CP_R0_CLKGATE_DISABLE_CP_RSRVD_SHFT                                                    8
+#define HWIO_CP_R0_CLKGATE_DISABLE_CCE_SM_BMSK                                                   0x80
+#define HWIO_CP_R0_CLKGATE_DISABLE_CCE_SM_SHFT                                                      7
+#define HWIO_CP_R0_CLKGATE_DISABLE_NWIFI_BMSK                                                    0x40
+#define HWIO_CP_R0_CLKGATE_DISABLE_NWIFI_SHFT                                                       6
+#define HWIO_CP_R0_CLKGATE_DISABLE_ETH_BMSK                                                      0x20
+#define HWIO_CP_R0_CLKGATE_DISABLE_ETH_SHFT                                                         5
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AH_BMSK                                               0x10
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AH_SHFT                                                  4
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AC_BMSK                                                0x8
+#define HWIO_CP_R0_CLKGATE_DISABLE_AMSDU_11AC_SHFT                                                  3
+#define HWIO_CP_R0_CLKGATE_DISABLE_WIFI_BMSK                                                      0x4
+#define HWIO_CP_R0_CLKGATE_DISABLE_WIFI_SHFT                                                        2
+#define HWIO_CP_R0_CLKGATE_DISABLE_CORE_BMSK                                                      0x2
+#define HWIO_CP_R0_CLKGATE_DISABLE_CORE_SHFT                                                        1
+#define HWIO_CP_R0_CLKGATE_DISABLE_APB_BMSK                                                       0x1
+#define HWIO_CP_R0_CLKGATE_DISABLE_APB_SHFT                                                         0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x)                                          ((x) + 0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_PHYS(x)                                          ((x) + 0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OFFS                                             (0x98)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_0_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x)                                          ((x) + 0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_PHYS(x)                                          ((x) + 0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OFFS                                             (0x9c)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_1_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x)                                          ((x) + 0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_PHYS(x)                                          ((x) + 0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OFFS                                             (0xa0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_2_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x)                                          ((x) + 0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_PHYS(x)                                          ((x) + 0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OFFS                                             (0xa4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IX_3_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x)                                          ((x) + 0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_PHYS(x)                                          ((x) + 0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OFFS                                             (0xa8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_0_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x)                                          ((x) + 0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_PHYS(x)                                          ((x) + 0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OFFS                                             (0xac)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_1_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x)                                          ((x) + 0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_PHYS(x)                                          ((x) + 0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OFFS                                             (0xb0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_2_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x)                                          ((x) + 0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_PHYS(x)                                          ((x) + 0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OFFS                                             (0xb4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_3_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x)                                          ((x) + 0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_PHYS(x)                                          ((x) + 0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OFFS                                             (0xb8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_4_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x)                                          ((x) + 0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_PHYS(x)                                          ((x) + 0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OFFS                                             (0xbc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_5_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x)                                          ((x) + 0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_PHYS(x)                                          ((x) + 0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OFFS                                             (0xc0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_6_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x)                                          ((x) + 0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_PHYS(x)                                          ((x) + 0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OFFS                                             (0xc4)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_7_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x)                                          ((x) + 0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_PHYS(x)                                          ((x) + 0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OFFS                                             (0xc8)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_8_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x)                                          ((x) + 0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_PHYS(x)                                          ((x) + 0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OFFS                                             (0xcc)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_RMSK                                             0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_VALUE_BMSK                                       0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV6_IX_9_VALUE_SHFT                                                0
+
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x)                                          ((x) + 0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_PHYS(x)                                          ((x) + 0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OFFS                                             (0xd0)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_RMSK                                                 0xffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_POR                                              0x00000000
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_POR_RMSK                                         0xffffffff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ATTR                                                          0x3
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_IN(x)            \
+                in_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x), m)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x),v)
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_ADDR(x),m,v,HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_IN(x))
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_1_BMSK                                         0xff00
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_1_SHFT                                              8
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_0_BMSK                                           0xff
+#define HWIO_CP_R0_TOEPLITZ_KEY_IPV4_IPV6_VALUE_0_SHFT                                              0
+
+#define HWIO_CP_R0_MISC_CONFIG_ADDR(x)                                                     ((x) + 0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_PHYS(x)                                                     ((x) + 0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_OFFS                                                        (0xd4)
+#define HWIO_CP_R0_MISC_CONFIG_RMSK                                                        0x1fffffff
+#define HWIO_CP_R0_MISC_CONFIG_POR                                                         0x0003c110
+#define HWIO_CP_R0_MISC_CONFIG_POR_RMSK                                                    0xffffffff
+#define HWIO_CP_R0_MISC_CONFIG_ATTR                                                                     0x3
+#define HWIO_CP_R0_MISC_CONFIG_IN(x)            \
+                in_dword(HWIO_CP_R0_MISC_CONFIG_ADDR(x))
+#define HWIO_CP_R0_MISC_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_MISC_CONFIG_ADDR(x), m)
+#define HWIO_CP_R0_MISC_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_MISC_CONFIG_ADDR(x),v)
+#define HWIO_CP_R0_MISC_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_MISC_CONFIG_ADDR(x),m,v,HWIO_CP_R0_MISC_CONFIG_IN(x))
+#define HWIO_CP_R0_MISC_CONFIG_REPORT_FLOW_ID_OR_HASH_3_BMSK                               0x10000000
+#define HWIO_CP_R0_MISC_CONFIG_REPORT_FLOW_ID_OR_HASH_3_SHFT                                       28
+#define HWIO_CP_R0_MISC_CONFIG_ETH_MIN_PACKET_LEN_BMSK                                      0xffff000
+#define HWIO_CP_R0_MISC_CONFIG_ETH_MIN_PACKET_LEN_SHFT                                             12
+#define HWIO_CP_R0_MISC_CONFIG_TIMEOUT_EN_BMSK                                                  0x800
+#define HWIO_CP_R0_MISC_CONFIG_TIMEOUT_EN_SHFT                                                     11
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_8870_BMSK                                                 0x400
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_8870_SHFT                                                    10
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_C9D1_BMSK                                                 0x200
+#define HWIO_CP_R0_MISC_CONFIG_ENABLE_C9D1_SHFT                                                     9
+#define HWIO_CP_R0_MISC_CONFIG_VLAN_LLC_FOR_802_3_BMSK                                          0x100
+#define HWIO_CP_R0_MISC_CONFIG_VLAN_LLC_FOR_802_3_SHFT                                              8
+#define HWIO_CP_R0_MISC_CONFIG_IP_DA_SA_PREFIX_BMSK                                              0xc0
+#define HWIO_CP_R0_MISC_CONFIG_IP_DA_SA_PREFIX_SHFT                                                 6
+#define HWIO_CP_R0_MISC_CONFIG_UDP_LITE_PARSE_EN_BMSK                                            0x20
+#define HWIO_CP_R0_MISC_CONFIG_UDP_LITE_PARSE_EN_SHFT                                               5
+#define HWIO_CP_R0_MISC_CONFIG_TPID_BITMAP_VALUE_BMSK                                            0x1f
+#define HWIO_CP_R0_MISC_CONFIG_TPID_BITMAP_VALUE_SHFT                                               0
+
+#define HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x)                                                  ((x) + 0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_PHYS(x)                                                  ((x) + 0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OFFS                                                     (0xd8)
+#define HWIO_CP_R0_WATCHDOG_TIMER_RMSK                                                     0xffffffff
+#define HWIO_CP_R0_WATCHDOG_TIMER_POR                                                      0x00000000
+#define HWIO_CP_R0_WATCHDOG_TIMER_POR_RMSK                                                 0xffffffff
+#define HWIO_CP_R0_WATCHDOG_TIMER_ATTR                                                                  0x3
+#define HWIO_CP_R0_WATCHDOG_TIMER_IN(x)            \
+                in_dword(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x))
+#define HWIO_CP_R0_WATCHDOG_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x), m)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OUT(x, v)            \
+                out_dword(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x),v)
+#define HWIO_CP_R0_WATCHDOG_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R0_WATCHDOG_TIMER_ADDR(x),m,v,HWIO_CP_R0_WATCHDOG_TIMER_IN(x))
+#define HWIO_CP_R0_WATCHDOG_TIMER_VALUE_BMSK                                               0xfffffffe
+#define HWIO_CP_R0_WATCHDOG_TIMER_VALUE_SHFT                                                        1
+#define HWIO_CP_R0_WATCHDOG_TIMER_ENABLE_BMSK                                                     0x1
+#define HWIO_CP_R0_WATCHDOG_TIMER_ENABLE_SHFT                                                       0
+
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                       ((x) + 0x1000)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                       ((x) + 0x1000)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                          (0x1000)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                          0xffffffff
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                           0x7ffe0002
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                      0xffffffff
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                       0x3
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                        0xfffe0000
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                17
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                         0x1fffc
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                               2
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                      0x2
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                        1
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                       0x1
+#define HWIO_CP_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                         0
+
+#define HWIO_CP_R1_SM_STATES_ADDR(x)                                                       ((x) + 0x1004)
+#define HWIO_CP_R1_SM_STATES_PHYS(x)                                                       ((x) + 0x1004)
+#define HWIO_CP_R1_SM_STATES_OFFS                                                          (0x1004)
+#define HWIO_CP_R1_SM_STATES_RMSK                                                          0xffffffff
+#define HWIO_CP_R1_SM_STATES_POR                                                           0x00000000
+#define HWIO_CP_R1_SM_STATES_POR_RMSK                                                      0xffffffff
+#define HWIO_CP_R1_SM_STATES_ATTR                                                                       0x1
+#define HWIO_CP_R1_SM_STATES_IN(x)            \
+                in_dword(HWIO_CP_R1_SM_STATES_ADDR(x))
+#define HWIO_CP_R1_SM_STATES_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_SM_STATES_ADDR(x), m)
+#define HWIO_CP_R1_SM_STATES_MISC_BMSK                                                     0xfffffc00
+#define HWIO_CP_R1_SM_STATES_MISC_SHFT                                                             10
+#define HWIO_CP_R1_SM_STATES_STATE_INFO_BMSK                                                    0x3e0
+#define HWIO_CP_R1_SM_STATES_STATE_INFO_SHFT                                                        5
+#define HWIO_CP_R1_SM_STATES_STATE_MAIN_BMSK                                                     0x1f
+#define HWIO_CP_R1_SM_STATES_STATE_MAIN_SHFT                                                        0
+
+#define HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x)                                               ((x) + 0x1008)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_PHYS(x)                                               ((x) + 0x1008)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OFFS                                                  (0x1008)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_RMSK                                                         0x1
+#define HWIO_CP_R1_END_OF_TEST_CHECK_POR                                                   0x00000000
+#define HWIO_CP_R1_END_OF_TEST_CHECK_POR_RMSK                                              0xffffffff
+#define HWIO_CP_R1_END_OF_TEST_CHECK_ATTR                                                               0x3
+#define HWIO_CP_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_CP_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_CP_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CP_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_CP_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_CP_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                  0x1
+#define HWIO_CP_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                    0
+
+ 
+
+#define MAC_CCE_TCL_REG_REG_BASE                                                               (UMAC_BASE      + 0x0004a000)
+#define MAC_CCE_TCL_REG_REG_BASE_SIZE                                                          0x3000
+#define MAC_CCE_TCL_REG_REG_BASE_USED                                                          0x6fc
+#define MAC_CCE_TCL_REG_REG_BASE_PHYS                                                          (UMAC_BASE_PHYS + 0x0004a000)
+#define MAC_CCE_TCL_REG_REG_BASE_OFFS                                                          0x0004a000
+
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ADDR(x)                                      ((x) + 0x0)
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_PHYS(x)                                      ((x) + 0x0)
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_OFFS                                         (0x0)
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_RMSK                                                0x3
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_POR                                          0x00000000
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_POR_RMSK                                     0xffffffff
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ATTR                                                      0x3
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_IN(x)            \
+                in_dword(HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ADDR(x))
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ADDR(x), m)
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_OUT(x, v)            \
+                out_dword(HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ADDR(x),v)
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_ADDR(x),m,v,HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_IN(x))
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_RULES_DONE_BMSK                                     0x2
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_RULES_DONE_SHFT                                       1
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_SW_PRG_REQ_BMSK                                     0x1
+#define HWIO_CCE_MC_R0_CONTROL_FOR_SW_PROGRAMMING_SW_PRG_REQ_SHFT                                       0
+
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_ADDR(x)                                                 ((x) + 0x4)
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_PHYS(x)                                                 ((x) + 0x4)
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_OFFS                                                    (0x4)
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_RMSK                                                    0xc00003ff
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_POR                                                     0x00000000
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_POR_RMSK                                                0xffffffff
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_ATTR                                                                 0x3
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_IN(x)            \
+                in_dword(HWIO_CCE_MC_R0_CLKGATE_DISABLE_ADDR(x))
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_MC_R0_CLKGATE_DISABLE_ADDR(x), m)
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_CCE_MC_R0_CLKGATE_DISABLE_ADDR(x),v)
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_MC_R0_CLKGATE_DISABLE_ADDR(x),m,v,HWIO_CCE_MC_R0_CLKGATE_DISABLE_IN(x))
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CLK_EXTEND_BMSK                                         0x80000000
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CLK_EXTEND_SHFT                                                 31
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_BMSK                                      0x40000000
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CPU_IF_EXTEND_SHFT                                              30
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_ANCHOR_TLV_BMSK                                              0x200
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_ANCHOR_TLV_SHFT                                                  9
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_MSDU_TLV_BMSK                                                0x100
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_MSDU_TLV_SHFT                                                    8
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CCE_APB_BMSK                                                  0x80
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CCE_APB_SHFT                                                     7
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CCE_TOP_BMSK                                                  0x40
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_CCE_TOP_SHFT                                                     6
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_TLV_DEC_ENC_BMSK                                              0x20
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_TLV_DEC_ENC_SHFT                                                 5
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_SW_PRG_BMSK                                                   0x10
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_SW_PRG_SHFT                                                      4
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_DATA_BUF_BMSK                                                  0x8
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_DATA_BUF_SHFT                                                    3
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_SUPER_RULE_BMSK                                                0x4
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_SUPER_RULE_SHFT                                                  2
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_RULE_PRESERVE_MEM_BMSK                                         0x2
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_RULE_PRESERVE_MEM_SHFT                                           1
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_RULE_BMSK                                                      0x1
+#define HWIO_CCE_MC_R0_CLKGATE_DISABLE_RULE_SHFT                                                        0
+
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ADDR(x)                                               ((x) + 0x8)
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_PHYS(x)                                               ((x) + 0x8)
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_OFFS                                                  (0x8)
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_RMSK                                                         0x1
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_POR                                                   0x00000000
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_POR_RMSK                                              0xffffffff
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ATTR                                                               0x3
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword(HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ADDR(x))
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_MC_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_CCE_MC_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_VALUE_BMSK                                                   0x1
+#define HWIO_CCE_MC_R1_END_OF_TEST_CHECK_VALUE_SHFT                                                     0
+
+#define HWIO_CCE_MC_R1_SM_STATES_ADDR(x)                                                       ((x) + 0xc)
+#define HWIO_CCE_MC_R1_SM_STATES_PHYS(x)                                                       ((x) + 0xc)
+#define HWIO_CCE_MC_R1_SM_STATES_OFFS                                                          (0xc)
+#define HWIO_CCE_MC_R1_SM_STATES_RMSK                                                              0x3fff
+#define HWIO_CCE_MC_R1_SM_STATES_POR                                                           0x00000000
+#define HWIO_CCE_MC_R1_SM_STATES_POR_RMSK                                                      0xffffffff
+#define HWIO_CCE_MC_R1_SM_STATES_ATTR                                                                       0x1
+#define HWIO_CCE_MC_R1_SM_STATES_IN(x)            \
+                in_dword(HWIO_CCE_MC_R1_SM_STATES_ADDR(x))
+#define HWIO_CCE_MC_R1_SM_STATES_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_MC_R1_SM_STATES_ADDR(x), m)
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_BUF_BMSK                                                0x3000
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_BUF_SHFT                                                    12
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_PKT_COMP_BMSK                                                0xc00
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_PKT_COMP_SHFT                                                   10
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_MSDU_VAL_BMSK                                                0x300
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_MSDU_VAL_SHFT                                                    8
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_RULE_EXE_BMSK                                                 0xc0
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_RULE_EXE_SHFT                                                    6
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_RULE_RESERVE_RST_BMSK                                         0x30
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_RULE_RESERVE_RST_SHFT                                            4
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_SW_PRG_BMSK                                                0xe
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_SW_PRG_SHFT                                                  1
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_IDLE_BMSK                                                  0x1
+#define HWIO_CCE_MC_R1_SM_STATES_STATE_CCE_IDLE_SHFT                                                    0
+
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ADDR(x)                                            ((x) + 0x10)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_PHYS(x)                                            ((x) + 0x10)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_OFFS                                               (0x10)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_RMSK                                               0xffffffff
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_POR                                                0x00000000
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_POR_RMSK                                           0xffffffff
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ATTR                                                            0x3
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ADDR(x))
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ADDR(x), m)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ADDR(x),v)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ADDR(x),m,v,HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_IN(x))
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_VALUE_BMSK                                         0xffffffff
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_VALUE_SHFT                                                  0
+
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ADDR(x)                                     ((x) + 0x14)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_PHYS(x)                                     ((x) + 0x14)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_OFFS                                        (0x14)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_RMSK                                               0x1
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_POR                                         0x00000000
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_POR_RMSK                                    0xffffffff
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ATTR                                                     0x3
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ADDR(x))
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ADDR(x), m)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ADDR(x),v)
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_ADDR(x),m,v,HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_IN(x))
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_VALUE_BMSK                                         0x1
+#define HWIO_CCE_M0_R0_ANCHOR_TYPE_PRESERVE_ENABLE_VALUE_SHFT                                           0
+
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_ADDR(x)                                                 ((x) + 0x18)
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_PHYS(x)                                                 ((x) + 0x18)
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_OFFS                                                    (0x18)
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_RMSK                                                          0x3f
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_POR                                                     0x00000000
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_POR_RMSK                                                0xffffffff
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_ATTR                                                                 0x3
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_LAST_RULE_VALID_ADDR(x))
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_LAST_RULE_VALID_ADDR(x), m)
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_LAST_RULE_VALID_ADDR(x),v)
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_LAST_RULE_VALID_ADDR(x),m,v,HWIO_CCE_M0_R0_LAST_RULE_VALID_IN(x))
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_VALUE_BMSK                                                    0x3f
+#define HWIO_CCE_M0_R0_LAST_RULE_VALID_VALUE_SHFT                                                       0
+
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ADDR(x)                                           ((x) + 0x1c)
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_PHYS(x)                                           ((x) + 0x1c)
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_OFFS                                              (0x1c)
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_RMSK                                                    0x1f
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_POR                                               0x00000000
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_POR_RMSK                                          0xffffffff
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ATTR                                                           0x3
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ADDR(x))
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ADDR(x), m)
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ADDR(x),v)
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_ADDR(x),m,v,HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_IN(x))
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_VALUE_BMSK                                              0x1f
+#define HWIO_CCE_M0_R0_LAST_SUPER_RULE_VALID_VALUE_SHFT                                                 0
+
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ADDR(x)                                                ((x) + 0x20)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_PHYS(x)                                                ((x) + 0x20)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_OFFS                                                   (0x20)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_RMSK                                                   0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_POR                                                    0x00000000
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_POR_RMSK                                               0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ATTR                                                                0x3
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ADDR(x))
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ADDR(x), m)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ADDR(x),v)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_ADDR(x),m,v,HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_IN(x))
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_VALUE_BMSK                                             0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_0_VALUE_SHFT                                                      0
+
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ADDR(x)                                                ((x) + 0x24)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_PHYS(x)                                                ((x) + 0x24)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_OFFS                                                   (0x24)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_RMSK                                                   0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_POR                                                    0x00000000
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_POR_RMSK                                               0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ATTR                                                                0x3
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ADDR(x))
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ADDR(x), m)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ADDR(x),v)
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_ADDR(x),m,v,HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_IN(x))
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_VALUE_BMSK                                             0xffffffff
+#define HWIO_CCE_M0_R0_RULE_VALIDS_IX_1_VALUE_SHFT                                                      0
+
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ADDR(x)                                               ((x) + 0x28)
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_PHYS(x)                                               ((x) + 0x28)
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_OFFS                                                  (0x28)
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_RMSK                                                  0xffffffff
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_POR                                                   0x00000000
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_POR_RMSK                                              0xffffffff
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ATTR                                                               0x3
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ADDR(x))
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ADDR(x), m)
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ADDR(x),v)
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_ADDR(x),m,v,HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_IN(x))
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_VALUE_BMSK                                            0xffffffff
+#define HWIO_CCE_M0_R0_SUPER_RULE_VALIDS_VALUE_SHFT                                                     0
+
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ADDR(x)                                   ((x) + 0x2c)
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_PHYS(x)                                   ((x) + 0x2c)
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_OFFS                                      (0x2c)
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_RMSK                                            0x1f
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_POR                                       0x00000000
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_POR_RMSK                                  0xffffffff
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ATTR                                                   0x3
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ADDR(x))
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ADDR(x), m)
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ADDR(x),v)
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_ADDR(x),m,v,HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_IN(x))
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_VALUE_BMSK                                      0x1f
+#define HWIO_CCE_M0_R0_RULE_PRESERVE_RST_ANCHOR_TYPE_VALUE_SHFT                                         0
+
+#define HWIO_CCE_M0_R0_WATCHDOG_ADDR(x)                                                        ((x) + 0x30)
+#define HWIO_CCE_M0_R0_WATCHDOG_PHYS(x)                                                        ((x) + 0x30)
+#define HWIO_CCE_M0_R0_WATCHDOG_OFFS                                                           (0x30)
+#define HWIO_CCE_M0_R0_WATCHDOG_RMSK                                                           0xffffffff
+#define HWIO_CCE_M0_R0_WATCHDOG_POR                                                            0x0000ffff
+#define HWIO_CCE_M0_R0_WATCHDOG_POR_RMSK                                                       0xffffffff
+#define HWIO_CCE_M0_R0_WATCHDOG_ATTR                                                                        0x3
+#define HWIO_CCE_M0_R0_WATCHDOG_IN(x)            \
+                in_dword(HWIO_CCE_M0_R0_WATCHDOG_ADDR(x))
+#define HWIO_CCE_M0_R0_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R0_WATCHDOG_ADDR(x), m)
+#define HWIO_CCE_M0_R0_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R0_WATCHDOG_ADDR(x),v)
+#define HWIO_CCE_M0_R0_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R0_WATCHDOG_ADDR(x),m,v,HWIO_CCE_M0_R0_WATCHDOG_IN(x))
+#define HWIO_CCE_M0_R0_WATCHDOG_STATUS_BMSK                                                    0xffff0000
+#define HWIO_CCE_M0_R0_WATCHDOG_STATUS_SHFT                                                            16
+#define HWIO_CCE_M0_R0_WATCHDOG_LIMIT_BMSK                                                         0xffff
+#define HWIO_CCE_M0_R0_WATCHDOG_LIMIT_SHFT                                                              0
+
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                       ((x) + 0x34)
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                       ((x) + 0x34)
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                          (0x34)
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                          0xffffffff
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                           0x7ffe0002
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                      0xffffffff
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                       0x3
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword(HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x))
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                        0xfffe0000
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                17
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                         0x1fffc
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                               2
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                      0x2
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                        1
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                       0x1
+#define HWIO_CCE_M0_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                         0
+
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ADDR(base,n)                                            ((base) + 0X100 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_PHYS(base,n)                                            ((base) + 0X100 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_OFFS(n)                                                 (0X100 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_RMSK                                                    0xffffffff
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_MAXn                                                           127
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_POR                                                     0x00000000
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_POR_RMSK                                                0xffffffff
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ATTR                                                                 0x3
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_INI(base,n)                \
+                in_dword_masked(HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ADDR(base,n), HWIO_CCE_MC_R0_RULE_MEM_DATA_n_RMSK)
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ADDR(base,n), mask)
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_OUTI(base,n,val)        \
+                out_dword(HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ADDR(base,n),val)
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_CCE_MC_R0_RULE_MEM_DATA_n_ADDR(base,n),mask,val,HWIO_CCE_MC_R0_RULE_MEM_DATA_n_INI(base,n))
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_VALUE_BMSK                                              0xffffffff
+#define HWIO_CCE_MC_R0_RULE_MEM_DATA_n_VALUE_SHFT                                                       0
+
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ADDR(base,n)                                      ((base) + 0X300 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_PHYS(base,n)                                      ((base) + 0X300 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_OFFS(n)                                           (0X300 + (0x4*(n)))
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_RMSK                                              0xffffffff
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_MAXn                                                     255
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_POR                                               0x00000000
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_POR_RMSK                                          0xffffffff
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ATTR                                                           0x3
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_INI(base,n)                \
+                in_dword_masked(HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ADDR(base,n), HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_RMSK)
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_INMI(base,n,mask)        \
+                in_dword_masked(HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ADDR(base,n), mask)
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_OUTI(base,n,val)        \
+                out_dword(HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ADDR(base,n),val)
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_OUTMI(base,n,mask,val) \
+                out_dword_masked_ns(HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_ADDR(base,n),mask,val,HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_INI(base,n))
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_VALUE_BMSK                                        0xffffffff
+#define HWIO_CCE_MC_R0_SUPER_RULE_MEM_DATA_n_VALUE_SHFT                                                 0
+
+ 
+
+#define UMAC_NOC_REG_BASE                                                                                         (UMAC_NOC_BASE      + 0x00000000)
+#define UMAC_NOC_REG_BASE_SIZE                                                                                    0x4400
+#define UMAC_NOC_REG_BASE_USED                                                                                    0x4380
+#define UMAC_NOC_REG_BASE_PHYS                                                                                    (UMAC_NOC_BASE_PHYS + 0x00000000)
+#define UMAC_NOC_REG_BASE_OFFS                                                                                    0x00000000
+
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x)                                                                        ((x) + 0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_PHYS(x)                                                                        ((x) + 0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_OFFS                                                                           (0x0)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_RMSK                                                                             0xffffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_POR                                                                            0x000124c9
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_POR_RMSK                                                                       0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_ATTR                                                                                        0x1
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITTYPEID_BMSK                                                                  0xff0000
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITTYPEID_SHFT                                                                        16
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITCONFID_BMSK                                                                    0xffff
+#define HWIO_UMAC_NOC_ERL_SWID_LOW_UNITCONFID_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x)                                                                       ((x) + 0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_PHYS(x)                                                                       ((x) + 0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_OFFS                                                                          (0x4)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_RMSK                                                                          0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_POR                                                                           0xbc66d227
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_ATTR                                                                                       0x1
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_QNOCID_BMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_SWID_HIGH_QNOCID_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OFFS                                                                        (0x8)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_RMSK                                                                            0xff03
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_POR                                                                         0x00000003
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ATTR                                                                                     0x3
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_ERL_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ERRIGNORE_BMSK                                                                  0xff00
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_ERRIGNORE_SHFT                                                                       8
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_STALLEN_BMSK                                                                       0x2
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_STALLEN_SHFT                                                                         1
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_FAULTEN_BMSK                                                                       0x1
+#define HWIO_UMAC_NOC_ERL_MAINCTL_LOW_FAULTEN_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x)                                                                      ((x) + 0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_PHYS(x)                                                                      ((x) + 0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_OFFS                                                                         (0x10)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_RMSK                                                                                0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ATTR                                                                                      0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ERRVLD_BMSK                                                                         0x1
+#define HWIO_UMAC_NOC_ERL_ERRVLD_LOW_ERRVLD_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ADDR(x)                                                                      ((x) + 0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_PHYS(x)                                                                      ((x) + 0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_OFFS                                                                         (0x18)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_RMSK                                                                                0x1
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ATTR                                                                                      0x2
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ERRCLR_BMSK                                                                         0x1
+#define HWIO_UMAC_NOC_ERL_ERRCLR_LOW_ERRCLR_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x)                                                                     ((x) + 0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_PHYS(x)                                                                     ((x) + 0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OFFS                                                                        (0x20)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_RMSK                                                                         0xf3f7777
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATOPC_BMSK                                                                   0xf000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ATOPC_SHFT                                                                          24
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDRSPACE_BMSK                                                                0x3f0000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ADDRSPACE_SHFT                                                                      16
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_TRTYPE_BMSK                                                                     0x7000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_TRTYPE_SHFT                                                                         12
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ERRCODE_BMSK                                                                     0x700
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_ERRCODE_SHFT                                                                         8
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OPC_BMSK                                                                          0x70
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_OPC_SHFT                                                                             4
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_NONSECURE_BMSK                                                                     0x4
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_NONSECURE_SHFT                                                                       2
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_WORDERROR_BMSK                                                                     0x2
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_WORDERROR_SHFT                                                                       1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_LOGINFOVLD_BMSK                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_LOW_LOGINFOVLD_SHFT                                                                      0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x)                                                                    ((x) + 0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_PHYS(x)                                                                    ((x) + 0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_OFFS                                                                       (0x24)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_RMSK                                                                         0xff03ff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ATTR                                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_REDIRECT_BMSK                                                                0xff0000
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_REDIRECT_SHFT                                                                      16
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_LEN1_BMSK                                                                       0x3ff
+#define HWIO_UMAC_NOC_ERL_ERRLOG0_HIGH_LEN1_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x)                                                                     ((x) + 0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PHYS(x)                                                                     ((x) + 0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_OFFS                                                                        (0x28)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_RMSK                                                                            0xffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PATH_BMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_LOW_PATH_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x)                                                                    ((x) + 0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_PHYS(x)                                                                    ((x) + 0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_OFFS                                                                       (0x2c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_RMSK                                                                          0x3ffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ATTR                                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_EXTID_BMSK                                                                    0x3ffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG1_HIGH_EXTID_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x)                                                                     ((x) + 0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_PHYS(x)                                                                     ((x) + 0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_OFFS                                                                        (0x30)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ERRLOG2_LSB_BMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_LOW_ERRLOG2_LSB_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x)                                                                    ((x) + 0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_PHYS(x)                                                                    ((x) + 0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_OFFS                                                                       (0x34)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_RMSK                                                                       0x7fffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ATTR                                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ERRLOG2_MSB_BMSK                                                           0x7fffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG2_HIGH_ERRLOG2_MSB_SHFT                                                                    0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x)                                                                     ((x) + 0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_PHYS(x)                                                                     ((x) + 0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_OFFS                                                                        (0x38)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ATTR                                                                                     0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ERRLOG3_LSB_BMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_LOW_ERRLOG3_LSB_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x)                                                                    ((x) + 0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_PHYS(x)                                                                    ((x) + 0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_OFFS                                                                       (0x3c)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_RMSK                                                                       0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_POR                                                                        0x00000000
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_POR_RMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ATTR                                                                                    0x1
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ERRLOG3_MSB_BMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_ERL_ERRLOG3_HIGH_ERRLOG3_MSB_SHFT                                                                    0
+
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x)                                                                        ((x) + 0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_PHYS(x)                                                                        ((x) + 0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_OFFS                                                                           (0x100)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_RMSK                                                                             0xffffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_POR                                                                            0x0000e93b
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_POR_RMSK                                                                       0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_ATTR                                                                                        0x1
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITTYPEID_BMSK                                                                  0xff0000
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITTYPEID_SHFT                                                                        16
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITCONFID_BMSK                                                                    0xffff
+#define HWIO_UMAC_NOC_DCD_SWID_LOW_UNITCONFID_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x)                                                                       ((x) + 0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_PHYS(x)                                                                       ((x) + 0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_OFFS                                                                          (0x104)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_RMSK                                                                          0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_POR                                                                           0xbc66d227
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_ATTR                                                                                       0x1
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_QNOCID_BMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_DCD_SWID_HIGH_QNOCID_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x)                                                                      ((x) + 0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_PHYS(x)                                                                      ((x) + 0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OFFS                                                                         (0x108)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_RMSK                                                                                0x7
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ATTR                                                                                      0x3
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_MAXDIV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_MAXDIV_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_MAXDIV_BMSK                                                                         0x7
+#define HWIO_UMAC_NOC_DCD_MAXDIV_LOW_MAXDIV_SHFT                                                                           0
+
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x)                                                                ((x) + 0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_PHYS(x)                                                                ((x) + 0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OFFS                                                                   (0x110)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_RMSK                                                                       0xffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_POR                                                                    0x00000100
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_POR_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ATTR                                                                                0x3
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_FIRSTHYSTCNT_BMSK                                                          0xffff
+#define HWIO_UMAC_NOC_DCD_FIRSTHYSTCNT_LOW_FIRSTHYSTCNT_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x)                                                                 ((x) + 0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_PHYS(x)                                                                 ((x) + 0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OFFS                                                                    (0x118)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_RMSK                                                                         0xfff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_POR                                                                     0x00000080
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_POR_RMSK                                                                0xffffffff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ATTR                                                                                 0x3
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_IN(x))
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_NEXTHYSTCNT_BMSK                                                             0xfff
+#define HWIO_UMAC_NOC_DCD_NEXTHYSTCNT_LOW_NEXTHYSTCNT_SHFT                                                                 0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x)                                                    ((x) + 0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_PHYS(x)                                                    ((x) + 0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_OFFS                                                       (0x200)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_RMSK                                                         0xffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_POR                                                        0x000e3a95
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITTYPEID_BMSK                                              0xff0000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITTYPEID_SHFT                                                    16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITCONFID_BMSK                                                0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_LOW_UNITCONFID_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x)                                                   ((x) + 0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_PHYS(x)                                                   ((x) + 0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_OFFS                                                      (0x204)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_POR                                                       0xbc66d227
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_QNOCID_BMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SWID_HIGH_QNOCID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x)                                              ((x) + 0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_PHYS(x)                                              ((x) + 0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OFFS                                                 (0x240)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_RMSK                                                     0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ATTR                                                              0x3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_IN(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_SRVC_NOC_BMSK                                    0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_SRVC_NOC_SHFT                                        15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_WCSS_DBG_BMSK                                    0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_WCSS_DBG_SHFT                                        14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QHS_WIFI_CFGBUS_BMSK                             0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QHS_WIFI_CFGBUS_SHFT                                 13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QHM_WIFI_CFGBUS_BMSK                             0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QHM_WIFI_CFGBUS_SHFT                                 12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_CMEM_BMSK                                         0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_CMEM_SHFT                                            11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_SNOC_EXT_BMSK                               0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_SNOC_EXT_SHFT                                  10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_SNOC_INT_BMSK                               0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_SNOC_INT_SHFT                                   9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_PHY_BMSK                                    0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4S_PHY_SHFT                                        8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_COEX_BMSK                                          0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_COEX_SHFT                                             7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_UMXI_BMSK                                          0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_UMXI_SHFT                                             6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_PMAC1_BMSK                                         0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_PMAC1_SHFT                                            5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_PMAC0_BMSK                                         0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_PMAC0_SHFT                                            4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_DMAC_BMSK                                           0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_DMAC_SHFT                                             3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4M_SNOC_BMSK                                     0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4M_SNOC_SHFT                                       2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4M_PHY_BMSK                                      0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_TIMEOUT_QNS4M_PHY_SHFT                                        1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ERRORLOGGER_BMSK                                            0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINEN0_LOW_ERRORLOGGER_SHFT                                              0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x)                                          ((x) + 0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_PHYS(x)                                          ((x) + 0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_OFFS                                             (0x248)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_RMSK                                                 0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_POR                                              0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ATTR                                                          0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_SRVC_NOC_BMSK                                0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_SRVC_NOC_SHFT                                    15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_WCSS_DBG_BMSK                                0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_WCSS_DBG_SHFT                                    14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QHS_WIFI_CFGBUS_BMSK                         0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QHS_WIFI_CFGBUS_SHFT                             13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QHM_WIFI_CFGBUS_BMSK                         0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QHM_WIFI_CFGBUS_SHFT                             12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_CMEM_BMSK                                     0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_CMEM_SHFT                                        11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_SNOC_EXT_BMSK                           0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_SNOC_EXT_SHFT                              10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_SNOC_INT_BMSK                           0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_SNOC_INT_SHFT                               9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_PHY_BMSK                                0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4S_PHY_SHFT                                    8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_COEX_BMSK                                      0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_COEX_SHFT                                         7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_UMXI_BMSK                                      0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_UMXI_SHFT                                         6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_PMAC1_BMSK                                     0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_PMAC1_SHFT                                        5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_PMAC0_BMSK                                     0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_PMAC0_SHFT                                        4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_DMAC_BMSK                                       0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_DMAC_SHFT                                         3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4M_SNOC_BMSK                                 0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4M_SNOC_SHFT                                   2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4M_PHY_BMSK                                  0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_TIMEOUT_QNS4M_PHY_SHFT                                    1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ERRORLOGGER_BMSK                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FAULTINSTATUS0_LOW_ERRORLOGGER_SHFT                                          0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ADDR(x)                                             ((x) + 0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_PHYS(x)                                             ((x) + 0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_OFFS                                                (0x280)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RMSK                                                    0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ATTR                                                             0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QHS_WIFI_CFGBUS_BMSK                            0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QHS_WIFI_CFGBUS_SHFT                                13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_CMEM_BMSK                                        0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_CMEM_SHFT                                           11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_SNOC_EXT_BMSK                              0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_SNOC_EXT_SHFT                                 10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_SNOC_INT_BMSK                              0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_SNOC_INT_SHFT                                  9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_PHY_BMSK                                   0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4S_PHY_SHFT                                       8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_UMXI_BMSK                                         0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_UMXI_SHFT                                            6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_PMAC1_BMSK                                        0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_PMAC1_SHFT                                           5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_PMAC0_BMSK                                        0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_PMAC0_SHFT                                           4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_DMAC_BMSK                                          0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_DMAC_SHFT                                            3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4M_SNOC_BMSK                                    0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4M_SNOC_SHFT                                      2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4M_PHY_BMSK                                     0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTCLR0_LOW_RSTREQN_QNS4M_PHY_SHFT                                       1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ADDR(x)                                             ((x) + 0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_PHYS(x)                                             ((x) + 0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_OFFS                                                (0x288)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RMSK                                                    0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ATTR                                                             0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QHS_WIFI_CFGBUS_BMSK                            0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QHS_WIFI_CFGBUS_SHFT                                13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_CMEM_BMSK                                        0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_CMEM_SHFT                                           11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_SNOC_EXT_BMSK                              0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_SNOC_EXT_SHFT                                 10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_SNOC_INT_BMSK                              0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_SNOC_INT_SHFT                                  9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_PHY_BMSK                                   0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4S_PHY_SHFT                                       8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_UMXI_BMSK                                         0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_UMXI_SHFT                                            6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_PMAC1_BMSK                                        0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_PMAC1_SHFT                                           5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_PMAC0_BMSK                                        0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_PMAC0_SHFT                                           4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_DMAC_BMSK                                          0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_DMAC_SHFT                                            3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4M_SNOC_BMSK                                    0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4M_SNOC_SHFT                                      2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4M_PHY_BMSK                                     0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSET0_LOW_RSTREQN_QNS4M_PHY_SHFT                                       1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x)                                          ((x) + 0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_PHYS(x)                                          ((x) + 0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_OFFS                                             (0x290)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RMSK                                                 0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_POR                                              0x00002f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ATTR                                                          0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QHS_WIFI_CFGBUS_BMSK                         0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QHS_WIFI_CFGBUS_SHFT                             13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_CMEM_BMSK                                     0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_CMEM_SHFT                                        11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_SNOC_EXT_BMSK                           0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_SNOC_EXT_SHFT                              10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_SNOC_INT_BMSK                           0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_SNOC_INT_SHFT                               9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_PHY_BMSK                                0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4S_PHY_SHFT                                    8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_UMXI_BMSK                                      0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_UMXI_SHFT                                         6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_PMAC1_BMSK                                     0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_PMAC1_SHFT                                        5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_PMAC0_BMSK                                     0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_PMAC0_SHFT                                        4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_DMAC_BMSK                                       0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_DMAC_SHFT                                         3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4M_SNOC_BMSK                                 0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4M_SNOC_SHFT                                   2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4M_PHY_BMSK                                  0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_FLAGOUTSTATUS0_LOW_RSTREQN_QNS4M_PHY_SHFT                                    1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x)                                                ((x) + 0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_PHYS(x)                                                ((x) + 0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_OFFS                                                   (0x300)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RMSK                                                       0x2f7e
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ATTR                                                                0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QHS_WIFI_CFGBUS_BMSK                               0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QHS_WIFI_CFGBUS_SHFT                                   13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_CMEM_BMSK                                           0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_CMEM_SHFT                                              11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_SNOC_EXT_BMSK                                 0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_SNOC_EXT_SHFT                                    10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_SNOC_INT_BMSK                                 0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_SNOC_INT_SHFT                                     9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_PHY_BMSK                                      0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4S_PHY_SHFT                                          8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_UMXI_BMSK                                            0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_UMXI_SHFT                                               6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_PMAC1_BMSK                                           0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_PMAC1_SHFT                                              5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_PMAC0_BMSK                                           0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_PMAC0_SHFT                                              4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_DMAC_BMSK                                             0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_DMAC_SHFT                                               3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4M_SNOC_BMSK                                       0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4M_SNOC_SHFT                                         2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4M_PHY_BMSK                                        0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_ERR_SBM_SENSEIN0_LOW_RSTACKN_QNS4M_PHY_SHFT                                          1
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x)                                                    ((x) + 0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_PHYS(x)                                                    ((x) + 0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_OFFS                                                       (0x600)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_RMSK                                                         0xffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_POR                                                        0x000e9029
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ATTR                                                                    0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITTYPEID_BMSK                                              0xff0000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITTYPEID_SHFT                                                    16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITCONFID_BMSK                                                0xffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_LOW_UNITCONFID_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x)                                                   ((x) + 0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_PHYS(x)                                                   ((x) + 0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_OFFS                                                      (0x604)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_POR                                                       0xbc66d227
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_QNOCID_BMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SWID_HIGH_QNOCID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x)                                              ((x) + 0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_PHYS(x)                                              ((x) + 0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OFFS                                                 (0x640)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_RMSK                                                       0x1f
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ATTR                                                              0x3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_IN(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_EVENT_COLLECTOR_BMSK                                  0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_EVENT_COLLECTOR_SHFT                                     4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE3_BMSK                                      0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE3_SHFT                                        3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE2_BMSK                                      0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE2_SHFT                                        2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE1_BMSK                                      0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE1_SHFT                                        1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE0_BMSK                                      0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINEN0_LOW_INTR_TRACE_PROBE0_SHFT                                        0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x)                                          ((x) + 0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_PHYS(x)                                          ((x) + 0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_OFFS                                             (0x648)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_RMSK                                                   0x1f
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_POR                                              0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ATTR                                                          0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_EVENT_COLLECTOR_BMSK                              0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_EVENT_COLLECTOR_SHFT                                 4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE3_BMSK                                  0x8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE3_SHFT                                    3
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE2_BMSK                                  0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE2_SHFT                                    2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE1_BMSK                                  0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE1_SHFT                                    1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE0_BMSK                                  0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FAULTINSTATUS0_LOW_INTR_TRACE_PROBE0_SHFT                                    0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ADDR(x)                                             ((x) + 0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_PHYS(x)                                             ((x) + 0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_OFFS                                                (0x680)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_RMSK                                                  0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ATTR                                                             0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_INT_TIMEBASE_DIV_BMSK                         0xffff00
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_INT_TIMEBASE_DIV_SHFT                                8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_UMXI_BMSK                                     0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_UMXI_SHFT                                        7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_PMAC1_BMSK                                    0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_PMAC1_SHFT                                       6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_PMAC0_BMSK                                    0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_PMAC0_SHFT                                       5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_DMAC_BMSK                                     0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_READY_FORCE_DMAC_SHFT                                        4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_COEX_APB2AXI_XWERRCLR_BMSK                                 0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_COEX_APB2AXI_XWERRCLR_SHFT                                   2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_BMSK                              0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_SHFT                                1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_ENABLE_BMSK                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTCLR0_LOW_TIMEOUT_ENABLE_SHFT                                          0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ADDR(x)                                             ((x) + 0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_PHYS(x)                                             ((x) + 0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_OFFS                                                (0x688)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_RMSK                                                  0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ATTR                                                             0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_INT_TIMEBASE_DIV_BMSK                         0xffff00
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_INT_TIMEBASE_DIV_SHFT                                8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_UMXI_BMSK                                     0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_UMXI_SHFT                                        7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_PMAC1_BMSK                                    0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_PMAC1_SHFT                                       6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_PMAC0_BMSK                                    0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_PMAC0_SHFT                                       5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_DMAC_BMSK                                     0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_READY_FORCE_DMAC_SHFT                                        4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_COEX_APB2AXI_XWERRCLR_BMSK                                 0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_COEX_APB2AXI_XWERRCLR_SHFT                                   2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_BMSK                              0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_SHFT                                1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_ENABLE_BMSK                                        0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSET0_LOW_TIMEOUT_ENABLE_SHFT                                          0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x)                                          ((x) + 0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_PHYS(x)                                          ((x) + 0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_OFFS                                             (0x690)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_RMSK                                               0xfffff7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_POR                                              0x00000001
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ATTR                                                          0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_INT_TIMEBASE_DIV_BMSK                      0xffff00
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_INT_TIMEBASE_DIV_SHFT                             8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_UMXI_BMSK                                  0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_UMXI_SHFT                                     7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_PMAC1_BMSK                                 0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_PMAC1_SHFT                                    6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_PMAC0_BMSK                                 0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_PMAC0_SHFT                                    5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_DMAC_BMSK                                  0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_READY_FORCE_DMAC_SHFT                                     4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_COEX_APB2AXI_XWERRCLR_BMSK                              0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_COEX_APB2AXI_XWERRCLR_SHFT                                2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_BMSK                           0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_TIMEBASE_SRC_SEL_SHFT                             1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_ENABLE_BMSK                                     0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_FLAGOUTSTATUS0_LOW_TIMEOUT_ENABLE_SHFT                                       0
+
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x)                                                ((x) + 0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_PHYS(x)                                                ((x) + 0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_OFFS                                                   (0x700)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_RMSK                                                      0xffff6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ATTR                                                                0x1
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_NOPX_BMSK                          0x80000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_NOPX_SHFT                               19
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_XWSLVERR_BMSK                      0x40000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_XWSLVERR_SHFT                           18
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_XWDECERR_BMSK                      0x20000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_APB2AXI_XWDECERR_SHFT                           17
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_SRVC_NOC_BMSK                                   0x10000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_SRVC_NOC_SHFT                                        16
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_WCSS_DBG_BMSK                                    0x8000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_WCSS_DBG_SHFT                                        15
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QHS_WIFI_CFGBUS_BMSK                             0x4000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QHS_WIFI_CFGBUS_SHFT                                 14
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QHM_WIFI_CFGBUS_BMSK                             0x2000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QHM_WIFI_CFGBUS_SHFT                                 13
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_CMEM_BMSK                                        0x1000
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_CMEM_SHFT                                            12
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_SNOC_EXT_BMSK                               0x800
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_SNOC_EXT_SHFT                                  11
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_SNOC_INT_BMSK                               0x400
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_SNOC_INT_SHFT                                  10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_PHY_BMSK                                    0x200
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4S_PHY_SHFT                                        9
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_BMSK                                         0x100
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_COEX_SHFT                                             8
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_UMXI_BMSK                                          0x80
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_UMXI_SHFT                                             7
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_PMAC1_BMSK                                         0x40
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_PMAC1_SHFT                                            6
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_PMAC0_BMSK                                         0x20
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_PMAC0_SHFT                                            5
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_DMAC_BMSK                                          0x10
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_DMAC_SHFT                                             4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4M_SNOC_BMSK                                     0x4
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4M_SNOC_SHFT                                       2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4M_PHY_BMSK                                      0x2
+#define HWIO_UMAC_NOC_SIDEBANDMANAGER_CMN_SBM_SENSEIN0_LOW_TRPENDING_QNS4M_PHY_SHFT                                        1
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x)                                                           ((x) + 0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_PHYS(x)                                                           ((x) + 0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_OFFS                                                              (0x800)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_RMSK                                                                0xffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_POR                                                               0x00083dc8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_POR_RMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ATTR                                                                           0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                     0xff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                           16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                       0xffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x)                                                          ((x) + 0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_PHYS(x)                                                          ((x) + 0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_OFFS                                                             (0x804)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_RMSK                                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_POR                                                              0xbc66d227
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ATTR                                                                          0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x)                                                        ((x) + 0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_PHYS(x)                                                        ((x) + 0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OFFS                                                           (0x808)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_RMSK                                                               0x3f3f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_POR                                                            0x00000008
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                      0x3f00
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                           8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                    0x30
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                       4
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SLVURGMSGEN_BMSK                                                      0x8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SLVURGMSGEN_SHFT                                                        3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                             0x4
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                               2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                         0x2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                           1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                     ((x) + 0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                     ((x) + 0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_OFFS                                                        (0x810)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_RMSK                                                         0xfff003f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_POR                                                         0x01800000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                             0xfff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                    16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                      0x3f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x)                                                        ((x) + 0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_PHYS(x)                                                        ((x) + 0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OFFS                                                           (0x818)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_RMSK                                                            0x3ff07ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_POR                                                            0x00800266
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                 0x3ff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                        16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                      0x7ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x)                                                        ((x) + 0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_PHYS(x)                                                        ((x) + 0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OFFS                                                           (0x820)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_RMSK                                                           0x1f1f1f1f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                      0x1f000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                              24
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                        0x1f0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                              16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                          0x1f00
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                               8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                            0x1f
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                      ((x) + 0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                      ((x) + 0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OFFS                                                         (0x840)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RMSK                                                             0x3303
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_POR                                                          0x00000000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ATTR                                                                      0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                0x3000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                    12
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                  0x300
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                      8
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                           0x2
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                             1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                           0x1
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                       ((x) + 0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                       ((x) + 0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OFFS                                                          (0x848)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_RMSK                                                           0x3ff07ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_POR                                                           0x00400133
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                0x3ff0000
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                       16
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                     0x7ff
+#define HWIO_UMAC_NOC_QNS4M_PHY_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x)                                                             ((x) + 0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_PHYS(x)                                                             ((x) + 0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_OFFS                                                                (0x880)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_RMSK                                                                  0xffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_POR                                                                 0x00080982
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ATTR                                                                             0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                       0xff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                             16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                         0xffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x)                                                            ((x) + 0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_PHYS(x)                                                            ((x) + 0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_OFFS                                                               (0x884)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_POR                                                                0xbc66d227
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_POR_RMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ATTR                                                                            0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                                 0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x)                                                          ((x) + 0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_PHYS(x)                                                          ((x) + 0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OFFS                                                             (0x888)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_RMSK                                                                 0x3f37
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_POR                                                              0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                        0x3f00
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                             8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                      0x30
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                         4
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                               0x4
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                                 2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                           0x2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                             1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                          0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                       ((x) + 0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                       ((x) + 0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_OFFS                                                          (0x890)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_RMSK                                                           0xfff007f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_POR                                                           0x01800000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                               0xfff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                      16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                        0x7f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x)                                                          ((x) + 0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_PHYS(x)                                                          ((x) + 0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OFFS                                                             (0x898)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_RMSK                                                              0x3ff07ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_POR                                                              0x00c000cc
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                   0x3ff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                          16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                        0x7ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x)                                                          ((x) + 0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_PHYS(x)                                                          ((x) + 0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OFFS                                                             (0x8a0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_RMSK                                                             0x3f3f3f3f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_POR                                                              0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                        0x3f000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                                24
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                          0x3f0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                                16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                            0x3f00
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                                 8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                              0x3f
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                                 0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                        ((x) + 0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                        ((x) + 0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OFFS                                                           (0x8c0)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RMSK                                                               0x3303
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                  0x3000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                      12
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                    0x300
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                        8
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                             0x2
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                               1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                             0x1
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                         ((x) + 0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                         ((x) + 0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OFFS                                                            (0x8c8)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_RMSK                                                             0x3ff07ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_POR                                                             0x00600066
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                  0x3ff0000
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                         16
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                       0x7ff
+#define HWIO_UMAC_NOC_XM_UMXI_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x)                                                             ((x) + 0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_PHYS(x)                                                             ((x) + 0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_OFFS                                                                (0x900)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_RMSK                                                                  0xffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_POR                                                                 0x00084c55
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_POR_RMSK                                                            0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ATTR                                                                             0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                       0xff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                             16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                         0xffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x)                                                            ((x) + 0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_PHYS(x)                                                            ((x) + 0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_OFFS                                                               (0x904)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_RMSK                                                               0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_POR                                                                0xbc66d227
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_POR_RMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ATTR                                                                            0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                                 0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x)                                                          ((x) + 0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_PHYS(x)                                                          ((x) + 0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OFFS                                                             (0x908)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_RMSK                                                                 0x3f37
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_POR                                                              0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                        0x3f00
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                             8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                      0x30
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                         4
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                               0x4
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                                 2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                           0x2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                             1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                          0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                       ((x) + 0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                       ((x) + 0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_OFFS                                                          (0x910)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_RMSK                                                           0xfff007f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_POR                                                           0x01800000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                               0xfff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                      16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                        0x7f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x)                                                          ((x) + 0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_PHYS(x)                                                          ((x) + 0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OFFS                                                             (0x918)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_RMSK                                                              0x3ff07ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_POR                                                              0x00c00266
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                   0x3ff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                          16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                        0x7ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                            0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x)                                                          ((x) + 0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_PHYS(x)                                                          ((x) + 0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OFFS                                                             (0x920)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_RMSK                                                             0x7f7f7f7f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_POR                                                              0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_POR_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ATTR                                                                          0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                        0x7f000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                                24
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                          0x7f0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                                16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                            0x7f00
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                                 8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                              0x7f
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                                 0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                        ((x) + 0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                        ((x) + 0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OFFS                                                           (0x940)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RMSK                                                               0x3303
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_POR                                                            0x00000000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                  0x3000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                      12
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                    0x300
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                        8
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                             0x2
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                               1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                             0x1
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                               0
+
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                         ((x) + 0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                         ((x) + 0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OFFS                                                            (0x948)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_RMSK                                                             0x3ff07ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_POR                                                             0x00600133
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                  0x3ff0000
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                         16
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                       0x7ff
+#define HWIO_UMAC_NOC_XM_DMAC_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x)                                                            ((x) + 0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_PHYS(x)                                                            ((x) + 0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_OFFS                                                               (0x980)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_RMSK                                                                 0xffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_POR                                                                0x0008b525
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_POR_RMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ATTR                                                                            0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                      0xff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                            16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                        0xffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x)                                                           ((x) + 0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_PHYS(x)                                                           ((x) + 0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_OFFS                                                              (0x984)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_RMSK                                                              0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_POR                                                               0xbc66d227
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_POR_RMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ATTR                                                                           0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x)                                                         ((x) + 0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_PHYS(x)                                                         ((x) + 0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OFFS                                                            (0x988)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_RMSK                                                                0x3f37
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_POR                                                             0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                       0x3f00
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                            8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                     0x30
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                        4
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                              0x4
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                                2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                          0x2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                            1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                         0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                      ((x) + 0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                      ((x) + 0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_OFFS                                                         (0x990)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_RMSK                                                          0xfff003f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_POR                                                          0x01800000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                              0xfff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                     16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                       0x3f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x)                                                         ((x) + 0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_PHYS(x)                                                         ((x) + 0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OFFS                                                            (0x998)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_RMSK                                                             0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_POR                                                             0x00c00266
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                  0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                         16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                       0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x)                                                         ((x) + 0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_PHYS(x)                                                         ((x) + 0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OFFS                                                            (0x9a0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_RMSK                                                            0x1f1f1f1f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_POR                                                             0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                       0x1f000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                               24
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                         0x1f0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                               16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                           0x1f00
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                                8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                             0x1f
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                       ((x) + 0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                       ((x) + 0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OFFS                                                          (0x9c0)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RMSK                                                              0x3303
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_POR                                                           0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                 0x3000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                     12
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                   0x300
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                       8
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                            0x2
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                              1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                            0x1
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                        ((x) + 0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                        ((x) + 0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OFFS                                                           (0x9c8)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_RMSK                                                            0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_POR                                                            0x00600133
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                 0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                        16
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                      0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC0_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_ADDR(x)                                                            ((x) + 0xa00)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_PHYS(x)                                                            ((x) + 0xa00)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_OFFS                                                               (0xa00)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_RMSK                                                                 0xffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_POR                                                                0x0008d806
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_POR_RMSK                                                           0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_ATTR                                                                            0x1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_UNITTYPEID_BMSK                                                      0xff0000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_UNITTYPEID_SHFT                                                            16
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_UNITCONFID_BMSK                                                        0xffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_LOW_UNITCONFID_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_ADDR(x)                                                           ((x) + 0xa04)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_PHYS(x)                                                           ((x) + 0xa04)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_OFFS                                                              (0xa04)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_RMSK                                                              0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_POR                                                               0xbc66d227
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_POR_RMSK                                                          0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_ATTR                                                                           0x1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_QNOCID_BMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SWID_HIGH_QNOCID_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ADDR(x)                                                         ((x) + 0xa08)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_PHYS(x)                                                         ((x) + 0xa08)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_OFFS                                                            (0xa08)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_RMSK                                                                0x3f37
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_POR                                                             0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_URGDELAY_BMSK                                                       0x3f00
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_URGDELAY_SHFT                                                            8
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_BMSK                                                     0x30
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_DFLTPRIORITY_SHFT                                                        4
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_STOP_BMSK                                                              0x4
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_STOP_SHFT                                                                2
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_SHAPEREN_BMSK                                                          0x2
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_SHAPEREN_SHFT                                                            1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_BWLIMITEN_BMSK                                                         0x1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINCTL_LOW_BWLIMITEN_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_ADDR(x)                                                      ((x) + 0xa10)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_PHYS(x)                                                      ((x) + 0xa10)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_OFFS                                                         (0xa10)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_RMSK                                                          0xfff001f
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_POR                                                          0x01800000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_BMSK                                              0xfff0000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_NOMINALFREQ_SHFT                                                     16
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_PENDING_BMSK                                                       0x1f
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_MAINSTATUS_LOW_PENDING_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ADDR(x)                                                         ((x) + 0xa18)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_PHYS(x)                                                         ((x) + 0xa18)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_OFFS                                                            (0xa18)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_RMSK                                                             0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_POR                                                             0x00c00266
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_SATURATION_BMSK                                                  0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_SATURATION_SHFT                                                         16
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_BANDWIDTH_BMSK                                                       0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_LIMITBW_LOW_BANDWIDTH_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ADDR(x)                                                         ((x) + 0xa20)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_PHYS(x)                                                         ((x) + 0xa20)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_OFFS                                                            (0xa20)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_RMSK                                                             0xf0f0f0f
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_POR                                                             0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_POR_RMSK                                                        0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ATTR                                                                         0x3
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL3_BMSK                                                        0xf000000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL3_SHFT                                                               24
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL2_BMSK                                                          0xf0000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL2_SHFT                                                               16
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL1_BMSK                                                            0xf00
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL1_SHFT                                                                8
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL0_BMSK                                                              0xf
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_SHAPING_LOW_LVL0_SHFT                                                                0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ADDR(x)                                                       ((x) + 0xa40)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_PHYS(x)                                                       ((x) + 0xa40)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_OFFS                                                          (0xa40)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_RMSK                                                              0x3303
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_POR                                                           0x00000000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ATTR                                                                       0x3
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_BMSK                                                 0x3000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_HIGHPRIORITY_SHFT                                                     12
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_BMSK                                                   0x300
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_LOWPRIORITY_SHFT                                                       8
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_WREN_BMSK                                                            0x2
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_WREN_SHFT                                                              1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_RDEN_BMSK                                                            0x1
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0CTL_LOW_RDEN_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ADDR(x)                                                        ((x) + 0xa48)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_PHYS(x)                                                        ((x) + 0xa48)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_OFFS                                                           (0xa48)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_RMSK                                                            0x3ff07ff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_POR                                                            0x00600133
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_IN(x))
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_SATURATION_BMSK                                                 0x3ff0000
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_SATURATION_SHFT                                                        16
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_BANDWIDTH_BMSK                                                      0x7ff
+#define HWIO_UMAC_NOC_XM_PMAC1_QOSGEN_REGUL0BW_LOW_BANDWIDTH_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x)                                                                        ((x) + 0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_PHYS(x)                                                                        ((x) + 0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_OFFS                                                                           (0xe00)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_RMSK                                                                             0xffffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_POR                                                                            0x000ce93b
+#define HWIO_UMAC_NOC_STP_SWID_LOW_POR_RMSK                                                                       0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_ATTR                                                                                        0x1
+#define HWIO_UMAC_NOC_STP_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITTYPEID_BMSK                                                                  0xff0000
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITTYPEID_SHFT                                                                        16
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITCONFID_BMSK                                                                    0xffff
+#define HWIO_UMAC_NOC_STP_SWID_LOW_UNITCONFID_SHFT                                                                         0
+
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x)                                                                       ((x) + 0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_PHYS(x)                                                                       ((x) + 0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_OFFS                                                                          (0xe04)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_RMSK                                                                          0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_POR                                                                           0xbc66d227
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_ATTR                                                                                       0x1
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_QNOCID_BMSK                                                                   0xffffffff
+#define HWIO_UMAC_NOC_STP_SWID_HIGH_QNOCID_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x)                                                                       ((x) + 0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_PHYS(x)                                                                       ((x) + 0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OFFS                                                                          (0xe08)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_RMSK                                                                                 0x1
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_POR                                                                           0x00000000
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATTR                                                                                       0x3
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_ATBEN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_ATBEN_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATBEN_BMSK                                                                           0x1
+#define HWIO_UMAC_NOC_STP_ATBEN_LOW_ATBEN_SHFT                                                                             0
+
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x)                                                                       ((x) + 0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_PHYS(x)                                                                       ((x) + 0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OFFS                                                                          (0xe10)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_RMSK                                                                                0x7f
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_POR                                                                           0x00000000
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATTR                                                                                       0x3
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_ATBID_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_ATBID_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATBID_BMSK                                                                          0x7f
+#define HWIO_UMAC_NOC_STP_ATBID_LOW_ATBID_SHFT                                                                             0
+
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x)                                                               ((x) + 0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_PHYS(x)                                                               ((x) + 0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OFFS                                                                  (0xe18)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_RMSK                                                                       0x3ff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_POR                                                                   0x00000000
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_POR_RMSK                                                              0xffffffff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ATTR                                                                               0x3
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_IN(x))
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_SYNCOUTPERIOD_BMSK                                                         0x3ff
+#define HWIO_UMAC_NOC_STP_SYNCOUTPERIOD_LOW_SYNCOUTPERIOD_SHFT                                                             0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x)                                                       ((x) + 0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_PHYS(x)                                                       ((x) + 0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_OFFS                                                          (0x1000)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_RMSK                                                            0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_POR                                                           0x001256db
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                                 0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                       16
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                   0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x)                                                      ((x) + 0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_PHYS(x)                                                      ((x) + 0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_OFFS                                                         (0x1004)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_POR                                                          0xbc66d227
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                    ((x) + 0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                    ((x) + 0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OFFS                                                       (0x1008)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_RMSK                                                             0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                            0x20
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                               5
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                   0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                     3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                      0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                        2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                       0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                         1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                   ((x) + 0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                   ((x) + 0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OFFS                                                      (0x1010)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                               ((x) + 0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                               ((x) + 0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                  (0x1018)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                  0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_POR                                                   0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                               0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                              0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                      31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                  ((x) + 0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                  ((x) + 0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_OFFS                                                     (0x1020)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_RMSK                                                     0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                  0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                                 0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                         31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x)                                                     ((x) + 0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PHYS(x)                                                     ((x) + 0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OFFS                                                        (0x1028)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_RMSK                                                        0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                    0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                            31
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                    ((x) + 0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                    ((x) + 0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OFFS                                                       (0x1030)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_RMSK                                                              0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                           (0x1100)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                           (0x1108)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                            (0x1120)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                           (0x1124)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                            (0x1128)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                           (0x112c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                              (0x1138)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                           ((x) + 0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                           ((x) + 0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                              (0x1140)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                          (0x1178)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                          (0x1180)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                           (0x1200)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                           (0x1208)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                            (0x1220)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                           (0x1224)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                            (0x1228)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                           (0x122c)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                              (0x1238)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                           ((x) + 0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                           ((x) + 0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                              (0x1240)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                          (0x1278)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                          (0x1280)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE0_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x)                                                       ((x) + 0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_PHYS(x)                                                       ((x) + 0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_OFFS                                                          (0x1400)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_RMSK                                                            0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_POR                                                           0x0012cd9b
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                                 0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                       16
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                   0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x)                                                      ((x) + 0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_PHYS(x)                                                      ((x) + 0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_OFFS                                                         (0x1404)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_POR                                                          0xbc66d227
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                    ((x) + 0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                    ((x) + 0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OFFS                                                       (0x1408)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_RMSK                                                             0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                            0x20
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                               5
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                   0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                     3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                      0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                        2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                       0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                         1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                   ((x) + 0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                   ((x) + 0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OFFS                                                      (0x1410)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                               ((x) + 0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                               ((x) + 0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                  (0x1418)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                  0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_POR                                                   0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                               0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                              0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                      31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                  ((x) + 0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                  ((x) + 0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_OFFS                                                     (0x1420)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_RMSK                                                     0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                  0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                                 0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                         31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x)                                                     ((x) + 0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PHYS(x)                                                     ((x) + 0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OFFS                                                        (0x1428)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_RMSK                                                        0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                    0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                            31
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                    ((x) + 0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                    ((x) + 0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OFFS                                                       (0x1430)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_RMSK                                                              0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                           (0x1500)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                           (0x1508)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                            (0x1520)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                           (0x1524)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                            (0x1528)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                           (0x152c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                              (0x1538)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                           ((x) + 0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                           ((x) + 0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                              (0x1540)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                          (0x1578)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                          (0x1580)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                           (0x1600)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                           (0x1608)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                            (0x1620)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                           (0x1624)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                            (0x1628)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                           (0x162c)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                              (0x1638)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                           ((x) + 0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                           ((x) + 0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                              (0x1640)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                          (0x1678)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                          (0x1680)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE1_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x)                                                       ((x) + 0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_PHYS(x)                                                       ((x) + 0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_OFFS                                                          (0x1800)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_RMSK                                                            0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_POR                                                           0x001256db
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                                 0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                       16
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                   0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x)                                                      ((x) + 0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_PHYS(x)                                                      ((x) + 0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_OFFS                                                         (0x1804)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_POR                                                          0xbc66d227
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                    ((x) + 0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                    ((x) + 0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OFFS                                                       (0x1808)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_RMSK                                                             0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                            0x20
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                               5
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                   0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                     3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                      0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                        2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                       0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                         1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                   ((x) + 0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                   ((x) + 0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OFFS                                                      (0x1810)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                               ((x) + 0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                               ((x) + 0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                  (0x1818)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                  0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_POR                                                   0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                               0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                              0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                      31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                  ((x) + 0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                  ((x) + 0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_OFFS                                                     (0x1820)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_RMSK                                                     0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                  0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                                 0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                         31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x)                                                     ((x) + 0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PHYS(x)                                                     ((x) + 0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OFFS                                                        (0x1828)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_RMSK                                                        0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                    0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                            31
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                    ((x) + 0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                    ((x) + 0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OFFS                                                       (0x1830)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_RMSK                                                              0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                           (0x1900)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                           (0x1908)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                            (0x1920)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                           (0x1924)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                            (0x1928)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                           (0x192c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                              (0x1938)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                           ((x) + 0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                           ((x) + 0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                              (0x1940)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                          (0x1978)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                          (0x1980)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                           (0x1a00)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                           (0x1a08)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                            (0x1a20)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                           (0x1a24)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                            (0x1a28)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                           (0x1a2c)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                              (0x1a38)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                           ((x) + 0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                           ((x) + 0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                              (0x1a40)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                          (0x1a78)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                          (0x1a80)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE2_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x)                                                       ((x) + 0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_PHYS(x)                                                       ((x) + 0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_OFFS                                                          (0x1c00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_RMSK                                                            0xffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_POR                                                           0x0012cd9b
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITTYPEID_BMSK                                                 0xff0000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITTYPEID_SHFT                                                       16
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITCONFID_BMSK                                                   0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_LOW_UNITCONFID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x)                                                      ((x) + 0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_PHYS(x)                                                      ((x) + 0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_OFFS                                                         (0x1c04)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_POR                                                          0xbc66d227
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_QNOCID_BMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_SWID_HIGH_QNOCID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x)                                                    ((x) + 0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_PHYS(x)                                                    ((x) + 0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OFFS                                                       (0x1c08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_RMSK                                                             0x2f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                            0x20
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                               5
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_BMSK                                                   0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPFORMAT_SHFT                                                     3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ALARMEN_BMSK                                                      0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_ALARMEN_SHFT                                                        2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPEN_BMSK                                                       0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_DUMPEN_SHFT                                                         1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_GLBEN_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_MAINCTL_LOW_GLBEN_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x)                                                   ((x) + 0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PHYS(x)                                                   ((x) + 0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OFFS                                                      (0x1c10)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_RMSK                                                      0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PLA_BMSK                                                  0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_PLA_SHFT                                                          31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_FILTER_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_EN_LOW_FILTER_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x)                                               ((x) + 0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PHYS(x)                                               ((x) + 0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_OFFS                                                  (0x1c18)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_RMSK                                                  0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_POR                                                   0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ATTR                                                               0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PLA_BMSK                                              0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_PLA_SHFT                                                      31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_FILTER_BMSK                                                  0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_STATUS_LOW_FILTER_SHFT                                                    0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ADDR(x)                                                  ((x) + 0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PHYS(x)                                                  ((x) + 0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_OFFS                                                     (0x1c20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_RMSK                                                     0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ATTR                                                                  0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PLA_BMSK                                                 0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_PLA_SHFT                                                         31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_FILTER_BMSK                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ALARM_CLR_LOW_FILTER_SHFT                                                       0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x)                                                     ((x) + 0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PHYS(x)                                                     ((x) + 0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OFFS                                                        (0x1c28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_RMSK                                                        0x80000003
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ATTR                                                                     0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PLA_BMSK                                                    0x80000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_PLA_SHFT                                                            31
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_FILTER_BMSK                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_ANDINV_LOW_FILTER_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x)                                                    ((x) + 0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PHYS(x)                                                    ((x) + 0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OFFS                                                       (0x1c30)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_RMSK                                                              0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_POR                                                        0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PORTSEL_BMSK                                                      0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_PORTSEL_LOW_PORTSEL_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OFFS                                           (0x1d00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_BASE_LOW_FILTERS_0_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OFFS                                           (0x1d08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_PATH_MASK_LOW_FILTERS_0_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OFFS                                            (0x1d20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OFFS                                           (0x1d24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OFFS                                            (0x1d28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OFFS                                           (0x1d2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OFFS                                              (0x1d38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x)                                           ((x) + 0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_PHYS(x)                                           ((x) + 0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OFFS                                              (0x1d40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OFFS                                          (0x1d78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_BASE_LOW_FILTERS_0_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OFFS                                          (0x1d80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_0_EXTID_MASK_LOW_FILTERS_0_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x)                                        ((x) + 0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_PHYS(x)                                        ((x) + 0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OFFS                                           (0x1e00)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_BASE_LOW_FILTERS_1_PATH_BASE_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x)                                        ((x) + 0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_PHYS(x)                                        ((x) + 0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OFFS                                           (0x1e08)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_RMSK                                                 0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_BMSK                             0x7f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_PATH_MASK_LOW_FILTERS_1_PATH_MASK_SHFT                                0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x)                                         ((x) + 0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_PHYS(x)                                         ((x) + 0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OFFS                                            (0x1e20)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x)                                        ((x) + 0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_PHYS(x)                                        ((x) + 0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OFFS                                           (0x1e24)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x)                                         ((x) + 0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_PHYS(x)                                         ((x) + 0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OFFS                                            (0x1e28)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_RMSK                                            0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR                                             0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_BMSK                                  0xffffffc0
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_LOW_VALUE_LSB_SHFT                                           6
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x)                                        ((x) + 0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_PHYS(x)                                        ((x) + 0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OFFS                                           (0x1e2c)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_RMSK                                                  0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR                                            0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ATTR                                                        0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                        0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                          0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x)                                           ((x) + 0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_PHYS(x)                                           ((x) + 0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OFFS                                              (0x1e38)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_BMSK                                             0x10
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_ATOMEN_SHFT                                                4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_BMSK                                                0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_CMEN_SHFT                                                  3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_EXCLEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_BMSK                                                0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_WREN_SHFT                                                  1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_BMSK                                                0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_OPCODE_LOW_RDEN_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x)                                           ((x) + 0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_PHYS(x)                                           ((x) + 0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OFFS                                              (0x1e40)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RMSK                                                     0xf
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_POR                                               0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_FAILEN_SHFT                                                3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_BMSK                                              0x4
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_RSPEEN_SHFT                                                2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_BMSK                                               0x2
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_ERREN_SHFT                                                 1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_BMSK                                            0x1
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_STATUS_LOW_REQRSPEN_SHFT                                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x)                                       ((x) + 0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_PHYS(x)                                       ((x) + 0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OFFS                                          (0x1e78)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_BASE_LOW_FILTERS_1_EXTID_BASE_SHFT                              0
+
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x)                                       ((x) + 0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_PHYS(x)                                       ((x) + 0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OFFS                                          (0x1e80)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_RMSK                                              0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_BMSK                         0xffff
+#define HWIO_UMAC_NOC_TRACEPROBE3_TRACEPRB_FILTERS_1_EXTID_MASK_LOW_FILTERS_1_EXTID_MASK_SHFT                              0
+
+#define HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x)                                                                         ((x) + 0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_PHYS(x)                                                                         ((x) + 0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_OFFS                                                                            (0x3000)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_RMSK                                                                              0xffffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_POR                                                                             0x00021795
+#define HWIO_UMAC_NOC_EC_SWID_LOW_POR_RMSK                                                                        0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_ATTR                                                                                         0x1
+#define HWIO_UMAC_NOC_EC_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITTYPEID_BMSK                                                                   0xff0000
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITTYPEID_SHFT                                                                         16
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITCONFID_BMSK                                                                     0xffff
+#define HWIO_UMAC_NOC_EC_SWID_LOW_UNITCONFID_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x)                                                                        ((x) + 0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_PHYS(x)                                                                        ((x) + 0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_OFFS                                                                           (0x3004)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_RMSK                                                                           0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_POR                                                                            0xbc66d227
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_POR_RMSK                                                                       0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_ATTR                                                                                        0x1
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_QNOCID_BMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_EC_SWID_HIGH_QNOCID_SHFT                                                                             0
+
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x)                                                                      ((x) + 0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_PHYS(x)                                                                      ((x) + 0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OFFS                                                                         (0x3008)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_RMSK                                                                                0x7
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_ATTR                                                                                      0x3
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                                               0x4
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                                                 2
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_DUMPEN_BMSK                                                                         0x2
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_DUMPEN_SHFT                                                                           1
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_GLBEN_BMSK                                                                          0x1
+#define HWIO_UMAC_NOC_EC_MAINCTL_LOW_GLBEN_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_ADDR(x)                                                                       ((x) + 0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_PHYS(x)                                                                       ((x) + 0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_OFFS                                                                          (0x3010)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_RMSK                                                                                 0x1
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_POR                                                                           0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_POR_RMSK                                                                      0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_ATTR                                                                                       0x2
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPGO_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_DUMPGO_BMSK                                                                          0x1
+#define HWIO_UMAC_NOC_EC_DUMPGO_LOW_DUMPGO_SHFT                                                                            0
+
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x)                                                                   ((x) + 0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_PHYS(x)                                                                   ((x) + 0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OFFS                                                                      (0x3018)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_RMSK                                                                            0x1f
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ATTR                                                                                   0x3
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_DUMPPERIOD_BMSK                                                                 0x1f
+#define HWIO_UMAC_NOC_EC_DUMPPERIOD_LOW_DUMPPERIOD_SHFT                                                                    0
+
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x)                                                                      ((x) + 0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_PHYS(x)                                                                      ((x) + 0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OFFS                                                                         (0x3020)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_RMSK                                                                             0xffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ATTR                                                                                      0x3
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_DUMPTHR_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_DUMPTHR_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_DUMPTHR_BMSK                                                                     0xffff
+#define HWIO_UMAC_NOC_EC_DUMPTHR_LOW_DUMPTHR_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x)                                                                     ((x) + 0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_PHYS(x)                                                                     ((x) + 0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OFFS                                                                        (0x3028)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_RMSK                                                                            0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ATTR                                                                                     0x3
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMMIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ALARMMIN_BMSK                                                                   0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMIN_LOW_ALARMMIN_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x)                                                                     ((x) + 0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_PHYS(x)                                                                     ((x) + 0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OFFS                                                                        (0x3030)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_RMSK                                                                            0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ATTR                                                                                     0x3
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMMAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ALARMMAX_BMSK                                                                   0xffff
+#define HWIO_UMAC_NOC_EC_ALARMMAX_LOW_ALARMMAX_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x)                                                                  ((x) + 0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_PHYS(x)                                                                  ((x) + 0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_OFFS                                                                     (0x3038)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_RMSK                                                                            0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ALARMSTATUS_BMSK                                                                0x1
+#define HWIO_UMAC_NOC_EC_ALARMSTATUS_LOW_ALARMSTATUS_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ADDR(x)                                                                     ((x) + 0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_PHYS(x)                                                                     ((x) + 0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_OFFS                                                                        (0x3040)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_RMSK                                                                               0x1
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_POR                                                                         0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_POR_RMSK                                                                    0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ATTR                                                                                     0x2
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ALARMCLR_BMSK                                                                      0x1
+#define HWIO_UMAC_NOC_EC_ALARMCLR_LOW_ALARMCLR_SHFT                                                                        0
+
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x)                                                                      ((x) + 0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_PHYS(x)                                                                      ((x) + 0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OFFS                                                                         (0x3048)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_RMSK                                                                                0x1
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_POR                                                                          0x00000000
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_POR_RMSK                                                                     0xffffffff
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ATTR                                                                                      0x3
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_ALARMEN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_ALARMEN_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ALARMEN_BMSK                                                                        0x1
+#define HWIO_UMAC_NOC_EC_ALARMEN_LOW_ALARMEN_SHFT                                                                          0
+
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ADDR(x)                                                                   ((x) + 0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_PHYS(x)                                                                   ((x) + 0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_OFFS                                                                      (0x3050)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_RMSK                                                                            0xff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_POR                                                                       0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_POR_RMSK                                                                  0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ATTR                                                                                   0x2
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_COUNTERCLR_BMSK                                                                 0xff
+#define HWIO_UMAC_NOC_EC_COUNTERCLR_LOW_COUNTERCLR_SHFT                                                                    0
+
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x)                                                                  ((x) + 0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_PHYS(x)                                                                  ((x) + 0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OFFS                                                                     (0x3100)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER0CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x)                                                                  ((x) + 0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_PHYS(x)                                                                  ((x) + 0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_OFFS                                                                     (0x3140)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_COUNTER0VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER0VAL_LOW_COUNTER0VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x)                                                                  ((x) + 0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_PHYS(x)                                                                  ((x) + 0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OFFS                                                                     (0x3180)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER1CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x)                                                                  ((x) + 0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_PHYS(x)                                                                  ((x) + 0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_OFFS                                                                     (0x31c0)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_COUNTER1VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER1VAL_LOW_COUNTER1VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x)                                                                  ((x) + 0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_PHYS(x)                                                                  ((x) + 0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OFFS                                                                     (0x3200)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER2CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x)                                                                  ((x) + 0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_PHYS(x)                                                                  ((x) + 0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_OFFS                                                                     (0x3240)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_COUNTER2VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER2VAL_LOW_COUNTER2VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x)                                                                  ((x) + 0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_PHYS(x)                                                                  ((x) + 0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OFFS                                                                     (0x3280)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER3CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x)                                                                  ((x) + 0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_PHYS(x)                                                                  ((x) + 0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_OFFS                                                                     (0x32c0)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_COUNTER3VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER3VAL_LOW_COUNTER3VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x)                                                                  ((x) + 0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_PHYS(x)                                                                  ((x) + 0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OFFS                                                                     (0x3300)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER4CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x)                                                                  ((x) + 0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_PHYS(x)                                                                  ((x) + 0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_OFFS                                                                     (0x3340)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_COUNTER4VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER4VAL_LOW_COUNTER4VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x)                                                                  ((x) + 0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_PHYS(x)                                                                  ((x) + 0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OFFS                                                                     (0x3380)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER5CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x)                                                                  ((x) + 0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_PHYS(x)                                                                  ((x) + 0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_OFFS                                                                     (0x33c0)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_COUNTER5VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER5VAL_LOW_COUNTER5VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x)                                                                  ((x) + 0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_PHYS(x)                                                                  ((x) + 0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OFFS                                                                     (0x3400)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER6CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x)                                                                  ((x) + 0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_PHYS(x)                                                                  ((x) + 0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_OFFS                                                                     (0x3440)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_COUNTER6VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER6VAL_LOW_COUNTER6VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x)                                                                  ((x) + 0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_PHYS(x)                                                                  ((x) + 0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OFFS                                                                     (0x3480)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_RMSK                                                                          0x77f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_POR                                                                      0x0000007f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ATTR                                                                                  0x3
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ALARMMODE_BMSK                                                                0x600
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_ALARMMODE_SHFT                                                                    9
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_DUMPTHREN_BMSK                                                                0x100
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_DUMPTHREN_SHFT                                                                    8
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_EVENTSRC_BMSK                                                                  0x7f
+#define HWIO_UMAC_NOC_EC_COUNTER7CTL_LOW_EVENTSRC_SHFT                                                                     0
+
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x)                                                                  ((x) + 0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_PHYS(x)                                                                  ((x) + 0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_OFFS                                                                     (0x34c0)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_RMSK                                                                         0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_POR                                                                      0x00000000
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ATTR                                                                                  0x1
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_COUNTER7VAL_BMSK                                                             0xffff
+#define HWIO_UMAC_NOC_EC_COUNTER7VAL_LOW_COUNTER7VAL_SHFT                                                                  0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x)                                                       ((x) + 0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_PHYS(x)                                                       ((x) + 0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_OFFS                                                          (0x4000)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_RMSK                                                            0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_POR                                                           0x0003a14a
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_POR_RMSK                                                      0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ATTR                                                                       0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITTYPEID_BMSK                                                 0xff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITTYPEID_SHFT                                                       16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITCONFID_BMSK                                                   0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_LOW_UNITCONFID_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x)                                                      ((x) + 0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_PHYS(x)                                                      ((x) + 0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_OFFS                                                         (0x4004)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_RMSK                                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_POR                                                          0xbc66d227
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_POR_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ATTR                                                                      0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_QNOCID_BMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_SWID_HIGH_QNOCID_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x)                                                    ((x) + 0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_PHYS(x)                                                    ((x) + 0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OFFS                                                       (0x4008)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_RMSK                                                            0x33f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_POR                                                        0x00000020
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_BMSK                                                0x300
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_SHFT                                                    8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                            0x20
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                               5
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_BMSK                                                0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_SHFT                                                   4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_SCALEEN_BMSK                                                      0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_SCALEEN_SHFT                                                        3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_DUMPEN_BMSK                                                       0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_DUMPEN_SHFT                                                         2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_MODE_BMSK                                                         0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_MAINCTL_LOW_MODE_SHFT                                                           0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ADDR(x)                                                     ((x) + 0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_PHYS(x)                                                     ((x) + 0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_OFFS                                                        (0x4010)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_RMSK                                                               0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ATTR                                                                     0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_DUMPGO_BMSK                                                        0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPGO_LOW_DUMPGO_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x)                                                    ((x) + 0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_PHYS(x)                                                    ((x) + 0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OFFS                                                       (0x4018)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_RMSK                                                         0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_POR                                                        0x00001000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_POR_RMSK                                                   0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ATTR                                                                    0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_DUMPTHR_BMSK                                                 0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_DUMPTHR_LOW_DUMPTHR_SHFT                                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x)                                                        ((x) + 0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_PHYS(x)                                                        ((x) + 0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFS                                                           (0x4020)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_RMSK                                                            0xfffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_POR                                                            0x0180083f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_POR_RMSK                                                       0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ATTR                                                                        0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_NOMINALFREQ_BMSK                                                0xfff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_NOMINALFREQ_SHFT                                                       16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFSET_BMSK                                                        0xff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_OFFSET_SHFT                                                             8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_WIDTH_BMSK                                                           0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_BIN_LOW_WIDTH_SHFT                                                              0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x)                                                  ((x) + 0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_PHYS(x)                                                  ((x) + 0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_OFFS                                                     (0x4028)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_RMSK                                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_POR                                                      0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ATTR                                                                  0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_BMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x)                                                 ((x) + 0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_PHYS(x)                                                 ((x) + 0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_OFFS                                                    (0x402c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_POR                                                     0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_TRCNT_BMSK                                              0xffffff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_TRCNT_SHFT                                                       8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_BMSK                                               0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_SHFT                                                  0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x)                                                   ((x) + 0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_PHYS(x)                                                   ((x) + 0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_OFFS                                                      (0x4040)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_HISTBIN0_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN0_LOW_HISTBIN0_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x)                                                   ((x) + 0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_PHYS(x)                                                   ((x) + 0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_OFFS                                                      (0x4048)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_HISTBIN1_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN1_LOW_HISTBIN1_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x)                                                   ((x) + 0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_PHYS(x)                                                   ((x) + 0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_OFFS                                                      (0x4050)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_HISTBIN2_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN2_LOW_HISTBIN2_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x)                                                   ((x) + 0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_PHYS(x)                                                   ((x) + 0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_OFFS                                                      (0x4058)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_HISTBIN3_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN3_LOW_HISTBIN3_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x)                                                   ((x) + 0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_PHYS(x)                                                   ((x) + 0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_OFFS                                                      (0x4060)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_HISTBIN4_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN4_LOW_HISTBIN4_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x)                                                   ((x) + 0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_PHYS(x)                                                   ((x) + 0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_OFFS                                                      (0x4068)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_HISTBIN5_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN5_LOW_HISTBIN5_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x)                                                   ((x) + 0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_PHYS(x)                                                   ((x) + 0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_OFFS                                                      (0x4070)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_HISTBIN6_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN6_LOW_HISTBIN6_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x)                                                   ((x) + 0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_PHYS(x)                                                   ((x) + 0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_OFFS                                                      (0x4078)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_RMSK                                                        0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_POR                                                       0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ATTR                                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_HISTBIN7_BMSK                                               0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_HISTBIN7_LOW_HISTBIN7_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x)                                                     ((x) + 0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_PHYS(x)                                                     ((x) + 0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_OFFS                                                        (0x4080)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_RMSK                                                              0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_POR                                                         0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_POR_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ATTR                                                                     0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_LATMAX_BMSK                                                       0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_LATMAX_LOW_LATMAX_SHFT                                                          0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x)                                            ((x) + 0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_PHYS(x)                                            ((x) + 0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OFFS                                               (0x4120)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_RMSK                                               0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_POR                                                0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ATTR                                                            0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_BMSK                                     0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_SHFT                                             10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x)                                           ((x) + 0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_PHYS(x)                                           ((x) + 0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OFFS                                              (0x4124)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR                                               0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                          0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                             0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x)                                            ((x) + 0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_PHYS(x)                                            ((x) + 0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OFFS                                               (0x4128)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_RMSK                                               0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_POR                                                0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ATTR                                                            0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_BMSK                                     0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_SHFT                                             10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x)                                           ((x) + 0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_PHYS(x)                                           ((x) + 0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OFFS                                              (0x412c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_RMSK                                                    0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR                                               0x0000001f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ATTR                                                           0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                          0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                             0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x)                                              ((x) + 0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_PHYS(x)                                              ((x) + 0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OFFS                                                 (0x4138)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RMSK                                                       0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_POR                                                  0x00000003
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATTR                                                              0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_BMSK                                                0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_SHFT                                                   4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_CMEN_BMSK                                                   0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_CMEN_SHFT                                                     3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_BMSK                                                 0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_SHFT                                                   2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_WREN_BMSK                                                   0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_WREN_SHFT                                                     1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RDEN_BMSK                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_OPCODE_LOW_RDEN_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x)                                          ((x) + 0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_PHYS(x)                                          ((x) + 0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OFFS                                             (0x4178)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_RMSK                                                 0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_POR                                              0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ATTR                                                          0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_BMSK                               0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_SHFT                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x)                                          ((x) + 0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_PHYS(x)                                          ((x) + 0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OFFS                                             (0x4180)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_RMSK                                                 0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_POR                                              0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_POR_RMSK                                         0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ATTR                                                          0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_BMSK                               0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_SHFT                                    0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_ADDR(x)                                                  ((x) + 0x4200)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_PHYS(x)                                                  ((x) + 0x4200)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_OFFS                                                     (0x4200)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_RMSK                                                       0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_POR                                                      0x0003cfe7
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_ATTR                                                                  0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_UNITTYPEID_BMSK                                            0xff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_UNITTYPEID_SHFT                                                  16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_UNITCONFID_BMSK                                              0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_LOW_UNITCONFID_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_ADDR(x)                                                 ((x) + 0x4204)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_PHYS(x)                                                 ((x) + 0x4204)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_OFFS                                                    (0x4204)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_RMSK                                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_POR                                                     0xbc66d227
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_POR_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_ATTR                                                                 0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_QNOCID_BMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_SWID_HIGH_QNOCID_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ADDR(x)                                               ((x) + 0x4208)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_PHYS(x)                                               ((x) + 0x4208)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_OFFS                                                  (0x4208)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_RMSK                                                       0x33f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_POR                                                   0x00000020
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ATTR                                                               0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_BMSK                                           0x300
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_HISTPENDLAW_SHFT                                               8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_BMSK                                       0x20
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_IGNORECTITRIGIN0_SHFT                                          5
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_CTITRIGOUTEN_SHFT                                              4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_SCALEEN_BMSK                                                 0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_SCALEEN_SHFT                                                   3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_DUMPEN_BMSK                                                  0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_DUMPEN_SHFT                                                    2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_MODE_BMSK                                                    0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_MAINCTL_LOW_MODE_SHFT                                                      0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_ADDR(x)                                                ((x) + 0x4210)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_PHYS(x)                                                ((x) + 0x4210)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_OFFS                                                   (0x4210)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_RMSK                                                          0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_ATTR                                                                0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_DUMPGO_BMSK                                                   0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPGO_LOW_DUMPGO_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ADDR(x)                                               ((x) + 0x4218)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_PHYS(x)                                               ((x) + 0x4218)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_OFFS                                                  (0x4218)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_RMSK                                                    0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_POR                                                   0x00001000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_POR_RMSK                                              0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ATTR                                                               0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_DUMPTHR_BMSK                                            0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_DUMPTHR_LOW_DUMPTHR_SHFT                                                   0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ADDR(x)                                                   ((x) + 0x4220)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_PHYS(x)                                                   ((x) + 0x4220)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_OFFS                                                      (0x4220)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_RMSK                                                       0xfffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_POR                                                       0x0180083f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ATTR                                                                   0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_NOMINALFREQ_BMSK                                           0xfff0000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_NOMINALFREQ_SHFT                                                  16
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_OFFSET_BMSK                                                   0xff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_OFFSET_SHFT                                                        8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_WIDTH_BMSK                                                      0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_BIN_LOW_WIDTH_SHFT                                                         0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_ADDR(x)                                             ((x) + 0x4228)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_PHYS(x)                                             ((x) + 0x4228)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_OFFS                                                (0x4228)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_RMSK                                                0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_POR                                                 0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_POR_RMSK                                            0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_ATTR                                                             0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_BMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_LOW_LATSUM_LSB_SHFT                                              0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_ADDR(x)                                            ((x) + 0x422c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_PHYS(x)                                            ((x) + 0x422c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_OFFS                                               (0x422c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_POR                                                0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_ATTR                                                            0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_TRCNT_BMSK                                         0xffffff00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_TRCNT_SHFT                                                  8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_BMSK                                          0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_AVLATENCY_HIGH_LATSUM_MSB_SHFT                                             0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_ADDR(x)                                              ((x) + 0x4240)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_PHYS(x)                                              ((x) + 0x4240)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_OFFS                                                 (0x4240)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_HISTBIN0_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN0_LOW_HISTBIN0_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_ADDR(x)                                              ((x) + 0x4248)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_PHYS(x)                                              ((x) + 0x4248)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_OFFS                                                 (0x4248)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_HISTBIN1_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN1_LOW_HISTBIN1_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_ADDR(x)                                              ((x) + 0x4250)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_PHYS(x)                                              ((x) + 0x4250)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_OFFS                                                 (0x4250)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_HISTBIN2_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN2_LOW_HISTBIN2_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_ADDR(x)                                              ((x) + 0x4258)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_PHYS(x)                                              ((x) + 0x4258)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_OFFS                                                 (0x4258)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_HISTBIN3_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN3_LOW_HISTBIN3_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_ADDR(x)                                              ((x) + 0x4260)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_PHYS(x)                                              ((x) + 0x4260)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_OFFS                                                 (0x4260)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_HISTBIN4_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN4_LOW_HISTBIN4_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_ADDR(x)                                              ((x) + 0x4268)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_PHYS(x)                                              ((x) + 0x4268)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_OFFS                                                 (0x4268)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_HISTBIN5_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN5_LOW_HISTBIN5_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_ADDR(x)                                              ((x) + 0x4270)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_PHYS(x)                                              ((x) + 0x4270)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_OFFS                                                 (0x4270)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_HISTBIN6_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN6_LOW_HISTBIN6_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_ADDR(x)                                              ((x) + 0x4278)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_PHYS(x)                                              ((x) + 0x4278)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_OFFS                                                 (0x4278)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_RMSK                                                   0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_POR                                                  0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_POR_RMSK                                             0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_ATTR                                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_HISTBIN7_BMSK                                          0xffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_HISTBIN7_LOW_HISTBIN7_SHFT                                                 0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_ADDR(x)                                                ((x) + 0x4280)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_PHYS(x)                                                ((x) + 0x4280)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_OFFS                                                   (0x4280)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_RMSK                                                         0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_POR                                                    0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_ATTR                                                                0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_LATMAX_BMSK                                                  0xff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_LATMAX_LOW_LATMAX_SHFT                                                     0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x)                                       ((x) + 0x4320)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_PHYS(x)                                       ((x) + 0x4320)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_OFFS                                          (0x4320)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_RMSK                                          0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_POR                                           0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_BMSK                                0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_LOW_VALUE_LSB_SHFT                                        10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x)                                      ((x) + 0x4324)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_PHYS(x)                                      ((x) + 0x4324)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_OFFS                                         (0x4324)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_RMSK                                               0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR                                          0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_BMSK                                     0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MIN_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x)                                       ((x) + 0x4328)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_PHYS(x)                                       ((x) + 0x4328)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_OFFS                                          (0x4328)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_RMSK                                          0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_POR                                           0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ATTR                                                       0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_BMSK                                0xfffffc00
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_LOW_VALUE_LSB_SHFT                                        10
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x)                                      ((x) + 0x432c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_PHYS(x)                                      ((x) + 0x432c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_OFFS                                         (0x432c)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_RMSK                                               0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR                                          0x0000001f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_POR_RMSK                                     0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ATTR                                                      0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_BMSK                                     0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_ADDR_MAX_HIGH_VALUE_MSB_SHFT                                        0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x)                                         ((x) + 0x4338)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_PHYS(x)                                         ((x) + 0x4338)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_OFFS                                            (0x4338)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_RMSK                                                  0x1f
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_POR                                             0x00000003
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ATTR                                                         0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_BMSK                                           0x10
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_ATOMEN_SHFT                                              4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_CMEN_BMSK                                              0x8
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_CMEN_SHFT                                                3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_BMSK                                            0x4
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_EXCLEN_SHFT                                              2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_WREN_BMSK                                              0x2
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_WREN_SHFT                                                1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_RDEN_BMSK                                              0x1
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_OPCODE_LOW_RDEN_SHFT                                                0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x)                                     ((x) + 0x4378)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_PHYS(x)                                     ((x) + 0x4378)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_OFFS                                        (0x4378)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_BMSK                          0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_BASE_LOW_FILTER_EXTID_BASE_SHFT                               0
+
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x)                                     ((x) + 0x4380)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_PHYS(x)                                     ((x) + 0x4380)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_OFFS                                        (0x4380)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_RMSK                                            0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_POR                                         0x00000000
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_POR_RMSK                                    0xffffffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ATTR                                                     0x3
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x)            \
+                in_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x), m)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_OUT(x, v)            \
+                out_dword(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),v)
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_ADDR(x),m,v,HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_IN(x))
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_BMSK                          0xffff
+#define HWIO_UMAC_NOC_QNS4S_SNOC_PCIE_TENUREPRB_FILTER_EXTID_MASK_LOW_FILTER_EXTID_MASK_SHFT                               0
+
+ 
+
+#define UMAC_ACMT_REG_BASE                                                           (UMAC_ACMT_BASE      + 0x00000000)
+#define UMAC_ACMT_REG_BASE_SIZE                                                      0x1000
+#define UMAC_ACMT_REG_BASE_USED                                                      0x13c
+#define UMAC_ACMT_REG_BASE_PHYS                                                      (UMAC_ACMT_BASE_PHYS + 0x00000000)
+#define UMAC_ACMT_REG_BASE_OFFS                                                      0x00000000
+
+#define HWIO_UMAC_ACMT_CTRL_ADDR(x)                                                  ((x) + 0x0)
+#define HWIO_UMAC_ACMT_CTRL_PHYS(x)                                                  ((x) + 0x0)
+#define HWIO_UMAC_ACMT_CTRL_OFFS                                                     (0x0)
+#define HWIO_UMAC_ACMT_CTRL_RMSK                                                            0x1
+#define HWIO_UMAC_ACMT_CTRL_POR                                                      0x00000000
+#define HWIO_UMAC_ACMT_CTRL_POR_RMSK                                                 0xffffffff
+#define HWIO_UMAC_ACMT_CTRL_ATTR                                                                  0x3
+#define HWIO_UMAC_ACMT_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_CTRL_ADDR(x))
+#define HWIO_UMAC_ACMT_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_CTRL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_CTRL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_CTRL_ADDR(x),m,v,HWIO_UMAC_ACMT_CTRL_IN(x))
+#define HWIO_UMAC_ACMT_CTRL_ENABLE_BMSK                                                     0x1
+#define HWIO_UMAC_ACMT_CTRL_ENABLE_SHFT                                                       0
+
+#define HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x)                                           ((x) + 0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_PHYS(x)                                           ((x) + 0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OFFS                                              (0x4)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_RMSK                                                     0x1
+#define HWIO_UMAC_ACMT_INTR_ENABLE_POR                                               0x00000000
+#define HWIO_UMAC_ACMT_INTR_ENABLE_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_ACMT_INTR_ENABLE_ATTR                                                           0x3
+#define HWIO_UMAC_ACMT_INTR_ENABLE_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x))
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x), m)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x),v)
+#define HWIO_UMAC_ACMT_INTR_ENABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_INTR_ENABLE_ADDR(x),m,v,HWIO_UMAC_ACMT_INTR_ENABLE_IN(x))
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INTR_EN_BMSK                                             0x1
+#define HWIO_UMAC_ACMT_INTR_ENABLE_INTR_EN_SHFT                                               0
+
+#define HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x)                                           ((x) + 0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_PHYS(x)                                           ((x) + 0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_OFFS                                              (0x8)
+#define HWIO_UMAC_ACMT_INTR_STATUS_RMSK                                                     0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_POR                                               0x00000000
+#define HWIO_UMAC_ACMT_INTR_STATUS_POR_RMSK                                          0xffffffff
+#define HWIO_UMAC_ACMT_INTR_STATUS_ATTR                                                           0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x))
+#define HWIO_UMAC_ACMT_INTR_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_INTR_STATUS_ADDR(x), m)
+#define HWIO_UMAC_ACMT_INTR_STATUS_VALID_BMSK                                               0x1
+#define HWIO_UMAC_ACMT_INTR_STATUS_VALID_SHFT                                                 0
+
+#define HWIO_UMAC_ACMT_INTR_CLEAR_ADDR(x)                                            ((x) + 0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_PHYS(x)                                            ((x) + 0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_OFFS                                               (0xc)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_RMSK                                                      0x1
+#define HWIO_UMAC_ACMT_INTR_CLEAR_POR                                                0x00000000
+#define HWIO_UMAC_ACMT_INTR_CLEAR_POR_RMSK                                           0xffffffff
+#define HWIO_UMAC_ACMT_INTR_CLEAR_ATTR                                                            0x2
+#define HWIO_UMAC_ACMT_INTR_CLEAR_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_INTR_CLEAR_ADDR(x),v)
+#define HWIO_UMAC_ACMT_INTR_CLEAR_CLR_BMSK                                                  0x1
+#define HWIO_UMAC_ACMT_INTR_CLEAR_CLR_SHFT                                                    0
+
+#define HWIO_UMAC_ACMT_DEBUG0_ADDR(x)                                                ((x) + 0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_PHYS(x)                                                ((x) + 0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_OFFS                                                   (0x10)
+#define HWIO_UMAC_ACMT_DEBUG0_RMSK                                                     0xffffff
+#define HWIO_UMAC_ACMT_DEBUG0_POR                                                    0x00000000
+#define HWIO_UMAC_ACMT_DEBUG0_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_ACMT_DEBUG0_ATTR                                                                0x1
+#define HWIO_UMAC_ACMT_DEBUG0_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_DEBUG0_ADDR(x))
+#define HWIO_UMAC_ACMT_DEBUG0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_DEBUG0_ADDR(x), m)
+#define HWIO_UMAC_ACMT_DEBUG0_ADDRESS_BMSK                                             0xffffff
+#define HWIO_UMAC_ACMT_DEBUG0_ADDRESS_SHFT                                                    0
+
+#define HWIO_UMAC_ACMT_DEBUG1_ADDR(x)                                                ((x) + 0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_PHYS(x)                                                ((x) + 0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_OFFS                                                   (0x14)
+#define HWIO_UMAC_ACMT_DEBUG1_RMSK                                                   0x10000000
+#define HWIO_UMAC_ACMT_DEBUG1_POR                                                    0x00000000
+#define HWIO_UMAC_ACMT_DEBUG1_POR_RMSK                                               0xffffffff
+#define HWIO_UMAC_ACMT_DEBUG1_ATTR                                                                0x1
+#define HWIO_UMAC_ACMT_DEBUG1_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_DEBUG1_ADDR(x))
+#define HWIO_UMAC_ACMT_DEBUG1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_DEBUG1_ADDR(x), m)
+#define HWIO_UMAC_ACMT_DEBUG1_RW_BMSK                                                0x10000000
+#define HWIO_UMAC_ACMT_DEBUG1_RW_SHFT                                                        28
+
+#define HWIO_UMAC_ACMT_CFG_ADDR(x)                                                   ((x) + 0x1c)
+#define HWIO_UMAC_ACMT_CFG_PHYS(x)                                                   ((x) + 0x1c)
+#define HWIO_UMAC_ACMT_CFG_OFFS                                                      (0x1c)
+#define HWIO_UMAC_ACMT_CFG_RMSK                                                            0x11
+#define HWIO_UMAC_ACMT_CFG_POR                                                       0x00000001
+#define HWIO_UMAC_ACMT_CFG_POR_RMSK                                                  0xffffffff
+#define HWIO_UMAC_ACMT_CFG_ATTR                                                                   0x1
+#define HWIO_UMAC_ACMT_CFG_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_CFG_ADDR(x))
+#define HWIO_UMAC_ACMT_CFG_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_CFG_ADDR(x), m)
+#define HWIO_UMAC_ACMT_CFG_DFLT_PROTECTION_BMSK                                            0x10
+#define HWIO_UMAC_ACMT_CFG_DFLT_PROTECTION_SHFT                                               4
+#define HWIO_UMAC_ACMT_CFG_PROTECTION_MODE_BMSK                                             0x1
+#define HWIO_UMAC_ACMT_CFG_PROTECTION_MODE_SHFT                                               0
+
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x)                                         ((x) + 0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_PHYS(x)                                         ((x) + 0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OFFS                                            (0x40)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RMSK                                                 0x111
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_POR                                             0x00000111
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_POR_RMSK                                        0xffffffff
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ATTR                                                         0x3
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x))
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_NOC_TSLV_CTRL_ADDR(x),m,v,HWIO_UMAC_ACMT_NOC_TSLV_CTRL_IN(x))
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_FORCE_POSTED_WR_BMSK                         0x100
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_FORCE_POSTED_WR_SHFT                             8
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_DEVBUFFABLE_BMSK                              0x10
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_RET_AHB_DEVBUFFABLE_SHFT                                 4
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_TIMEOUT_ENABLE_BMSK                                    0x1
+#define HWIO_UMAC_ACMT_NOC_TSLV_CTRL_TIMEOUT_ENABLE_SHFT                                      0
+
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x)                                       ((x) + 0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_PHYS(x)                                       ((x) + 0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OFFS                                          (0x44)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_RMSK                                                 0xf
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x))
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x), m)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x),v)
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_ADDR(x),m,v,HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_IN(x))
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_TESTBUS_SEL_BMSK                                     0xf
+#define HWIO_UMAC_ACMT_NOC_TESTBUS_SEL_TESTBUS_SEL_SHFT                                       0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x)                                        ((x) + 0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_PHYS(x)                                        ((x) + 0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OFFS                                           (0x100)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE0_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE0_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE0_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x)                                        ((x) + 0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_PHYS(x)                                        ((x) + 0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OFFS                                           (0x104)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE1_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE1_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE1_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x)                                        ((x) + 0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_PHYS(x)                                        ((x) + 0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OFFS                                           (0x108)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE2_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE2_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE2_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x)                                        ((x) + 0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_PHYS(x)                                        ((x) + 0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OFFS                                           (0x10c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE3_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE3_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE3_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x)                                        ((x) + 0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_PHYS(x)                                        ((x) + 0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OFFS                                           (0x110)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE4_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE4_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE4_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x)                                        ((x) + 0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_PHYS(x)                                        ((x) + 0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OFFS                                           (0x114)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE5_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE5_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE5_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x)                                        ((x) + 0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_PHYS(x)                                        ((x) + 0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OFFS                                           (0x118)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE6_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE6_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE6_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x)                                        ((x) + 0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_PHYS(x)                                        ((x) + 0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OFFS                                           (0x11c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE7_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE7_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE7_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x)                                        ((x) + 0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_PHYS(x)                                        ((x) + 0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OFFS                                           (0x120)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE8_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE8_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE8_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x)                                        ((x) + 0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_PHYS(x)                                        ((x) + 0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OFFS                                           (0x124)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_RMSK                                           0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_POR                                            0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_POR_RMSK                                       0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ATTR                                                        0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE9_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE9_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_SIZE_BMSK                                 0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_SIZE_SHFT                                         16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_BASE_BMSK                                     0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE9_REGS_BASE_SHFT                                          0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x)                                       ((x) + 0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_PHYS(x)                                       ((x) + 0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OFFS                                          (0x128)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE10_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE10_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE10_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x)                                       ((x) + 0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_PHYS(x)                                       ((x) + 0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OFFS                                          (0x12c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE11_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE11_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE11_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x)                                       ((x) + 0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_PHYS(x)                                       ((x) + 0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OFFS                                          (0x130)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE12_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE12_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE12_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x)                                       ((x) + 0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_PHYS(x)                                       ((x) + 0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OFFS                                          (0x134)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE13_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE13_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE13_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x)                                       ((x) + 0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_PHYS(x)                                       ((x) + 0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OFFS                                          (0x138)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE14_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE14_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE14_REGS_BASE_SHFT                                         0
+
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x)                                       ((x) + 0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_PHYS(x)                                       ((x) + 0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OFFS                                          (0x13c)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_RMSK                                          0x3fff3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_POR                                           0x00000000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_POR_RMSK                                      0xffffffff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ATTR                                                       0x3
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_IN(x)            \
+                in_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_INM(x, m)            \
+                in_dword_masked(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x), m)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OUT(x, v)            \
+                out_dword(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x),v)
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_UMAC_ACMT_ACC_CTL_TABLE15_ADDR(x),m,v,HWIO_UMAC_ACMT_ACC_CTL_TABLE15_IN(x))
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_SIZE_BMSK                                0x3fff0000
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_SIZE_SHFT                                        16
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_BASE_BMSK                                    0x3fff
+#define HWIO_UMAC_ACMT_ACC_CTL_TABLE15_REGS_BASE_SHFT                                         0
+
+
+#endif  
diff --git a/hw/qcn9224/v2/wcss_version.h b/hw/qcn9224/v2/wcss_version.h
new file mode 100644
index 0000000..50f477c
--- /dev/null
+++ b/hw/qcn9224/v2/wcss_version.h
@@ -0,0 +1,17 @@
+
+/* 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.
+ */
+
+#define WCSS_VERSION 15
diff --git a/hw/qcn9224/v2/wfss_ce_reg_seq_hwioreg.h b/hw/qcn9224/v2/wfss_ce_reg_seq_hwioreg.h
new file mode 100644
index 0000000..75b5d54
--- /dev/null
+++ b/hw/qcn9224/v2/wfss_ce_reg_seq_hwioreg.h
@@ -0,0 +1,20509 @@
+
+/* 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 __WFSS_CE_REG_SEQ_HWIOREG_H__
+#define __WFSS_CE_REG_SEQ_HWIOREG_H__
+ 
+ 
+ 
+
+ 
+#define CE_WFSS_CE_REG_BASE 0x1B80000
+#define SEQ_WCSS_UMAC_WFSS_CE_0_REG_WFSS_CE_0_CHANNEL_SRC_REG_OFFSET 0x1B80000
+#define SEQ_WCSS_UMAC_WFSS_CE_0_REG_WFSS_CE_0_CHANNEL_DST_REG_OFFSET 0x1B81000
+#define SEQ_WCSS_UMAC_WFSS_CE_0_REG_WFSS_CE_1_CHANNEL_SRC_REG_OFFSET 0x1B82000
+#define SEQ_WCSS_UMAC_WFSS_CE_0_REG_WFSS_CE_1_CHANNEL_DST_REG_OFFSET 0x1B83000
+
+ 
+
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00000000)
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00000000)
+#define WFSS_CE_0_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00000000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00001000)
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00001000)
+#define WFSS_CE_0_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00001000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00002000)
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00002000)
+#define WFSS_CE_1_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00002000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00003000)
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00003000)
+#define WFSS_CE_1_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00003000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00004000)
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00004000)
+#define WFSS_CE_2_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00004000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00005000)
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00005000)
+#define WFSS_CE_2_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00005000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00006000)
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00006000)
+#define WFSS_CE_3_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00006000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00007000)
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00007000)
+#define WFSS_CE_3_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00007000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00008000)
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00008000)
+#define WFSS_CE_4_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00008000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00009000)
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00009000)
+#define WFSS_CE_4_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00009000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0000a000)
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0000a000)
+#define WFSS_CE_5_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0000a000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0000b000)
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0000b000)
+#define WFSS_CE_5_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0000b000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0000c000)
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0000c000)
+#define WFSS_CE_6_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0000c000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0000d000)
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0000d000)
+#define WFSS_CE_6_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0000d000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0000e000)
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0000e000)
+#define WFSS_CE_7_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0000e000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0000f000)
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0000f000)
+#define WFSS_CE_7_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0000f000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00010000)
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00010000)
+#define WFSS_CE_8_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00010000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00011000)
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00011000)
+#define WFSS_CE_8_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00011000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00012000)
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00012000)
+#define WFSS_CE_9_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00012000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                               (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                               (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                  ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                     (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                              ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                 (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                   (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                     0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                            (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                            (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                              ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                 (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                              ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                 (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                 ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                    (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                 0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                     15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                              ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                 (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                   0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                       0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                 0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                  0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                            ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                               (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                  0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                        16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                          (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                          (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                              (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                        (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                     ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                        (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                              0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                    0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                       4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                 0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                   3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                      0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                        2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                         0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                 ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                    (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                          0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                  0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                     4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                          0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                            3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                  1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                      0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                              0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                      16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                  ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                     (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                  ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                     (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00013000)
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00013000)
+#define WFSS_CE_9_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00013000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                              ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                 (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                              ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                 (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                         0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                    ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                       (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                   (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                   0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                  ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                     (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                       0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                      0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                         0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                               14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                          0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                              12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                           0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                              0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                 7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                               0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                  6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                         0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                            5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                          0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                             4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                               0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                 2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                            0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                           ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                              (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                           ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                              (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                    0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                               0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                   (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                     0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                         15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                               0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                   (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                       0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                   ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                      (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                   0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                   0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                       15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                             0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                   (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                               ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                  (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                         0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                   0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                    0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                              ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                 (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                   0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                    0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                         ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                            (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                         ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                            (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                 0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                     0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                         8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                             ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                       ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                          (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                            ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                               (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                            ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                               (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                 0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                       0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                  ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                     (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                 0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                      8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                              ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                 (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                 0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                         16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                     0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                   (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                    0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                    0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                           0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                  22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                       0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                             14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                        0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                            12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                         0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                             8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                            0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                               7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                             0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                       0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                          5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                        0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                           4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                             0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                               3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                          0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                            1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                         ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                            (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                         ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                            (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                  0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                             0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                             0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                  ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                     (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                           0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                   16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                       0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                           15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                 0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                 ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                    (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                      0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                              16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                              0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                  15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                           0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                  (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                     0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                       ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                          (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                       ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                          (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                               0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                           0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                   0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                           0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                           ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                              (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                               0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                     ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                        (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                              0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                       ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                          (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                             0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                           0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                       0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                       0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                              0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                    ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                       (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                             0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                     0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                        5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                             0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                               0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                 3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                   0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                     2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                   0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                     1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                      0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                   (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                          0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                            0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                              2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                            0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                              1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                    ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                       (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                    ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                       (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                           0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                    0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                  ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                     (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                  ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                     (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                         0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                     0
+
+ 
+
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00014000)
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00014000)
+#define WFSS_CE_10_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00014000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00015000)
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00015000)
+#define WFSS_CE_10_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00015000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00016000)
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00016000)
+#define WFSS_CE_11_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00016000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00017000)
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00017000)
+#define WFSS_CE_11_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00017000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_12_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x00018000)
+#define WFSS_CE_12_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_12_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_12_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x00018000)
+#define WFSS_CE_12_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x00018000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_12_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x00019000)
+#define WFSS_CE_12_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_12_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_12_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x00019000)
+#define WFSS_CE_12_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x00019000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_13_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0001a000)
+#define WFSS_CE_13_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_13_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_13_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0001a000)
+#define WFSS_CE_13_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0001a000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_13_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0001b000)
+#define WFSS_CE_13_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_13_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_13_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0001b000)
+#define WFSS_CE_13_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0001b000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_14_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0001c000)
+#define WFSS_CE_14_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_14_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_14_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0001c000)
+#define WFSS_CE_14_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0001c000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_14_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0001d000)
+#define WFSS_CE_14_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_14_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_14_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0001d000)
+#define WFSS_CE_14_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0001d000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_15_CHANNEL_SRC_REG_REG_BASE                                                                               (CE_WFSS_CE_REG_BASE      + 0x0001e000)
+#define WFSS_CE_15_CHANNEL_SRC_REG_REG_BASE_SIZE                                                                          0x1000
+#define WFSS_CE_15_CHANNEL_SRC_REG_REG_BASE_USED                                                                          0x404
+#define WFSS_CE_15_CHANNEL_SRC_REG_REG_BASE_PHYS                                                                          (CE_WFSS_CE_REG_BASE_PHYS + 0x0001e000)
+#define WFSS_CE_15_CHANNEL_SRC_REG_REG_BASE_OFFS                                                                          0x0001e000
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_PHYS(x)                                                                   ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OFFS                                                                      (0x8)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK                                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_PHYS(x)                                                               ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_OFFS                                                                  (0xc)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_PHYS(x)                                                                 ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OFFS                                                                    (0x10)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK                                                                      0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OFFS                                                             (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OFFS                                                             (0x20)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                               ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                  (0x30)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                        0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                               ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                  (0x34)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_PHYS(x)                                                  ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_OFFS                                                     (0x38)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                  0x8000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                      15
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                               ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                  (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                       0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                    0x3ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                              ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                 (0x40)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                        0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR                                                  0x00000003
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                   0x7
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                   0xff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                         16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                  0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OFFS                                                           (0x48)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OFFS                                                           (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OFFS                                                               (0x50)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OFFS                                                         (0x54)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_PHYS(x)                                                                      ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OFFS                                                                         (0x58)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK                                                                               0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR                                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_POR_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ATTR                                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_BMSK                                                                     0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_FLUSH_SHFT                                                                        4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_BMSK                                                                  0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_STAT_SHFT                                                                    3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_BMSK                                                                       0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_RNG_HALT_SHFT                                                                         2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_CE_PRIORITY_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_BMSK                                                          0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_SRC_CTRL_SRC_RING_BYTE_SWAP_EN_SHFT                                                            0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_PHYS(x)                                                                  ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OFFS                                                                     (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK                                                                           0x1f
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_BMSK                                                                   0x10
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_WDG_ERR_SHFT                                                                      4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_BMSK                                                           0x8
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_LEN_ZERO_ERR_SHFT                                                             3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_BUF_RD_AXI_ERR_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_BMSK                                                                 0x2
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_SRC_SW_INT_SHFT                                                                   1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_BMSK                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_CH_SRC_IS_REG_ERR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK                                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR                                                                       0x0000ffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_BMSK                                                               0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_STATUS_SHFT                                                                       16
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_BMSK                                                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R0_CE_WATCHDOG_LIMIT_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_PHYS(x)                                                                   ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OFFS                                                                      (0x400)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_PHYS(x)                                                                   ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OFFS                                                                      (0x404)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_SRC_R2_SRC_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_15_CHANNEL_DST_REG_REG_BASE                                                                                  (CE_WFSS_CE_REG_BASE      + 0x0001f000)
+#define WFSS_CE_15_CHANNEL_DST_REG_REG_BASE_SIZE                                                                             0x1000
+#define WFSS_CE_15_CHANNEL_DST_REG_REG_BASE_USED                                                                             0x40c
+#define WFSS_CE_15_CHANNEL_DST_REG_REG_BASE_PHYS                                                                             (CE_WFSS_CE_REG_BASE_PHYS + 0x0001f000)
+#define WFSS_CE_15_CHANNEL_DST_REG_REG_BASE_OFFS                                                                             0x0001f000
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_PHYS(x)                                                               ((x) + 0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OFFS                                                                  (0x0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_PHYS(x)                                                               ((x) + 0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OFFS                                                                  (0x4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK                                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_BMSK                                                          0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_SIZE_SHFT                                                                 8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_PHYS(x)                                                                     ((x) + 0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OFFS                                                                        (0x8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK                                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_BMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_ID_ENTRY_SIZE_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_PHYS(x)                                                                 ((x) + 0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_OFFS                                                                    (0xc)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                    0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                            16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_BMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_STATUS_NUM_VALID_WORDS_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_PHYS(x)                                                                   ((x) + 0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OFFS                                                                      (0x10)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK                                                                        0x3fffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR                                                                       0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_BMSK                                                          0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SPARE_CONTROL_SHFT                                                                14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_BMSK                                                           0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE2_SHFT                                                               12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_BMSK                                                            0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_SM_STATE1_SHFT                                                                8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_BMSK                                                               0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_IS_IDLE_SHFT                                                                  7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_BMSK                                                                0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SRNG_ENABLE_SHFT                                                                   6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                          0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                             5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                           0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                              4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_MSI_SWAP_BIT_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_BMSK                                                                0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_SECURITY_BIT_SHFT                                                                  2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_LOOPCNT_DISABLE_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MISC_RING_ID_DISABLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_PHYS(x)                                                            ((x) + 0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OFFS                                                               (0x1c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_LSB_TAIL_PTR_MEMADDR_LSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_PHYS(x)                                                            ((x) + 0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OFFS                                                               (0x20)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK                                                                     0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_BMSK                                                0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_TP_ADDR_MSB_TAIL_PTR_MEMADDR_MSB_SHFT                                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_PHYS(x)                                                 ((x) + 0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OFFS                                                    (0x30)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_BMSK                          0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_INTERRUPT_TIMER_THRESHOLD_SHFT                                  16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_BMSK                                      0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_SW_INTERRUPT_MODE_SHFT                                          15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_BMSK                                0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX0_BATCH_COUNTER_THRESHOLD_SHFT                                     0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_PHYS(x)                                                 ((x) + 0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OFFS                                                    (0x34)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK                                                        0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_SETUP_IX1_LOW_THRESHOLD_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_PHYS(x)                                                    ((x) + 0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_OFFS                                                       (0x38)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR                                                        0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ATTR                                                                    0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                         0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                                 16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_BMSK                                    0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_CURRENT_INT_WIRE_VALUE_SHFT                                        15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                              0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                   0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_PHYS(x)                                                 ((x) + 0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OFFS                                                    (0x3c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK                                                         0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_POR_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ATTR                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_EMPTY_COUNTER_RING_EMPTY_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_PHYS(x)                                                ((x) + 0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OFFS                                                   (0x40)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK                                                          0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR                                                    0x00000003
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_BMSK                                                     0x7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_TIMER_MODE_SHFT                                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PHYS(x)                                               ((x) + 0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_OFFS                                                  (0x44)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK                                                    0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_POR_RMSK                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ATTR                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_BMSK                                     0xff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_PREFETCH_COUNT_SHFT                                           16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_BMSK                                    0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_CONSUMER_PREFETCH_STATUS_INTERNAL_TAIL_PTR_SHFT                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_PHYS(x)                                                          ((x) + 0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OFFS                                                             (0x48)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_BMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_LSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_PHYS(x)                                                          ((x) + 0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OFFS                                                             (0x4c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK                                                                  0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                      0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                          8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_BMSK                                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_BASE_MSB_ADDR_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_PHYS(x)                                                              ((x) + 0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OFFS                                                                 (0x50)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ATTR                                                                              0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_BMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_MSI1_DATA_VALUE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_PHYS(x)                                                        ((x) + 0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OFFS                                                           (0x54)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_PHYS(x)                                                             ((x) + 0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OFFS                                                                (0x58)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_BMSK                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_LSB_RING_BASE_ADDR_LSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_PHYS(x)                                                             ((x) + 0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OFFS                                                                (0x5c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK                                                                  0xffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ATTR                                                                             0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_BMSK                                                        0xffff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_SIZE_SHFT                                                               8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_BMSK                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_BASE_MSB_RING_BASE_ADDR_MSB_SHFT                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_PHYS(x)                                                                   ((x) + 0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OFFS                                                                      (0x60)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_BMSK                                                                  0xff00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_RING_ID_SHFT                                                                       8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_BMSK                                                                 0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_ID_ENTRY_SIZE_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_PHYS(x)                                                               ((x) + 0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_OFFS                                                                  (0x64)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_AVAIL_WORDS_SHFT                                                          16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_STATUS_NUM_VALID_WORDS_SHFT                                                           0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_PHYS(x)                                                                 ((x) + 0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OFFS                                                                    (0x68)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK                                                                     0x3ffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR                                                                     0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_BMSK                                                            0x3c00000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOP_CNT_SHFT                                                                   22
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_BMSK                                                        0x3fc000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SPARE_CONTROL_SHFT                                                              14
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_BMSK                                                         0x3000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE2_SHFT                                                             12
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_BMSK                                                          0xf00
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_SM_STATE1_SHFT                                                              8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_BMSK                                                             0x80
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_IS_IDLE_SHFT                                                                7
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_BMSK                                                              0x40
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SRNG_ENABLE_SHFT                                                                 6
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_BMSK                                                        0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_DATA_TLV_SWAP_BIT_SHFT                                                           5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_BMSK                                                         0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_HOST_FW_SWAP_BIT_SHFT                                                            4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_BMSK                                                              0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_MSI_SWAP_BIT_SHFT                                                                3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_BMSK                                                              0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_SECURITY_BIT_SHFT                                                                2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_BMSK                                                           0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_LOOPCNT_DISABLE_SHFT                                                             1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_BMSK                                                           0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MISC_RING_ID_DISABLE_SHFT                                                             0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_PHYS(x)                                                          ((x) + 0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OFFS                                                             (0x6c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_BMSK                                        0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_LSB_HEAD_PTR_MEMADDR_LSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_PHYS(x)                                                          ((x) + 0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OFFS                                                             (0x70)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK                                                                   0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR                                                              0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_BMSK                                              0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_ADDR_MSB_HEAD_PTR_MEMADDR_MSB_SHFT                                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_PHYS(x)                                                   ((x) + 0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OFFS                                                      (0x7c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_POR_RMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ATTR                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_BMSK                            0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_INTERRUPT_TIMER_THRESHOLD_SHFT                                    16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_BMSK                                        0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_SW_INTERRUPT_MODE_SHFT                                            15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_BMSK                                  0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_SETUP_BATCH_COUNTER_THRESHOLD_SHFT                                       0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_PHYS(x)                                                  ((x) + 0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_OFFS                                                     (0x80)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR                                                      0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_POR_RMSK                                                 0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ATTR                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_BMSK                       0xffff0000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_INTERRUPT_TIMER_VALUE_SHFT                               16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_BMSK                               0x8000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_CURRENT_SW_INT_WIRE_VALUE_SHFT                                   15
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_BMSK                            0x7fff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_INT_STATUS_INTERNAL_BATCH_COUNTER_VALUE_SHFT                                 0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_PHYS(x)                                                ((x) + 0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OFFS                                                   (0x84)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK                                                        0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR                                                    0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_POR_RMSK                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ATTR                                                                0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_BMSK                                      0x3ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_PRODUCER_FULL_COUNTER_RING_FULL_COUNTER_SHFT                                          0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_PHYS(x)                                                        ((x) + 0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OFFS                                                           (0xa0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_BMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_LSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_PHYS(x)                                                        ((x) + 0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OFFS                                                           (0xa4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK                                                                0x1ff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR                                                            0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_BMSK                                                    0x100
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_MSI1_ENABLE_SHFT                                                        8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_BMSK                                                            0xff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_BASE_MSB_ADDR_SHFT                                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_PHYS(x)                                                            ((x) + 0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OFFS                                                               (0xa8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR                                                                0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_BMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_MSI1_DATA_VALUE_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_PHYS(x)                                                      ((x) + 0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OFFS                                                         (0xac)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK                                                             0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR                                                          0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_BMSK                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_STATUS_RING_HP_TP_SW_OFFSET_HP_TP_OFFSET_VALUE_SHFT                                               0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_PHYS(x)                                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OFFS                                                                           (0xb0)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK                                                                              0x1ffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR                                                                            0x00000080
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_POR_RMSK                                                                       0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ATTR                                                                                        0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_BMSK                                                        0x10000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DST_RING_BYTE_SWAP_EN_SHFT                                                             16
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_BMSK                                                               0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_DEST_CTRL_DEST_MAX_LENGTH_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_PHYS(x)                                                                     ((x) + 0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OFFS                                                                        (0xb4)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK                                                                              0x3f
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_BMSK                                                                      0x20
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_WDG_ERR_SHFT                                                                         5
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_BMSK                                                              0x10
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_MAX_LEN_ERR_SHFT                                                                 4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_BMSK                                                                0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_BUF_WR_AXI_ERR_SHFT                                                                  3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_BMSK                                                                    0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_STS_SW_INT_SHFT                                                                      2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_BMSK                                                                    0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_DST_SW_INT_SHFT                                                                      1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_BMSK                                                                       0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DST_IS_REG_ERR_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_PHYS(x)                                                                 ((x) + 0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OFFS                                                                    (0xb8)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK                                                                           0xf
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_BMSK                                                            0x8
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_STAT_FLUSH_SHFT                                                              3
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_BMSK                                                             0x4
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_DST_FLUSH_SHFT                                                               2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_BMSK                                                             0x2
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_STAT_SHFT                                                               1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_BMSK                                                                  0x1
+#define HWIO_WFSS_CE_CHANNEL_DST_R0_CE_CH_DEST_CTRL2_RNG_HALT_SHFT                                                                    0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_PHYS(x)                                                                     ((x) + 0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OFFS                                                                        (0x400)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_HP_HEAD_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_PHYS(x)                                                                     ((x) + 0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OFFS                                                                        (0x404)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK                                                                            0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR                                                                         0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_POR_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ATTR                                                                                     0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_BMSK                                                                   0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_DEST_RING_TP_TAIL_PTR_SHFT                                                                        0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_PHYS(x)                                                                   ((x) + 0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OFFS                                                                      (0x408)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_HP_HEAD_PTR_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_PHYS(x)                                                                   ((x) + 0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OFFS                                                                      (0x40c)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK                                                                          0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR                                                                       0x00000000
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_POR_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ATTR                                                                                   0x3
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_RMSK)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x), m)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),v)
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_ADDR(x),m,v,HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_IN(x))
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_BMSK                                                                 0xffff
+#define HWIO_WFSS_CE_CHANNEL_DST_R2_STATUS_RING_TP_TAIL_PTR_SHFT                                                                      0
+
+ 
+
+#define WFSS_CE_COMMON_REG_REG_BASE                                                                                 (CE_WFSS_CE_REG_BASE      + 0x00020000)
+#define WFSS_CE_COMMON_REG_REG_BASE_SIZE                                                                            0x1000
+#define WFSS_CE_COMMON_REG_REG_BASE_USED                                                                            0x41c
+#define WFSS_CE_COMMON_REG_REG_BASE_PHYS                                                                            (CE_WFSS_CE_REG_BASE_PHYS + 0x00020000)
+#define WFSS_CE_COMMON_REG_REG_BASE_OFFS                                                                            0x00020000
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_PHYS(x)                                                             ((x) + 0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_OFFS                                                                (0x0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ATTR                                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_VALUE_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_LOWER_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_PHYS(x)                                                             ((x) + 0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_OFFS                                                                (0x4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_RMSK                                                                      0xff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ATTR                                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_VALUE_BMSK                                                                0xff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TESTBUS_UPPER_VALUE_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x)                                                            ((x) + 0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_PHYS(x)                                                            ((x) + 0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_OFFS                                                               (0x8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_RMSK                                                                    0xfff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_POR                                                                0x00000211
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ATTR                                                                            0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_RD_ADDR_BMSK                                                   0xe00
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_RD_ADDR_SHFT                                                       9
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_ADDR_BMSK                                                   0x1f0
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_ADDR_SHFT                                                       4
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_DATA_BMSK                                                     0xf
+#define HWIO_WFSS_CE_COMMON_R0_CE_SM_STATES_IX_0_SM_STATE_WR_DATA_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x)                                                         ((x) + 0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_PHYS(x)                                                         ((x) + 0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OFFS                                                            (0xc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_RMSK                                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_POR                                                             0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                            0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                              0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x)                                                        ((x) + 0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_PHYS(x)                                                        ((x) + 0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OFFS                                                           (0x10)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RMSK                                                           0x80000fff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_POR                                                            0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_BMSK                                         0x80000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CLOCK_GATE_EXTEND_SHFT                                                 31
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_SPARE_BMSK                                                          0x800
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_SPARE_SHFT                                                             11
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WDOG_CTR_BMSK                                                       0x400
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WDOG_CTR_SHFT                                                          10
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_FIFO_BMSK                                                        0x200
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_FIFO_SHFT                                                            9
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_FIFO_BMSK                                                   0x100
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_FIFO_SHFT                                                       8
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_BMSK                                                    0x80
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_FIFO_SHFT                                                       7
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_AXI_MAS_BMSK                                                      0x40
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_AXI_MAS_SHFT                                                         6
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_BMSK                                                 0x20
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_AXI_MAS_SHFT                                                    5
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_BMSK                                                 0x10
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_AXI_MAS_SHFT                                                    4
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_CMD_BMSK                                                      0x8
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_DATA_CMD_SHFT                                                        3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_CMD_BMSK                                                      0x4
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_WR_ADDR_CMD_SHFT                                                        2
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_CMD_BMSK                                                           0x2
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_RD_CMD_SHFT                                                             1
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CORE_BMSK                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLOCK_GATE_DISABLE_CORE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x)                                                              ((x) + 0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_PHYS(x)                                                              ((x) + 0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_OFFS                                                                 (0x14)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_RMSK                                                                  0x1010101
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_POR                                                                  0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_BMSK                                              0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WR_LAST_ERR_INT_SHFT                                                     24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_BMSK                                                 0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_WR_ERR_INT_SHFT                                                      16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_BMSK                                                   0x100
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_AXI_RD_ERR_INT_SHFT                                                       8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WDTIMEOUT_INT_BMSK                                                      0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_INTS_GXI_WDTIMEOUT_INT_SHFT                                                        0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x)                                                             ((x) + 0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_PHYS(x)                                                             ((x) + 0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_OFFS                                                                (0x18)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_RMSK                                                                  0x3f3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_POR                                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_POR_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ATTR                                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_BMSK                                             0x3f0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_LAST_ERR_PORT_SHFT                                                   16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_ERR_PORT_BMSK                                                    0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_WR_ERR_PORT_SHFT                                                         8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_RD_ERR_PORT_BMSK                                                      0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_ERR_STATS_AXI_RD_ERR_PORT_SHFT                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x)                                                       ((x) + 0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_PHYS(x)                                                       ((x) + 0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OFFS                                                          (0x1c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_RMSK                                                          0xffff3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_POR                                                           0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_BMSK                        0xff000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READ_DATA_SHFT                                24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_BMSK                         0xff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITE_DATA_SHFT                               16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_BMSK                                0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_READS_SHFT                                     8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_BMSK                                 0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_DEFAULT_CONTROL_GXI_DEFAULT_MAX_PENDING_WRITES_SHFT                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x)                                                       ((x) + 0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_PHYS(x)                                                       ((x) + 0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OFFS                                                          (0x20)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_RMSK                                                          0xffff3f3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_POR                                                           0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_BMSK                        0xff000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READ_DATA_SHFT                                24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_BMSK                         0xff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITE_DATA_SHFT                               16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_BMSK                                0x3f00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_READS_SHFT                                     8
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_BMSK                                 0x3f
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_REDUCED_CONTROL_GXI_REDUCED_MAX_PENDING_WRITES_SHFT                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x)                                                          ((x) + 0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_PHYS(x)                                                          ((x) + 0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OFFS                                                             (0x24)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_RMSK                                                              0xfffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_POR                                                              0x00360000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_RD_FLUSH_BMSK                                         0x8000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_RD_FLUSH_SHFT                                                27
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_WR_FLUSH_BMSK                                         0x4000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DELAYED_WR_FLUSH_SHFT                                                26
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DISABLE_WR_PREFIL_BMSK                                        0x2000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_DISABLE_WR_PREFIL_SHFT                                               25
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_WR_BOUNDARY_SPLIT_BMSK                                    0x1000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_WR_BOUNDARY_SPLIT_SHFT                                           24
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_RD_BOUNDARY_SPLIT_BMSK                                     0x800000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_MAX_RD_BOUNDARY_SPLIT_SHFT                                           23
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_BURST_SIZE_BMSK                                          0x700000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_BURST_SIZE_SHFT                                                20
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_BURST_SIZE_BMSK                                            0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_BURST_SIZE_SHFT                                                 17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_ISSUE_THRESHOLD_BMSK                                       0x1fe00
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_READ_ISSUE_THRESHOLD_SHFT                                             9
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_PREFETCH_THRESHOLD_BMSK                                     0x1fe
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_WRITE_PREFETCH_THRESHOLD_SHFT                                         1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_CLEAR_STATS_BMSK                                                    0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_GXI_CLEAR_STATS_SHFT                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x)                                                          ((x) + 0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_PHYS(x)                                                          ((x) + 0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OFFS                                                             (0x28)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_RMSK                                                             0xffff0001
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_POR                                                              0x00ff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ATTR                                                                          0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_LIMIT_BMSK                                              0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_LIMIT_SHFT                                                      16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_DISABLE_BMSK                                                   0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_CONTROL_GXI_WDOG_DISABLE_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x)                                                           ((x) + 0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_PHYS(x)                                                           ((x) + 0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_OFFS                                                              (0x2c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_RMSK                                                                  0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ATTR                                                                           0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_GXI_WDOG_STATUS_BMSK                                                  0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WDOG_STATUS_GXI_WDOG_STATUS_SHFT                                                       0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x)                                                         ((x) + 0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_PHYS(x)                                                         ((x) + 0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_OFFS                                                            (0x30)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_RMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_POR                                                             0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ATTR                                                                         0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_BMSK                                          0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_READ_IDLE_CNT_SHFT                                                  16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_BMSK                                             0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_IDLE_COUNTERS_GXI_WRITE_IDLE_CNT_SHFT                                                  0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x)                                                       ((x) + 0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_PHYS(x)                                                       ((x) + 0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OFFS                                                          (0x34)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_RMSK                                                             0xfffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_POR                                                           0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                           0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                                17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                              0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                                   16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                              0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_PHYS(x)                                                       ((x) + 0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OFFS                                                          (0x38)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_RMSK                                                             0xfffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_POR                                                           0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_POR_RMSK                                                      0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ATTR                                                                       0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_BMSK                                           0xe0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_RANGE_SHFT                                                17
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_BMSK                                              0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_EN_SHFT                                                   16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_BMSK                                              0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_LATENCY_CTRL_AXI_LATENCY_MIN_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x)                                             ((x) + 0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_PHYS(x)                                             ((x) + 0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OFFS                                                (0x3c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_POR                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ATTR                                                             0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_PHYS(x)                                             ((x) + 0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OFFS                                                (0x40)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_POR                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ATTR                                                             0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_WR_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_PHYS(x)                                             ((x) + 0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OFFS                                                (0x44)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_POR                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ATTR                                                             0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_0_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x)                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_PHYS(x)                                             ((x) + 0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OFFS                                                (0x48)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_POR                                                 0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_POR_RMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ATTR                                                             0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_BMSK                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_RD_ERR_STALL_DISABLE_IX_1_VALUE_SHFT                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x)                                                                 ((x) + 0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_PHYS(x)                                                                 ((x) + 0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OFFS                                                                    (0x4c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_RMSK                                                                    0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_DST_RING_IE_BMSK                                                        0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_DST_RING_IE_SHFT                                                                16
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_SRC_RING_IE_BMSK                                                            0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_0_SRC_RING_IE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_PHYS(x)                                                                 ((x) + 0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OFFS                                                                    (0x50)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_RMSK                                                                       0x1ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_MISC_IE_BMSK                                                               0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_MISC_IE_SHFT                                                                    16
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_STS_RING_IE_BMSK                                                            0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_HOST_IE_1_STS_RING_IE_SHFT                                                                 0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x)                                                                  ((x) + 0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_PHYS(x)                                                                  ((x) + 0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OFFS                                                                     (0x54)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ATTR                                                                                  0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_DEST_BMSK                                                                0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_DEST_SHFT                                                                        16
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_SRC_BMSK                                                                     0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_SECURITY_SRC_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x)                                                               ((x) + 0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_PHYS(x)                                                               ((x) + 0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OFFS                                                                  (0x58)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_DST_RING_IE_BMSK                                                      0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_DST_RING_IE_SHFT                                                              16
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_SRC_RING_IE_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_0_SRC_RING_IE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x)                                                               ((x) + 0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_PHYS(x)                                                               ((x) + 0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OFFS                                                                  (0x5c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_RMSK                                                                     0x1ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_MISC_IE_BMSK                                                             0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_MISC_IE_SHFT                                                                  16
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_STS_RING_IE_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TARGET_IE_1_STS_RING_IE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x)                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_PHYS(x)                                                      ((x) + 0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OFFS                                                         (0x60)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_POR                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_SEED_0_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_0_SEED_0_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x)                                                      ((x) + 0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_PHYS(x)                                                      ((x) + 0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OFFS                                                         (0x64)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_POR                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_SEED_1_BMSK                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_1_SEED_1_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x)                                                      ((x) + 0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_PHYS(x)                                                      ((x) + 0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OFFS                                                         (0x68)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_RMSK                                                                0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_POR                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ATTR                                                                      0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_SEED_2_BMSK                                                         0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_LFSR_SEED_2_SEED_2_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x)                                                           ((x) + 0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_PHYS(x)                                                           ((x) + 0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OFFS                                                              (0x6c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POLY_0_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_0_POLY_0_SHFT                                                                0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x)                                                           ((x) + 0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_PHYS(x)                                                           ((x) + 0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OFFS                                                              (0x70)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POLY_1_BMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_1_POLY_1_SHFT                                                                0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x)                                                           ((x) + 0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_PHYS(x)                                                           ((x) + 0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OFFS                                                              (0x74)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_RMSK                                                                     0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POLY_2_BMSK                                                              0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_TOEPLITZ_POLY_2_POLY_2_SHFT                                                                0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x)                                                               ((x) + 0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_PHYS(x)                                                               ((x) + 0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_OFFS                                                                  (0x78)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_POR                                                                   0x00000201
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_0_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x)                                                               ((x) + 0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_PHYS(x)                                                               ((x) + 0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_OFFS                                                                  (0x7c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_POR                                                                   0x00000201
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_1_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x)                                                               ((x) + 0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_PHYS(x)                                                               ((x) + 0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_OFFS                                                                  (0x80)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_POR                                                                   0x00000201
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_2_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x)                                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_PHYS(x)                                                               ((x) + 0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_OFFS                                                                  (0x84)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_POR                                                                   0x00000201
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_VALUE_BMSK                                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DEBUG_DMA_3_VALUE_SHFT                                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x)                                                            ((x) + 0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_PHYS(x)                                                            ((x) + 0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OFFS                                                               (0x88)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_RMSK                                                                 0x1fffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IC_CLK_BMSK                                                          0x100000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_IC_CLK_SHFT                                                                20
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_DMA_CLK_BMSK                                                          0xf0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_DMA_CLK_SHFT                                                               16
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_CORE_CLK_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_0_CSM_CORE_CLK_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x)                                                            ((x) + 0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_PHYS(x)                                                            ((x) + 0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OFFS                                                               (0x8c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_RMSK                                                                  0x3ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_CLK_EXTEND_BMSK                                                       0x20000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_CLK_EXTEND_SHFT                                                            17
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_WRAPPER_REG_CLK_BMSK                                                  0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_WRAPPER_REG_CLK_SHFT                                                       16
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_CSM_REG_CLK_BMSK                                                       0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_1_CSM_REG_CLK_SHFT                                                            0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x)                                                            ((x) + 0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_PHYS(x)                                                            ((x) + 0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OFFS                                                               (0x90)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_RMSK                                                               0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_DST_SRNG_CLK_BMSK                                                  0xffff0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_DST_SRNG_CLK_SHFT                                                          16
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_SRC_SRNG_CLK_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_2_SRC_SRNG_CLK_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ADDR(x)                                                            ((x) + 0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_PHYS(x)                                                            ((x) + 0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_OFFS                                                               (0x94)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_RMSK                                                                  0x1ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_TZ_CLK_BMSK                                                           0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_TZ_CLK_SHFT                                                                16
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_STS_SRNG_CLK_BMSK                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_CLK_GATE_DIS_3_STS_SRNG_CLK_SHFT                                                           0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x)                                                               ((x) + 0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_PHYS(x)                                                               ((x) + 0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OFFS                                                                  (0x98)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_RMSK                                                                      0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_POR                                                                   0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IDLE_CFG_BMSK                                                             0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_CONFIG_IDLE_CFG_SHFT                                                                  0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x)                                                      ((x) + 0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_PHYS(x)                                                      ((x) + 0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_OFFS                                                         (0x9c)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_POR                                                          0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_POR_RMSK                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ATTR                                                                      0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_VALUE_BMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_INVALID_APB_ACC_ADDR_VALUE_SHFT                                                            0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_PHYS(x)                                                           ((x) + 0xa0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OFFS                                                              (0xa0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_POR                                                               0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_POR_RMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ATTR                                                                           0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_VAL_BMSK                                                          0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_S_PARE_REGISTER_VAL_SHFT                                                                   0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ADDR(x)                                                               ((x) + 0xa4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_PHYS(x)                                                               ((x) + 0xa4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_OFFS                                                                  (0xa4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_RMSK                                                                     0xf00ff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_POR                                                                   0x0003000a
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA_PRIORITY_BMSK                                                        0xf0000
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA_PRIORITY_SHFT                                                             16
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA3_READ_AXI_MAX_LENGTH_CFG_BMSK                                           0xc0
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA3_READ_AXI_MAX_LENGTH_CFG_SHFT                                              6
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA2_READ_AXI_MAX_LENGTH_CFG_BMSK                                           0x30
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA2_READ_AXI_MAX_LENGTH_CFG_SHFT                                              4
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA1_READ_AXI_MAX_LENGTH_CFG_BMSK                                            0xc
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA1_READ_AXI_MAX_LENGTH_CFG_SHFT                                              2
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA0_READ_AXI_MAX_LENGTH_CFG_BMSK                                            0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_DMA_CONTROL_DMA0_READ_AXI_MAX_LENGTH_CFG_SHFT                                              0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ADDR(x)                                                         ((x) + 0xa8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_PHYS(x)                                                         ((x) + 0xa8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_OFFS                                                            (0xa8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_RMSK                                                               0x1ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_POR                                                             0x0000ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_POR_RMSK                                                        0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ATTR                                                                         0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_CE_IDLE_INTR_STSRING_TPEQHP_EN_BMSK                                0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_CE_IDLE_INTR_STSRING_TPEQHP_EN_SHFT                                     16
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_CE_CSM_IDLE_REQ_EN_BMSK                                             0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_INTR_CONTROL_CE_CSM_IDLE_REQ_EN_SHFT                                                  0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_ADDR(x)                                                               ((x) + 0xac)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_PHYS(x)                                                               ((x) + 0xac)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_OFFS                                                                  (0xac)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_RMSK                                                                     0x1ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_POR                                                                   0x0001ffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_ATTR                                                                               0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_GXI_IDLE_BMSK                                                            0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_GXI_IDLE_SHFT                                                                 16
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_CE_CSM_IDLE_BMSK                                                          0xffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_IDLE_STATUS_CE_CSM_IDLE_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ADDR(x)                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_PHYS(x)                                                        ((x) + 0xb0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_OFFS                                                           (0xb0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_RMSK                                                              0x100ff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_POR                                                            0x000000b5
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_POR_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ATTR                                                                        0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_GXI_BUS_SINGLE_TRIGGER_EN_BMSK                                    0x10000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_GXI_BUS_SINGLE_TRIGGER_EN_SHFT                                         16
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_WR_GRANT_HP_CNT_INIT_BMSK                                            0xe0
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_WR_GRANT_HP_CNT_INIT_SHFT                                               5
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_RD_GRANT_HP_CNT_INIT_BMSK                                            0x1c
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_RD_GRANT_HP_CNT_INIT_SHFT                                               2
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_WEIGHTED_ROUNDROBIN_EN_BMSK                                           0x2
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_WEIGHTED_ROUNDROBIN_EN_SHFT                                             1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_GXI_PRIORITY_EN_BMSK                                                  0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_MISC_CONTROL_2_GXI_PRIORITY_EN_SHFT                                                    0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_ADDR(x)                                                          ((x) + 0xb4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_PHYS(x)                                                          ((x) + 0xb4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_OFFS                                                             (0xb4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_GXI_BUS_STATUS_0_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_0_GXI_BUS_STATUS_0_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_ADDR(x)                                                          ((x) + 0xb8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_PHYS(x)                                                          ((x) + 0xb8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_OFFS                                                             (0xb8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_GXI_BUS_STATUS_1_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_1_GXI_BUS_STATUS_1_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_ADDR(x)                                                          ((x) + 0xbc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_PHYS(x)                                                          ((x) + 0xbc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_OFFS                                                             (0xbc)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_GXI_BUS_STATUS_2_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_2_GXI_BUS_STATUS_2_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_ADDR(x)                                                          ((x) + 0xc0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_PHYS(x)                                                          ((x) + 0xc0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_OFFS                                                             (0xc0)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_GXI_BUS_STATUS_3_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_3_GXI_BUS_STATUS_3_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_ADDR(x)                                                          ((x) + 0xc4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_PHYS(x)                                                          ((x) + 0xc4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_OFFS                                                             (0xc4)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_POR                                                              0x00000000
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_POR_RMSK                                                         0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_ATTR                                                                          0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_GXI_BUS_STATUS_4_BMSK                                            0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_GXI_BUS_STATUS_4_GXI_BUS_STATUS_4_SHFT                                                     0
+
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_ADDR(x)                                                              ((x) + 0xc8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_PHYS(x)                                                              ((x) + 0xc8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_OFFS                                                                 (0xc8)
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RMSK                                                                        0x3
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_POR                                                                  0x00000003
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_POR_RMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_ATTR                                                                              0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_ADDR(x), HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RMSK)
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RESET_CONFIG_N_BMSK                                                         0x2
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RESET_CONFIG_N_SHFT                                                           1
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RESET_CE_N_BMSK                                                             0x1
+#define HWIO_WFSS_CE_COMMON_R0_CE_RESET_STATUS_RESET_CE_N_SHFT                                                               0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x)                                                                 ((x) + 0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_PHYS(x)                                                                 ((x) + 0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OFFS                                                                    (0x400)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_RMSK                                                                       0x100ff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ATTR                                                                                 0x3
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_BMSK                                  0x10000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_HW_ERROR_INTERRUPT_TESTBUS_OVERWRITE_SHFT                                       16
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_GXI_TESTBUS_SELECT_BMSK                                                       0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_CTRL_GXI_TESTBUS_SELECT_SHFT                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x)                                                               ((x) + 0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_PHYS(x)                                                               ((x) + 0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OFFS                                                                  (0x404)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_POR                                                                   0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x), HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_MASK_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_0_MASK_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x)                                                               ((x) + 0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_PHYS(x)                                                               ((x) + 0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OFFS                                                                  (0x408)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_RMSK                                                                  0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_POR                                                                   0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x), HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_MASK_BMSK                                                             0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_1_MASK_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ADDR(x)                                                               ((x) + 0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_PHYS(x)                                                               ((x) + 0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_OFFS                                                                  (0x40c)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_RMSK                                                                       0xfff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_POR                                                                   0x00000fff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_POR_RMSK                                                              0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ATTR                                                                               0x3
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ADDR(x), HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_MASK_BMSK                                                                  0xfff
+#define HWIO_WFSS_CE_COMMON_R1_EVENTMASK_IX_2_MASK_SHFT                                                                      0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x)                                                                  ((x) + 0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_PHYS(x)                                                                  ((x) + 0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_OFFS                                                                     (0x410)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_RMSK                                                                     0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_POR                                                                      0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_POR_RMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ATTR                                                                                  0x1
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_VAL_BMSK                                                                 0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_LOW_VAL_SHFT                                                                          0
+
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x)                                                                 ((x) + 0x414)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_PHYS(x)                                                                 ((x) + 0x414)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_OFFS                                                                    (0x414)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_RMSK                                                                          0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_POR                                                                     0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_POR_RMSK                                                                0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ATTR                                                                                 0x1
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x), HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_VAL_BMSK                                                                      0xff
+#define HWIO_WFSS_CE_COMMON_R1_TESTBUS_HIGH_VAL_SHFT                                                                         0
+
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x)                                                    ((x) + 0x418)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_PHYS(x)                                                    ((x) + 0x418)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OFFS                                                       (0x418)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK                                                       0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_POR                                                        0x7ffe0002
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_POR_RMSK                                                   0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ATTR                                                                    0x3
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_BMSK                                     0xfffe0000
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_END_SHFT                                             17
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_BMSK                                      0x1fffc
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_ADDRESS_RANGE_START_SHFT                                            2
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_BMSK                                   0x2
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_WRITE_ACCESS_REPORT_ENABLE_SHFT                                     1
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_BMSK                                    0x1
+#define HWIO_WFSS_CE_COMMON_R1_REG_ACCESS_EVENT_GEN_CTRL_READ_ACCESS_REPORT_ENABLE_SHFT                                      0
+
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x)                                                            ((x) + 0x41c)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_PHYS(x)                                                            ((x) + 0x41c)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OFFS                                                               (0x41c)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_RMSK                                                                      0x1
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_POR                                                                0x00000000
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_POR_RMSK                                                           0xffffffff
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ATTR                                                                            0x3
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_IN(x)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x), HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_RMSK)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_INM(x, m)            \
+                in_dword_masked(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x), m)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OUT(x, v)            \
+                out_dword(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x),v)
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_OUTM(x,m,v) \
+                out_dword_masked_ns(HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_ADDR(x),m,v,HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_IN(x))
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_BMSK                                               0x1
+#define HWIO_WFSS_CE_COMMON_R1_END_OF_TEST_CHECK_END_OF_TEST_SELF_CHECK_SHFT                                                 0
+
+
+#endif